|
HDK
|
Convert polygonal meshes that consist of quads and/or triangles into signed or unsigned distance field volumes. More...
#include <openvdb/Platform.h>#include <openvdb/Types.h>#include <openvdb/math/FiniteDifference.h>#include <openvdb/math/Proximity.h>#include <openvdb/util/NullInterrupter.h>#include <openvdb/util/Util.h>#include <openvdb/util/Assert.h>#include <openvdb/thread/Threading.h>#include <openvdb/openvdb.h>#include "ChangeBackground.h"#include "Prune.h"#include "SignedFloodFill.h"#include <tbb/blocked_range.h>#include <tbb/enumerable_thread_specific.h>#include <tbb/parallel_for.h>#include <tbb/parallel_reduce.h>#include <tbb/partitioner.h>#include <tbb/task_group.h>#include <tbb/task_arena.h>#include <algorithm>#include <cmath>#include <deque>#include <limits>#include <memory>#include <sstream>#include <type_traits>#include <vector>
Include dependency graph for MeshToVolume.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Classes | |
| struct | openvdb::OPENVDB_VERSION_NAME::tools::QuadAndTriangleDataAdapter< PointType, PolygonType > |
| Contiguous quad and triangle data adapter class. More... | |
| class | openvdb::OPENVDB_VERSION_NAME::tools::MeshToVoxelEdgeData |
| Extracts and stores voxel edge intersection data from a mesh. More... | |
| struct | openvdb::OPENVDB_VERSION_NAME::tools::MeshToVoxelEdgeData::EdgeData |
| Internal edge data type. More... | |
| class | openvdb::OPENVDB_VERSION_NAME::tools::MeshToVoxelEdgeData::GenEdgeData |
Namespaces | |
| openvdb | |
| openvdb::OPENVDB_VERSION_NAME | |
| openvdb::OPENVDB_VERSION_NAME::tools | |
Enumerations | |
| enum | openvdb::OPENVDB_VERSION_NAME::tools::MeshToVolumeFlags { openvdb::OPENVDB_VERSION_NAME::tools::UNSIGNED_DISTANCE_FIELD = 0x1, openvdb::OPENVDB_VERSION_NAME::tools::DISABLE_INTERSECTING_VOXEL_REMOVAL = 0x2, openvdb::OPENVDB_VERSION_NAME::tools::DISABLE_RENORMALIZATION = 0x4, openvdb::OPENVDB_VERSION_NAME::tools::DISABLE_NARROW_BAND_TRIMMING = 0x8 } |
| Mesh to volume conversion flags. More... | |
| enum | openvdb::OPENVDB_VERSION_NAME::tools::InteriorTestStrategy { openvdb::OPENVDB_VERSION_NAME::tools::EVAL_EVERY_VOXEL = 0, openvdb::OPENVDB_VERSION_NAME::tools::EVAL_EVERY_TILE = 1 } |
| Different staregies how to determine sign of an SDF when using interior test. More... | |
Functions | |
| template<typename GridType , typename MeshDataAdapter , typename InteriorTest = std::nullptr_t> | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToVolume (const MeshDataAdapter &mesh, const math::Transform &transform, float exteriorBandWidth=3.0f, float interiorBandWidth=3.0f, int flags=0, typename GridType::template ValueConverter< Int32 >::Type *polygonIndexGrid=nullptr, InteriorTest interiorTest=nullptr, InteriorTestStrategy interiorTestStrat=EVAL_EVERY_VOXEL) |
| template<typename GridType , typename MeshDataAdapter , typename Interrupter , typename InteriorTest = std::nullptr_t> | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToVolume (Interrupter &interrupter, const MeshDataAdapter &mesh, const math::Transform &transform, float exteriorBandWidth=3.0f, float interiorBandWidth=3.0f, int flags=0, typename GridType::template ValueConverter< Int32 >::Type *polygonIndexGrid=nullptr, InteriorTest interiorTest=nullptr, InteriorTestStrategy interiorTestStrategy=EVAL_EVERY_VOXEL) |
| Convert polygonal meshes that consist of quads and/or triangles into signed or unsigned distance field volumes. More... | |
| template<typename GridType > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToLevelSet (const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, float halfWidth=float(LEVEL_SET_HALF_WIDTH)) |
| Convert a triangle mesh to a level set volume. More... | |
| template<typename GridType , typename Interrupter > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToLevelSet (Interrupter &interrupter, const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, float halfWidth=float(LEVEL_SET_HALF_WIDTH)) |
| Adds support for a interrupter callback used to cancel the conversion. More... | |
| template<typename GridType > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToLevelSet (const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec4I > &quads, float halfWidth=float(LEVEL_SET_HALF_WIDTH)) |
| Convert a quad mesh to a level set volume. More... | |
| template<typename GridType , typename Interrupter > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToLevelSet (Interrupter &interrupter, const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec4I > &quads, float halfWidth=float(LEVEL_SET_HALF_WIDTH)) |
| Adds support for a interrupter callback used to cancel the conversion. More... | |
| template<typename GridType > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToLevelSet (const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, float halfWidth=float(LEVEL_SET_HALF_WIDTH)) |
| Convert a triangle and quad mesh to a level set volume. More... | |
| template<typename GridType , typename Interrupter > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToLevelSet (Interrupter &interrupter, const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, float halfWidth=float(LEVEL_SET_HALF_WIDTH)) |
| Adds support for a interrupter callback used to cancel the conversion. More... | |
| template<typename GridType > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToSignedDistanceField (const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, float exBandWidth, float inBandWidth) |
| Convert a triangle and quad mesh to a signed distance field with an asymmetrical narrow band. More... | |
| template<typename GridType , typename Interrupter > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToSignedDistanceField (Interrupter &interrupter, const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, float exBandWidth, float inBandWidth) |
| Adds support for a interrupter callback used to cancel the conversion. More... | |
| template<typename GridType > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToUnsignedDistanceField (const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, float bandWidth) |
| Convert a triangle and quad mesh to an unsigned distance field. More... | |
| template<typename GridType , typename Interrupter > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::meshToUnsignedDistanceField (Interrupter &interrupter, const openvdb::math::Transform &xform, const std::vector< Vec3s > &points, const std::vector< Vec3I > &triangles, const std::vector< Vec4I > &quads, float bandWidth) |
| Adds support for a interrupter callback used to cancel the conversion. More... | |
| template<typename GridType , typename VecType > | |
| GridType::Ptr | openvdb::OPENVDB_VERSION_NAME::tools::createLevelSetBox (const math::BBox< VecType > &bbox, const openvdb::math::Transform &xform, typename VecType::ValueType halfWidth=LEVEL_SET_HALF_WIDTH) |
Return a grid of type GridType containing a narrow-band level set representation of a box. More... | |
| template<typename FloatTreeT > | |
| void | openvdb::OPENVDB_VERSION_NAME::tools::traceExteriorBoundaries (FloatTreeT &tree) |
Traces the exterior voxel boundary of closed objects in the input volume tree. Exterior voxels are marked with a negative sign, voxels with a value below 0.75 are left unchanged and act as the boundary layer. More... | |
| template<typename T , Index Log2Dim, typename InteriorTest > | |
| void | openvdb::OPENVDB_VERSION_NAME::tools::floodFillLeafNode (tree::LeafNode< T, Log2Dim > &leafNode, const InteriorTest &interiorTest) |
| template<typename FloatTreeT , typename InteriorTest > | |
| void | openvdb::OPENVDB_VERSION_NAME::tools::evaluateInteriorTest (FloatTreeT &tree, InteriorTest interiorTest, InteriorTestStrategy interiorTestStrategy) |
Sets the sign of voxel values of tree based on the interiorTest More... | |
| std::ostream & | openvdb::OPENVDB_VERSION_NAME::tools::operator<< (std::ostream &ostr, const MeshToVoxelEdgeData::EdgeData &rhs) |
| MeshToVoxelEdgeData::EdgeData | openvdb::OPENVDB_VERSION_NAME::tools::Abs (const MeshToVoxelEdgeData::EdgeData &x) |
Convert polygonal meshes that consist of quads and/or triangles into signed or unsigned distance field volumes.
Definition in file MeshToVolume.h.