|
OpenVDB
6.0.0
|
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.
| 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.
|
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 |
1.8.14