X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_SubMesh.hxx;h=7b202b9a4b4e3e45576fdaddb78a3146ecdfd978;hb=74a576e527e6032107d7b68fb748390261c424f6;hp=be7e7462a4cc67ef4a970fc955b9117be3f99a98;hpb=c3bf92bd87b770fd81631a3853f7f5bb1ac6a4e8;p=modules%2Fsmesh.git diff --git a/src/SMESHDS/SMESHDS_SubMesh.hxx b/src/SMESHDS/SMESHDS_SubMesh.hxx index be7e7462a..7b202b9a4 100644 --- a/src/SMESHDS/SMESHDS_SubMesh.hxx +++ b/src/SMESHDS/SMESHDS_SubMesh.hxx @@ -30,23 +30,34 @@ #include "SMDS_Mesh.hxx" #include -using namespace std; - class SMESHDS_SubMesh { - public: - void AddElement(const SMDS_MeshElement * ME); - bool RemoveElement(const SMDS_MeshElement * ME); // ret true if ME was in - void AddNode(const SMDS_MeshNode * ME); - bool RemoveNode(const SMDS_MeshNode * ME); // ret true if ME was in - int NbElements() const; - SMDS_ElemIteratorPtr GetElements() const; - int NbNodes() const; - SMDS_NodeIteratorPtr GetNodes() const; - - private: - const SMDS_Mesh * myMesh; - set myElements; - set myNodes; + public: + + bool IsComplexSubmesh() const { return !mySubMeshes.empty(); } + + // if !IsComplexSubmesh() + void AddElement(const SMDS_MeshElement * ME); + bool RemoveElement(const SMDS_MeshElement * ME); // ret true if ME was in + void AddNode(const SMDS_MeshNode * ME); + bool RemoveNode(const SMDS_MeshNode * ME); // ret true if ME was in + + // if IsComplexSubmesh() + void AddSubMesh( const SMESHDS_SubMesh* theSubMesh ); + bool RemoveSubMesh( const SMESHDS_SubMesh* theSubMesh ); + bool ContainsSubMesh( const SMESHDS_SubMesh* theSubMesh ) const; + + // for both types + int NbElements() const; + SMDS_ElemIteratorPtr GetElements() const; + int NbNodes() const; + SMDS_NodeIteratorPtr GetNodes() const; + bool Contains(const SMDS_MeshElement * ME) const; // check if elem or node is in + + private: + //const SMDS_Mesh * myMesh; + std::set myElements; + std::set myNodes; + std::set mySubMeshes; }; #endif