]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
This version of SMESH module is compatible with OpenFOAM module BR_FOAM_dev
authorabd <abd@opencascade.com>
Wed, 6 Aug 2008 10:38:19 +0000 (10:38 +0000)
committerabd <abd@opencascade.com>
Wed, 6 Aug 2008 10:38:19 +0000 (10:38 +0000)
src/SMESH_I/SMESH_DumpPython.cxx

index e1079ebc7c43c54594303b4afef3a6e8923d8e9b..3adbe0db0df66fb819f9e5e1f1e21dd5c711d386 100644 (file)
@@ -31,6 +31,7 @@
 
 #include <TColStd_HSequenceOfInteger.hxx>
 #include <TCollection_AsciiString.hxx>
+#include <Resource_DataMapIteratorOfDataMapOfAsciiStringAsciiString.hxx>
 
 
 #ifdef _DEBUG_
@@ -440,6 +441,35 @@ 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());