Salome HOME
Update of CheckDone
[modules/smesh.git] / src / SMESHDS / SMESHDS_Mesh.cxx
index b0c90a803f20a25321fdb21cdb75922789ab5466..adc79ad7574307ad6c55385ac447ab43eece83c3 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -56,14 +56,14 @@ class SMESHDS_Mesh::SubMeshHolder : public SMESHDS_TSubMeshHolder< const SMESHDS
 
 //=======================================================================
 //function : Create
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMESHDS_Mesh::SMESHDS_Mesh(int theMeshID, bool theIsEmbeddedMode):
-  myMeshID(theMeshID),
   mySubMeshHolder( new SubMeshHolder ),
   myIsEmbeddedMode(theIsEmbeddedMode)
 {
   myScript = new SMESHDS_Script(theIsEmbeddedMode);
+
   SetPersistentId(theMeshID);
 }
 
@@ -99,7 +99,7 @@ int SMESHDS_Mesh::GetPersistentId() const
 
 //=======================================================================
 //function : ShapeToMesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::ShapeToMesh(const TopoDS_Shape & S)
 {
@@ -141,7 +141,7 @@ void SMESHDS_Mesh::ShapeToMesh(const TopoDS_Shape & S)
 
 //=======================================================================
 //function : AddHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
@@ -165,7 +165,7 @@ bool SMESHDS_Mesh::AddHypothesis(const TopoDS_Shape & SS,
 
 //=======================================================================
 //function : RemoveHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape &       S,
@@ -186,15 +186,17 @@ bool SMESHDS_Mesh::RemoveHypothesis(const TopoDS_Shape &       S,
 
 //=======================================================================
 //function : AddNode
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshNode* SMESHDS_Mesh::AddNode(double x, double y, double z){
+SMDS_MeshNode* SMESHDS_Mesh::AddNode(double x, double y, double z)
+{
   SMDS_MeshNode* node = SMDS_Mesh::AddNode(x, y, z);
   if(node!=NULL) myScript->AddNode(node->GetID(), x, y, z);
   return node;
 }
 
-SMDS_MeshNode* SMESHDS_Mesh::AddNodeWithID(double x, double y, double z, int ID){
+SMDS_MeshNode* SMESHDS_Mesh::AddNodeWithID(double x, double y, double z, smIdType ID)
+{
   SMDS_MeshNode* node = SMDS_Mesh::AddNodeWithID(x,y,z,ID);
   if(node!=NULL) myScript->AddNode(node->GetID(), x, y, z);
   return node;
@@ -202,7 +204,7 @@ SMDS_MeshNode* SMESHDS_Mesh::AddNodeWithID(double x, double y, double z, int ID)
 
 //=======================================================================
 //function : MoveNode
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 void SMESHDS_Mesh::MoveNode(const SMDS_MeshNode *n, double x, double y, double z)
@@ -223,8 +225,8 @@ bool SMESHDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
   if ( ! SMDS_Mesh::ChangeElementNodes( elem, nodes, nbnodes ))
     return false;
 
-  std::vector<int> IDs( nbnodes );
-  for ( int i = 0; i < nbnodes; i++ )
+  std::vector<smIdType> IDs( nbnodes );
+  for ( smIdType i = 0; i < nbnodes; i++ )
     IDs [ i ] = nodes[ i ]->GetID();
   myScript->ChangeElementNodes( elem->GetID(), &IDs[0], nbnodes);
 
@@ -233,11 +235,10 @@ bool SMESHDS_Mesh::ChangeElementNodes(const SMDS_MeshElement * elem,
 
 //=======================================================================
 //function : ChangePolygonNodes
-//purpose  : 
+//purpose  :
 //=======================================================================
-bool SMESHDS_Mesh::ChangePolygonNodes
-(const SMDS_MeshElement *     elem,
- std::vector<const SMDS_MeshNode*> nodes)
+bool SMESHDS_Mesh::ChangePolygonNodes (const SMDS_MeshElement *           elem,
+                                       std::vector<const SMDS_MeshNode*>& nodes)
 {
   ASSERT(nodes.size() > 3);
 
@@ -255,14 +256,14 @@ bool SMESHDS_Mesh
 {
   ASSERT(nodes.size() > 3);
 
+  size_t i, len = nodes.size();
+  std::vector<smIdType> nodes_ids( len );
+  for ( i = 0; i < len; i++ )
+    nodes_ids[i] = nodes[i]->GetID();
+
   if ( !SMDS_Mesh::ChangePolyhedronNodes( elem, nodes, quantities ))
     return false;
 
-  int i, len = nodes.size();
-  std::vector<int> nodes_ids (len);
-  for (i = 0; i < len; i++) {
-    nodes_ids[i] = nodes[i]->GetID();
-  }
   myScript->ChangePolyhedronNodes(elem->GetID(), nodes_ids, quantities);
 
   return true;
@@ -273,7 +274,7 @@ bool SMESHDS_Mesh
 //purpose  :
 //=======================================================================
 
-void SMESHDS_Mesh::Renumber (const bool isNodes, const int startID, const int deltaID)
+void SMESHDS_Mesh::Renumber (const bool /*isNodes*/, const smIdType /*startID*/, const smIdType /*deltaID*/)
 {
   // TODO not possible yet to have node numbers not starting to O and continuous.
   if ( !this->IsCompacted() )
@@ -286,7 +287,7 @@ void SMESHDS_Mesh::Renumber (const bool isNodes, const int startID, const int de
 //function : Add0DElement
 //purpose  :
 //=======================================================================
-SMDS_Mesh0DElement* SMESHDS_Mesh::Add0DElementWithID(int nodeID, int ID)
+SMDS_Mesh0DElement* SMESHDS_Mesh::Add0DElementWithID(smIdType nodeID, smIdType ID)
 {
   SMDS_Mesh0DElement* anElem = SMDS_Mesh::Add0DElementWithID(nodeID, ID);
   if (anElem) myScript->Add0DElement(ID, nodeID);
@@ -294,7 +295,7 @@ SMDS_Mesh0DElement* SMESHDS_Mesh::Add0DElementWithID(int nodeID, int ID)
 }
 
 SMDS_Mesh0DElement* SMESHDS_Mesh::Add0DElementWithID
-(const SMDS_MeshNode * node, int ID)
+(const SMDS_MeshNode * node, smIdType ID)
 {
   return Add0DElementWithID(node->GetID(), ID);
 }
@@ -308,10 +309,10 @@ SMDS_Mesh0DElement* SMESHDS_Mesh::Add0DElement(const SMDS_MeshNode * node)
 
 //=======================================================================
 //function :AddBallWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 
-SMDS_BallElement* SMESHDS_Mesh::AddBallWithID(int node, double diameter, int ID)
+SMDS_BallElement* SMESHDS_Mesh::AddBallWithID(smIdType node, double diameter, smIdType ID)
 {
   SMDS_BallElement* anElem = SMDS_Mesh::AddBallWithID(node,diameter,ID);
   if (anElem) myScript->AddBall(anElem->GetID(), node, diameter);
@@ -320,7 +321,7 @@ SMDS_BallElement* SMESHDS_Mesh::AddBallWithID(int node, double diameter, int ID)
 
 SMDS_BallElement* SMESHDS_Mesh::AddBallWithID(const SMDS_MeshNode * node,
                                               double                diameter,
-                                              int                   ID)
+                                              smIdType                   ID)
 {
   SMDS_BallElement* anElem = SMDS_Mesh::AddBallWithID(node,diameter,ID);
   if (anElem) myScript->AddBall(anElem->GetID(), node->GetID(), diameter);
@@ -337,10 +338,10 @@ SMDS_BallElement* SMESHDS_Mesh::AddBall (const SMDS_MeshNode * node,
 
 //=======================================================================
 //function :AddEdgeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 
-SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(int n1, int n2, int ID)
+SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType ID)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdgeWithID(n1,n2,ID);
   if(anElem) myScript->AddEdge(ID,n1,n2);
@@ -348,8 +349,8 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(int n1, int n2, int ID)
 }
 
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-                                           const SMDS_MeshNode * n2, 
-                                           int ID)
+                                           const SMDS_MeshNode * n2,
+                                           smIdType ID)
 {
   return AddEdgeWithID(n1->GetID(),
                        n2->GetID(),
@@ -360,17 +361,17 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdge(n1,n2);
-  if(anElem) myScript->AddEdge(anElem->GetID(), 
-                               n1->GetID(), 
+  if(anElem) myScript->AddEdge(anElem->GetID(),
+                               n1->GetID(),
                                n2->GetID());
   return anElem;
 }
 
 //=======================================================================
 //function :AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1, n2, n3, ID);
   if(anElem) myScript->AddFace(ID,n1,n2,n3);
@@ -379,8 +380,8 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int ID)
 
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
-                                           const SMDS_MeshNode * n3, 
-                                           int ID)
+                                           const SMDS_MeshNode * n3,
+                                           smIdType ID)
 {
   return AddFaceWithID(n1->GetID(),
                        n2->GetID(),
@@ -393,8 +394,8 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace( const SMDS_MeshNode * n1,
                                       const SMDS_MeshNode * n3)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1, n2, n3);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
-                               n1->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
+                               n1->GetID(),
                                n2->GetID(),
                                n3->GetID());
   return anElem;
@@ -402,9 +403,9 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace( const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function :AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4, int ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1, n2, n3, n4, ID);
   if(anElem) myScript->AddFace(ID, n1, n2, n3, n4);
@@ -414,8 +415,8 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4, int I
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
                                            const SMDS_MeshNode * n3,
-                                           const SMDS_MeshNode * n4, 
-                                           int ID)
+                                           const SMDS_MeshNode * n4,
+                                           smIdType ID)
 {
   return AddFaceWithID(n1->GetID(),
                        n2->GetID(),
@@ -430,9 +431,9 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n4)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1, n2, n3, n4);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
-                               n1->GetID(), 
-                               n2->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
+                               n1->GetID(),
+                               n2->GetID(),
                                n3->GetID(),
                                n4->GetID());
   return anElem;
@@ -440,9 +441,9 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, ID);
   if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4);
@@ -452,11 +453,11 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, i
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
-                                               const SMDS_MeshNode * n4, 
-                                               int ID)
+                                               const SMDS_MeshNode * n4,
+                                               smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
                          n4->GetID(),
                          ID);
@@ -468,9 +469,9 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n4)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
                                  n4->GetID());
   return anElem;
