HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nanovdb::PointTreeMarcher< AccT, RayT, CoordT > Class Template Reference

A Tree Marcher for Point Grids. More...

#include <HDDA.h>

+ Inheritance diagram for nanovdb::PointTreeMarcher< AccT, RayT, CoordT >:

Public Member Functions

__hostdev__ PointTreeMarcher (AccT &acc)
 
__hostdev__ bool init (RayT ray)
 Initiates this instance with a ray in index space. More...
 
- Public Member Functions inherited from nanovdb::TreeMarcher< LeafNode< AccT::ValueType >, RayT, AccT, CoordT >
__hostdev__ TreeMarcher (AccT &acc)
 
__hostdev__ bool init (const RayT &indexRay)
 Initialize the TreeMarcher with an index-space ray. More...
 
__hostdev__ bool step (const LeafNode< AccT::ValueType > **node, float &t0, float &t1)
 step the ray through the tree. If the ray hits a node then populate t0 & t1, and the node. More...
 
__hostdev__ const RayT & ray () const
 
__hostdev__ RayT & ray ()
 

Additional Inherited Members

- Public Types inherited from nanovdb::TreeMarcher< LeafNode< AccT::ValueType >, RayT, AccT, CoordT >
using ChildT = typename LeafNode< AccT::ValueType >::ChildNodeType
 
using RealType = typename RayT::RealType
 
using RealT = RealType
 
using CoordType = CoordT
 

Detailed Description

template<typename AccT, typename RayT, typename CoordT = Coord>
class nanovdb::PointTreeMarcher< AccT, RayT, CoordT >

A Tree Marcher for Point Grids.

Note
This class will handle correctly offseting the ray by 0.5 to ensure that the underlying HDDA will intersect with the grid-cells. See details below.

Definition at line 490 of file HDDA.h.

Constructor & Destructor Documentation

template<typename AccT , typename RayT , typename CoordT = Coord>
__hostdev__ nanovdb::PointTreeMarcher< AccT, RayT, CoordT >::PointTreeMarcher ( AccT &  acc)
inline

Definition at line 494 of file HDDA.h.

Member Function Documentation

template<typename AccT , typename RayT , typename CoordT = Coord>
__hostdev__ bool nanovdb::PointTreeMarcher< AccT, RayT, CoordT >::init ( RayT  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.

Definition at line 505 of file HDDA.h.


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