HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel > Class Template Reference

Helper class that implements Hierarchical Digital Differential Analyzers for ray intersections against a generic volume. More...

#include <DDA.h>

Public Types

typedef
TreeT::RootNodeType::NodeChainType 
ChainT
 
typedef hboost::mpl::at
< ChainT, hboost::mpl::int_
< ChildNodeLevel > >::type 
NodeT
 
typedef RayT::TimeSpan TimeSpanT
 

Public Member Functions

 VolumeHDDA ()
 
template<typename AccessorT >
TimeSpanT march (RayT &ray, AccessorT &acc)
 
template<typename AccessorT , typename ListT >
void hits (RayT &ray, AccessorT &acc, ListT &times)
 

Friends

class VolumeHDDA< TreeT, RayT, ChildNodeLevel+1 >
 

Detailed Description

template<typename TreeT, typename RayT, int ChildNodeLevel>
class openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >

Helper class that implements Hierarchical Digital Differential Analyzers for ray intersections against a generic volume.

The template argument ChildNodeLevel specifies the entry upper node level used for the hierarchical ray-marching. The final lowest level is always the leaf node level, i.e. not the voxel level!

Definition at line 215 of file DDA.h.

Member Typedef Documentation

template<typename TreeT, typename RayT, int ChildNodeLevel>
typedef TreeT::RootNodeType::NodeChainType openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >::ChainT

Definition at line 219 of file DDA.h.

template<typename TreeT, typename RayT, int ChildNodeLevel>
typedef hboost::mpl::at<ChainT, hboost::mpl::int_<ChildNodeLevel> >::type openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >::NodeT

Definition at line 220 of file DDA.h.

template<typename TreeT, typename RayT, int ChildNodeLevel>
typedef RayT::TimeSpan openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >::TimeSpanT

Definition at line 221 of file DDA.h.

Constructor & Destructor Documentation

template<typename TreeT, typename RayT, int ChildNodeLevel>
openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >::VolumeHDDA ( )
inline

Definition at line 223 of file DDA.h.

Member Function Documentation

template<typename TreeT, typename RayT, int ChildNodeLevel>
template<typename AccessorT , typename ListT >
void openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >::hits ( RayT &  ray,
AccessorT &  acc,
ListT &  times 
)
inline

ListType is a list of RayType::TimeSpan and is required to have the two methods: clear() and push_back(). Thus, it could be std::vector<typename RayType::TimeSpan> or std::deque<typename RayType::TimeSpan>.

Definition at line 238 of file DDA.h.

template<typename TreeT, typename RayT, int ChildNodeLevel>
template<typename AccessorT >
TimeSpanT openvdb::OPENVDB_VERSION_NAME::math::VolumeHDDA< TreeT, RayT, ChildNodeLevel >::march ( RayT &  ray,
AccessorT &  acc 
)
inline

Definition at line 226 of file DDA.h.

Friends And Related Function Documentation

template<typename TreeT, typename RayT, int ChildNodeLevel>
friend class VolumeHDDA< TreeT, RayT, ChildNodeLevel+1 >
friend

Definition at line 248 of file DDA.h.


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