OpenVDB 11.0.0
Loading...
Searching...
No Matches
TreeMarcher< NodeT, RayT, AccT, CoordT > Class Template Reference

A Tree Marcher for Generic 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__ TreeMarcher (AccT &acc)
__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 ()

Detailed Description

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

A Tree Marcher for Generic Grids.

Member Typedef Documentation

◆ ChildT

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
using ChildT = typename NodeT::ChildNodeType

◆ CoordType

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
using CoordType = CoordT

◆ RealT

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
using RealT = RealType

◆ RealType

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
using RealType = typename RayT::RealType

Constructor & Destructor Documentation

◆ TreeMarcher()

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
__hostdev__ TreeMarcher ( AccT & acc)
inline

Member Function Documentation

◆ init()

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
__hostdev__ bool init ( const RayT & indexRay)
inline

Initialize the TreeMarcher with an index-space ray.

◆ ray() [1/2]

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
__hostdev__ RayT & ray ( )
inline

◆ ray() [2/2]

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
__hostdev__ const RayT & ray ( ) const
inline

◆ step()

template<typename NodeT, typename RayT, typename AccT, typename CoordT = Coord>
__hostdev__ bool step ( const NodeT ** node,
float & t0,
float & t1 )
inline

step the ray through the tree. If the ray hits a node then populate t0 & t1, and the node.

Returns
true when a node of type NodeT is intersected, false otherwise.