OpenVDB 7.0.0

Classes | Public Types | Public Member Functions | List of all members
LevelSetMeasure< GridT, InterruptT > Class Template Reference

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...

## Detailed Description

### template<typename GridT, typename InterruptT = util::NullInterrupter>
class openvdb::v7_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.

## Member Typedef Documentation

## ◆ GridType

using GridType = GridT

## ◆ ManagerType

using ManagerType = typename tree::LeafManager<const TreeType>

## ◆ TreeType

using TreeType = typename GridType::TreeType

## ◆ ValueType

using ValueType = typename TreeType::ValueType

## Constructor & Destructor Documentation

## ◆ LevelSetMeasure()

LevelSetMeasure | ( | const GridType & | grid,
|  | InterruptT * | interrupt = `nullptr`
| ) |  |
| inline

Main constructor from a grid.

Parameters

  grid | The level set to be measured.
  interrupt | Optional interrupter.

Exceptions

  RuntimeError | if the grid is not a level set or if it's empty.

## ◆ ~LevelSetMeasure()

virtual ~LevelSetMeasure | ( |  | ) |
| inline virtual

Destructor.

## Member Function Documentation

## ◆ area()

Real area | ( | bool | useWorldUnits = `true` | ) |
| inline

Compute the surface area of the level set.

Parameters

  useWorldUnits | Specifies if the result is in world or voxel units.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ avgGaussianCurvature()

Real avgGaussianCurvature | ( | bool | useWorldUnits = `true` | ) |
| inline

Compute the average gaussian curvature of the level set surface.

Parameters

  useWorldUnits | Specifies if the result is in world or voxel units.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ avgMeanCurvature()

Real avgMeanCurvature | ( | bool | useWorldUnits = `true` | ) |
| inline

Compute the average mean curvature of the level set surface.

Parameters

  useWorldUnits | Specifies if the result is in world or voxel units.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ eulerCharacteristic()

int eulerCharacteristic | ( |  | ) |
| inline

Compute the Euler characteristic of the level set surface.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ genus()

int genus | ( |  | ) |
| inline

Compute the genus of the level set surface.

Warning
  The genus is only well defined for a single connected surface.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ getGrainSize()

int getGrainSize | ( |  | ) | const
| inline

Returns
  the grain-size used for multi-threading

## ◆ init()

void init | ( | const GridType & | grid | ) |
| inline

Re-initialize using the specified grid.

Parameters

  grid | The level set to be measured.

Exceptions

  RuntimeError | if the grid is not a level set or if it's empty.

## ◆ setGrainSize()

void setGrainSize | ( | int | grainsize | ) |
| inline

Set the grain-size used for multi-threading.

Note
  A grain size of 0 or less disables multi-threading!

## ◆ totGaussianCurvature()

Real totGaussianCurvature | ( | bool | useWorldUnits = `true` | ) |
| inline

Compute the total gaussian curvature of the level set surface.

Parameters

  useWorldUnits | Specifies if the result is in world or voxel units.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ totMeanCurvature()

Real totMeanCurvature | ( | bool | useWorldUnits = `true` | ) |
| inline

Compute the total mean curvature of the level set surface.

Parameters

  useWorldUnits | Specifies if the result is in world or voxel units.

Note
  Performs internal caching so only the initial call incurs actual computation.

## ◆ volume()

Real volume | ( | bool | useWorldUnits = `true` | ) |
| inline

Compute the volume of the level set surface.

Parameters

  useWorldUnits | Specifies if the result is in world or voxel units.

Note
  Performs internal caching so only the initial call incurs actual computation.

The documentation for this class was generated from the following file:

- LevelSetMeasure.h