This class provides the public API for intersecting a ray with a narrow-band level set.
More...
#include <RayIntersector.h>
|
| LevelSetRayIntersector (const GridT &grid, const ValueT &isoValue=zeroVal< ValueT >()) |
| Constructor. More...
|
|
const ValueT & | getIsoValue () const |
| Return the iso-value used for ray-intersections. More...
|
|
bool | intersectsIS (const RayType &iRay) const |
| Return true if the index-space ray intersects the level set. More...
|
|
bool | intersectsIS (const RayType &iRay, RealType &iTime) const |
| Return true if the index-space ray intersects the level set. More...
|
|
bool | intersectsIS (const RayType &iRay, Vec3Type &xyz) const |
| Return true if the index-space ray intersects the level set. More...
|
|
bool | intersectsIS (const RayType &iRay, Vec3Type &xyz, RealType &iTime) const |
| Return true if the index-space ray intersects the level set. More...
|
|
bool | intersectsWS (const RayType &wRay) const |
| Return true if the world-space ray intersects the level set. More...
|
|
bool | intersectsWS (const RayType &wRay, RealType &wTime) const |
| Return true if the world-space ray intersects the level set. More...
|
|
bool | intersectsWS (const RayType &wRay, Vec3Type &world) const |
| Return true if the world-space ray intersects the level set. More...
|
|
bool | intersectsWS (const RayType &wRay, Vec3Type &world, RealType &wTime) const |
| Return true if the world-space ray intersects the level set. More...
|
|
bool | intersectsWS (const RayType &wRay, Vec3Type &world, Vec3Type &normal) const |
| Return true if the world-space ray intersects the level set. More...
|
|
bool | intersectsWS (const RayType &wRay, Vec3Type &world, Vec3Type &normal, RealType &wTime) const |
| Return true if the world-space ray intersects the level set. More...
|
|
template<typename GridT, typename SearchImplT = LinearSearchImpl<GridT>, int NodeLevel = GridT::TreeType::RootNodeType::ChildNodeType::LEVEL, typename RayT = math::Ray<Real>>
class openvdb::v5_2::tools::LevelSetRayIntersector< GridT, SearchImplT, NodeLevel, RayT >
This class provides the public API for intersecting a ray with a narrow-band level set.
It wraps a SearchImplT with a simple public API and performs the actual hierarchical tree node and voxel traversal.
- Warning
- Use the (default) copy-constructor to make sure each computational thread has their own instance of this class. This is important since the SearchImplT contains a ValueAccessor that is not thread-safe. However copying is very efficient.
- See also
- tools/RayTracer.h for examples of intended usage.
◆ GridType
◆ RayType
◆ RealType
using RealType = typename RayT::RealType |
◆ TreeT
using TreeT = typename GridT::TreeType |
◆ ValueT
using ValueT = typename GridT::ValueType |
◆ Vec3Type
◆ LevelSetRayIntersector()
Constructor.
- Parameters
-
grid | level set grid to intersect rays against. |
isoValue | optional iso-value for the ray-intersection. |
◆ getIsoValue()
const ValueT& getIsoValue |
( |
| ) |
const |
|
inline |
Return the iso-value used for ray-intersections.
◆ intersectsIS() [1/4]
bool intersectsIS |
( |
const RayType & |
iRay | ) |
const |
|
inline |
Return true
if the index-space ray intersects the level set.
- Parameters
-
iRay | ray represented in index space. |
◆ intersectsIS() [2/4]
Return true
if the index-space ray intersects the level set.
- Parameters
-
iRay | ray represented in index space. |
iTime | if an intersection was found it is assigned the time of the intersection along the index ray. |
◆ intersectsIS() [3/4]
Return true
if the index-space ray intersects the level set.
- Parameters
-
iRay | ray represented in index space. |
xyz | if an intersection was found it is assigned the intersection point in index space, otherwise it is unchanged. |
◆ intersectsIS() [4/4]
Return true
if the index-space ray intersects the level set.
- Parameters
-
iRay | ray represented in index space. |
xyz | if an intersection was found it is assigned the intersection point in index space, otherwise it is unchanged. |
iTime | if an intersection was found it is assigned the time of the intersection along the index ray. |
◆ intersectsWS() [1/6]
bool intersectsWS |
( |
const RayType & |
wRay | ) |
const |
|
inline |
Return true
if the world-space ray intersects the level set.
- Parameters
-
wRay | ray represented in world space. |
◆ intersectsWS() [2/6]
Return true
if the world-space ray intersects the level set.
- Parameters
-
wRay | ray represented in world space. |
wTime | if an intersection was found it is assigned the time of the intersection along the world ray. |
◆ intersectsWS() [3/6]
Return true
if the world-space ray intersects the level set.
- Parameters
-
wRay | ray represented in world space. |
world | if an intersection was found it is assigned the intersection point in world space, otherwise it is unchanged |
◆ intersectsWS() [4/6]
Return true
if the world-space ray intersects the level set.
- Parameters
-
wRay | ray represented in world space. |
world | if an intersection was found it is assigned the intersection point in world space, otherwise it is unchanged. |
wTime | if an intersection was found it is assigned the time of the intersection along the world ray. |
◆ intersectsWS() [5/6]
Return true
if the world-space ray intersects the level set.
- Parameters
-
wRay | ray represented in world space. |
world | if an intersection was found it is assigned the intersection point in world space, otherwise it is unchanged. |
normal | if an intersection was found it is assigned the normal of the level set surface in world space, otherwise it is unchanged. |
◆ intersectsWS() [6/6]
Return true
if the world-space ray intersects the level set.
- Parameters
-
wRay | ray represented in world space. |
world | if an intersection was found it is assigned the intersection point in world space, otherwise it is unchanged. |
normal | if an intersection was found it is assigned the normal of the level set surface in world space, otherwise it is unchanged. |
wTime | if an intersection was found it is assigned the time of the intersection along the world ray. |
The documentation for this class was generated from the following file: