2 //=============================================================================
3 // File : SMESH_SubMesh.cxx
5 // Author : Yves FRICAUD, OCC
7 // Copyright : OCC 2002
9 //=============================================================================
11 #include "SMESHDS_SubMesh.ixx"
12 #include "SMDS_MapIteratorOfExtendedMap.hxx"
14 //=======================================================================
15 //function : SMESHDS_SubMesh
17 //=======================================================================
18 SMESHDS_SubMesh::SMESHDS_SubMesh(const Handle(SMDS_Mesh)& M) : myMesh(M)
20 myListOfEltIDIsUpdate = Standard_False;
21 myListOfNodeIDIsUpdate = Standard_False;
24 //=======================================================================
25 //function : AddElement
27 //=======================================================================
28 void SMESHDS_SubMesh::AddElement (const Handle(SMDS_MeshElement)& ME)
31 myListOfEltIDIsUpdate = Standard_False;
34 //=======================================================================
35 //function : RemoveElement
37 //=======================================================================
38 void SMESHDS_SubMesh::RemoveElement(const Handle(SMDS_MeshElement)& ME)
40 myElements.Remove(ME);
41 myListOfEltIDIsUpdate = Standard_False;
43 //=======================================================================
46 //=======================================================================
47 void SMESHDS_SubMesh::AddNode (const Handle(SMDS_MeshNode)& N)
50 myListOfNodeIDIsUpdate = Standard_False;
53 //=======================================================================
54 //function : RemoveNode
56 //=======================================================================
57 void SMESHDS_SubMesh::RemoveNode (const Handle(SMDS_MeshNode)& N)
60 myListOfNodeIDIsUpdate = Standard_False;
63 //=======================================================================
64 //function : NbElements
66 //=======================================================================
67 Standard_Integer SMESHDS_SubMesh::NbElements()
69 return myElements.Extent();
72 //=======================================================================
73 //function : GetElements
75 //=======================================================================
76 const SMDS_MapOfMeshElement& SMESHDS_SubMesh::GetElements()
80 //=======================================================================
83 //=======================================================================
84 Standard_Integer SMESHDS_SubMesh::NbNodes()
86 return myNodes.Extent();
89 //=======================================================================
92 //=======================================================================
93 const SMDS_MapOfMeshElement& SMESHDS_SubMesh::GetNodes()
98 //=======================================================================
99 //function : GetIDElements
101 //=======================================================================
102 const TColStd_ListOfInteger& SMESHDS_SubMesh::GetIDElements()
104 if (!myListOfEltIDIsUpdate) {
105 myListOfEltID.Clear();
106 for (SMDS_MapIteratorOfExtendedMap it(myElements); it.More(); it.Next()) {
107 myListOfEltID.Append(it.Key()->GetID());
109 myListOfEltIDIsUpdate = Standard_True;
111 return myListOfEltID;
114 //=======================================================================
115 //function : GetIDNodes
117 //=======================================================================
118 const TColStd_ListOfInteger& SMESHDS_SubMesh::GetIDNodes()
120 if (!myListOfNodeIDIsUpdate) {
121 myListOfNodeID.Clear();
122 for (SMDS_MapIteratorOfExtendedMap it(myNodes); it.More(); it.Next()) {
123 myListOfNodeID.Append(it.Key()->GetID());
125 myListOfNodeIDIsUpdate = Standard_True;
127 return myListOfNodeID;