OpenVDB 12.1.0
Loading...
Searching...
No Matches
DilatedMeshVoxelizer< GridType, ScalarType, InterruptT, PtPartition > Class Template Reference

Class used to generate a grid of type GridType containing a narrow-band level set representation of a dilated mesh (surface mesh dilated by a radius in all directions). More...

#include <openvdb/tools/impl/LevelSetDilatedMeshImpl.h>

Public Member Functions

 DilatedMeshVoxelizer (const std::vector< Vec3T > &vertices, const std::vector< Vec3I > &triangles, ScalarType radius, float voxelSize, float halfWidth, InterruptT *interrupter)
 Constructor for constant radius.
 DilatedMeshVoxelizer (DilatedMeshVoxelizer &other, tbb::split)
void operator() (const tbb::blocked_range< size_t > &rng)
void join (DilatedMeshVoxelizer &other)
Index64 bucketSize () const
Index64 cellSize () const
GridPtr getGrid () const

Detailed Description

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
class openvdb::v12_1::tools::lvlset::DilatedMeshVoxelizer< GridType, ScalarType, InterruptT, PtPartition >

Class used to generate a grid of type GridType containing a narrow-band level set representation of a dilated mesh (surface mesh dilated by a radius in all directions).

Note
GridType::ValueType must be a floating-point scalar.
ScalarType represents the mesh vertex and radius type and must be a floating-point scalar.

Constructor & Destructor Documentation

◆ DilatedMeshVoxelizer() [1/2]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
DilatedMeshVoxelizer ( const std::vector< Vec3T > & vertices,
const std::vector< Vec3I > & triangles,
ScalarType radius,
float voxelSize,
float halfWidth,
InterruptT * interrupter )
inline

Constructor for constant radius.

Parameters
verticesvertices of the mesh in world units
trianglestriangle indices indices in the mesh
radiusradius of all faces in world units
voxelSizevoxel size in world units
halfWidthhalf-width in voxel units
interrupterpointer to optional interrupter. Use template argument util::NullInterrupter if no interruption is desired.

◆ DilatedMeshVoxelizer() [2/2]

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
DilatedMeshVoxelizer ( DilatedMeshVoxelizer< GridType, ScalarType, InterruptT, PtPartition > & other,
tbb::split  )
inline

Member Function Documentation

◆ bucketSize()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
Index64 bucketSize ( ) const
inline

◆ cellSize()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
Index64 cellSize ( ) const
inline

◆ getGrid()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
GridPtr getGrid ( ) const
inline

◆ join()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
void join ( DilatedMeshVoxelizer< GridType, ScalarType, InterruptT, PtPartition > & other)
inline

◆ operator()()

template<typename GridType, typename ScalarType = float, typename InterruptT = util::NullInterrupter, bool PtPartition = true>
void operator() ( const tbb::blocked_range< size_t > & rng)
inline