*/
//================================================================================
-TCollection_AsciiString
-SMESH_2smeshpy::ConvertScript(const TCollection_AsciiString& theScript,
+void
+SMESH_2smeshpy::ConvertScript(TCollection_AsciiString& theScript,
Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod,
Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
std::set< TCollection_AsciiString >& theRemovedObjIDs,
SALOMEDS::Study_ptr& theStudy,
const bool theToKeepAllCommands)
{
+ // process notebook variables
+ {
+ SMESH_NoteBook aNoteBook;
+
+ int from = 1, end = theScript.Length(), to;
+ while ( from < end && ( to = theScript.Location( "\n", from, end )))
+ {
+ if ( to != from )
+ // cut out and store a command
+ aNoteBook.AddCommand( theScript.SubString( from, to - 1 ));
+ from = to + 1;
+ }
+ theScript.Clear();
+
+ aNoteBook.ReplaceVariables();
+
+ theScript = aNoteBook.GetResultScript();
+ }
+
+ // convert to smeshBuilder.py API
+
theGen = new _pyGen( theEntry2AccessorMethod,
theObjectNames,
theRemovedObjIDs,
theToKeepAllCommands );
// split theScript into separate commands
-
- SMESH_NoteBook * aNoteBook = new SMESH_NoteBook();
-
int from = 1, end = theScript.Length(), to;
while ( from < end && ( to = theScript.Location( "\n", from, end )))
{
if ( to != from )
// cut out and store a command
- aNoteBook->AddCommand( theScript.SubString( from, to - 1 ));
- from = to + 1;
- }
-
- aNoteBook->ReplaceVariables();
-
- TCollection_AsciiString aNoteScript = aNoteBook->GetResultScript();
- delete aNoteBook;
- aNoteBook = 0;
-
- // split theScript into separate commands
- from = 1, end = aNoteScript.Length();
- while ( from < end && ( to = aNoteScript.Location( "\n", from, end )))
- {
- if ( to != from )
- // cut out and store a command
- theGen->AddCommand( aNoteScript.SubString( from, to - 1 ));
+ theGen->AddCommand( theScript.SubString( from, to - 1 ));
from = to + 1;
}
+ theScript.Clear();
// finish conversion
theGen->Flush();
} while ( orderChanges );
// concat commands back into a script
- TCollection_AsciiString aScript, aPrevCmd;
+ TCollection_AsciiString aPrevCmd;
set<_pyID> createdObjects;
createdObjects.insert( "smeshBuilder" );
createdObjects.insert( "smesh" );
CheckObjectPresence( *cmd, createdObjects );
if ( !(*cmd)->IsEmpty() ) {
aPrevCmd = (*cmd)->GetString();
- aScript += "\n";
- aScript += aPrevCmd;
+ theScript += "\n";
+ theScript += aPrevCmd;
}
}
}
- aScript += "\n";
+ theScript += "\n";
theGen->Free();
theGen.Nullify();
-
- return aScript;
}
//================================================================================
TPythonDump::
operator<<(SALOMEDS::SObject_ptr aSObject)
{
- if ( !aSObject->_is_nil() ) {\r
- CORBA::String_var entry = aSObject->GetID();\r
- myStream << entry.in();\r
- }\r
- else {\r
- myStream << theNotPublishedObjectName;\r
+ if ( !aSObject->_is_nil() ) {
+ CORBA::String_var entry = aSObject->GetID();
+ myStream << entry.in();
+ }
+ else {
+ myStream << theNotPublishedObjectName;
}
return *this;
}
DumpArray( theList, *this );
return *this;
}
- const char* TPythonDump::NotPublishedObjectName()\r
- {\r
- return theNotPublishedObjectName;\r
+ const char* TPythonDump::NotPublishedObjectName()
+ {
+ return theNotPublishedObjectName;
}
TCollection_AsciiString myLongStringStart( "TPythonDump::LongStringStart" );
Resource_DataMapOfAsciiStringAsciiString anEntry2AccessorMethod;
std::set< TCollection_AsciiString > aRemovedObjIDs;
if ( !getenv("NO_2smeshpy_conversion"))
- aScript = SMESH_2smeshpy::ConvertScript( aScript, anEntry2AccessorMethod,\r
- theObjectNames, aRemovedObjIDs,\r
- theStudy, isHistoricalDump );
+ SMESH_2smeshpy::ConvertScript( aScript, anEntry2AccessorMethod,
+ theObjectNames, aRemovedObjIDs,
+ theStudy, isHistoricalDump );
// Replace characters used instead of quote marks to quote notebook variables
{
aSetNameScriptPart += helper + ", '" + aGUIName + "')";
}
}
- if ( !aSetNameScriptPart.IsEmpty() )\r
- {\r
- anUpdatedScript += "\n\t## set object names";\r
- anUpdatedScript += aSetNameScriptPart;\r
+ if ( !aSetNameScriptPart.IsEmpty() )
+ {
+ anUpdatedScript += "\n\t## set object names";
+ anUpdatedScript += aSetNameScriptPart;
}
// -----------------------------------------------------------------
*/
// ===========================================================================================
-class SMESH_2smeshpy
+namespace SMESH_2smeshpy
{
-public:
/*!
- * \brief Convert a python script using commands of smesh.py\r
- * \param theScript - Input script\r
- * \param theEntry2AccessorMethod - returns method names to access to\r
- * objects wrapped with python class\r
- * \param theObjectNames - names of objects\r
- * \param theRemovedObjIDs - entries of objects whose created commands were removed\r
- * \param theHistoricalDump - true means to keep all commands, false means\r
- * to exclude commands relating to objects removed from study\r
+ * \brief Convert a python script using commands of smeshBuilder.py
+ * \param theScript - the Input script to convert
+ * \param theEntry2AccessorMethod - returns method names to access to
+ * objects wrapped with python class
+ * \param theObjectNames - names of objects
+ * \param theRemovedObjIDs - entries of objects whose created commands were removed
+ * \param theHistoricalDump - true means to keep all commands, false means
+ * to exclude commands relating to objects removed from study
* \retval TCollection_AsciiString - Convertion result
*/
- static TCollection_AsciiString
- ConvertScript(const TCollection_AsciiString& theScript,
+ void
+ ConvertScript(TCollection_AsciiString& theScript,
Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod,
Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
std::set< TCollection_AsciiString >& theRemovedObjIDs,