X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESHDS%2FSMESHDS_Mesh.hxx;h=e51df85d098d56f7c31578fc02615d4ed4b2f9a0;hp=8b8fc0a55b0ef5f9d4f93240732a14c802ed22a4;hb=a3ee66b0371b361bf97d6261c61a35995b4595bb;hpb=9bfa6616ba8a2e4c8aeb91baff956d6c0fc06e55 diff --git a/src/SMESHDS/SMESHDS_Mesh.hxx b/src/SMESHDS/SMESHDS_Mesh.hxx index 8b8fc0a55..e51df85d0 100644 --- a/src/SMESHDS/SMESHDS_Mesh.hxx +++ b/src/SMESHDS/SMESHDS_Mesh.hxx @@ -35,6 +35,8 @@ #include #include +#include + class TopoDS_Solid ; class TopoDS_Shell ; class TopoDS_Face ; @@ -50,8 +52,6 @@ class SMDS_MeshVolume ; class SMDS_Mesh0DElement; class SMDS_BallElement; -#include - /* * Using of native hash_map isn't portable and don't work on WIN32 platform. * So this functionality implement on new NCollection_DataMap technology @@ -566,9 +566,7 @@ public: SMESHDS_SubMesh * MeshElements(const TopoDS_Shape & S) const; SMESHDS_SubMesh * MeshElements(const int Index) const; std::list SubMeshIndices() const; - const std::map& SubMeshes() const - { return myShapeIndexToSubMesh; } - const TopoDS_Shape& GetCurrentSubShape() const { return myCurSubShape; } + SMESHDS_SubMeshIteratorPtr SubMeshes() const; bool HasHypothesis(const TopoDS_Shape & S); const std::list& GetHypothesis(const TopoDS_Shape & S) const; @@ -601,22 +599,14 @@ public: ~SMESHDS_Mesh(); private: - void addNodeToSubmesh( const SMDS_MeshNode* aNode, int Index ) - { - //Update or build submesh - std::map::iterator it = myShapeIndexToSubMesh.find( Index ); - if ( it == myShapeIndexToSubMesh.end() ) - it = myShapeIndexToSubMesh.insert( std::make_pair(Index, new SMESHDS_SubMesh(this, Index) )).first; - it->second->AddNode( aNode ); // add aNode to submesh - } - + ShapeToHypothesis myShapeToHypothesis; int myMeshID, myPersistentID; TopoDS_Shape myShape; - typedef std::map TShapeIndexToSubMesh; - TShapeIndexToSubMesh myShapeIndexToSubMesh; + class SubMeshHolder; + SubMeshHolder* mySubMeshHolder; TopTools_IndexedMapOfShape myIndexToShape; @@ -626,14 +616,8 @@ private: SMESHDS_Script* myScript; bool myIsEmbeddedMode; - // optimize addition of nodes/elements to submeshes by, SetNodeInVolume() etc: - // avoid search of submeshes in maps bool add( const SMDS_MeshElement* elem, SMESHDS_SubMesh* subMesh ); SMESHDS_SubMesh* getSubmesh( const TopoDS_Shape & shape); - SMESHDS_SubMesh* getSubmesh( const int Index ); - int myCurSubID; - TopoDS_Shape myCurSubShape; - SMESHDS_SubMesh* myCurSubMesh; };