|
| HDDA ()=default |
| Default ctor.
|
|
__hostdev__ | HDDA (const RayT &ray, int dim) |
| ctor from ray and dimension at which the DDA marches
|
|
__hostdev__ void | init (const RayT &ray, RealT startTime, RealT maxTime, int dim) |
| Re-initializes the HDDA.
|
|
__hostdev__ void | init (const RayT &ray, int dim) |
| Simular to init above except it uses the bounds of the input ray.
|
|
__hostdev__ bool | update (const RayT &ray, int dim) |
| Updates the HDDA to march with the specified dimension.
|
|
__hostdev__ int | dim () const |
|
__hostdev__ bool | step () |
| Increment the voxel index to next intersected voxel or node and returns true if the step in time does not exceed maxTime.
|
|
__hostdev__ const CoordT & | 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.
|
|
__hostdev__ RealType | time () const |
| Return the time (parameterized along the Ray) of the first hit of a tree node of size 2^Log2Dim.
|
|
__hostdev__ RealType | maxTime () const |
| Return the maximum time (parameterized along the Ray).
|
|
__hostdev__ 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.
|
|
template<typename RayT, typename CoordT = Coord>
class nanovdb::HDDA< RayT, CoordT >
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.