X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_MeshNode.cxx;h=77858f1735216650d4912cb56d06143ed074a151;hb=20d9e162bd67182cbfa841bbfc9319919f4703e3;hp=3524480cca6644fcc349cd9888dbc19cfa1eea96;hpb=02ac54c6f33c5437c1d2204d704cf3da6fd31a8e;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_MeshNode.cxx b/src/SMDS/SMDS_MeshNode.cxx index 3524480cc..77858f173 100644 --- a/src/SMDS/SMDS_MeshNode.cxx +++ b/src/SMDS/SMDS_MeshNode.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -62,16 +62,12 @@ SMDS_MeshNode::SMDS_MeshNode(int id, int meshId, int shapeId, double x, double y void SMDS_MeshNode::init(int id, int meshId, int shapeId, double x, double y, double z) { SMDS_MeshElement::init(id, meshId, shapeId); - myVtkID = id -1; + myVtkID = id - 1; assert(myVtkID >= 0); - //MESSAGE("Node " << myID << " " << myVtkID << " (" << x << ", " << y << ", " << z << ")"); - SMDS_Mesh* mesh = SMDS_Mesh::_meshList[myMeshId]; - SMDS_UnstructuredGrid * grid = mesh->getGrid(); + SMDS_UnstructuredGrid * grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); vtkPoints *points = grid->GetPoints(); points->InsertPoint(myVtkID, x, y, z); - SMDS_CellLinks *cellLinks = dynamic_cast(grid->GetCellLinks()); - assert(cellLinks); - cellLinks->ResizeForPoint( myVtkID ); + grid->GetLinks()->ResizeForPoint( myVtkID ); } SMDS_MeshNode::~SMDS_MeshNode() @@ -91,7 +87,8 @@ void SMDS_MeshNode::RemoveInverseElement(const SMDS_MeshElement * parent) //MESSAGE("RemoveInverseElement " << myID << " " << parent->GetID()); const SMDS_MeshCell* cell = dynamic_cast(parent); MYASSERT(cell); - SMDS_Mesh::_meshList[myMeshId]->getGrid()->RemoveReferenceToCell(myVtkID, cell->getVtkId()); + if ( SMDS_Mesh::_meshList[myMeshId]->getGrid()->HasLinks() ) + SMDS_Mesh::_meshList[myMeshId]->getGrid()->RemoveReferenceToCell(myVtkID, cell->getVtkId()); } //======================================================================= @@ -182,17 +179,14 @@ public: MESSAGE("SMDS_MeshNode_MyInvIterator problem Null element"); throw SALOME_Exception("SMDS_MeshNode_MyInvIterator problem Null element"); } - //MESSAGE("vtkId " << vtkId << " smdsId " << smdsId << " " << elem->GetType()); iter++; return elem; } }; -SMDS_ElemIteratorPtr SMDS_MeshNode:: -GetInverseElementIterator(SMDSAbs_ElementType type) const +SMDS_ElemIteratorPtr SMDS_MeshNode::GetInverseElementIterator(SMDSAbs_ElementType type) const { - vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); - //MESSAGE("myID " << myID << " ncells " << l.ncells); + vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks()->GetLink(myVtkID); return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyInvIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type)); } @@ -251,7 +245,7 @@ elementsIterator(SMDSAbs_ElementType type) const return SMDS_MeshElement::elementsIterator(SMDSAbs_Node); else { - vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); + vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks()->GetLink(myVtkID); return SMDS_ElemIteratorPtr(new SMDS_MeshNode_MyIterator(SMDS_Mesh::_meshList[myMeshId], l.cells, l.ncells, type)); } } @@ -322,7 +316,7 @@ void SMDS_MeshNode::AddInverseElement(const SMDS_MeshElement* ME) const SMDS_MeshCell *cell = dynamic_cast (ME); assert(cell); SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid(); - vtkCellLinks *Links = grid->GetCellLinks(); + vtkCellLinks *Links = grid->GetLinks(); Links->ResizeCellList(myVtkID, 1); Links->AddCellReference(cell->getVtkId(), myVtkID); } @@ -338,7 +332,7 @@ void SMDS_MeshNode::ClearInverseElements() bool SMDS_MeshNode::emptyInverseElements() { - vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); + vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks()->GetLink(myVtkID); return (l.ncells == 0); } @@ -350,7 +344,7 @@ bool SMDS_MeshNode::emptyInverseElements() int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const { - vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks()->GetLink(myVtkID); + vtkCellLinks::Link l = SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks()->GetLink(myVtkID); if ( type == SMDSAbs_All ) return l.ncells;