Salome HOME
Merge branch 'V8_4_BR'
[modules/smesh.git] / src / SMDS / SMDS_MeshNode.cxx
index 553d568f056dbda22c9cd08d5ed4248f754632af..554f0fa7115dd75e0e8e021c97be94f90a051694 100644 (file)
@@ -20,7 +20,7 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-//  SMESH SMDS : implementaion of Salome mesh data structure
+//  SMESH SMDS : implementation of Salome mesh data structure
 //
 #ifdef _MSC_VER
 #pragma warning(disable:4786)
@@ -67,7 +67,8 @@ void SMDS_MeshNode::init(int id, int meshId, int shapeId, double x, double y, do
   SMDS_UnstructuredGrid * grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
   vtkPoints *points = grid->GetPoints();
   points->InsertPoint(myVtkID, x, y, z);
-  grid->GetLinks()->ResizeForPoint( myVtkID );
+  if ( grid->HasLinks() )
+    grid->GetLinks()->ResizeForPoint( myVtkID );
 }
 
 SMDS_MeshNode::~SMDS_MeshNode()
@@ -162,9 +163,9 @@ public:
             cellList.push_back(vtkId);
           }
         }
-        myCells = cellList.empty() ? 0 : &cellList[0];
-        myNcells = cellList.size();
       }
+      myCells = cellList.empty() ? 0 : &cellList[0];
+      myNcells = cellList.size();
     }
   }
 
@@ -275,9 +276,12 @@ vtkIdType SMDS_MeshNode::GetVtkType() const
 void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME)
 {
   SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
-  vtkCellLinks *Links = grid->GetLinks();
-  Links->ResizeCellList(myVtkID, 1);
-  Links->AddCellReference(ME->getVtkId(), myVtkID);
+  if ( grid->HasLinks() )
+  {
+    vtkCellLinks *Links = grid->GetLinks();
+    Links->ResizeCellList(myVtkID, 1);
+    Links->AddCellReference(ME->getVtkId(), myVtkID);
+  }
 }
 
 //=======================================================================