From 2aabac71a7430978cd25f3acdd929c0c756fdd9e Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 26 Apr 2013 17:20:24 +0200 Subject: [PATCH] Add convenience methods to query selection of a mesh --- src/Mod/Mesh/App/Mesh.cpp | 17 +++++++++++++++++ src/Mod/Mesh/App/Mesh.h | 3 +++ 2 files changed, 20 insertions(+) diff --git a/src/Mod/Mesh/App/Mesh.cpp b/src/Mod/Mesh/App/Mesh.cpp index 9a13a27a8..fb5084b64 100644 --- a/src/Mod/Mesh/App/Mesh.cpp +++ b/src/Mod/Mesh/App/Mesh.cpp @@ -587,6 +587,23 @@ void MeshObject::getPointsFromSelection(std::vector& inds) const MeshCore::MeshAlgorithm(this->_kernel).GetPointsFlag(inds, MeshCore::MeshPoint::SELECTED); } +bool MeshObject::hasSelectedFacets() const +{ + unsigned long ct = MeshCore::MeshAlgorithm(this->_kernel).CountFacetFlag(MeshCore::MeshFacet::SELECTED); + return ct > 0; +} + +bool MeshObject::hasSelectedPoints() const +{ + unsigned long ct = MeshCore::MeshAlgorithm(this->_kernel).CountPointFlag(MeshCore::MeshPoint::SELECTED); + return ct > 0; +} + +std::vector MeshObject::getPointsFromFacets(const std::vector& facets) const +{ + return _kernel.GetFacetPoints(facets); +} + void MeshObject::updateMesh(const std::vector& facets) { std::vector points; diff --git a/src/Mod/Mesh/App/Mesh.h b/src/Mod/Mesh/App/Mesh.h index 441db4de3..a88a06ec3 100644 --- a/src/Mod/Mesh/App/Mesh.h +++ b/src/Mod/Mesh/App/Mesh.h @@ -124,6 +124,7 @@ public: double getVolume() const; void getFaces(std::vector &Points,std::vector &Topo, float Accuracy, uint16_t flags=0) const; + std::vector getPointsFromFacets(const std::vector& facets) const; //@} void setKernel(const MeshCore::MeshKernel& m); @@ -211,6 +212,8 @@ public: void addPointsToSelection(const std::vector&) const; void removeFacetsFromSelection(const std::vector&) const; void removePointsFromSelection(const std::vector&) const; + bool hasSelectedFacets() const; + bool hasSelectedPoints() const; void getFacetsFromSelection(std::vector&) const; void getPointsFromSelection(std::vector&) const; void clearFacetSelection() const;