The MeshRemoveNeedles class tries to fix degenerations by removing needles. More...
#include <Degeneration.h>
Public Member Functions | |
bool | Fixup () |
Removes all facets with an edge smaller than fMinEdgeLength without leaving holes or gaps in the mesh. More... | |
MeshRemoveNeedles (MeshKernel &rclM, float fMinEdgeLen=0.05f) | |
Construction. More... | |
~MeshRemoveNeedles () | |
Destruction. More... | |
Public Member Functions inherited from MeshCore::MeshValidation | |
virtual bool | Fixup ()=0 |
This function attempts to change the mesh kernel to be valid according to the checked criterion: True is returned if the errors could be fixed, false otherwise. More... | |
MeshValidation (MeshKernel &rclB) | |
virtual | ~MeshValidation () |
The MeshRemoveNeedles class tries to fix degenerations by removing needles.
Needles are triangles where its longest edge is much longer than its shortest edge. https://graphics.uni-bielefeld.de/publications/vmv01.pdf
MeshCore::MeshRemoveNeedles::MeshRemoveNeedles | ( | MeshKernel & | rclM, |
float | fMinEdgeLen = 0.05f |
||
) |
Construction.
The
MeshCore::MeshRemoveNeedles::~MeshRemoveNeedles | ( | ) |
Destruction.
|
virtual |
Removes all facets with an edge smaller than fMinEdgeLength without leaving holes or gaps in the mesh.
Implements MeshCore::MeshValidation.
References MeshCore::MeshRefPointToFacets::AddNeighbour(), MeshCore::MeshTopoAlgorithm::Cleanup(), MeshCore::MeshTopoAlgorithm::CollapseEdge(), Base::Distance(), MeshCore::FACET_INDEX_MAX, MeshCore::MeshTopoAlgorithm::IsCollapseEdgeLegal(), MeshCore::MeshRefPointToFacets::NeighbourPoints(), MeshCore::MeshGeomFacet::Perimeter(), MeshCore::MeshRefPointToFacets::RemoveFacet(), MeshCore::MeshRefPointToFacets::RemoveNeighbour(), MeshCore::MeshPointArray::ResetFlag(), MeshCore::MeshPointArray::ResetInvalid(), MeshCore::MeshFacetArray::ResetInvalid(), draftutils.todo::todo, and MeshCore::MeshPoint::VISIT.
Referenced by Mesh::MeshObject::removeNeedles().