X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOBJECT%2FSMESH_Object.cxx;h=038a2a2bc092de49aaee6083a690cb055abb6d14;hb=45b7e5c3e156b516962f86d15df69b12d8060363;hp=71711f81aaae0caf663eb07aea1fbeff8899e998;hpb=b0a908c0d20341651771d0249fb10882f54b2aad;p=modules%2Fsmesh.git diff --git a/src/OBJECT/SMESH_Object.cxx b/src/OBJECT/SMESH_Object.cxx index 71711f81a..038a2a2bc 100644 --- a/src/OBJECT/SMESH_Object.cxx +++ b/src/OBJECT/SMESH_Object.cxx @@ -151,48 +151,56 @@ SMESH_VisualObjDef::~SMESH_VisualObjDef() //================================================================================= vtkIdType SMESH_VisualObjDef::GetNodeObjId( int theVTKID ) { - if (myLocalGrid) - { - TMapOfIds::const_iterator i = myVTK2SMDSNodes.find(theVTKID); - return i == myVTK2SMDSNodes.end() ? -1 : i->second; - } - return this->GetMesh()->FindNodeVtk(theVTKID)->GetID(); + if (myLocalGrid) + { + TMapOfIds::const_iterator i = myVTK2SMDSNodes.find(theVTKID); + return i == myVTK2SMDSNodes.end() ? -1 : i->second; + } + const SMDS_MeshNode* aNode = 0; + if( this->GetMesh() ) + aNode = this->GetMesh()->FindNodeVtk( theVTKID ); + + return aNode ? aNode->GetID() : -1; } vtkIdType SMESH_VisualObjDef::GetNodeVTKId( int theObjID ) { - if (myLocalGrid) - { - TMapOfIds::const_iterator i = mySMDS2VTKNodes.find(theObjID); + if (myLocalGrid) + { + TMapOfIds::const_iterator i = mySMDS2VTKNodes.find(theObjID); return i == mySMDS2VTKNodes.end() ? -1 : i->second; - } + } - const SMDS_MeshNode* aNode = 0; - if( this->GetMesh() ) { - aNode = this->GetMesh()->FindNode(theObjID); - } - return aNode ? aNode->getVtkId() : -1; + const SMDS_MeshNode* aNode = 0; + if( this->GetMesh() ) { + aNode = this->GetMesh()->FindNode(theObjID); + } + return aNode ? aNode->getVtkId() : -1; } vtkIdType SMESH_VisualObjDef::GetElemObjId( int theVTKID ) { - if (myLocalGrid) - { - TMapOfIds::const_iterator i = myVTK2SMDSElems.find(theVTKID); - return i == myVTK2SMDSElems.end() ? -1 : i->second; - } + if (myLocalGrid) + { + TMapOfIds::const_iterator i = myVTK2SMDSElems.find(theVTKID); + return i == myVTK2SMDSElems.end() ? -1 : i->second; + } return this->GetMesh()->fromVtkToSmds(theVTKID); } vtkIdType SMESH_VisualObjDef::GetElemVTKId( int theObjID ) { - if (myLocalGrid) - { - TMapOfIds::const_iterator i = mySMDS2VTKElems.find(theObjID); - return i == mySMDS2VTKElems.end() ? -1 : i->second; - } - return this->GetMesh()->FindElement(theObjID)->getVtkId(); - //return this->GetMesh()->fromSmdsToVtk(theObjID); + if (myLocalGrid) + { + TMapOfIds::const_iterator i = mySMDS2VTKElems.find(theObjID); + return i == mySMDS2VTKElems.end() ? -1 : i->second; + } + + const SMDS_MeshElement* e = 0; + if ( this->GetMesh() ) + e = this->GetMesh()->FindElement(theObjID); + + return e ? e->getVtkId() : -1; } //=================================================================================