OpenVDB  12.1.0
Classes | Namespaces | Functions
LevelSetDilatedMeshImpl.h File Reference

Generate a narrow-band level set of a dilated surface mesh. More...

#include "ConvexVoxelizer.h"
#include <openvdb/tools/LevelSetTubes.h>
#include <openvdb/tools/PointPartitioner.h>
#include <openvdb/tools/Prune.h>
#include <openvdb/Grid.h>
#include <openvdb/math/Math.h>
#include <openvdb/util/NullInterrupter.h>
#include <tbb/parallel_for.h>
#include <tbb/parallel_reduce.h>
#include <vector>
#include <type_traits>

Go to the source code of this file.

Classes

class  OpenTriangularPrismVoxelizer< GridType, InterruptT >
 Class used to generate a grid of type GridType containing a narrow-band level set representation of an open prism. The only parts of the level set populated are along both normals of the triangle. Negative background tiles that fit inside the closed dilated triangle are also populated. More...
 
class  OpenCapsuleWedgeVoxelizer< GridType, InterruptT >
 Class used to generate a grid of type GridType containing a narrow-band level set representation of an open wedge. The only parts of the level set populated are within a sector of a capsule. The sector is defined by the intersection of two half spaces. More...
 
class  TriangleMeshEdgeConnectivity< ValueT >
 Class representing the connectivity of edges in a triangle mesh, where each edge is associated with the cells (triangles) sharing it. Provides methods to retrieve adjacent cells, vertex coordinates, normals, and other geometric properties. More...
 
class  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). More...
 

Namespaces

 openvdb
 
 openvdb::v12_1
 
 openvdb::v12_1::tools
 
 openvdb::v12_1::tools::lvlset
 

Functions

template<typename GridType , typename ScalarType , typename InterruptT = util::NullInterrupter>
GridType::Ptr createLevelSetDilatedMesh (const std::vector< math::Vec3< ScalarType >> &vertices, const std::vector< Vec3I > &triangles, ScalarType radius, float voxelSize, float halfWidth=float(LEVEL_SET_HALF_WIDTH), InterruptT *interrupter=nullptr)
 Return a grid of type GridType containing a narrow-band level set representation of a dilated triangle surface mesh (dilated by a radius in all directions). More...
 
template<typename GridType , typename ScalarType , typename InterruptT = util::NullInterrupter>
GridType::Ptr createLevelSetDilatedMesh (const std::vector< math::Vec3< ScalarType >> &vertices, const std::vector< Vec4I > &quads, ScalarType radius, float voxelSize, float halfWidth=float(LEVEL_SET_HALF_WIDTH), InterruptT *interrupter=nullptr)
 Return a grid of type GridType containing a narrow-band level set representation of a dilated quad surface mesh (dilated by a radius in all directions). More...
 
template<typename GridType , typename ScalarType , typename InterruptT = util::NullInterrupter>
GridType::Ptr createLevelSetDilatedMesh (const std::vector< math::Vec3< ScalarType >> &vertices, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, ScalarType radius, float voxelSize, float halfWidth=float(LEVEL_SET_HALF_WIDTH), InterruptT *interrupter=nullptr)
 Return a grid of type GridType containing a narrow-band level set representation of a dilated triangle & quad surface mesh (dilated by a radius in all directions). More...
 

Detailed Description

Generate a narrow-band level set of a dilated surface mesh.

Author
Greg Hurst
Note
By definition a level set has a fixed narrow band width (the half width is defined by LEVEL_SET_HALF_WIDTH in Types.h), whereas an SDF can have a variable narrow band width.