|
OpenVDB 12.1.0
|
Class used to generate a grid of type GridType containing a narrow-band level set representation of a capsule.
More...
#include <openvdb/tools/impl/LevelSetTubesImpl.h>
Public Member Functions | |
| CapsuleVoxelizer (GridPtr &grid, const bool &threaded=true, InterruptT *interrupter=nullptr) | |
| Constructor. | |
| template<typename ScalarType> | |
| void | operator() (const math::Vec3< ScalarType > &pt1, const math::Vec3< ScalarType > &pt2, const ScalarType &r) |
| Create a capsule. | |
| ValueT | voxelSize () const |
| Return the voxel size of the grid. | |
| ValueT | halfWidth () const |
| Return the half width of the narrow-band level set. | |
Protected Member Functions | |
| void | iterate () |
| The function the derived class calls to create the level set, working in index space other than setting signed distance values. | |
| ValueT | tilePointSignedDistance (const Vec3T &p) const |
Computes the signed distance for tiles in index space, considering the center of the tile. This method is optional to override and defaults to signedDistance. | |
Static Protected Member Functions | |
| static ValueT | tileCeil (const ValueT &x, const ValueT &step) |
| Rounds an input scalar up to the nearest valid ordinate of tile of a specified size. | |
| static ValueT | tileFloor (const ValueT &x, const ValueT &step) |
| Rounds an input scalar down to the nearest valid ordinate of tile of a specified size. | |
| static ValueT | circleBottom (const ValueT &x0, const ValueT &y0, const ValueT &r, const ValueT &x) |
| Computes the bottom y-coordinate of a circle at a given x position. | |
| static ValueT | circleTop (const ValueT &x0, const ValueT &y0, const ValueT &r, const ValueT &x) |
| Computes the top y-coordinate of a circle at a given x position. | |
| static ValueT | sphereBottom (const ValueT &x0, const ValueT &y0, const ValueT &z0, const ValueT &r, const ValueT &x, const ValueT &y) |
| Computes the bottom z-coordinate of a sphere at a given (x, y) position. | |
| static ValueT | sphereTop (const ValueT &x0, const ValueT &y0, const ValueT &z0, const ValueT &r, const ValueT &x, const ValueT &y) |
| Computes the top z-coordinate of a sphere at a given (x, y) position. | |
Protected Attributes | |
| std::function< bool(ValueT &, ValueT &, const ValueT &, const ValueT &)> | bottomTop |
| Find where a vertical infinite line intersects a convex region dilated by the half width. | |
Friends | |
| class | ConvexVoxelizer< GridType, CapsuleVoxelizer< GridType, InterruptT >, InterruptT > |
Class used to generate a grid of type GridType containing a narrow-band level set representation of a capsule.
GridType::ValueType must be a floating-point scalar.
|
inline |
Constructor.
| grid | scalar grid to populate the level set in |
| threaded | center of the sphere in world units |
| interrupter | pointer to optional interrupter. Use template argument util::NullInterrupter if no interruption is desired. |
|
inlinestaticprotectedinherited |
Computes the bottom y-coordinate of a circle at a given x position.
| x0 | X-coordinate of the circle's center. |
| y0 | Y-coordinate of the circle's center. |
| r | Radius of the circle. |
| x | X-coordinate for which to compute the bottom y-coordinate. |
|
inlinestaticprotectedinherited |
Computes the top y-coordinate of a circle at a given x position.
| x0 | X-coordinate of the circle's center. |
| y0 | Y-coordinate of the circle's center. |
| r | Radius of the circle. |
| x | X-coordinate for which to compute the top y-coordinate. |
|
inlineinherited |
Return the half width of the narrow-band level set.
|
inlineprotectedinherited |
The function the derived class calls to create the level set, working in index space other than setting signed distance values.
|
inline |
Create a capsule.
| pt1 | first endpoint of the capsule in world units |
| pt2 | second endpoint of the capsule in world units |
| radius | radius of the capsule in world units |
|
inlinestaticprotectedinherited |
Computes the bottom z-coordinate of a sphere at a given (x, y) position.
| x0 | X-coordinate of the sphere's center. |
| y0 | Y-coordinate of the sphere's center. |
| z0 | Z-coordinate of the sphere's center. |
| r | Radius of the sphere. |
| x | X-coordinate for which to compute the bottom z-coordinate. |
| y | Y-coordinate for which to compute the bottom z-coordinate. |
|
inlinestaticprotectedinherited |
Computes the top z-coordinate of a sphere at a given (x, y) position.
| x0 | X-coordinate of the sphere's center. |
| y0 | Y-coordinate of the sphere's center. |
| z0 | Z-coordinate of the sphere's center. |
| r | Radius of the sphere. |
| x | X-coordinate for which to compute the top z-coordinate. |
| y | Y-coordinate for which to compute the top z-coordinate. |
Rounds an input scalar up to the nearest valid ordinate of tile of a specified size.
| x | Input value. |
| step | Tile step size. |
Rounds an input scalar down to the nearest valid ordinate of tile of a specified size.
| x | Input value. |
| step | Tile step size. |
|
inlineprotectedinherited |
Computes the signed distance for tiles in index space, considering the center of the tile. This method is optional to override and defaults to signedDistance.
| p | The point at the center of the tile in 3D space. |
|
inlineinherited |
Return the voxel size of the grid.
|
friend |
|
protectedinherited |
Find where a vertical infinite line intersects a convex region dilated by the half width.
| [out] | zb | Reference to the z ordinate where the bottom intersection occurs. |
| [out] | zt | Reference to the z ordinate where the top intersection occurs. |
| [in] | x | The x ordinate of the infinte line. |
| [in] | y | The y ordinate of the infinte line. |