Salome HOME
Merge branch 'occ/shaper2smesh'
[modules/smesh.git] / src / SMESH_I / SMESH_PythonDump.cxx
index 6a88325b199fb0b142e6182df1d3ae052402c098..6b90f80f5fe3a82ee9e6ba451b3310d5e3ae8d2b 100644 (file)
@@ -32,6 +32,7 @@
 #include "SMESH_Gen_i.hxx"
 #include "SMESH_MeshEditor_i.hxx"
 
+#include <Basics_Utils.hxx>
 #include <SALOMEDS_wrap.hxx>
 
 #include <LDOMParser.hxx>
@@ -667,7 +668,7 @@ namespace SMESH
   void printException( const char* text )
   {
 #ifdef _DEBUG_
-    cout << "Exception in SMESH_Gen_i::DumpPython(): " << text << endl;
+    std::cout << "Exception in SMESH_Gen_i::DumpPython(): " << text << std::endl;
 #endif
   }
 
@@ -695,10 +696,13 @@ namespace SMESH
 //function : DumpPython
 //purpose  :
 //=======================================================================
-Engines::TMPFile* SMESH_Gen_i::DumpPython (CORBA::Boolean  isPublished,
+Engines::TMPFile* SMESH_Gen_i::DumpPythonCORBA::Boolean  isPublished,
                                            CORBA::Boolean  isMultiFile,
                                            CORBA::Boolean& isValidScript)
 {
+  // localizing
+  Kernel_Utils::Localizer loc;
+
   SALOMEDS::Study_var aStudy = getStudyServant();
   if (CORBA::is_nil(aStudy))
     return new Engines::TMPFile(0);
@@ -954,7 +958,7 @@ namespace {
 
 //================================================================================
 /*!
- * \brief Createa a Dump Python script
+ * \brief Creates a Dump Python script
  *  \param [in,out] theObjectNames - map of an entry to a study and python name
  *  \param [in] theNames -  - map of an entry to a study name
  *  \param [in] isPublished - \c true if dump of object publication in study is needed
@@ -1057,12 +1061,15 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
                                    isHistoricalDump );
 
   bool importGeom = false;
-  GEOM::GEOM_Gen_ptr geom = GetGeomEngine();
+  GEOM::GEOM_Gen_ptr geom[2];
+  for ( int isShaper = 0; isShaper < 2; ++isShaper )
   {
+    geom[ isShaper ] = GetGeomEngine( isShaper );
+    if ( CORBA::is_nil( geom[ isShaper ]))
+      continue;
     // Add names of GEOM objects to theObjectNames to exclude same names of SMESH objects
-    GEOM::string_array_var aGeomNames = geom->GetAllDumpNames();
-    int ign = 0, nbgn = aGeomNames->length();
-    for (; ign < nbgn; ign++) {
+    GEOM::string_array_var aGeomNames = geom[ isShaper ]->GetAllDumpNames();
+    for ( CORBA::ULong ign = 0; ign < aGeomNames->length(); ign++) {
       TCollection_AsciiString aName = aGeomNames[ign].in();
       theObjectNames.Bind(aName, "1");
     }
@@ -1096,7 +1103,11 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
         anUpdatedScript += aLine.SubString( aStart, aSeq->Value(i) - 1 ); // line part before i-th entry
       anEntry = aLine.SubString( aSeq->Value(i), aSeq->Value(i + 1) );
       // is a GEOM object?
-      CORBA::String_var geomName = geom->GetDumpName( anEntry.ToCString() );
+      CORBA::String_var geomName;
+      if ( !CORBA::is_nil( geom[0] ))
+        geomName = geom[0]->GetDumpName( anEntry.ToCString() );
+      if (( !geomName.in() || !geomName.in()[0] ) && !CORBA::is_nil( geom[1] ))
+        geomName = geom[1]->GetDumpName( anEntry.ToCString() );
       if ( !geomName.in() || !geomName.in()[0] ) {
         // is a SMESH object
         if ( theObjectNames.IsBound( anEntry )) {