Add "global" status for SMESH objects

This commit is contained in:
abd 2008-06-11 12:59:23 +00:00
parent 49c4f67f30
commit 6c74df3093

View File

@ -31,6 +31,7 @@
#include <TColStd_HSequenceOfInteger.hxx>
#include <TCollection_AsciiString.hxx>
#include <Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString.hxx>
#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());