![]() |
ImFusion SDK 4.3
|
Collection of algorithms for post-processing meshes. More...
Collection of algorithms for post-processing meshes.
Namespaces | |
| namespace | Cleaning |
| Mesh processing algorithms related to cleaning of the mesh. | |
| namespace | ColorsTexturing |
| Mesh processing algorithms related to mesh colors and texture processing. | |
| namespace | ConnectedComponents |
| Mesh processing algorithms based on connected component analysis. | |
| namespace | Geometry |
| Mesh processing algorithms related to geometrical operations. | |
| namespace | Misc |
| Miscellaneous mesh processing functions. | |
| namespace | Remeshing |
| Mesh processing algorithms related to mesh remeshing (smoothing, decimation, subdivision) | |
| namespace | Statistics |
| Methods for computing statistics on Meshes. | |
Classes | |
| struct | ConnectedComponentData |
Functions | |
| void | reduceToNumberOfComponents (Mesh *mesh, int numComponents, bool leaveOnlyLargestComponentsWithComparibleSizes=false) |
| Mesh * | cleanMesh (const Mesh *mesh, const std::vector< int > &ComponentsToKeep, const std::vector< int > &labels) |
| Mesh * | cleanMesh (const Mesh *mesh, float minConnectedArea, float maxConnectedArea, ConnectedComponentData *components=nullptr) |
| void | splitConnectedComponents (const Mesh &mesh, std::vector< std::unique_ptr< Mesh > > &connectedComponents, double keepComponentsWithRatioToMaxArea=0.) |
| void | labelConnectedComponents (Mesh *mesh, std::vector< int > &labels, std::vector< int > &labelsSize, std::vector< float > &labelsArea, std::vector< ImFusion::Geometry::AlignedBox > *labelsBoundingBox) |
| Determines connected components and assigns an id of connected component to each face using an integer "labelProperty" accessible through an underlying TriMesh. | |
| void reduceToNumberOfComponents | ( | Mesh * | mesh, |
| int | numComponents, | ||
| bool | leaveOnlyLargestComponentsWithComparibleSizes = false ) |
| Mesh * cleanMesh | ( | const Mesh * | mesh, |
| const std::vector< int > & | ComponentsToKeep, | ||
| const std::vector< int > & | labels ) |
| Mesh * cleanMesh | ( | const Mesh * | mesh, |
| float | minConnectedArea, | ||
| float | maxConnectedArea, | ||
| ConnectedComponentData * | components = nullptr ) |
| void splitConnectedComponents | ( | const Mesh & | mesh, |
| std::vector< std::unique_ptr< Mesh > > & | connectedComponents, | ||
| double | keepComponentsWithRatioToMaxArea = 0. ) |
| void labelConnectedComponents | ( | Mesh * | mesh, |
| std::vector< int > & | labels, | ||
| std::vector< int > & | labelsSize, | ||
| std::vector< float > & | labelsArea, | ||
| std::vector< ImFusion::Geometry::AlignedBox > * | labelsBoundingBox ) |
Determines connected components and assigns an id of connected component to each face using an integer "labelProperty" accessible through an underlying TriMesh.
| [in,out] | mesh | Mesh |
| [out] | labels | mapping from the "labelProperty" to an array index (for the next 3 outputs) |
| [out] | labelsSize | list of triangle count per connected component, ordered according to area from smallest to largest |
| [out] | labelsArea | list of area of triangles per connected component, ordered from smallest to largest |
| [out] | labelsBoundingBox | list of bounding boxes of connected components, ordered according to area from smallest to largest |