-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 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
//=============================================================================
GEOM_Object_i::GEOM_Object_i (PortableServer::POA_ptr thePOA, GEOM::GEOM_Gen_ptr theEngine,
- Handle(GEOM_Object) theImpl) :
+ Handle(::GEOM_Object) theImpl) :
SALOME::GenericObj_i( thePOA ),
GEOM_BaseObject_i( thePOA, theEngine, theImpl ),
_impl( theImpl )
GEOM_Object_i::~GEOM_Object_i()
{
- MESSAGE("GEOM_Object_i::~GEOM_Object_i");
+ //MESSAGE("GEOM_Object_i::~GEOM_Object_i");
}
//=============================================================================
{
CORBA::String_var name("");
- Handle(GEOM_Function) aMainFun = _impl->GetLastFunction();
+ Handle(::GEOM_Function) aMainFun = _impl->GetLastFunction();
if ( aMainFun.IsNull() ) return name._retn();
const TDataStd_ListOfExtendedString& aListEntries = aMainFun->GetSubShapeReferences();
for (; anIt.More(); anIt.Next())
{
TCollection_AsciiString anEntry = anIt.Value();
- Handle(GEOM_BaseObject) anObj =
- GEOM_Engine::GetEngine()->GetObject( _impl->GetDocID(), anEntry.ToCString(), false );
+ Handle(::GEOM_BaseObject) anObj =
+ GEOM_Engine::GetEngine()->GetObject( anEntry.ToCString(), false );
if ( anObj.IsNull() ) continue;
TCollection_AsciiString aSubName = anObj->GetName();
if ( aSubName.IsEmpty() ) continue;
- Handle(GEOM_Function) aFun = anObj->GetLastFunction();
+ Handle(::GEOM_Function) aFun = anObj->GetLastFunction();
if ( aFun.IsNull() ) continue;
GEOM_ISubShape ISS( aFun );
GEOM::ListOfLong_var anIndices = new GEOM::ListOfLong;
if(!_impl->IsMainShape()) {
- Handle(GEOM_Function) aFunction = _impl->GetLastFunction(); //Get Sub-shape function (always the first (and last) one)
+ Handle(::GEOM_Function) aFunction = _impl->GetLastFunction(); //Get Sub-shape function (always the first (and last) one)
if(aFunction.IsNull()) return anIndices._retn();
GEOM_ISubShape ISS(aFunction);
Handle(TColStd_HArray1OfInteger) anArray = ISS.GetIndices();
{
GEOM::GEOM_Object_var obj;
if(!_impl->IsMainShape()) {
- Handle(GEOM_Function) aFunction = _impl->GetFunction(1); //Get Sub-shape function (always the first (and last) one)
+ Handle(::GEOM_Function) aFunction = _impl->GetFunction(1); //Get Sub-shape function (always the first (and last) one)
if(aFunction.IsNull()) return obj._retn();
GEOM_ISubShape ISS(aFunction);
TCollection_AsciiString anEntry;
TDF_Tool::Entry(aLabel, anEntry);
return GEOM::GEOM_Object::_narrow
- ( _engine->GetObject(_impl->GetDocID(), anEntry.ToCString()) );
+ ( _engine->GetObject( anEntry.ToCString()) );
}
return obj._retn();
return !_impl->GetValue().IsNull() && _impl->GetType() != GEOM_MARKER;
}
-bool GEOM_Object_i::IsSame(GEOM::GEOM_Object_ptr other)
+bool GEOM_Object_i::IsSame(GEOM::GEOM_BaseObject_ptr other)
{
- TopoDS_Shape thisShape = _impl->GetValue();
- TopoDS_Shape otherShape;
- if ( !CORBA::is_nil( other ) ) {
- Handle(GEOM_Object) otherObject = Handle(GEOM_Object)::DownCast
- ( GEOM_Engine::GetEngine()->GetObject( other->GetStudyID(), other->GetEntry(), false ));
- if ( !otherObject.IsNull() )
- otherShape = otherObject->GetValue();
+ bool result = false;
+
+ GEOM::GEOM_Object_var shapePtr = GEOM::GEOM_Object::_narrow( other );
+ if ( !CORBA::is_nil( shapePtr ) ) {
+ CORBA::String_var entry = shapePtr->GetEntry();
+ Handle(::GEOM_Object) otherObject = Handle(::GEOM_Object)::DownCast
+ ( GEOM_Engine::GetEngine()->GetObject( entry, false ));
+ if ( !otherObject.IsNull() ) {
+ TopoDS_Shape thisShape = _impl->GetValue();
+ TopoDS_Shape otherShape = otherObject->GetValue();
+ result = !thisShape.IsNull() && !otherShape.IsNull() && thisShape.IsSame( otherShape );
+ }
}
- return thisShape.IsSame( otherShape );
+ return result;
}