|  | 
|  | DDA () | 
|  | uninitialized constructor 
 | 
|  | 
|  | 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| RealType | time () const | 
|  | Return the time (parameterized along the Ray) of the first hit of a tree node of size 2^Log2Dim. 
 | 
|  | 
| RealType | maxTime () const | 
|  | Return the maximum time (parameterized along the Ray). 
 | 
|  | 
| 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. 
 | 
|  | 
| void | print (std::ostream &os=std::cout) const | 
|  | Print information about this DDA for debugging. 
 | 
|  | 
template<typename RayT, 
Index Log2Dim = 0>
class openvdb::v12_0::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.