OpenVDB  12.0.0
Public Member Functions | List of all members
VolumeToMesh Struct Reference

Mesh any scalar grid that has a continuous isosurface. More...

#include <openvdb/tools/VolumeToMesh.h>

Public Member Functions

 VolumeToMesh (double isovalue=0, double adaptivity=0, bool relaxDisorientedTriangles=true)
 
template<typename InputGridType >
void operator() (const InputGridType &)
 Main call. More...
 
void setRefGrid (const GridBase::ConstPtr &grid, double secAdaptivity=0)
 When surfacing fractured SDF fragments, the original unfractured SDF grid can be used to eliminate seam lines and tag polygons that are coincident with the reference surface with the POLYFLAG_EXTERIOR flag and polygons that are in proximity to the seam lines with the POLYFLAG_FRACTURE_SEAM flag. (The performance cost for using this reference based scheme compared to the regular meshing scheme is approximately 15% for the first fragment and neglect-able for subsequent fragments.) More...
 
void setSurfaceMask (const GridBase::ConstPtr &mask, bool invertMask=false)
 
void setSpatialAdaptivity (const GridBase::ConstPtr &grid)
 
void setAdaptivityMask (const TreeBase::ConstPtr &tree)
 
size_t pointListSize () const
 
PointListpointList ()
 
const PointListpointList () const
 
size_t polygonPoolListSize () const
 
PolygonPoolListpolygonPoolList ()
 
const PolygonPoolListpolygonPoolList () const
 
std::vector< uint8_t > & pointFlags ()
 
const std::vector< uint8_t > & pointFlags () const
 

Detailed Description

Mesh any scalar grid that has a continuous isosurface.

Constructor & Destructor Documentation

VolumeToMesh ( double  isovalue = 0,
double  adaptivity = 0,
bool  relaxDisorientedTriangles = true 
)
inline
Parameters
isovalueDetermines which isosurface to mesh.
adaptivityAdaptivity threshold [0 to 1]
relaxDisorientedTrianglesToggle relaxing disoriented triangles during adaptive meshing.

Member Function Documentation

void operator() ( const InputGridType &  inputGrid)
inline

Main call.

Note
Call with scalar typed grid.
std::vector<uint8_t>& pointFlags ( )
inline
const std::vector<uint8_t>& pointFlags ( ) const
inline
PointList& pointList ( )
inline
const PointList& pointList ( ) const
inline
size_t pointListSize ( ) const
inline
PolygonPoolList& polygonPoolList ( )
inline
const PolygonPoolList& polygonPoolList ( ) const
inline
size_t polygonPoolListSize ( ) const
inline
void setAdaptivityMask ( const TreeBase::ConstPtr tree)
inline
Parameters
treeA boolean tree whose active topology defines the adaptivity mask.
Note
The tree configuration has to match GridT's tree configuration.
void setRefGrid ( const GridBase::ConstPtr grid,
double  secAdaptivity = 0 
)
inline

When surfacing fractured SDF fragments, the original unfractured SDF grid can be used to eliminate seam lines and tag polygons that are coincident with the reference surface with the POLYFLAG_EXTERIOR flag and polygons that are in proximity to the seam lines with the POLYFLAG_FRACTURE_SEAM flag. (The performance cost for using this reference based scheme compared to the regular meshing scheme is approximately 15% for the first fragment and neglect-able for subsequent fragments.)

Note
Attributes from the original asset such as uv coordinates, normals etc. are typically transferred to polygons that are marked with the POLYFLAG_EXTERIOR flag. Polygons that are not marked with this flag are interior to reference surface and might need projected UV coordinates or a different material. Polygons marked as POLYFLAG_FRACTURE_SEAM can be used to drive secondary elements such as debris and dust in a FX pipeline.
Parameters
gridreference surface grid of GridT type.
secAdaptivitySecondary adaptivity threshold [0 to 1]. Used in regions that do not exist in the reference grid. (Parts of the fragment surface that are not coincident with the reference surface.)
void setSpatialAdaptivity ( const GridBase::ConstPtr grid)
inline
Parameters
gridA scalar grid used as a spatial multiplier for the adaptivity threshold.
Note
The grid's tree configuration has to match GridT's tree configuration.
void setSurfaceMask ( const GridBase::ConstPtr mask,
bool  invertMask = false 
)
inline
Parameters
maskA boolean grid whose active topology defines the region to mesh.
invertMaskToggle to mesh the complement of the mask.
Note
The mask's tree configuration has to match GridT's tree configuration.