Salome HOME
ObjectPool and SMDS_Position
[modules/smesh.git] / src / SMDS / SMDS_MeshNode.cxx
index d10ec465d0a10288775711c4e63ef2313289b6ea..55a90c5cc1b21207493f113f392d49e5797f5da0 100644 (file)
 
 using namespace std;
 
+int SMDS_MeshNode::nbNodes =0;
+
 //=======================================================================
 //function : SMDS_MeshNode
 //purpose  : 
 //=======================================================================
+SMDS_MeshNode::SMDS_MeshNode() :
+  SMDS_MeshElement(-1, -1, -1),
+  myPosition(SMDS_SpacePosition::originSpacePosition())
+{
+}
 
 SMDS_MeshNode::SMDS_MeshNode(int id, int meshId, int shapeId, double x, double y, double z):
   SMDS_MeshElement(id, meshId, shapeId),
   myPosition(SMDS_SpacePosition::originSpacePosition())
 {
+  init(id, meshId, shapeId, x, y ,z);
+}
+
+void SMDS_MeshNode::init(int id, int meshId, int shapeId, double x, double y, double z)
+{
+  nbNodes++;
+  myID = id;
+  myMeshId = meshId;
+  myShapeId = shapeId;
   //MESSAGE("Node " << myID << " (" << x << ", " << y << ", " << z << ")");
   SMDS_Mesh* mesh = SMDS_Mesh::_meshList[myMeshId];
   vtkUnstructuredGrid * grid = mesh->getGrid();
@@ -90,6 +106,11 @@ SMDS_MeshNode::SMDS_MeshNode(int id, int meshId, int shapeId, double x, double y
   //setXYZ(x, y, z);
 }
 
+SMDS_MeshNode::~SMDS_MeshNode()
+{
+  nbNodes--;
+}
+
 //=======================================================================
 //function : RemoveInverseElement
 //purpose  : 
@@ -142,14 +163,14 @@ class SMDS_MeshNode_MyInvIterator:public SMDS_ElemIterator
 {
 private:
   SMDS_Mesh* myMesh;
-  int* myCells;
+  vtkIdType* myCells;
   int  myNcells;
   SMDSAbs_ElementType                                 myType;
   int  iter;
 
  public:
   SMDS_MeshNode_MyInvIterator(SMDS_Mesh *mesh,
-                              int* cells,
+                              vtkIdType* cells,
                               int ncells,
                               SMDSAbs_ElementType type):
     myMesh(mesh), myCells(cells), myNcells(ncells), myType(type), iter(0)
@@ -186,7 +207,7 @@ class SMDS_MeshNode_MyIterator:public SMDS_ElemIterator
 {
 private:
   SMDS_Mesh* myMesh;
-  int* myCells;
+  vtkIdType* myCells;
   int  myNcells;
   SMDSAbs_ElementType                                 myType;
   int  iter;
@@ -194,7 +215,7 @@ private:
 
  public:
   SMDS_MeshNode_MyIterator(SMDS_Mesh *mesh,
-                           int* cells,
+                           vtkIdType* cells,
                            int ncells,
                            SMDSAbs_ElementType type):
     myMesh(mesh), myCells(cells), myNcells(ncells), myType(type), iter(0)