HDK
|
Multi-threaded computation of surface area, volume and average mean-curvature for narrow band level sets. More...
#include <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.
Definition at line 103 of file LevelSetMeasure.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetMeasure< GridT, InterruptT >::GridType = GridT |
Definition at line 106 of file LevelSetMeasure.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetMeasure< GridT, InterruptT >::ManagerType = typename tree::LeafManager<const TreeType> |
Definition at line 109 of file LevelSetMeasure.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetMeasure< GridT, InterruptT >::TreeType = typename GridType::TreeType |
Definition at line 107 of file LevelSetMeasure.h.
using openvdb::OPENVDB_VERSION_NAME::tools::LevelSetMeasure< GridT, InterruptT >::ValueType = typename TreeType::ValueType |
Definition at line 108 of file LevelSetMeasure.h.
|
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. |
Definition at line 254 of file LevelSetMeasure.h.
|
inlinevirtual |
Destructor.
Definition at line 126 of file LevelSetMeasure.h.
|
inline |
Compute the surface area of the level set.
useWorldUnits | Specifies if the result is in world or voxel units. |
Definition at line 287 of file LevelSetMeasure.h.
|
inline |
Compute the average gaussian curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
Definition at line 163 of file LevelSetMeasure.h.
|
inline |
Compute the average mean curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
Definition at line 158 of file LevelSetMeasure.h.
|
inline |
Compute the Euler characteristic of the level set surface.
Definition at line 323 of file LevelSetMeasure.h.
|
inline |
Compute the genus of the level set surface.
Definition at line 172 of file LevelSetMeasure.h.
|
inline |
Definition at line 129 of file LevelSetMeasure.h.
|
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. |
Definition at line 263 of file LevelSetMeasure.h.
|
inline |
Set the grain-size used for multi-threading.
Definition at line 133 of file LevelSetMeasure.h.
|
inline |
Compute the total gaussian curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
Definition at line 315 of file LevelSetMeasure.h.
|
inline |
Compute the total mean curvature of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
Definition at line 307 of file LevelSetMeasure.h.
|
inline |
Compute the volume of the level set surface.
useWorldUnits | Specifies if the result is in world or voxel units. |
Definition at line 297 of file LevelSetMeasure.h.