OpenVDB
12.0.0
|
Implements linear iterative search for an iso-value of the level set along the direction of the ray. More...
#include <openvdb/tools/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 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.
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 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.
Return false
if the ray misses the bbox of the grid.
iRay | Ray represented in index space. |
Return false
if the ray misses the bbox of the grid.
wRay | Ray represented in world space. |
|
friend |