@@ -478,9 +479,9 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, ID);
   if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5);
@@ -491,13 +492,13 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
-                                               int ID)
+                                               const SMDS_MeshNode * n5,
+                                               smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
-                         n4->GetID(), 
+                         n4->GetID(),
                          n5->GetID(),
                          ID);
 }
@@ -509,20 +510,20 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n5)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
-                                 n4->GetID(), 
+                                 n4->GetID(),
                                  n5->GetID());
   return anElem;
 }
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType n6, smIdType ID)
 {
   SMDS_MeshVolume *anElem= SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, ID);
   if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5, n6);
@@ -534,14 +535,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
                                                const SMDS_MeshNode * n5,
-                                               const SMDS_MeshNode * n6, 
-                                               int ID)
+                                               const SMDS_MeshNode * n6,
+                                               smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
-                         n4->GetID(), 
-                         n5->GetID(), 
+                         n4->GetID(),
+                         n5->GetID(),
                          n6->GetID(),
                          ID);
 }
@@ -554,21 +555,21 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n6)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
-                                 n4->GetID(), 
-                                 n5->GetID(), 
+                                 n4->GetID(),
+                                 n5->GetID(),
                                  n6->GetID());
   return anElem;
 }
 
 //=======================================================================
 //function :AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5, smIdType n6, smIdType n7, smIdType n8, smIdType ID)
 {
   SMDS_MeshVolume *anElem= SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, ID);
   if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5, n6, n7, n8);
