]> SALOME platform Git repositories - modules/smesh.git/commitdiff
Salome HOME
PAL12147. make different mesh_editors for different meshes in DumpPython file;
authoreap <eap@opencascade.com>
Wed, 12 Apr 2006 14:13:59 +0000 (14:13 +0000)
committereap <eap@opencascade.com>
Wed, 12 Apr 2006 14:13:59 +0000 (14:13 +0000)
remove repeated mesh.GetMeshEditor() of the same mesh

src/SMESH_I/SMESH_2smeshpy.cxx
src/SMESH_I/SMESH_2smeshpy.hxx

index 326015f2679947164e50a508ead35604821091b5..2405ec721e50a27391e86ac59ee601b46fcf68e9 100644 (file)
@@ -186,7 +186,7 @@ void _pyGen::AddCommand( const TCollection_AsciiString& theCommand)
 
   // Mesh provides SMESH_IDSource interface used in SMESH_MeshEditor.
   // Add access to wrapped mesh
-  if ( objID == TPythonDump::MeshEditorName() ) {
+  if ( objID.Location( TPythonDump::MeshEditorName(), 1, objID.Length() )) {
     // in all SMESH_MeshEditor's commands, a SMESH_IDSource is the first arg
     id_mesh = myMeshes.find( aCommand->GetArg( 1 ));
     if ( id_mesh != myMeshes.end() )
@@ -431,7 +431,8 @@ static bool sameGroupType( const _pyID&                   grpID,
  */
 //================================================================================
 
-_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd): _pyObject(theCreationCmd)
+_pyMesh::_pyMesh(const Handle(_pyCommand) theCreationCmd):
+  _pyObject(theCreationCmd), myHasEditor(false)
 {
   // convert my creation command
   Handle(_pyCommand) creationCmd = GetCreationCmd();
@@ -528,7 +529,20 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
         theCommand->SetArg( 2, theCommand->GetArg( 2 ) + ".GetAlgorithm()" );
     }
   }
-  else { // apply theCommand to the mesh wrapped by smeshpy mesh
+
+  // leave only one mesh_editor_<nb> = mesh.GetMeshEditor()
+  else if ( theCommand->GetMethod() == "GetMeshEditor")
+  {
+    if ( myHasEditor )
+      theCommand->Clear();
+    else
+      AddMeshAccess( theCommand );
+    myHasEditor = true;
+  }
+
+  // apply theCommand to the mesh wrapped by smeshpy mesh
+  else
+  {
     AddMeshAccess( theCommand );
   }
 }
index 78117eaa347062daa770bfa9616ba7f65cef9f95..7f24f3a20187c8bfbdfa3087efedd3e0c89f6205 100644 (file)
@@ -181,7 +181,8 @@ private:
 class _pyMesh: public _pyObject
 {
   std::list< Handle(_pyCommand) > myAddHypCmds;
-  std::list< Handle(_pyCommand) > mySubmeshes; 
+  std::list< Handle(_pyCommand) > mySubmeshes;
+  bool                            myHasEditor;
 public:
   _pyMesh(const Handle(_pyCommand) theCreationCmd);
   const _pyID& GetGeom() { return GetCreationCmd()->GetArg(1); }