-// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 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
namespace SMESH
{
- GEOM::GEOM_Gen_var GetGEOMGen()
+ GEOM::GEOM_Gen_var GetGEOMGen( GEOM::GEOM_Object_ptr go )
{
- static GEOM::GEOM_Gen_var aGEOMGen;
-
- if(CORBA::is_nil(aGEOMGen)) {
- if ( GeometryGUI::GetGeomGen()->_is_nil() )
- GeometryGUI::InitGeomGen();
- aGEOMGen = GeometryGUI::GetGeomGen();
- }
- return aGEOMGen;
+ GEOM::GEOM_Gen_ptr gen = GEOM::GEOM_Gen::_nil();
+ if ( !CORBA::is_nil( go ))
+ gen = go->GetGen();
+ return gen;
}
GEOM::GEOM_Object_var GetShapeOnMeshOrSubMesh(_PTR(SObject) theMeshOrSubmesh,
GEOM::GEOM_Object_ptr GetSubShape (GEOM::GEOM_Object_ptr theMainShape,
long theID)
{
- GEOM::GEOM_Gen_var geomGen = SMESH::GetGEOMGen();
+ if ( CORBA::is_nil( theMainShape ))
+ return GEOM::GEOM_Object::_nil();
+
+ GEOM::GEOM_Gen_var geomGen = SMESH::GetGEOMGen( theMainShape );
if (geomGen->_is_nil())
return GEOM::GEOM_Object::_nil();
- GEOM::GEOM_IShapesOperations_wrap aShapesOp =
- geomGen->GetIShapesOperations();
+
+ GEOM::GEOM_IShapesOperations_wrap aShapesOp = geomGen->GetIShapesOperations();
if (aShapesOp->_is_nil())
return GEOM::GEOM_Object::_nil();
- GEOM::GEOM_Object_wrap subShape = aShapesOp->GetSubShape (theMainShape,theID);
+
+ GEOM::GEOM_Object_wrap subShape = aShapesOp->GetSubShape( theMainShape, theID );
return subShape._retn();
}