]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESH_I/SMESH_PythonDump.hxx
Salome HOME
21680: EDF 2288 SMESH: creation of 0D elements from other elements
[modules/smesh.git] / src / SMESH_I / SMESH_PythonDump.hxx
index f30f841ad3459efe702e5e1308e301b550d01fef..29c5443132a4a8c4d8d596032a9fbd99d258ba51 100644 (file)
@@ -1,23 +1,24 @@
-//  Copyright (C) 2007-2010  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2012  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
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-//  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.
+// 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.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 #ifndef _SMESH_PYTHONDUMP_HXX_
 #define _SMESH_PYTHONDUMP_HXX_
@@ -29,6 +30,7 @@
 #include CORBA_SERVER_HEADER(SALOMEDS)
 
 #include <sstream>
+#include <vector>
 
 class SMESH_Gen_i;
 class SMESH_MeshEditor_i;
@@ -37,7 +39,7 @@ class Resource_DataMapOfAsciiStringAsciiString;
 
 // ===========================================================================================
 /*!
- * \brief Tool converting SMESH engine calls into commands defined in smesh.py
+ * \brief Tool converting SMESH engine calls into commands defined in smeshDC.py
  *
  * Implementation is in SMESH_2smeshpy.cxx
  */
@@ -51,16 +53,20 @@ public:
    * \param theScript - Input script
    * \param theEntry2AccessorMethod - The returning method names to access to
    *        objects wrapped with python class
+   * \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,
+  ConvertScript(const TCollection_AsciiString&            theScript,
                 Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod,
-                Resource_DataMapOfAsciiStringAsciiString& theObjectNames);
+                Resource_DataMapOfAsciiStringAsciiString& theObjectNames,
+                SALOMEDS::Study_ptr&                      theStudy,
+                const bool                                theHistoricalDump);
 
   /*!
    * \brief Return the name of the python file wrapping IDL API
-    * \retval TCollection_AsciiString - The file name
+    * \retval const char* - the file name
    */
   static const char* SmeshpyName() { return "smesh"; }
   static const char* GenName() { return "smesh"; }
@@ -74,20 +80,44 @@ namespace SMESH
   class Functor_i;
   class Measurements_i;
 
-// ===========================================================================================
-/*!
- * \brief Utility helping in storing SMESH engine calls as python commands
- */
-// ===========================================================================================
+  // ===========================================================================================
+  /*!
+   * \brief Object used to make TPythonDump know that its held value can be a varible
+   *
+   * TPythonDump substitute TVar with names of notebook variables if any.
+   */
+  // ===========================================================================================
+
+  struct SMESH_I_EXPORT TVar
+  {
+    std::vector< std::string > myVals;
+    TVar(CORBA::Double value);
+    TVar(CORBA::Long   value);
+    TVar(CORBA::Short  value);
+    TVar(const SMESH::double_array& value);
+    // string used to temporary quote variable names in order
+    // not to confuse variables with string arguments
+    static char Quote() { return '$'; }
+  };
+
+  // ===========================================================================================
+  /*!
+   * \brief Utility helping in storing SMESH engine calls as python commands
+   */
+  // ===========================================================================================
 
   class SMESH_I_EXPORT TPythonDump
   {
     std::ostringstream myStream;
-    static size_t myCounter;
+    static size_t      myCounter;
+    int                myVarsCounter; // counts stored TVar's
   public:
     TPythonDump();
     virtual ~TPythonDump();
 
+    TPythonDump&
+    operator<<(const TVar& theVariableValue);
+
     TPythonDump&
     operator<<(long int theArg);
 
@@ -118,6 +148,9 @@ namespace SMESH
     TPythonDump&
     operator<<(const SMESH::double_array& theArg);
 
+    TPythonDump&
+    operator<<(const SMESH::string_array& theArg);
+
     TPythonDump&
     operator<<(SMESH::SMESH_Hypothesis_ptr theArg);
 
@@ -160,6 +193,9 @@ namespace SMESH
     TPythonDump&
     operator<<(const SMESH::DirStruct & theDir);
 
+    TPythonDump&
+    operator<<(const SMESH::PointStruct & P);
+
     TPythonDump&
     operator<<(const TCollection_AsciiString & theArg);