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. | |
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 () |
Protected Attributes | |
std::list< std::vector < unsigned long > > | nonManifoldFacets |
std::vector< std::pair < unsigned long, unsigned long > > | 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.
Definition at line 188 of file Evaluation.h.
MeshCore::MeshEvalTopology::MeshEvalTopology | ( | const MeshKernel & | rclB | ) | [inline] |
Definition at line 191 of file Evaluation.h.
virtual MeshCore::MeshEvalTopology::~MeshEvalTopology | ( | ) | [inline, virtual] |
Definition at line 192 of file Evaluation.h.
unsigned long MeshEvalTopology::CountManifolds | ( | ) | const |
Definition at line 407 of file Evaluation.cpp.
References nonManifoldList.
Referenced by MeshGui::DlgEvaluateMeshImp::on_analyzeNonmanifoldsButton_clicked().
bool MeshEvalTopology::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.
Definition at line 330 of file Evaluation.cpp.
References MeshCore::MeshEvaluation::_rclMesh, RobotExampleTrajectoryOutOfShapes::count, MeshCore::Edge_Index::f, MeshCore::MeshKernel::GetFacets(), nonManifoldFacets, nonManifoldList, MeshCore::Edge_Index::p0, and MeshCore::Edge_Index::p1.
Referenced by 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< unsigned long > & | raclFacetIndList | ) | const |
Definition at line 389 of file Evaluation.cpp.
References MeshCore::MeshEvaluation::_rclMesh, draftlibs::fcvec::find(), MeshCore::MeshKernel::GetFacets(), and nonManifoldList.
Referenced by MeshCore::MeshFixTopology::Fixup().
const std::list<std::vector<unsigned long> >& MeshCore::MeshEvalTopology::GetFacets | ( | ) | const [inline] |
Definition at line 198 of file Evaluation.h.
Referenced by Mesh::MeshObject::removeNonManifolds().
const std::vector<std::pair<unsigned long, unsigned long> >& MeshCore::MeshEvalTopology::GetIndices | ( | ) | const [inline] |
Definition at line 197 of file Evaluation.h.
Referenced by MeshGui::DlgEvaluateMeshImp::on_analyzeNonmanifoldsButton_clicked().
std::list<std::vector<unsigned long> > MeshCore::MeshEvalTopology::nonManifoldFacets [protected] |
Definition at line 202 of file Evaluation.h.
Referenced by Evaluate().
std::vector<std::pair<unsigned long, unsigned long> > MeshCore::MeshEvalTopology::nonManifoldList [protected] |
Definition at line 201 of file Evaluation.h.
Referenced by CountManifolds(), MeshCore::MeshEvalSingleFacet::Evaluate(), Evaluate(), and GetFacetManifolds().