OpenVDB
5.2.0

Implements linear iterative search for an isovalue of the level set along the direction of the ray. More...
#include <RayIntersector.h>
Public Types  
using  RayT = math::Ray< RealT > 
using  VecT = math::Vec3< RealT > 
using  ValueT = typename GridT::ValueType 
using  AccessorT = typename GridT::ConstAccessor 
using  StencilT = math::BoxStencil< GridT > 
Public Member Functions  
LinearSearchImpl (const GridT &grid, const ValueT &isoValue=zeroVal< ValueT >())  
Constructor from a grid. More...  
const ValueT &  getIsoValue () const 
Return the isovalue used for rayintersections. More...  
bool  setIndexRay (const RayT &iRay) 
Return false if the ray misses the bbox of the grid. More...  
bool  setWorldRay (const RayT &wRay) 
Return false if the ray misses the bbox of the grid. More...  
void  getIndexPos (VecT &xyz) const 
Get the intersection point in index space. More...  
void  getWorldPos (VecT &xyz) const 
Get the intersection point in world space. More...  
void  getWorldPosAndNml (VecT &xyz, VecT &nml) 
Get the intersection point and normal in world space. More...  
RealT  getIndexTime () const 
Return the time of intersection along the index ray. More...  
RealT  getWorldTime () const 
Return the time of intersection along the world ray. More...  
Friends  
template<typename , int >  
struct  math::LevelSetHDDA 
Implements linear iterative search for an isovalue of the level set along the direction of the ray.
It is approximate due to the limited number of iterations which can can be defined with a template parameter. However the default value has proven surprisingly accurate and fast. In fact more iterations are not guaranteed to give significantly better results.
using AccessorT = typename GridT::ConstAccessor 
using StencilT = math::BoxStencil<GridT> 
using ValueT = typename GridT::ValueType 
using VecT = math::Vec3<RealT> 

inline 
Constructor from a grid.
RunTimeError  if the grid is empty. 
ValueError  if the isoValue is not inside the narrowband. 

inline 
Get the intersection point in index space.
xyz  The position in index space of the intersection. 

inline 
Return the time of intersection along the index ray.

inline 
Return the isovalue used for rayintersections.

inline 
Get the intersection point in world space.
xyz  The position in world space of the intersection. 
Get the intersection point and normal in world space.
xyz  The position in world space of the intersection. 
nml  The surface normal in world space of the intersection. 

inline 
Return the time of intersection along the world ray.

inline 
Return false
if the ray misses the bbox of the grid.
iRay  Ray represented in index space. 

inline 
Return false
if the ray misses the bbox of the grid.
wRay  Ray represented in world space. 

friend 