X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_SubMesh.hxx;h=7b202b9a4b4e3e45576fdaddb78a3146ecdfd978;hb=734442f549beaebf7a231285e46de2430a17d936;hp=bda8f04bb48c4a53e78ec0d0c31a52d8d7472228;hpb=f7fbf1c62246f439c35746c731f64dab57391c1b;p=modules%2Fsmesh.git diff --git a/src/SMESHDS/SMESHDS_SubMesh.hxx b/src/SMESHDS/SMESHDS_SubMesh.hxx index bda8f04bb..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); - void RemoveElement(const SMDS_MeshElement * ME); - void AddNode(const SMDS_MeshNode * ME); - void RemoveNode(const SMDS_MeshNode * ME); - int NbElements() const; - SMDS_Iterator * GetElements() const; - int NbNodes() const; - SMDS_Iterator * 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