Salome HOME
IPAL15344 (SMESH_MeshEditor.idl: signature of MergeEqualElements() was changed):
authorakl <akl@opencascade.com>
Tue, 27 Mar 2007 09:30:44 +0000 (09:30 +0000)
committerakl <akl@opencascade.com>
Tue, 27 Mar 2007 09:30:44 +0000 (09:30 +0000)
restore MergeEqualElements() signature;
add MergeElements().

src/SMESH/SMESH_MeshEditor.cxx
src/SMESH/SMESH_MeshEditor.hxx
src/SMESH_I/SMESH_MeshEditor_i.cxx
src/SMESH_I/SMESH_MeshEditor_i.hxx

index 1838b6da44af1766dbafff72aaf9bf7e69a16977..889ea2f0226554377c628c82e1dc1cd9d9e28055 100644 (file)
@@ -5071,7 +5071,8 @@ class SortableElement : public set <const SMDS_MeshElement*>
 
 //=======================================================================
 //function : FindEqualElements
-//purpose  : 
+//purpose  : Return list of group of elements built on the same nodes.
+//           Search among theElements or in the whole mesh if theElements is empty
 //=======================================================================
 void SMESH_MeshEditor::FindEqualElements(set<const SMDS_MeshElement*> & theElements,
                                         TListOfListOfElementsID &      theGroupsOfElementsID)
@@ -5128,11 +5129,11 @@ void SMESH_MeshEditor::FindEqualElements(set<const SMDS_MeshElement*> & theEleme
 }
 
 //=======================================================================
-//function : MergeEqualElements
-//purpose  : Remove all but one of elements built on the same nodes.
+//function : MergeElements
+//purpose  : In each given group, substitute all elements by the first one.
 //=======================================================================
 
-void SMESH_MeshEditor::MergeEqualElements(TListOfListOfElementsID & theGroupsOfElementsID)
+void SMESH_MeshEditor::MergeElements(TListOfListOfElementsID & theGroupsOfElementsID)
 {
   myLastCreatedElems.Clear();
   myLastCreatedNodes.Clear();
@@ -5164,6 +5165,20 @@ void SMESH_MeshEditor::MergeEqualElements(TListOfListOfElementsID & theGroupsOfE
   Remove( rmElemIds, false );
 }
 
+//=======================================================================
+//function : MergeEqualElements
+//purpose  : Remove all but one of elements built on the same nodes.
+//=======================================================================
+
+void SMESH_MeshEditor::MergeEqualElements()
+{
+  set<const SMDS_MeshElement*> aMeshElements; /* empty input -
+                                                to merge equal elements in the whole mesh */
+  TListOfListOfElementsID aGroupsOfElementsID;
+  FindEqualElements(aMeshElements, aGroupsOfElementsID);
+  MergeElements(aGroupsOfElementsID);
+}
+
 //=======================================================================
 //function : FindFaceInSet
 //purpose  : Return a face having linked nodes n1 and n2 and which is
index d68fca86012e8de64aed4dbd000dc49a932dc233..483c2eae99b76e7d1c6793cdd72d3791bf9df72b 100644 (file)
@@ -322,7 +322,10 @@ public:
   // Return list of group of elements build on the same nodes.
   // Search among theElements or in the whole mesh if theElements is empty.
 
-  void MergeEqualElements(TListOfListOfElementsID & theGroupsOfElementsID);
+  void MergeElements(TListOfListOfElementsID & theGroupsOfElementsID);
+  // In each group remove all but first of elements.
+
+  void MergeEqualElements();
   // Remove all but one of elements built on the same nodes.
   // Return nb of successfully merged groups.
 
index a545dbd200f17e16c6ecbc0383de97dd64ac3036..b00c3f6347fa43e3f11a440fb175ffb85ebf3878 100644 (file)
@@ -1932,16 +1932,16 @@ void SMESH_MeshEditor_i::FindEqualElements(SMESH::SMESH_IDSource_ptr      theObj
 }
 
 //=======================================================================
-//function : MergeEqualElements
+//function : MergeElements
 //purpose  :
 //=======================================================================
 
-void SMESH_MeshEditor_i::MergeEqualElements(const SMESH::array_of_long_array& GroupsOfElementsID)
+void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID)
 {
   initData();
 
   TPythonDump aTPythonDump;
-  aTPythonDump << this << ".MergeEqualElements( [";
+  aTPythonDump << this << ".MergeElements( [";
 
   ::SMESH_MeshEditor::TListOfListOfElementsID aListOfListOfElementsID;
 
@@ -1960,12 +1960,28 @@ void SMESH_MeshEditor_i::MergeEqualElements(const SMESH::array_of_long_array& Gr
   }
 
   ::SMESH_MeshEditor anEditor( myMesh );
-  anEditor.MergeEqualElements(aListOfListOfElementsID);
+  anEditor.MergeElements(aListOfListOfElementsID);
 
   // Update Python script
   aTPythonDump << "] )";
 }
 
+//=======================================================================
+//function : MergeEqualElements
+//purpose  :
+//=======================================================================
+
+void SMESH_MeshEditor_i::MergeEqualElements()
+{
+  initData();
+
+  ::SMESH_MeshEditor anEditor( myMesh );
+  anEditor.MergeEqualElements();
+
+  // Update Python script
+  TPythonDump() << this << ".MergeEqualElements()";
+}
+
 //================================================================================
 /*!
  * \brief If the given ID is a valid node ID (nodeID > 0), just move this node, else
index 005395781f31a183c20cfe8f5524290c4d2bcb1d..7e8dff39c2780e5ee20c18f62fba69feea254165 100644 (file)
@@ -210,7 +210,8 @@ class SMESH_MeshEditor_i: public POA_SMESH::SMESH_MeshEditor
   void MergeNodes (const SMESH::array_of_long_array& GroupsOfNodes);
   void FindEqualElements(SMESH::SMESH_IDSource_ptr      theObject,
                         SMESH::array_of_long_array_out GroupsOfElementsID);
-  void MergeEqualElements(const SMESH::array_of_long_array& GroupsOfElementsID);
+  void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID);
+  void MergeEqualElements();
   CORBA::Long MoveClosestNodeToPoint(CORBA::Double x,
                                      CORBA::Double y,
                                      CORBA::Double z,