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 | |
MeshValidation (MeshKernel &rclB) | |
virtual | ~MeshValidation () |
Detailed Description
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
- See also
- MeshFixDegeneratedFacets
- MeshFixCaps
Constructor & Destructor Documentation
◆ MeshRemoveNeedles()
MeshCore::MeshRemoveNeedles::MeshRemoveNeedles | ( | MeshKernel & | rclM, |
float | fMinEdgeLen = 0.05f |
||
) |
Construction.
The
- fMinEdgeLen must be in the range of 0.0 and 0.25. It defines the amount of perimeter of a triangle for which the shortest edge is considered for removal.
◆ ~MeshRemoveNeedles()
MeshCore::MeshRemoveNeedles::~MeshRemoveNeedles | ( | ) |
Destruction.
Member Function Documentation
◆ Fixup()
|
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::MeshFacetIterator::GetIndices(), MeshCore::MeshFacetIterator::Init(), MeshCore::MeshFacet::INVALID, MeshCore::MeshTopoAlgorithm::IsCollapseEdgeLegal(), MeshCore::MeshFacetIterator::More(), MeshCore::MeshRefPointToFacets::NeighbourPoints(), MeshCore::MeshFacetIterator::Next(), MeshCore::MeshGeomFacet::Perimeter(), MeshCore::MeshRefPointToFacets::RemoveFacet(), MeshCore::MeshRefPointToFacets::RemoveNeighbour(), MeshCore::MeshPointArray::ResetFlag(), MeshCore::MeshPointArray::ResetInvalid(), MeshCore::MeshFacetArray::ResetInvalid(), MeshCore::MeshFacetIterator::SetFlag(), MeshCore::MeshPointArray::SetFlag(), MeshCore::MeshFacet::SetInvalid(), and MeshCore::MeshPoint::VISIT.
Referenced by Mesh::MeshObject::removeNeedles().
The documentation for this class was generated from the following files:
- src/Mod/Mesh/App/Core/Degeneration.h
- src/Mod/Mesh/App/Core/Degeneration.cpp