OpenVDB 12.1.0

Loading...
Searching...
No Matches
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
namespace | openvdb
namespace | openvdb::v12_1
namespace | openvdb::v12_1::tools
namespace | 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).
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).
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).

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