X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_GEOMGenUtils.cxx;h=8c2fa06ef3f0f5044388135b5b6f2375c5cc3110;hb=a13c8355673962b58e7cdc96ad5b5c8f4a16b54f;hp=c0daa7005752fa172fcdf34e86eabd647ad63b96;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx index c0daa7005..8c2fa06ef 100644 --- a/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_GEOMGenUtils.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 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 @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -108,6 +108,40 @@ namespace SMESH return GEOM::GEOM_Object::_nil(); } + SMESHGUI_EXPORT char* GetGeomName( _PTR(SObject) smeshSO ) + { + if (!smeshSO) + return 0; + + _PTR(Study) aStudy = SMESH::GetActiveStudyDocument(); + if (!aStudy) + return 0; + + _PTR(ChildIterator) anIter (aStudy->NewChildIterator( smeshSO )); + for ( ; anIter->More(); anIter->Next()) { + _PTR(SObject) aSObject = anIter->Value(); + _PTR(SObject) aRefSOClient; + GEOM::GEOM_Object_var aMeshShape; + + if (aSObject->ReferencedObject(aRefSOClient)) { + SALOMEDS_SObject* aRefSO = _CAST(SObject,aRefSOClient); + aMeshShape = GEOM::GEOM_Object::_narrow(aRefSO->GetObject()); + aSObject = aRefSOClient; + } + else { + SALOMEDS_SObject* aSO = _CAST(SObject,aSObject); + aMeshShape = GEOM::GEOM_Object::_narrow(aSO->GetObject()); + } + + if (!aMeshShape->_is_nil()) + { + std::string name = aSObject->GetName(); + return CORBA::string_dup( name.c_str() ); + } + } + return 0; + } + GEOM::GEOM_Object_ptr GetSubShape (GEOM::GEOM_Object_ptr theMainShape, long theID) {