Convert polygonal meshes that consist of quads and/or triangles into signed or unsigned distance field volumes.
More...
|
template<typename GridType , typename MeshDataAdapter , typename InteriorTest = std::nullptr_t> |
GridType::Ptr | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | floodFillLeafNode (tree::LeafNode< T, Log2Dim > &leafNode, const InteriorTest &interiorTest) |
|
template<typename FloatTreeT , typename InteriorTest > |
void | evaluateInteriorTest (FloatTreeT &tree, InteriorTest interiorTest, InteriorTestStrategy interiorTestStrategy) |
| Sets the sign of voxel values of tree based on the interiorTest More...
|
|
std::ostream & | operator<< (std::ostream &ostr, const MeshToVoxelEdgeData::EdgeData &rhs) |
|
MeshToVoxelEdgeData::EdgeData | Abs (const MeshToVoxelEdgeData::EdgeData &x) |
|
Convert polygonal meshes that consist of quads and/or triangles into signed or unsigned distance field volumes.
- Note
- The signed distance field conversion requires a closed surface but not necessarily a manifold surface. Supports surfaces with self intersections and degenerate faces and is independent of mesh surface normals / polygon orientation.
- Author
- Mihai Alden