The MeshEvalTopology class checks for topologic correctness, i.e that the mesh must not contain non-manifolds. More...
#include <Evaluation.h>
Public Member Functions | |
unsigned long | CountManifolds () const |
virtual bool | Evaluate () |
Evaluates the mesh kernel with respect to certain criteria. More... | |
void | GetFacetManifolds (std::vector< unsigned long > &raclFacetIndList) const |
const std::list< std::vector< unsigned long > > & | GetFacets () const |
const std::vector< std::pair< unsigned long, unsigned long > > & | GetIndices () const |
MeshEvalTopology (const MeshKernel &rclB) | |
virtual | ~MeshEvalTopology () |
Public Member Functions inherited from MeshCore::MeshEvaluation | |
MeshEvaluation (const MeshKernel &rclB) | |
virtual | ~MeshEvaluation () |
Protected Attributes | |
std::list< std::vector< unsigned long > > | nonManifoldFacets |
std::vector< std::pair< unsigned long, unsigned long > > | nonManifoldList |
Detailed Description
The MeshEvalTopology class checks for topologic correctness, i.e that the mesh must not contain non-manifolds.
E.g. an edge is regarded as non-manifold if it is shared by more than two facets.
- Note
- This check does not necessarily cover any degenerations.
Constructor & Destructor Documentation
◆ MeshEvalTopology()
MeshCore::MeshEvalTopology::MeshEvalTopology | ( | const MeshKernel & | rclB | ) |
◆ ~MeshEvalTopology()
|
virtual |
Member Function Documentation
◆ CountManifolds()
unsigned long MeshEvalTopology::CountManifolds | ( | ) | const |
References nonManifoldList.
Referenced by MeshGui::DlgEvaluateMeshImp::on_analyzeNonmanifoldsButton_clicked().
◆ Evaluate()
|
virtual |
Evaluates the mesh kernel with respect to certain criteria.
Must be reimplemented by every subclass. This pure virtual function returns false if the mesh kernel is invalid according to this criterion and true if the mesh kernel is correct.
Implements MeshCore::MeshEvaluation.
Reimplemented in MeshCore::MeshEvalSingleFacet.
References MeshCore::Edge_Index::f, Base::SequencerLauncher::next(), nonManifoldFacets, nonManifoldList, MeshCore::Edge_Index::p0, and MeshCore::Edge_Index::p1.
Referenced by MeshCore::MeshEvalSingleFacet::Evaluate(), MeshCore::MeshFixTopology::Fixup(), MeshCore::MeshKernel::HasNonManifolds(), Mesh::MeshObject::hasNonManifolds(), Mesh::MeshObject::load(), MeshGui::DlgEvaluateMeshImp::on_analyzeNonmanifoldsButton_clicked(), MeshGui::DlgEvaluateMeshImp::on_repairAllTogether_clicked(), and Mesh::MeshObject::removeNonManifolds().
◆ GetFacetManifolds()
void MeshEvalTopology::GetFacetManifolds | ( | std::vector< unsigned long > & | raclFacetIndList | ) | const |
References DraftVecUtils::find(), and nonManifoldList.
Referenced by MeshCore::MeshFixTopology::Fixup().
◆ GetFacets()
const std::list<std::vector<unsigned long> >& MeshCore::MeshEvalTopology::GetFacets | ( | ) | const |
Referenced by Mesh::MeshObject::removeNonManifolds().
◆ GetIndices()
const std::vector<std::pair<unsigned long, unsigned long> >& MeshCore::MeshEvalTopology::GetIndices | ( | ) | const |
Member Data Documentation
◆ nonManifoldFacets
|
protected |
Referenced by Evaluate().
◆ nonManifoldList
|
protected |
Referenced by CountManifolds(), Evaluate(), MeshCore::MeshEvalSingleFacet::Evaluate(), and GetFacetManifolds().
The documentation for this class was generated from the following files:
- src/Mod/Mesh/App/Core/Evaluation.h
- src/Mod/Mesh/App/Core/Evaluation.cpp