Salome HOME
IPAL54585: Extrusion 3D algo fails with "OCC exception. Standard_NoSuchObject: NColle...
[modules/smesh.git] / src / SMESH_I / SMESH_PythonDump.cxx
index 7ffedf1d4eeed4e0b958bf6f8a7778027a3e1779..6a88325b199fb0b142e6182df1d3ae052402c098 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  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
@@ -244,25 +244,6 @@ namespace SMESH
     return *this;
   }
 
-  template<class TArray>
-  void DumpArray(const TArray& theArray, TPythonDump & 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 << " ]";
-    }
-  }
-
   TPythonDump&
   TPythonDump::operator<<(const SMESH::long_array& theArg)
   {
@@ -426,6 +407,7 @@ namespace SMESH
       case FT_MultiConnection2D:     myStream<< "aMultiConnection2D";     break;
       case FT_Length:                myStream<< "aLength";                break;
       case FT_Length2D:              myStream<< "aLength2D";              break;
+      case FT_Length3D:              myStream<< "aLength3D";              break;
       case FT_Deflection2D:          myStream<< "aDeflection2D";          break;
       case FT_NodeConnectivityNumber:myStream<< "aNodeConnectivityNumber";break;
       case FT_BelongToMeshGroup:     myStream<< "aBelongToMeshGroup";     break;
@@ -540,6 +522,16 @@ namespace SMESH
     DumpArray( theList, *this );
     return *this;
   }
+  TPythonDump& TPythonDump::operator<<(const SMESH::submesh_array& theList)
+  {
+    DumpArray( theList, *this );
+    return *this;
+  }
+  TPythonDump& TPythonDump::operator<<(const SMESH::ListOfHypothesis& theList)
+  {
+    DumpArray( theList, *this );
+    return *this;
+  }
   TPythonDump& TPythonDump::operator<<(const SMESH::CoincidentFreeBorders& theCFB)
   {
     // dump CoincidentFreeBorders as a list of lists, each enclosed list
@@ -991,13 +983,16 @@ TCollection_AsciiString SMESH_Gen_i::DumpPython_impl
   const TCollection_AsciiString anOldGen ( SMESH::TPythonDump::SMESHGenName() );
   const TCollection_AsciiString helper; // to comfortably append C strings to TCollection_AsciiString
   const TCollection_AsciiString tab( isMultiFile ? "\t" : "" ), nt = helper + "\n" + tab;
-
+  TCollection_AsciiString optionalComment;
+  
   std::list< TCollection_AsciiString > lines; // lines of a script
   std::list< TCollection_AsciiString >::iterator linesIt;
   
   lines.push_back(  aSMESHGen + " = smeshBuilder.New()" );
-  if ( !isPublished )
-    lines.push_back(  aSMESHGen + ".SetEnablePublish( False )" );
+  if ( isPublished )
+    optionalComment = "#";
+  lines.push_back( optionalComment + aSMESHGen + ".SetEnablePublish( False ) # Set to False to avoid publish in study if not needed or in some particular situations:" );
+  lines.push_back( "                                 # multiples meshes built in parallel, complex and numerous mesh edition (performance)\n" );
   lines.push_back( helper + "aFilterManager = " + aSMESHGen + ".CreateFilterManager()" );
   lines.push_back( helper + "aMeasurements = "  + aSMESHGen + ".CreateMeasurements()" );