-// 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
GEOM_BaseObject_i::GEOM_BaseObject_i (PortableServer::POA_ptr thePOA,
GEOM::GEOM_Gen_ptr theEngine,
- Handle(GEOM_BaseObject) theImpl)
+ Handle(::GEOM_BaseObject) theImpl)
: SALOME::GenericObj_i( thePOA ), _engine(theEngine), _impl(theImpl)
{
}
GEOM_BaseObject_i::~GEOM_BaseObject_i()
{
- MESSAGE("GEOM_BaseObject_i::~GEOM_BaseObject_i");
+ //MESSAGE("GEOM_BaseObject_i::~GEOM_BaseObject_i");
GEOM_Engine::GetEngine()->RemoveObject(_impl);
}
TCollection_AsciiString anEntry;
for (int i = 1; i<=aLength; i++) {
- Handle(GEOM_BaseObject) anObj = Handle(GEOM_BaseObject)::DownCast(aSeq->Value(i));
+ Handle(::GEOM_BaseObject) anObj = Handle(::GEOM_BaseObject)::DownCast(aSeq->Value(i));
if (anObj.IsNull()) continue;
TDF_Tool::Entry(anObj->GetEntry(), anEntry);
GEOM::GEOM_BaseObject_var obj = _engine->GetObject(anObj->GetDocID(), (char*) anEntry.ToCString());
TCollection_AsciiString anEntry;
for (int i = 1; i<=aLength; i++) {
- Handle(GEOM_BaseObject) anObj = Handle(GEOM_BaseObject)::DownCast(aSeq->Value(i));
+ Handle(::GEOM_BaseObject) anObj = Handle(::GEOM_BaseObject)::DownCast(aSeq->Value(i));
if (anObj.IsNull()) continue;
GEOM::GEOM_BaseObject_var obj = _engine->GetObject(anObj->GetDocID(),
anObj->GetEntryString().ToCString());
*/
//================================================================================
-GEOM::CreationInformation* GEOM_BaseObject_i::GetCreationInformation()
+GEOM::CreationInformationSeq* GEOM_BaseObject_i::GetCreationInformation()
{
- GEOM::CreationInformation_var info = new GEOM::CreationInformation;
+ GEOM::CreationInformationSeq_var info = new GEOM::CreationInformationSeq();
- Handle(GEOM_BaseDriver) driver =
- Handle(GEOM_BaseDriver)::DownCast( _impl->GetCreationDriver() );
- if ( !driver.IsNull() )
+ int nbFun = _impl->GetNbFunctions();
+ info->length( nbFun );
+ int nbI = 0;
+ for ( int i = 1; i <= nbFun; ++i )
{
- std::vector<GEOM_Param> params;
- std::string operationName;
- try
+ Handle(::GEOM_BaseDriver) driver =
+ Handle(::GEOM_BaseDriver)::DownCast( _impl->GetCreationDriver( i ));
+ if ( !driver.IsNull() )
{
- OCC_CATCH_SIGNALS;
- if ( driver->GetCreationInformation( operationName, params ))
+ std::vector<GEOM_Param> params;
+ std::string operationName;
+ try
{
- info->operationName = operationName.c_str();
- info->params.length( params.size() );
- for ( size_t i = 0; i < params.size(); ++i )
+ OCC_CATCH_SIGNALS;
+ if ( driver->GetCreationInformation( operationName, params ))
{
- info->params[i].name = params[i].name.c_str();
- info->params[i].value = params[i].value.c_str();
+ info[nbI].operationName = operationName.c_str();
+ info[nbI].params.length( params.size() );
+ for ( size_t i = 0; i < params.size(); ++i )
+ {
+ info[nbI].params[i].name = params[i].name.c_str();
+ info[nbI].params[i].value = params[i].value.c_str();
+ }
+ nbI++;
}
- }
#ifdef _DEBUG_
- if ( operationName.empty() )
- {
- cout << endl << endl << endl << "Warning: " << endl << "Dear developer!!!" << endl
- << " Consider implementing "
- << typeid(*(driver.operator->())).name() << "::GetCreationInformation() " << endl
- << " for the case of operation which has created '" << GetName() << "' object" << endl
- << "PLEEEEEEEASE" << endl
- << "\tPLEEEEEEEASE" << endl
- << "\t\tPLEEEEEEEASE" << endl
- << "\t\t\tPLEEEEEEEASE" << endl
- << "\t\t\t\tPLEEEEEEEASE" << endl;
- }
+ if ( operationName.empty() )
+ {
+ cout << endl << endl << endl << "Warning: " << endl << "Dear developer!!!" << endl
+ << " Consider implementing "
+ << typeid(*(driver.operator->())).name() << "::GetCreationInformation() " << endl
+ << " for the case of operation which has created '" << GetName() << "' object" << endl
+ << "PLEEEEEEEASE" << endl
+ << "\tPLEEEEEEEASE" << endl
+ << "\t\tPLEEEEEEEASE" << endl
+ << "\t\t\tPLEEEEEEEASE" << endl
+ << "\t\t\t\tPLEEEEEEEASE" << endl;
+ }
#endif
- }
- catch(...)
- {
+ }
+ catch(...)
+ {
#ifdef _DEBUG_
- cout << "Ecxeption in GEOM_BaseObject_i::GetCreationInformation()" << endl;
+ cout << "Ecxeption in GEOM_BaseObject_i::GetCreationInformation()" << endl;
#endif
+ }
}
}
+ info->length( nbI );
+
return info._retn();
}