Salome HOME
IPAL53870: Dump study script creates an excess sub-mesh
[modules/smesh.git] / src / SMESH_I / SMESH_PythonDump.hxx
index 0646d94d1551f673031d2b716a21912fb25fa94e..7fb82c5644a8a33a55c2c248af32ad69f739ec29 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -6,7 +6,7 @@
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_SERVER_HEADER(SMESH_MeshEditor)
+#include CORBA_SERVER_HEADER(GEOM_Gen)
 #include CORBA_SERVER_HEADER(SALOMEDS)
 
+#include <TCollection_AsciiString.hxx>
+#include <Resource_DataMapOfAsciiStringAsciiString.hxx>
+
 #include <sstream>
 #include <vector>
 #include <set>
+#include <list>
 
 class SMESH_Gen_i;
 class SMESH_MeshEditor_i;
-class TCollection_AsciiString;
-class Resource_DataMapOfAsciiStringAsciiString;
 
 // ===========================================================================================
 /*!
- * \brief Tool converting SMESH engine calls into commands defined in smeshDC.py
+ * \brief Tool converting SMESH engine calls into commands defined in smeshBuilder.py
  *
  * Implementation is in SMESH_2smeshpy.cxx
  */
@@ -50,8 +54,8 @@ class SMESH_2smeshpy
 {
 public:
   /*!
-   * \brief Convert a python script using commands of smesh.py
-   * \param theScript - Input script
+   * \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
@@ -60,8 +64,8 @@ public:
    *        to exclude commands relating to objects removed from study
    * \retval TCollection_AsciiString - Convertion result
    */
-  static TCollection_AsciiString
-  ConvertScript(const TCollection_AsciiString&            theScript,
+  static void
+  ConvertScript(std::list< TCollection_AsciiString >&     theScriptLines,
                 Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod,
                 Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
                 std::set< TCollection_AsciiString >&      theRemovedObjIDs,
@@ -95,6 +99,7 @@ namespace SMESH
   struct SMESH_I_EXPORT TVar
   {
     std::vector< std::string > myVals;
+    bool                       myIsList;
     TVar(CORBA::Double value);
     TVar(CORBA::Long   value);
     TVar(CORBA::Short  value);
@@ -102,6 +107,8 @@ namespace SMESH
     // string used to temporary quote variable names in order
     // not to confuse variables with string arguments
     static char Quote() { return '$'; }
+    // string preceding an entry of object storing the attribute holding var names
+    static const char* ObjPrefix() { return " # OBJ: "; }
   };
 
   // ===========================================================================================
@@ -158,6 +165,9 @@ namespace SMESH
     TPythonDump&
     operator<<(const SMESH::string_array& theArg);
 
+    TPythonDump&
+    operator<<(const SMESH::nodes_array& theArg);
+
     TPythonDump&
     operator<<(SMESH::SMESH_Hypothesis_ptr theArg);
 
@@ -212,9 +222,21 @@ namespace SMESH
     TPythonDump&
     operator<<(const SMESH::ListOfGroups * theList);
 
+    TPythonDump&
+    operator<<(const GEOM::ListOfGO& theList);
+
+    TPythonDump&
+    operator<<(const GEOM::ListOfGBO& theList);
+
     TPythonDump&
     operator<<(const SMESH::ListOfIDSources& theList);
 
+    TPythonDump&
+    operator<<(const SMESH::CoincidentFreeBorders& theCFB);
+
+    TPythonDump&
+    operator<<(const std::string& theArg);
+
     static const char* SMESHGenName() { return "smeshgen"; }
     static const char* MeshEditorName() { return "mesh_editor"; }
     static const char* NotPublishedObjectName();