From: abd Date: Wed, 11 Jun 2008 12:59:23 +0000 (+0000) Subject: Add "global" status for SMESH objects X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=6c74df30939f5e8e84990f93dd777b16e5f3e041;p=modules%2Fsmesh.git Add "global" status for SMESH objects --- diff --git a/src/SMESH_I/SMESH_DumpPython.cxx b/src/SMESH_I/SMESH_DumpPython.cxx index 2d5d08883..342b142d9 100644 --- a/src/SMESH_I/SMESH_DumpPython.cxx +++ b/src/SMESH_I/SMESH_DumpPython.cxx @@ -31,6 +31,7 @@ #include #include +#include #ifdef _DEBUG_ @@ -61,10 +62,10 @@ namespace SMESH SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy(); if(!aStudy->_is_nil()){ - std::string aString = myStream.str(); - TCollection_AsciiString aCollection(Standard_CString(aString.c_str())); - aSMESHGen->AddToPythonScript(aStudy->StudyId(),aCollection); - if(MYDEBUG) MESSAGE(aString); + string aString = myStream.str(); + TCollection_AsciiString aCollection(Standard_CString(aString.c_str())); + aSMESHGen->AddToPythonScript(aStudy->StudyId(),aCollection); + if(MYDEBUG) MESSAGE(aString); } } } @@ -171,11 +172,12 @@ namespace SMESH SMESH_Gen_i* aSMESHGen = SMESH_Gen_i::GetSMESHGen(); SALOMEDS::Study_ptr aStudy = aSMESHGen->GetCurrentStudy(); SALOMEDS::SObject_var aSObject = SMESH_Gen_i::ObjectToSObject(aStudy,theArg); - if(!aSObject->_is_nil()) { + if(!aSObject->_is_nil()) myStream << aSObject->GetID(); - } else if ( !CORBA::is_nil(theArg)) { - if ( aSMESHGen->CanPublishInStudy( theArg )) // not published SMESH object + else if ( !CORBA::is_nil(theArg)) { + if ( aSMESHGen->CanPublishInStudy( theArg )) { // not published SMESH object myStream << "smeshObj_" << size_t(theArg); + } else myStream << NotPublishedObjectName(); } @@ -440,6 +442,34 @@ Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Object_ptr theStudy, aScript += DumpPython_impl(aStudy->StudyId(), aMap, aMapNames, isPublished, isValidScript, aSavedTrace); + //inserting export for Object Names + TCollection_AsciiString def = "def RebuildData(theStudy):\n"; + int pos = aScript.Search( def ); + if ( pos != -1 ) + { + //insert global definition + TCollection_AsciiString glob; + for( Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString It(aMap); + It.More(); It.Next() ) + { + TCollection_AsciiString name = It.Value(); + //check valid name + if ( !name.IsEmpty() && name.Search(' ') == -1 && name.Search( ':' ) == -1 + && !name.IsIntegerValue() && !name.IsEqual("Hypotheses") && !name.IsEqual("Algorithms") ) + { + if ( glob.Length() > 0 ) + glob += ','; + glob += name; + } + } + if ( glob.Length() > 0 ) + { + glob.Prepend( "\tglobal " ); + glob += '\n'; + } + + aScript.Insert( pos + def.Length(), glob ); + } int aLen = aScript.Length(); unsigned char* aBuffer = new unsigned char[aLen+1]; strcpy((char*)aBuffer, aScript.ToCString());