@@ -582,16 +583,16 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n5,
                                                const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n7,
-                                               const SMDS_MeshNode * n8, 
-                                               int ID)
+                                               const SMDS_MeshNode * n8,
+                                               smIdType ID)
 {
-  return AddVolumeWithID(n1->GetID(), 
-                         n2->GetID(), 
+  return AddVolumeWithID(n1->GetID(),
+                         n2->GetID(),
                          n3->GetID(),
-                         n4->GetID(), 
-                         n5->GetID(), 
-                         n6->GetID(), 
-                         n7->GetID(), 
+                         n4->GetID(),
+                         n5->GetID(),
+                         n6->GetID(),
+                         n7->GetID(),
                          n8->GetID(),
                          ID);
 }
@@ -606,14 +607,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n8)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6, n7, n8);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
-                                 n1->GetID(), 
-                                 n2->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
+                                 n1->GetID(),
+                                 n2->GetID(),
                                  n3->GetID(),
-                                 n4->GetID(), 
-                                 n5->GetID(), 
-                                 n6->GetID(), 
-                                 n7->GetID(), 
+                                 n4->GetID(),
+                                 n5->GetID(),
+                                 n6->GetID(),
+                                 n7->GetID(),
                                  n8->GetID());
   return anElem;
 }
@@ -623,10 +624,10 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 //function :AddVolume
 //purpose  : add hexagonal prism
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                               int n5, int n6, int n7, int n8,
-                                               int n9, int n10, int n11, int n12,
-                                               int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
+                                               smIdType n5, smIdType n6, smIdType n7, smIdType n8,
+                                               smIdType n9, smIdType n10, smIdType n11, smIdType n12,
+                                               smIdType ID)
 {
   SMDS_MeshVolume *anElem= SMDS_Mesh::AddVolumeWithID(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, ID);
   if(anElem) myScript->AddVolume(ID, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12);
@@ -640,14 +641,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n5,
                                                const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n7,
-                                               const SMDS_MeshNode * n8, 
-                                               const SMDS_MeshNode * n9, 
-                                               const SMDS_MeshNode * n10, 
-                                               const SMDS_MeshNode * n11, 
-                                               const SMDS_MeshNode * n12, 
-                                               int ID)
-{
-  return AddVolumeWithID(n1->GetID(), 
+                                               const SMDS_MeshNode * n8,
+                                               const SMDS_MeshNode * n9,
+                                               const SMDS_MeshNode * n10,
+                                               const SMDS_MeshNode * n11,
+                                               const SMDS_MeshNode * n12,
+                                               smIdType ID)
+{
+  return AddVolumeWithID(n1->GetID(),
                          n2->GetID(),
                          n3->GetID(),
                          n4->GetID(),
@@ -669,14 +670,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
                                          const SMDS_MeshNode * n5,
                                          const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n7,
-                                         const SMDS_MeshNode * n8, 
-                                         const SMDS_MeshNode * n9, 
-                                         const SMDS_MeshNode * n10, 
-                                         const SMDS_MeshNode * n11, 
+                                         const SMDS_MeshNode * n8,
+                                         const SMDS_MeshNode * n9,
+                                         const SMDS_MeshNode * n10,
+                                         const SMDS_MeshNode * n11,
                                          const SMDS_MeshNode * n12)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
                                  n1->GetID(),
                                  n2->GetID(),
                                  n3->GetID(),
@@ -695,10 +696,10 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddPolygonalFace
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFaceWithID (const std::vector<int>& nodes_ids,
-                                                     const int               ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFaceWithID (const std::vector<smIdType>& nodes_ids,
+                                                     const smIdType               ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddPolygonalFaceWithID(nodes_ids, ID);
   if (anElem) {
@@ -709,12 +710,12 @@ SMDS_MeshFace* SMESHDS_Mesh::AddPolygonalFaceWithID (const std::vector<int>& nod
 
 SMDS_MeshFace*
 SMESHDS_Mesh::AddPolygonalFaceWithID (const std::vector<const SMDS_MeshNode*>& nodes,
-                                      const int                                ID)
+                                      const smIdType                                ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddPolygonalFaceWithID(nodes, ID);
   if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
+    smIdType i, len = nodes.size();
+    std::vector<smIdType> nodes_ids (len);
     for (i = 0; i < len; i++) {
       nodes_ids[i] = nodes[i]->GetID();
     }
@@ -728,8 +729,8 @@ SMESHDS_Mesh::AddPolygonalFace (const std::vector<const SMDS_MeshNode*>& nodes)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddPolygonalFace(nodes);
   if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
+    smIdType i, len = nodes.size();
+    std::vector<smIdType> nodes_ids (len);
     for (i = 0; i < len; i++) {
       nodes_ids[i] = nodes[i]->GetID();
     }
@@ -741,10 +742,10 @@ SMESHDS_Mesh::AddPolygonalFace (const std::vector<const SMDS_MeshNode*>& nodes)
 
 //=======================================================================
 //function : AddQuadPolygonalFace
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddQuadPolygonalFaceWithID (const std::vector<int>& nodes_ids,
-                                                         const int               ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddQuadPolygonalFaceWithID (const std::vector<smIdType>& nodes_ids,
+                                                         const smIdType               ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddQuadPolygonalFaceWithID(nodes_ids, ID);
   if (anElem) {
@@ -755,12 +756,12 @@ SMDS_MeshFace* SMESHDS_Mesh::AddQuadPolygonalFaceWithID (const std::vector<int>&
 
 SMDS_MeshFace*
 SMESHDS_Mesh::AddQuadPolygonalFaceWithID (const std::vector<const SMDS_MeshNode*>& nodes,
-                                          const int                                ID)
+                                          const smIdType                                ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddQuadPolygonalFaceWithID(nodes, ID);
   if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
+    smIdType i, len = nodes.size();
+    std::vector<smIdType> nodes_ids (len);
     for (i = 0; i < len; i++) {
       nodes_ids[i] = nodes[i]->GetID();
     }
@@ -774,8 +775,8 @@ SMESHDS_Mesh::AddQuadPolygonalFace (const std::vector<const SMDS_MeshNode*>& nod
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddQuadPolygonalFace(nodes);
   if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
+    smIdType i, len = nodes.size();
+    std::vector<smIdType> nodes_ids (len);
     for (i = 0; i < len; i++) {
       nodes_ids[i] = nodes[i]->GetID();
     }
@@ -787,11 +788,11 @@ SMESHDS_Mesh::AddQuadPolygonalFace (const std::vector<const SMDS_MeshNode*>& nod
 
 //=======================================================================
 //function : AddPolyhedralVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<int>& nodes_ids,
-                                                          const std::vector<int>& quantities,
-                                                          const int               ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<smIdType>& nodes_ids,
+                                                          const std::vector<int>&      quantities,
+                                                          const smIdType               ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes_ids, quantities, ID);
   if (anElem) {
@@ -803,12 +804,12 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID (const std::vector<int>
 SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolumeWithID
 (const std::vector<const SMDS_MeshNode*>& nodes,
  const std::vector<int>&                  quantities,
- const int                                ID)
+ const smIdType                           ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolumeWithID(nodes, quantities, ID);
   if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
+    smIdType i, len = nodes.size();
+    std::vector<smIdType> nodes_ids (len);
     for (i = 0; i < len; i++) {
       nodes_ids[i] = nodes[i]->GetID();
     }
@@ -823,8 +824,8 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddPolyhedralVolume(nodes, quantities);
   if (anElem) {
-    int i, len = nodes.size();
-    std::vector<int> nodes_ids (len);
+    smIdType i, len = nodes.size();
+    std::vector<smIdType> nodes_ids (len);
     for (i = 0; i < len; i++) {
       nodes_ids[i] = nodes[i]->GetID();
     }
@@ -835,10 +836,10 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddPolyhedralVolume
 
 //=======================================================================
 //function : removeFromContainers
-//purpose  : 
+//purpose  :
 //=======================================================================
 
-static void removeFromContainers (SMESHDS_Mesh*                         theMesh,
+static void removeFromContainers (SMESHDS_Mesh*                         /*theMesh*/,
                                   std::set<SMESHDS_GroupBase*>&         theGroups,
                                   std::vector<const SMDS_MeshElement*>& theElems)
 {
@@ -904,8 +905,8 @@ void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
   }
   if ( SMESHDS_SubMesh * sm = MeshElements( n->getshapeId() ))
     sm->RemoveNode( n );
-    
-  
+
+
   std::vector<const SMDS_MeshElement *> removedElems;
   std::vector<const SMDS_MeshElement *> removedNodes;
 
@@ -917,7 +918,7 @@ void SMESHDS_Mesh::RemoveNode(const SMDS_MeshNode * n)
 
 //=======================================================================
 //function : RemoveFreeNode
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::RemoveFreeNode(const SMDS_MeshNode * n,
                                   SMESHDS_SubMesh *     subMesh,
@@ -970,20 +971,20 @@ void SMESHDS_Mesh::RemoveElement(const SMDS_MeshElement * elt)
     RemoveFreeElement( elt, subMesh, true );
     return;
   }
+
   myScript->RemoveElement(elt->GetID());
 
   std::vector<const SMDS_MeshElement *> removedElems;
   std::vector<const SMDS_MeshElement *> removedNodes;
 
   SMDS_Mesh::RemoveElement(elt, removedElems, removedNodes );
-  
+
   removeFromContainers( this, myGroups, removedElems );
 }
 
 //=======================================================================
 //function : RemoveFreeElement
-//purpose  : 
+//purpose  :
 //========================================================================
 void SMESHDS_Mesh::RemoveFreeElement(const SMDS_MeshElement * elt,
                                      SMESHDS_SubMesh *        subMesh,
@@ -1150,7 +1151,7 @@ void SMESHDS_Mesh::SetNodeOnVertex(const SMDS_MeshNode * aNode,
 
 //=======================================================================
 //function : UnSetNodeOnShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::UnSetNodeOnShape(const SMDS_MeshNode* aNode)
 {
@@ -1160,6 +1161,18 @@ void SMESHDS_Mesh::UnSetNodeOnShape(const SMDS_MeshNode* aNode)
       sm->RemoveNode(aNode);
 }
 
+//=======================================================================
+//function : UnSetElementOnShape
+//purpose  :
+//=======================================================================
+void SMESHDS_Mesh::UnSetElementOnShape(const SMDS_MeshElement * anElement)
+{
+  int shapeId = anElement->getshapeId();
+  if (shapeId > 0)
+    if ( SMESHDS_SubMesh* sm = MeshElements( shapeId ))
+      sm->RemoveElement(anElement);
+}
+
 //=======================================================================
 //function : SetMeshElementOnShape
 //purpose  :
@@ -1172,7 +1185,7 @@ void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement * anElement,
 
 //=======================================================================
 //function : UnSetMeshElementOnShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::UnSetMeshElementOnShape(const SMDS_MeshElement * elem,
                                            const TopoDS_Shape &     S)
@@ -1183,7 +1196,7 @@ void SMESHDS_Mesh::UnSetMeshElementOnShape(const SMDS_MeshElement * elem,
 
 //=======================================================================
 //function : ShapeToMesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 TopoDS_Shape SMESHDS_Mesh::ShapeToMesh() const
 {
@@ -1228,7 +1241,7 @@ SMESHDS_SubMesh * SMESHDS_Mesh::MeshElements(const int Index) const
 
 //=======================================================================
 //function : SubMeshIndices
-//purpose  : 
+//purpose  :
 //=======================================================================
 std::list<int> SMESHDS_Mesh::SubMeshIndices() const
 {
@@ -1242,7 +1255,7 @@ std::list<int> SMESHDS_Mesh::SubMeshIndices() const
 
 //=======================================================================
 //function : SubMeshes
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 SMESHDS_SubMeshIteratorPtr SMESHDS_Mesh::SubMeshes() const
@@ -1252,7 +1265,7 @@ SMESHDS_SubMeshIteratorPtr SMESHDS_Mesh::SubMeshes() const
 
 //=======================================================================
 //function : GetHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 const std::list<const SMESHDS_Hypothesis*>&
@@ -1282,7 +1295,7 @@ bool SMESHDS_Mesh::IsUsedHypothesis(const SMESHDS_Hypothesis * H) const
 
 //=======================================================================
 //function : GetScript
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMESHDS_Script* SMESHDS_Mesh::GetScript()
 {
@@ -1291,7 +1304,7 @@ SMESHDS_Script* SMESHDS_Mesh::GetScript()
 
 //=======================================================================
 //function : ClearScript
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::ClearScript()
 {
@@ -1300,7 +1313,7 @@ void SMESHDS_Mesh::ClearScript()
 
 //=======================================================================
 //function : HasMeshElements
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::HasMeshElements(const TopoDS_Shape & S) const
 {
@@ -1310,7 +1323,7 @@ bool SMESHDS_Mesh::HasMeshElements(const TopoDS_Shape & S) const
 
 //=======================================================================
 //function : HasHypothesis
-//purpose  : 
+//purpose  :
 //=======================================================================
 bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
 {
@@ -1318,8 +1331,8 @@ bool SMESHDS_Mesh::HasHypothesis(const TopoDS_Shape & S)
 }
 
 //=======================================================================
-//function : NewSubMesh 
-//purpose  : 
+//function : NewSubMesh
+//purpose  :
 //=======================================================================
 SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
 {
@@ -1334,7 +1347,7 @@ SMESHDS_SubMesh * SMESHDS_Mesh::NewSubMesh(int Index)
 
 //=======================================================================
 //function : AddCompoundSubmesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 
 int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
@@ -1369,7 +1382,7 @@ int SMESHDS_Mesh::AddCompoundSubmesh(const TopoDS_Shape& S,
 
 //=======================================================================
 //function : IndexToShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 const TopoDS_Shape& SMESHDS_Mesh::IndexToShape(int ShapeIndex) const
 {
@@ -1398,7 +1411,7 @@ int SMESHDS_Mesh::MaxSubMeshIndex() const
 
 //=======================================================================
 //function : ShapeToIndex
-//purpose  : 
+//purpose  :
 //=======================================================================
 int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 {
@@ -1408,7 +1421,7 @@ int SMESHDS_Mesh::ShapeToIndex(const TopoDS_Shape & S) const
 
 //=======================================================================
 //function : SetNodeOnVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::SetNodeInVolume(const SMDS_MeshNode* aNode, int Index)
 {
@@ -1456,7 +1469,7 @@ void SMESHDS_Mesh::SetNodeOnVertex(const SMDS_MeshNode* aNode, int Index)
 
 //=======================================================================
 //function : SetMeshElementOnShape
-//purpose  : 
+//purpose  :
 //=======================================================================
 void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
                                          int                     Index)
@@ -1466,7 +1479,7 @@ void SMESHDS_Mesh::SetMeshElementOnShape(const SMDS_MeshElement* anElement,
 
 //=======================================================================
 //function : ~SMESHDS_Mesh
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMESHDS_Mesh::~SMESHDS_Mesh()
 {
@@ -1487,9 +1500,9 @@ SMESHDS_Mesh::~SMESHDS_Mesh()
 
 //=======================================================================
 //function : AddEdgeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(int n1, int n2, int n12, int ID) 
+SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(smIdType n1, smIdType n2, smIdType n12, smIdType ID)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdgeWithID(n1,n2,n12,ID);
   if(anElem) myScript->AddEdge(ID,n1,n2,n12);
@@ -1498,15 +1511,15 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(int n1, int n2, int n12, int ID)
 
 //=======================================================================
 //function : AddEdge
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode* n1,
                                      const SMDS_MeshNode* n2,
                                      const SMDS_MeshNode* n12)
 {
   SMDS_MeshEdge* anElem = SMDS_Mesh::AddEdge(n1,n2,n12);
-  if(anElem) myScript->AddEdge(anElem->GetID(), 
-                               n1->GetID(), 
+  if(anElem) myScript->AddEdge(anElem->GetID(),
+                               n1->GetID(),
                                n2->GetID(),
                                n12->GetID());
   return anElem;
@@ -1514,12 +1527,12 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdge(const SMDS_MeshNode* n1,
 
 //=======================================================================
 //function : AddEdgeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
-                                           const SMDS_MeshNode * n2, 
-                                           const SMDS_MeshNode * n12, 
-                                           int ID)
+                                           const SMDS_MeshNode * n2,
+                                           const SMDS_MeshNode * n12,
+                                           smIdType ID)
 {
   return AddEdgeWithID(n1->GetID(),
                        n2->GetID(),
@@ -1530,7 +1543,7 @@ SMDS_MeshEdge* SMESHDS_Mesh::AddEdgeWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1540,7 +1553,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n31)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n12,n23,n31);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(),
                                n12->GetID(), n23->GetID(), n31->GetID());
   return anElem;
@@ -1548,10 +1561,10 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
-                                           int n12,int n23,int n31, int ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3,
+                                           smIdType n12,smIdType n23,smIdType n31, smIdType ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1,n2,n3,n12,n23,n31,ID);
   if(anElem) myScript->AddFace(ID,n1,n2,n3,n12,n23,n31);
@@ -1560,15 +1573,15 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
                                            const SMDS_MeshNode * n3,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n31, 
-                                           int ID)
+                                           const SMDS_MeshNode * n31,
+                                           smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(),
                        n12->GetID(), n23->GetID(), n31->GetID(),
@@ -1577,7 +1590,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1588,7 +1601,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * nCenter)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n12,n23,n31,nCenter);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(),
                                n12->GetID(), n23->GetID(), n31->GetID(),
                                nCenter->GetID());
@@ -1597,10 +1610,10 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
-                                           int n12,int n23,int n31, int nCenter, int ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3,
+                                           smIdType n12,smIdType n23,smIdType n31, smIdType nCenter, smIdType ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1,n2,n3,n12,n23,n31,nCenter,ID);
   if(anElem) myScript->AddFace(ID,n1,n2,n3,n12,n23,n31,nCenter);
@@ -1609,16 +1622,16 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
                                            const SMDS_MeshNode * n3,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n31, 
-                                           const SMDS_MeshNode * nCenter, 
-                                           int ID)
+                                           const SMDS_MeshNode * n31,
+                                           const SMDS_MeshNode * nCenter,
+                                           smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(),
                        n12->GetID(), n23->GetID(), n31->GetID(),
@@ -1628,7 +1641,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1640,7 +1653,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n41)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n4,n12,n23,n34,n41);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                                n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID());
   return anElem;
@@ -1648,10 +1661,10 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
-                                           int n12,int n23,int n34,int n41, int ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
+                                           smIdType n12,smIdType n23,smIdType n34,smIdType n41, smIdType ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1,n2,n3,n4,n12,n23,n34,n41,ID);
   if(anElem) myScript->AddFace(ID,n1,n2,n3,n4,n12,n23,n34,n41);
@@ -1660,7 +1673,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
@@ -1668,9 +1681,9 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n4,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n34, 
-                                           const SMDS_MeshNode * n41, 
-                                           int ID)
+                                           const SMDS_MeshNode * n34,
+                                           const SMDS_MeshNode * n41,
+                                           smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                        n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
@@ -1680,7 +1693,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFace
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n2,
@@ -1689,11 +1702,11 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
                                      const SMDS_MeshNode * n12,
                                      const SMDS_MeshNode * n23,
                                      const SMDS_MeshNode * n34,
-                                     const SMDS_MeshNode * n41, 
+                                     const SMDS_MeshNode * n41,
                                      const SMDS_MeshNode * nCenter)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFace(n1,n2,n3,n4,n12,n23,n34,n41,nCenter);
-  if(anElem) myScript->AddFace(anElem->GetID(), 
+  if(anElem) myScript->AddFace(anElem->GetID(),
                                n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                                n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
                                nCenter->GetID());
@@ -1702,11 +1715,11 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFace(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
-                                           int n12,int n23,int n34,int n41,
-                                           int nCenter, int ID)
+SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
+                                           smIdType n12,smIdType n23,smIdType n34,smIdType n41,
+                                           smIdType nCenter, smIdType ID)
 {
   SMDS_MeshFace *anElem = SMDS_Mesh::AddFaceWithID(n1,n2,n3,n4,n12,n23,n34,n41,nCenter,ID);
   if(anElem) myScript->AddFace(ID,n1,n2,n3,n4,n12,n23,n34,n41,nCenter);
@@ -1715,7 +1728,7 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(int n1, int n2, int n3, int n4,
 
 //=======================================================================
 //function : AddFaceWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n2,
@@ -1723,10 +1736,10 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
                                            const SMDS_MeshNode * n4,
                                            const SMDS_MeshNode * n12,
                                            const SMDS_MeshNode * n23,
-                                           const SMDS_MeshNode * n34, 
-                                           const SMDS_MeshNode * n41, 
-                                           const SMDS_MeshNode * nCenter, 
-                                           int ID)
+                                           const SMDS_MeshNode * n34,
+                                           const SMDS_MeshNode * n41,
+                                           const SMDS_MeshNode * nCenter,
+                                           smIdType ID)
 {
   return AddFaceWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                        n12->GetID(), n23->GetID(), n34->GetID(), n41->GetID(),
@@ -1736,21 +1749,21 @@ SMDS_MeshFace* SMESHDS_Mesh::AddFaceWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n31,
-                                         const SMDS_MeshNode * n14, 
+                                         const SMDS_MeshNode * n14,
                                          const SMDS_MeshNode * n24,
                                          const SMDS_MeshNode * n34)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolume(n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
-  if(anElem) myScript->AddVolume(anElem->GetID(), 
+  if(anElem) myScript->AddVolume(anElem->GetID(),
                                  n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                                  n12->GetID(), n23->GetID(), n31->GetID(),
                                  n14->GetID(), n24->GetID(), n34->GetID());
@@ -1759,18 +1772,18 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolumeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                               int n12,int n23,int n31,
-                                               int n14,int n24,int n34, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
+                                               smIdType n12,smIdType n23,smIdType n31,
+                                               smIdType n14,smIdType n24,smIdType n34, smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n12,n23,
                                                        n31,n14,n24,n34,ID);
   if(anElem) myScript->AddVolume(ID,n1,n2,n3,n4,n12,n23,n31,n14,n24,n34);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order tetrahedron of 10 nodes
@@ -1782,10 +1795,10 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
                                                const SMDS_MeshNode * n31,
-                                               const SMDS_MeshNode * n14, 
+                                               const SMDS_MeshNode * n14,
                                                const SMDS_MeshNode * n24,
                                                const SMDS_MeshNode * n34,
-                                               int ID)
+                                               smIdType ID)
 {
   return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                          n12->GetID(), n23->GetID(), n31->GetID(),
@@ -1795,18 +1808,18 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolume
-//purpose  : 
+//purpose  :
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
+                                         const SMDS_MeshNode * n5,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n34,
                                          const SMDS_MeshNode * n41,
-                                         const SMDS_MeshNode * n15, 
+                                         const SMDS_MeshNode * n15,
                                          const SMDS_MeshNode * n25,
                                          const SMDS_MeshNode * n35,
                                          const SMDS_MeshNode * n45)
@@ -1823,11 +1836,11 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolumeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, int n5,
-                                               int n12,int n23,int n34,int n41,
-                                               int n15,int n25,int n35,int n45, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4, smIdType n5,
+                                               smIdType n12,smIdType n23,smIdType n34,smIdType n41,
+                                               smIdType n15,smIdType n25,smIdType n35,smIdType n45, smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,
                                                        n12,n23,n34,n41,
@@ -1836,7 +1849,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4, i
                                  n15,n25,n35,n45);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order pyramid of 13 nodes
@@ -1845,16 +1858,16 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
+                                               const SMDS_MeshNode * n5,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
                                                const SMDS_MeshNode * n34,
                                                const SMDS_MeshNode * n41,
-                                               const SMDS_MeshNode * n15, 
+                                               const SMDS_MeshNode * n15,
                                                const SMDS_MeshNode * n25,
                                                const SMDS_MeshNode * n35,
                                                const SMDS_MeshNode * n45,
-                                               int ID)
+                                               smIdType ID)
 {
   return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
                          n4->GetID(), n5->GetID(),
@@ -1869,17 +1882,17 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //purpose  : 2nd order pentahedron (prism) with 15 nodes
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
-                                         const SMDS_MeshNode * n6, 
+                                         const SMDS_MeshNode * n5,
+                                         const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
-                                         const SMDS_MeshNode * n31, 
+                                         const SMDS_MeshNode * n31,
                                          const SMDS_MeshNode * n45,
                                          const SMDS_MeshNode * n56,
-                                         const SMDS_MeshNode * n64, 
+                                         const SMDS_MeshNode * n64,
                                          const SMDS_MeshNode * n14,
                                          const SMDS_MeshNode * n25,
                                          const SMDS_MeshNode * n36)
@@ -1899,11 +1912,11 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 //function : AddVolumeWithID
 //purpose  : 2nd order pentahedron (prism) with 15 nodes
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
-                                               int n4, int n5, int n6,
-                                               int n12,int n23,int n31,
-                                               int n45,int n56,int n64,
-                                               int n14,int n25,int n36, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3,
+                                               smIdType n4, smIdType n5, smIdType n6,
+                                               smIdType n12,smIdType n23,smIdType n31,
+                                               smIdType n45,smIdType n56,smIdType n64,
+                                               smIdType n14,smIdType n25,smIdType n36, smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,
                                                        n12,n23,n31,
@@ -1933,7 +1946,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n14,
                                                const SMDS_MeshNode * n25,
                                                const SMDS_MeshNode * n36,
-                                               int ID)
+                                               smIdType ID)
 {
   return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
                          n4->GetID(), n5->GetID(), n6->GetID(),
@@ -1982,13 +1995,13 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 //function : AddVolumeWithID
 //purpose  : 2nd order pentahedron (prism) with 18 nodes
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
-                                               int n4, int n5, int n6,
-                                               int n12,int n23,int n31,
-                                               int n45,int n56,int n64,
-                                               int n14,int n25,int n36,
-                                               int n1245, int n2356, int n1346,
-                                               int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3,
+                                               smIdType n4, smIdType n5, smIdType n6,
+                                               smIdType n12,smIdType n23,smIdType n31,
+                                               smIdType n45,smIdType n56,smIdType n64,
+                                               smIdType n14,smIdType n25,smIdType n36,
+                                               smIdType n1245, smIdType n2356, smIdType n1346,
+                                               smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,
                                                        n12,n23,n31,
@@ -1999,7 +2012,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3,
                                  n45,n56,n64,n14,n25,n36, n1245, n2356, n1346);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order Pentahedron with 18 nodes
@@ -2008,21 +2021,21 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
-                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n5,
+                                               const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
-                                               const SMDS_MeshNode * n31, 
+                                               const SMDS_MeshNode * n31,
                                                const SMDS_MeshNode * n45,
                                                const SMDS_MeshNode * n56,
-                                               const SMDS_MeshNode * n64, 
+                                               const SMDS_MeshNode * n64,
                                                const SMDS_MeshNode * n14,
                                                const SMDS_MeshNode * n25,
                                                const SMDS_MeshNode * n36,
                                                const SMDS_MeshNode * n1245,
                                                const SMDS_MeshNode * n2356,
                                                const SMDS_MeshNode * n1346,
-                                               int ID)
+                                               smIdType ID)
 {
   return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(),
                          n4->GetID(), n5->GetID(), n6->GetID(),
@@ -2038,21 +2051,21 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //purpose  : add quadratic hexahedron
 //=======================================================================
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
-                                         const SMDS_MeshNode * n6, 
+                                         const SMDS_MeshNode * n5,
+                                         const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n7,
-                                         const SMDS_MeshNode * n8, 
+                                         const SMDS_MeshNode * n8,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n34,
-                                         const SMDS_MeshNode * n41, 
+                                         const SMDS_MeshNode * n41,
                                          const SMDS_MeshNode * n56,
                                          const SMDS_MeshNode * n67,
                                          const SMDS_MeshNode * n78,
-                                         const SMDS_MeshNode * n85, 
+                                         const SMDS_MeshNode * n85,
                                          const SMDS_MeshNode * n15,
                                          const SMDS_MeshNode * n26,
                                          const SMDS_MeshNode * n37,
@@ -2074,13 +2087,13 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
 
 //=======================================================================
 //function : AddVolumeWithID
-//purpose  : 
+//purpose  :
 //=======================================================================
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                               int n5, int n6, int n7, int n8,
-                                               int n12,int n23,int n34,int n41,
-                                               int n56,int n67,int n78,int n85,
-                                               int n15,int n26,int n37,int n48, int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
+                                               smIdType n5, smIdType n6, smIdType n7, smIdType n8,
+                                               smIdType n12,smIdType n23,smIdType n34,smIdType n41,
+                                               smIdType n56,smIdType n67,smIdType n78,smIdType n85,
+                                               smIdType n15,smIdType n26,smIdType n37,smIdType n48, smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,n7,n8,
                                                        n12,n23,n34,n41,
@@ -2090,7 +2103,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
                                  n56,n67,n78,n85,n15,n26,n37,n48);
   return anElem;
 }
-        
+
 //=======================================================================
 //function : AddVolumeWithID
 //purpose  : 2d order Hexahedrons with 20 nodes
@@ -2099,23 +2112,23 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n2,
                                                const SMDS_MeshNode * n3,
                                                const SMDS_MeshNode * n4,
-                                               const SMDS_MeshNode * n5, 
-                                               const SMDS_MeshNode * n6, 
+                                               const SMDS_MeshNode * n5,
+                                               const SMDS_MeshNode * n6,
                                                const SMDS_MeshNode * n7,
-                                               const SMDS_MeshNode * n8, 
+                                               const SMDS_MeshNode * n8,
                                                const SMDS_MeshNode * n12,
                                                const SMDS_MeshNode * n23,
                                                const SMDS_MeshNode * n34,
-                                               const SMDS_MeshNode * n41, 
+                                               const SMDS_MeshNode * n41,
                                                const SMDS_MeshNode * n56,
                                                const SMDS_MeshNode * n67,
                                                const SMDS_MeshNode * n78,
-                                               const SMDS_MeshNode * n85, 
+                                               const SMDS_MeshNode * n85,
                                                const SMDS_MeshNode * n15,
                                                const SMDS_MeshNode * n26,
                                                const SMDS_MeshNode * n37,
                                                const SMDS_MeshNode * n48,
-                                               int ID)
+                                               smIdType ID)
 {
   return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                          n5->GetID(), n6->GetID(), n7->GetID(), n8->GetID(),
@@ -2131,25 +2144,25 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
 //=======================================================================
 
 SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
-                                         const SMDS_MeshNode * n2, 
+                                         const SMDS_MeshNode * n2,
                                          const SMDS_MeshNode * n3,
                                          const SMDS_MeshNode * n4,
-                                         const SMDS_MeshNode * n5, 
-                                         const SMDS_MeshNode * n6, 
+                                         const SMDS_MeshNode * n5,
+                                         const SMDS_MeshNode * n6,
                                          const SMDS_MeshNode * n7,
-                                         const SMDS_MeshNode * n8, 
+                                         const SMDS_MeshNode * n8,
                                          const SMDS_MeshNode * n12,
                                          const SMDS_MeshNode * n23,
                                          const SMDS_MeshNode * n34,
-                                         const SMDS_MeshNode * n41, 
+                                         const SMDS_MeshNode * n41,
                                          const SMDS_MeshNode * n56,
                                          const SMDS_MeshNode * n67,
                                          const SMDS_MeshNode * n78,
-                                         const SMDS_MeshNode * n85, 
+                                         const SMDS_MeshNode * n85,
                                          const SMDS_MeshNode * n15,
                                          const SMDS_MeshNode * n26,
                                          const SMDS_MeshNode * n37,
-                                         const SMDS_MeshNode * n48, 
+                                         const SMDS_MeshNode * n48,
                                          const SMDS_MeshNode * n1234,
                                          const SMDS_MeshNode * n1256,
                                          const SMDS_MeshNode * n2367,
@@ -2175,14 +2188,14 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolume(const SMDS_MeshNode * n1,
   return anElem;
 }
 
-SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(int n1, int n2, int n3, int n4,
-                                               int n5, int n6, int n7, int n8,
-                                               int n12,int n23,int n34,int n41,
-                                               int n56,int n67,int n78,int n85,
-                                               int n15,int n26,int n37,int n48,
-                                               int n1234,int n1256,int n2367,int n3478,
-                                               int n1458,int n5678,int nCenter,
-                                               int ID)
+SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(smIdType n1, smIdType n2, smIdType n3, smIdType n4,
+                                               smIdType n5, smIdType n6, smIdType n7, smIdType n8,
+                                               smIdType n12,smIdType n23,smIdType n34,smIdType n41,
+                                               smIdType n56,smIdType n67,smIdType n78,smIdType n85,
+                                               smIdType n15,smIdType n26,smIdType n37,smIdType n48,
+                                               smIdType n1234,smIdType n1256,smIdType n2367,smIdType n3478,
+                                               smIdType n1458,smIdType n5678,smIdType nCenter,
+                                               smIdType ID)
 {
   SMDS_MeshVolume *anElem = SMDS_Mesh::AddVolumeWithID(n1,n2,n3,n4,n5,n6,n7,n8,
                                                        n12,n23,n34,n41,
@@ -2225,7 +2238,7 @@ SMDS_MeshVolume* SMESHDS_Mesh::AddVolumeWithID(const SMDS_MeshNode * n1,
                                                const SMDS_MeshNode * n1458,
                                                const SMDS_MeshNode * n5678,
                                                const SMDS_MeshNode * nCenter,
-                                               int ID)
+                                               smIdType ID)
 {
   return AddVolumeWithID(n1->GetID(), n2->GetID(), n3->GetID(), n4->GetID(),
                          n5->GetID(), n6->GetID(), n7->GetID(), n8->GetID(),
@@ -2262,7 +2275,7 @@ void SMESHDS_Mesh::BuildDownWardConnectivity(bool withEdges)
  * @param localClonedNodeIds map old node id to new node id.
  * @return ok if success.
  */
-bool SMESHDS_Mesh::ModifyCellNodes(int vtkVolId, std::map<int,int> localClonedNodeIds)
+bool SMESHDS_Mesh::ModifyCellNodes(vtkIdType vtkVolId, std::map<int,int> localClonedNodeIds)
 {
   myGrid->ModifyCellNodes(vtkVolId, localClonedNodeIds);
   return true;