-// Copyright (C) 2007-2013 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
// 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
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
-#ifdef WNT
+#ifdef WIN32
#pragma warning( disable:4786 )
#endif
//purpose :
//=======================================================================
-Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Object_ptr theStudy,
- CORBA::Boolean isPublished,
- CORBA::Boolean isMultiFile,
+Engines::TMPFile* GEOM_Gen_i::DumpPython(CORBA::Boolean isPublished,
+ CORBA::Boolean isMultiFile,
CORBA::Boolean& isValidScript)
{
- SALOMEDS::Study_var aStudy = SALOMEDS::Study::_narrow(theStudy);
+ SALOMEDS::Study_var aStudy = getStudyServant();
if(CORBA::is_nil(aStudy))
return new Engines::TMPFile(0);
CORBA::String_var IOR = aValue->GetIOR();
if(strlen(IOR.in()) > 0) {
CORBA::Object_var obj = _orb->string_to_object(IOR);
- GEOM::GEOM_Object_var GO = GEOM::GEOM_Object::_narrow(obj);
+ GEOM::GEOM_BaseObject_var GO = GEOM::GEOM_BaseObject::_narrow(obj);
if(!CORBA::is_nil(GO)) {
CORBA::String_var aName = aValue->GetName();
CORBA::String_var anEntry = GO->GetEntry();
anAttrStr = SALOMEDS::AttributeString::_narrow(anAttr);
SALOMEDS::ListOfListOfStrings_var aSections = aStudy->ParseVariables(anAttrStr->Value());
ObjectStates* aStates = new ObjectStates();
- for(int i = 0; i < aSections->length(); i++) {
+ for( CORBA::ULong i = 0; i < aSections->length(); i++) {
TState aState;
SALOMEDS::ListOfStrings aListOfVars = aSections[i];
- for(int j = 0; j < aListOfVars.length(); j++) {
+ for( CORBA::ULong j = 0; j < aListOfVars.length(); j++) {
bool isVar = aStudy->IsVariable(aListOfVars[j].in());
TVariable aVar = TVariable( (char*)aListOfVars[j].in(), isVar );
aState.push_back(aVar);
}
TCollection_AsciiString aScript;
- aScript += _impl->DumpPython(aStudy->StudyId(), objectDataVec, aVariableMap, isPublished, isMultiFile, isValidScript);
+ aScript += _impl->DumpPython(objectDataVec, aVariableMap, isPublished, isMultiFile, isValidScript);
if (isPublished)
{
CORBA::String_var anEntry = CORBA::string_dup(newEntry.c_str());
if( ap->IsSet(anEntry, 6) ) { //6 Means string array, see SALOMEDS_Attributes.idl AttributeParameter interface
+ if ( GetDumpName((*it)._studyEntry.ToCString()) == NULL )
+ continue;
std::string idCommand = std::string("geompy.getObjectID(") + GetDumpName((*it)._studyEntry.ToCString()) + std::string(")");
SALOMEDS::StringSeq_var aSeq= ap->GetStrArray(anEntry);
int oldLenght = aSeq->length();
}
TCollection_AsciiString aDirScript, aNodeName, aNodeEntry, aFatherName, aFatherEntry;
- aDirScript += "\n\t### Folders and it's content\n";
Resource_DataMapOfAsciiStringAsciiString aNameToEntry;
SALOMEDS::UseCaseBuilder_var useCaseBuilder = aStudy->GetUseCaseBuilder();
SALOMEDS::UseCaseIterator_var Itr = useCaseBuilder->GetUseCaseIterator(aSO);
} else if ( !aFatherName.IsEmpty() && !aFatherEntry.IsEmpty() ) {
// the node is Geom object under folder
aDirScript += "geompy.PutToFolder(";
+ if ( GetDumpName( aNodeSO->GetID() ) == NULL )
+ continue;
aDirScript += GetDumpName( aNodeSO->GetID() );
aDirScript += ", ";
aDirScript += aFatherName;
aDirScript += ")\n";
}
}
- aScript += aDirScript;
-
+ if ( !aDirScript.IsEmpty() )
+ {
+ aScript += "\n\t### Folders and it's content\n";
+ aScript += aDirScript;
+ }
//Output the script that sets up the visual parameters.
char* script = aStudy->GetDefaultScript(ComponentDataType(), "\t");
if (script && strlen(script) > 0) {
{
const char* name = _impl->GetDumpName( theStudyEntry );
if ( name && strlen( name ) > 0 )
- return strdup( name );
+ return CORBA::string_dup( name );
return NULL;
}