OpenVDB
9.0.1
|
Multi-threaded computation of surface area, volume and average mean-curvature for narrow band level sets. More...
#include <openvdb/tools/LevelSetMeasure.h>
Public Types | |
using | GridType = GridT |
using | TreeType = typename GridType::TreeType |
using | ValueType = typename TreeType::ValueType |
using | ManagerType = typename tree::LeafManager< const TreeType > |
Public Member Functions | |
LevelSetMeasure (const GridType &grid, InterruptT *interrupt=nullptr) | |
Main constructor from a grid. More... | |
void | init (const GridType &grid) |
Re-initialize using the specified grid. More... | |
virtual | ~LevelSetMeasure () |
Destructor. More... | |
int | getGrainSize () const |
void | setGrainSize (int grainsize) |
Set the grain-size used for multi-threading. More... | |
Real | area (bool useWorldUnits=true) |
Compute the surface area of the level set. More... | |
Real | volume (bool useWorldUnits=true) |
Compute the volume of the level set surface. More... | |
Real | totMeanCurvature (bool useWorldUnits=true) |
Compute the total mean curvature of the level set surface. More... | |
Real | totGaussianCurvature (bool useWorldUnits=true) |
Compute the total gaussian curvature of the level set surface. More... | |
Real | avgMeanCurvature (bool useWorldUnits=true) |
Compute the average mean curvature of the level set surface. More... | |
Real | avgGaussianCurvature (bool useWorldUnits=true) |
Compute the average gaussian curvature of the level set surface. More... | |
int | eulerCharacteristic () |
Compute the Euler characteristic of the level set surface. More... | |
int | genus () |
Compute the genus of the level set surface. More... | |
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.
using GridType = GridT |
using ManagerType = typename tree::LeafManager<const TreeType> |
using TreeType = typename GridType::TreeType |
using ValueType = typename TreeType::ValueType |
|
inline |
Main constructor from a grid.
grid | The level set to be measured. |
interrupt | Optional interrupter. |
RuntimeError | if the grid is not a level set or if it's empty. |
|
inlinevirtual |
Destructor.
|
inline |
Compute the surface area of the level set.
useWorldUnits | Specifies if the result is in world or voxel units. |
|
inline |
Compute the average gaussian curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
|
inline |
Compute the average mean curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
|
inline |
Compute the Euler characteristic of the level set surface.
|
inline |
Compute the genus of the level set surface.
|
inline |
|
inline |
Re-initialize using the specified grid.
grid | The level set to be measured. |
RuntimeError | if the grid is not a level set or if it's empty. |
|
inline |
Set the grain-size used for multi-threading.
|
inline |
Compute the total gaussian curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
|
inline |
Compute the total mean curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
|
inline |
Compute the volume of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |