OpenVDB 10.0.1
|
A Tree Marcher for Point Grids. More...
#include <nanovdb/util/HDDA.h>
Public Types | |
using | ChildT = typename NodeT::ChildNodeType |
using | RealType = typename RayT::RealType |
using | RealT = RealType |
using | CoordType = CoordT |
Public Member Functions | |
__hostdev__ | PointTreeMarcher (AccT &acc) |
__hostdev__ bool | init (RayT ray) |
Initiates this instance with a ray in index space. | |
__hostdev__ bool | init (const RayT &indexRay) |
Initialize the TreeMarcher with an index-space ray. | |
__hostdev__ bool | step (const NodeT **node, float &t0, float &t1) |
step the ray through the tree. If the ray hits a node then populate t0 & t1, and the node. | |
__hostdev__ const RayT & | ray () const |
__hostdev__ RayT & | ray () |
A Tree Marcher for Point Grids.
|
inline |
|
inlineinherited |
Initialize the TreeMarcher with an index-space ray.
|
inline |
Initiates this instance with a ray in index space.
An offset by 0.5 is applied to the ray to account for the fact that points in vdb grids are bucketed into so-called grid cell, which are centered round grid voxels, whereas the DDA is based on so-called grid nodes, which are coincident with grid voxels. So, rather than offsettting the points by 0.5 to bring them into a grid node representation this method offsets the eye of the ray by 0.5, which effectively ensures that the DDA operates on grid cells as oppose to grid nodes. This subtle but important offset by 0.5 is explined in more details in our online documentation.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
step the ray through the tree. If the ray hits a node then populate t0 & t1, and the node.