]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
Add "global" status for SMESH objects BR_WPdev_For_4_0
authorabd <abd@opencascade.com>
Wed, 11 Jun 2008 12:59:23 +0000 (12:59 +0000)
committerabd <abd@opencascade.com>
Wed, 11 Jun 2008 12:59:23 +0000 (12:59 +0000)
src/SMESH_I/SMESH_DumpPython.cxx

index 2d5d08883168734146f5a55a9443f1eac45c8865..342b142d93ee31f7f527aab4c27067f269cd500e 100644 (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());