X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_PythonDump.hxx;h=59a5df790fa55d351fb752463b1af97bcce62f6f;hb=5c3b242751087298b8088e318b4a1cfc309768b9;hp=4ff5cfc28bf15d1845b6eec6c26ef21a8e633182;hpb=7aebb99e42c6b0c3c056a5eecb0f29033db2231a;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_PythonDump.hxx b/src/SMESH_I/SMESH_PythonDump.hxx index 4ff5cfc28..59a5df790 100644 --- a/src/SMESH_I/SMESH_PythonDump.hxx +++ b/src/SMESH_I/SMESH_PythonDump.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 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 @@ -27,19 +27,24 @@ #include #include CORBA_SERVER_HEADER(SMESH_Mesh) +#include CORBA_SERVER_HEADER(SMESH_MeshEditor) +#include CORBA_SERVER_HEADER(GEOM_Gen) #include CORBA_SERVER_HEADER(SALOMEDS) +#include +#include + #include #include +#include +#include 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 */ @@ -49,19 +54,21 @@ class SMESH_2smeshpy { public: /*! - * \brief Convert a python script using commands of smesh.py - * \param theScript - Input script - * \param theEntry2AccessorMethod - The returning method names to access to + * \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 + * \param theRemovedObjIDs - entries of objects whose created commands were removed * \param theHistoricalDump - true means to keep all commands, false means * to exclude commands relating to objects removed from study - * \retval TCollection_AsciiString - Convertion result + * \retval TCollection_AsciiString - Conversion result */ - static TCollection_AsciiString - ConvertScript(const TCollection_AsciiString& theScript, + static void + ConvertScript(std::list< TCollection_AsciiString >& theScriptLines, Resource_DataMapOfAsciiStringAsciiString& theEntry2AccessorMethod, Resource_DataMapOfAsciiStringAsciiString& theObjectNames, - SALOMEDS::Study_ptr& theStudy, + std::set< TCollection_AsciiString >& theRemovedObjIDs, const bool theHistoricalDump); /*! @@ -82,7 +89,7 @@ namespace SMESH // =========================================================================================== /*! - * \brief Object used to make TPythonDump know that its held value can be a varible + * \brief Object used to make TPythonDump know that its held value can be a variable * * TPythonDump substitute TVar with names of notebook variables if any. */ @@ -91,6 +98,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); @@ -98,6 +106,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: "; } }; // =========================================================================================== @@ -111,7 +121,9 @@ namespace SMESH std::ostringstream myStream; static size_t myCounter; int myVarsCounter; // counts stored TVar's + SMESH_Gen_i *mySmesh = nullptr; public: + TPythonDump(SMESH_Gen_i *smesh); TPythonDump(); virtual ~TPythonDump(); @@ -154,6 +166,9 @@ namespace SMESH TPythonDump& operator<<(const SMESH::string_array& theArg); + TPythonDump& + operator<<(const SMESH::nodes_array& theArg); + TPythonDump& operator<<(SMESH::SMESH_Hypothesis_ptr theArg); @@ -187,9 +202,6 @@ namespace SMESH TPythonDump& operator<<(SMESH_MeshEditor_i* theArg); - TPythonDump& - operator<<(SMESH::MED_VERSION theArg); - TPythonDump& operator<<(const SMESH::AxisStruct & theAxis); @@ -208,11 +220,51 @@ 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::submesh_array& theList); + + TPythonDump& + operator<<(const SMESH::ListOfHypothesis& theList); + + TPythonDump& + operator<<(const SMESH::CoincidentFreeBorders& theCFB); + + TPythonDump& + operator<<(const std::string& theArg); + + + template + static TStream& DumpArray(const TArray& theArray, TStream & theStream) + { + if ( theArray.length() == 0 ) + { + theStream << "[]"; + } + else + { + theStream << "[ "; + for (CORBA::ULong i = 1; i <= theArray.length(); i++) { + theStream << theArray[i-1]; + if ( i < theArray.length() ) + theStream << ", "; + } + theStream << " ]"; + } + return theStream; + } + static const char* SMESHGenName() { return "smeshgen"; } static const char* MeshEditorName() { return "mesh_editor"; } + static const char* NotPublishedObjectName(); /*! * \brief Return marker of long string literal beginning