Multi-threaded computation of surface area, volume and average mean-curvature for narrow band level sets.
More...
|
| LevelSetMeasure (const GridType &grid, InterruptT *interrupt=nullptr) |
| Main constructor from a grid. More...
|
|
| LevelSetMeasure (ManagerType &leafs, Real Dx, InterruptT *interrupt) |
|
void | reinit (const GridType &grid) |
| Re-initialize using the specified grid. More...
|
|
void | reinit (ManagerType &leafs, Real dx) |
| Re-initialize using the specified LeafManager and voxelSize. More...
|
|
virtual | ~LevelSetMeasure () |
| Destructor. More...
|
|
int | getGrainSize () const |
|
void | setGrainSize (int grainsize) |
| Set the grain-size used for multi-threading. More...
|
|
void | measure (Real &area, Real &volume, bool useWorldUnits=true) |
| Compute the surface area and volume of the level set. Use the last argument to specify the result in world or voxel units. More...
|
|
void | measure (Real &area, Real &volume, Real &avgMeanCurvature, bool useWorldUnits=true) |
| Compute the surface area, volume, and average mean-curvature of the level set. Use the last argument to specify the result in world or voxel units. More...
|
|
template<typename GridT, typename InterruptT = util::NullInterrupter>
class openvdb::v6_0::tools::LevelSetMeasure< GridT, InterruptT >
Multi-threaded computation of surface area, volume and average mean-curvature for narrow band level sets.
To reduce the risk of round-off errors (primarily due to catastrophic cancellation) and guarantee determinism during multi-threading this class is implemented using parallel_for, and delayed reduction of a sorted list.