HDK
|
Implements linear iterative search for an iso-value 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 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.
Definition at line 55 of file RayIntersector.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::AccessorT = typename GridT::ConstAccessor |
Definition at line 518 of file RayIntersector.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::RayT = math::Ray<RealT> |
Definition at line 515 of file RayIntersector.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::StencilT = math::BoxStencil<GridT> |
Definition at line 519 of file RayIntersector.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::ValueT = typename GridT::ValueType |
Definition at line 517 of file RayIntersector.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::VecT = math::Vec3<RealT> |
Definition at line 516 of file RayIntersector.h.
|
inline |
Constructor from a grid.
RunTimeError | if the grid is empty. |
ValueError | if the isoValue is not inside the narrow-band. |
Definition at line 524 of file RayIntersector.h.
|
inline |
Get the intersection point in index space.
xyz | The position in index space of the intersection. |
Definition at line 563 of file RayIntersector.h.
|
inline |
Return the time of intersection along the index ray.
Definition at line 582 of file RayIntersector.h.
|
inline |
Return the iso-value used for ray-intersections.
Definition at line 541 of file RayIntersector.h.
|
inline |
Get the intersection point in world space.
xyz | The position in world space of the intersection. |
Definition at line 567 of file RayIntersector.h.
|
inline |
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. |
Definition at line 572 of file RayIntersector.h.
|
inline |
Return the time of intersection along the world ray.
Definition at line 585 of file RayIntersector.h.
|
inline |
Return false
if the ray misses the bbox of the grid.
iRay | Ray represented in index space. |
Definition at line 546 of file RayIntersector.h.
|
inline |
Return false
if the ray misses the bbox of the grid.
wRay | Ray represented in world space. |
Definition at line 555 of file RayIntersector.h.
|
friend |
Definition at line 656 of file RayIntersector.h.