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< FacetIndex > &raclFacetIndList) const |
const std::list< std::vector< FacetIndex > > & | GetFacets () const |
const std::vector< std::pair< FacetIndex, FacetIndex > > & | GetIndices () const |
MeshEvalTopology (const MeshKernel &rclB) | |
virtual | ~MeshEvalTopology () |
Public Member Functions inherited from MeshCore::MeshEvaluation | |
virtual bool | Evaluate ()=0 |
Evaluates the mesh kernel with respect to certain criteria. More... | |
MeshEvaluation (const MeshKernel &rclB) | |
virtual | ~MeshEvaluation () |
Protected Attributes | |
std::list< std::vector< FacetIndex > > | nonManifoldFacets |
std::vector< std::pair< FacetIndex, FacetIndex > > | nonManifoldList |
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.
MeshCore::MeshEvalTopology::MeshEvalTopology | ( | const MeshKernel & | rclB | ) |
|
virtual |
unsigned long MeshEvalTopology::CountManifolds | ( | ) | const |
References nonManifoldList.
Referenced by MeshGui::DlgEvaluateMeshImp::on_analyzeNonmanifoldsButton_clicked().
|
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, MeshCore::Edge_Index::p1, and MeshCore::POINT_INDEX_MAX.
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().
void MeshEvalTopology::GetFacetManifolds | ( | std::vector< FacetIndex > & | raclFacetIndList | ) | const |
References DraftVecUtils::find(), and nonManifoldList.
Referenced by MeshCore::MeshFixTopology::Fixup().
const std::list< std::vector< FacetIndex > > & MeshCore::MeshEvalTopology::GetFacets | ( | ) | const |
Referenced by Mesh::MeshObject::removeNonManifolds().
const std::vector< std::pair< FacetIndex, FacetIndex > > & MeshCore::MeshEvalTopology::GetIndices | ( | ) | const |
|
protected |
Referenced by Evaluate().
|
protected |
Referenced by CountManifolds(), Evaluate(), MeshCore::MeshEvalSingleFacet::Evaluate(), and GetFacetManifolds().