OpenVDB
4.0.2
|
Implements linear iterative search for an iso-value of the level set along the direction of the ray. More...
#include <RayIntersector.h>
Public Types | |
typedef math::Ray< RealT > | RayT |
typedef math::Vec3< RealT > | VecT |
typedef GridT::ValueType | ValueT |
typedef GridT::ConstAccessor | AccessorT |
typedef math::BoxStencil< GridT > | StencilT |
Public Member Functions | |
LinearSearchImpl (const GridT &grid, const ValueT &isoValue=zeroVal< ValueT >()) | |
Constructor from a grid. More... | |
const ValueT & | getIsoValue () const |
Return the iso-value used for ray-intersections. 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 iso-value 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.
typedef GridT::ConstAccessor AccessorT |
typedef math::BoxStencil<GridT> StencilT |
typedef GridT::ValueType ValueT |
typedef math::Vec3<RealT> VecT |
|
inline |
Constructor from a grid.
RunTimeError | if the grid is empty. |
ValueError | if the isoValue is not inside the narrow-band. |
|
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 iso-value used for ray-intersections.
|
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 |