0020918: EDF 1447 SMESH: Mesh common borders

+  void SetPersistentId(int id);
+  int GetPersistentId() const;
+  int MaxSubMeshIndex() const;
This commit is contained in:
eap 2010-11-12 14:33:09 +00:00
parent c80623eeac
commit e708406444
2 changed files with 40 additions and 3 deletions

View File

@ -61,6 +61,7 @@ SMESHDS_Mesh::SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode):
{
myScript = new SMESHDS_Script(theIsEmbeddedMode);
myCurSubMesh = 0;
SetPersistentId(theMeshID);
}
//=======================================================================
@ -69,6 +70,28 @@ bool SMESHDS_Mesh::IsEmbeddedMode()
return myIsEmbeddedMode;
}
//================================================================================
/*!
* \brief Store ID persistent during lifecycle
*/
//================================================================================
void SMESHDS_Mesh::SetPersistentId(int id)
{
if (NbNodes() == 0)
myPersistentID = id;
}
//================================================================================
/*!
* \brief Return ID persistent during lifecycle
*/
//================================================================================
int SMESHDS_Mesh::GetPersistentId() const
{
return myPersistentID;
}
//=======================================================================
//function : ShapeToMesh
//purpose :
@ -1247,6 +1270,17 @@ const TopoDS_Shape& SMESHDS_Mesh::IndexToShape(int ShapeIndex) const
return nullShape;
}
//================================================================================
/*!
* \brief Return max index of sub-mesh
*/
//================================================================================
int SMESHDS_Mesh::MaxSubMeshIndex() const
{
return myShapeIndexToSubMesh.empty() ? 0 : myShapeIndexToSubMesh.rbegin()->first;
}
//=======================================================================
//function : ShapeToIndex
//purpose :

View File

@ -50,7 +50,7 @@
#include <NCollection_DataMap.hxx>
#include <map>
/*
* Using of native haah_map isn't portable and don't work on WIN32 platform.
* Using of native hash_map isn't portable and don't work on WIN32 platform.
* So this functionality implement on new NCollection_DataMap technology
*/
#include "SMESHDS_DataMapOfShape.hxx"
@ -61,6 +61,8 @@ class SMESHDS_EXPORT SMESHDS_Mesh:public SMDS_Mesh{
public:
SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode);
bool IsEmbeddedMode();
void SetPersistentId(int id);
int GetPersistentId() const;
void ShapeToMesh(const TopoDS_Shape & S);
TopoDS_Shape ShapeToMesh() const;
@ -423,6 +425,7 @@ public:
int ShapeToIndex(const TopoDS_Shape & aShape) const;
const TopoDS_Shape& IndexToShape(int ShapeIndex) const;
int MaxShapeIndex() const { return myIndexToShape.Extent(); }
int MaxSubMeshIndex() const;
SMESHDS_SubMesh * NewSubMesh(int Index);
int AddCompoundSubmesh(const TopoDS_Shape& S, TopAbs_ShapeEnum type = TopAbs_SHAPE);
@ -462,7 +465,7 @@ private:
ShapeToHypothesis myShapeToHypothesis;
int myMeshID;
int myMeshID, myPersistentID;
TopoDS_Shape myShape;
typedef std::map<int,SMESHDS_SubMesh*> TShapeIndexToSubMesh;