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 | |
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.
Definition at line 82 of file RayIntersector.h.
typedef GridT::ConstAccessor openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::AccessorT |
Definition at line 545 of file RayIntersector.h.
typedef math::Ray<RealT> openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::RayT |
Definition at line 542 of file RayIntersector.h.
typedef math::BoxStencil<GridT> openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::StencilT |
Definition at line 546 of file RayIntersector.h.
typedef GridT::ValueType openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::ValueT |
Definition at line 544 of file RayIntersector.h.
typedef math::Vec3<RealT> openvdb::OPENVDB_VERSION_NAME::tools::LinearSearchImpl< GridT, Iterations, RealT >::VecT |
Definition at line 543 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 551 of file RayIntersector.h.
|
inline |
Get the intersection point in index space.
xyz | The position in index space of the intersection. |
Definition at line 590 of file RayIntersector.h.
|
inline |
Return the time of intersection along the index ray.
Definition at line 609 of file RayIntersector.h.
|
inline |
Return the iso-value used for ray-intersections.
Definition at line 568 of file RayIntersector.h.
|
inline |
Get the intersection point in world space.
xyz | The position in world space of the intersection. |
Definition at line 594 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 599 of file RayIntersector.h.
|
inline |
Return the time of intersection along the world ray.
Definition at line 612 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 573 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 582 of file RayIntersector.h.
|
friend |
Definition at line 683 of file RayIntersector.h.