HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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>
+ Include dependency graph for LevelSetDilatedMeshImpl.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  openvdb::OPENVDB_VERSION_NAME::tools::lvlset::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  openvdb::OPENVDB_VERSION_NAME::tools::lvlset::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  openvdb::OPENVDB_VERSION_NAME::tools::lvlset::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  openvdb::OPENVDB_VERSION_NAME::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). More...
 

Namespaces

 openvdb
 
 openvdb::OPENVDB_VERSION_NAME
 
 openvdb::OPENVDB_VERSION_NAME::tools
 
 openvdb::OPENVDB_VERSION_NAME::tools::lvlset
 

Functions

template<typename GridType , typename ScalarType , typename InterruptT >
GridType::Ptr openvdb::OPENVDB_VERSION_NAME::tools::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 >
GridType::Ptr openvdb::OPENVDB_VERSION_NAME::tools::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 >
GridType::Ptr openvdb::OPENVDB_VERSION_NAME::tools::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.

Definition in file LevelSetDilatedMeshImpl.h.