OpenVDB 5.1.0

Public Types | Public Member Functions | List of all members
DDA< RayT, Log2Dim > Class Template Reference

A Digital Differential Analyzer specialized for OpenVDB grids. More...

`#include <DDA.h>`

## Public Types
typedef RayT::RealType | RealType
typedef RealType | RealT
typedef RayT::Vec3Type | Vec3Type
typedef Vec3Type | Vec3T

## Public Member Functions
| DDA ()
| uninitialized constructor More...
| DDA (const RayT &ray)
| DDA (const RayT &ray, RealT startTime)
| DDA (const RayT &ray, RealT startTime, RealT maxTime)
void | init (const RayT &ray, RealT startTime, RealT maxTime)
void | init (const RayT &ray)
void | init (const RayT &ray, RealT startTime)
bool | step ()
| Increment the voxel index to next intersected voxel or node and returns true if the step in time does not exceed maxTime. More...
const Coord & | voxel () const
| Return the index coordinates of the next node or voxel intersected by the ray. If Log2Dim = 0 the return value is the actual signed coordinate of the voxel, else it is the origin of the corresponding VDB tree node or tile. More...
RealType | time () const
| Return the time (parameterized along the Ray) of the first hit of a tree node of size 2^Log2Dim. More...
RealType | maxTime () const
| Return the maximum time (parameterized along the Ray). More...
RealType | next () const
| Return the time (parameterized along the Ray) of the second (i.e. next) hit of a tree node of size 2^Log2Dim. More...
void | print (std::ostream &os=std::cout) const
| Print information about this DDA for debugging. More...

## Detailed Description

### template<typename RayT, Index Log2Dim = 0>
class openvdb::v5_1::math::DDA< RayT, Log2Dim >

A Digital Differential Analyzer specialized for OpenVDB grids.

Note
  Conceptually similar to Bresenham's line algorithm applied to a 3D Ray intersecting OpenVDB nodes or voxels. Log2Dim = 0 corresponds to a voxel and Log2Dim a tree node of size 2^Log2Dim.
  The Ray template class is expected to have the following methods: test(time), t0(), t1(), invDir(), and operator()(time). See the example Ray class above for their definition.

## Member Typedef Documentation

## ◆ RealT

typedef RealType RealT

## ◆ RealType

typedef RayT::RealType RealType

## ◆ Vec3T

typedef Vec3Type Vec3T

## ◆ Vec3Type

typedef RayT::Vec3Type Vec3Type

## Constructor & Destructor Documentation

## ◆ DDA() [1/4]

DDA | ( |  | ) |
| inline

uninitialized constructor

## ◆ DDA() [2/4]

DDA | ( | const RayT & | ray | ) |
| inline

## ◆ DDA() [3/4]

DDA | ( | const RayT & | ray,
|  | RealT | startTime
| ) |  |
| inline

## ◆ DDA() [4/4]

DDA | ( | const RayT & | ray,
|  | RealT | startTime,
|  | RealT | maxTime
| ) |  |
| inline

## Member Function Documentation

## ◆ init() [1/3]

void init | ( | const RayT & | ray,
|  | RealT | startTime,
|  | RealT | maxTime
| ) |  |
| inline

## ◆ init() [2/3]

void init | ( | const RayT & | ray | ) |
| inline

## ◆ init() [3/3]

void init | ( | const RayT & | ray,
|  | RealT | startTime
| ) |  |
| inline

## ◆ maxTime()

RealType maxTime | ( |  | ) | const
| inline

Return the maximum time (parameterized along the Ray).

## ◆ next()

RealType next | ( |  | ) | const
| inline

Return the time (parameterized along the Ray) of the second (i.e. next) hit of a tree node of size 2^Log2Dim.

Note
  Incurs a (small) computational overhead.

## ◆ print()

void print | ( | std::ostream & | os = `std::cout` | ) | const
| inline

Print information about this DDA for debugging.

Parameters

  os | a stream to which to write textual information.

## ◆ step()

bool step | ( |  | ) |
| inline

Increment the voxel index to next intersected voxel or node and returns true if the step in time does not exceed maxTime.

## ◆ time()

RealType time | ( |  | ) | const
| inline

Return the time (parameterized along the Ray) of the first hit of a tree node of size 2^Log2Dim.

This value is initialized to startTime or ray.t0() depending on the constructor used.

Note
  Incurs no computational overhead.

## ◆ voxel()

const Coord& voxel | ( |  | ) | const
| inline

Return the index coordinates of the next node or voxel intersected by the ray. If Log2Dim = 0 the return value is the actual signed coordinate of the voxel, else it is the origin of the corresponding VDB tree node or tile.

Note
  Incurs no computational overhead.

The documentation for this class was generated from the following file:

- DDA.h