|
OpenVDB 12.1.0
|
Class used to generate a grid of type GridType containing a narrow-band level set representation of an open prism. The only parts of the level set populated are along both normals of the triangle. Negative background tiles that fit inside the closed dilated triangle are also populated.
More...
#include <openvdb/tools/impl/LevelSetDilatedMeshImpl.h>
Public Member Functions | |
| OpenTriangularPrismVoxelizer (GridPtr &grid, const bool &threaded=false, InterruptT *interrupter=nullptr) | |
| Constructor. | |
| template<typename ScalarType> | |
| void | operator() (const math::Vec3< ScalarType > &pt1, const math::Vec3< ScalarType > &pt2, const math::Vec3< ScalarType > &pt3, const ScalarType &radius) |
| Create an open prism. | |
| ValueT | voxelSize () const |
| Return the voxel size of the grid. | |
| ValueT | halfWidth () const |
| Return the half width of the narrow-band level set. | |
Protected Types | |
| using | Vec2T |
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. | |
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, OpenTriangularPrismVoxelizer< GridType, InterruptT >, InterruptT > |
Class used to generate a grid of type GridType containing a narrow-band level set representation of an open prism. The only parts of the level set populated are along both normals of the triangle. Negative background tiles that fit inside the closed dilated triangle are also populated.
GridType::ValueType must be a floating-point scalar.
|
protectedinherited |
|
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 an open prism.
| pt1 | point 1 of the triangle in world units |
| pt2 | point 2 of the triangle in world units |
| pt3 | point 3 of the triangle in world units |
| radius | radius of the open prism 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. |
|
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. |