Salome HOME
Enable setting of Numeric Functors as criteria in Split Quadrangles and Union Triangl...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MultiEditDlg.h
index 3a5558fe14e5ffbb8ac93a018894cd1efc6fc24a..e66ebc0f24c20b330f8863b423306e7f80397be5 100755 (executable)
@@ -1,21 +1,21 @@
 //  Copyright (C) 2003  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 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 
-// 
-//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+//  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 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
+//
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
 //
 //
 //
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_SERVER_HEADER(SMESH_Filter)
 
+class SMESHGUI;
 class SMESHGUI_FilterDlg;
-class QCheckBox;
-class QGroupBox;
-class QListBox;
-class QFrame;
-class QLineEdit;
 class SMESHGUI_SpinBox;
-class QPushButton;
-class QButtonGroup;
-class QObject;
 
 class SMESH_Actor;
-class SALOME_Actor;
-class SalomeApp_SelectionMgr;
 
-class SMESHGUI;
-class SMESH_Actor;
+class SalomeApp_SelectionMgr;
+class SALOME_Actor;
 class SVTK_Selector;
 class SVTK_ViewWindow;
 
-/*
-  Class       : SMESHGUI_MultiEditDlg
-  Description : Base class for dialogs of diagonal inversion and 
-                union of two neighboring triangles
-*/
+class QFrame;
+class QObject;
+class QListBox;
+class QComboBox;
+class QCheckBox;
+class QGroupBox;
+class QLineEdit;
+class QPushButton;
+class QButtonGroup;
+
+/*!
+ * Class       : SMESHGUI_MultiEditDlg
+ * Description : Base class for dialogs of diagonal inversion and
+ *               union of two neighboring triangles
+ */
 
 class SMESHGUI_MultiEditDlg : public QDialog
-{ 
+{
   Q_OBJECT
 
 public:
@@ -73,7 +75,7 @@ public:
                                                  const char* = 0 );
   virtual                   ~SMESHGUI_MultiEditDlg();
 
-  void                      Init() ;
+  void                      Init();
 
   bool                      eventFilter( QObject* object, QEvent* event );
 
@@ -81,14 +83,13 @@ signals:
   void                      ListContensChanged();
 
 protected slots:
-
   void                      onOk();
   virtual bool              onApply();
   virtual void              onClose();
 
   void                      onDeactivate();
   void                      onSelectionDone();
-  
+
   void                      onFilterBtn();
   void                      onAddBtn();
   void                      onRemoveBtn();
@@ -99,11 +100,12 @@ protected slots:
   virtual void              onToAllChk();
   void                      onFilterAccepted();
   void                      on3d2dChanged(int);
-  
-protected:
 
+  SMESH::NumericalFunctor_ptr getNumericalFunctor();
+
+protected:
   void                      closeEvent( QCloseEvent* e ) ;
-  void                      enterEvent ( QEvent * ) ;            
+  void                      enterEvent ( QEvent * ) ;
   void                      hideEvent ( QHideEvent * );                        /* ESC key */
   QFrame*                   createButtonFrame( QWidget* );
   QFrame*                   createMainFrame  ( QWidget*, const bool );
@@ -114,39 +116,41 @@ protected:
   virtual bool              isIdValid( const int theID ) const;
   virtual bool              process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& ) = 0;
   int                       entityType();
-  
-protected:
 
+protected:
   QPushButton*              myOkBtn;
   QPushButton*              myApplyBtn;
   QPushButton*              myCloseBtn;
   SMESH_Actor*              myActor;
   SMESH::SMESH_Mesh_var     myMesh;
-  
+
   SalomeApp_SelectionMgr*   mySelectionMgr;
-  SVTK_ViewWindow*          myViewWindow;
   SVTK_Selector*            mySelector;
   SMESHGUI*                 mySMESHGUI;
 
   QGroupBox*                mySelGrp;
-  
+  QGroupBox*                myCriterionGrp;
+
+  QButtonGroup*             myGroupChoice;
+  QComboBox*                myComboBoxFunctor;
+
   QListBox*                 myListBox;
   QPushButton*              myFilterBtn;
   QPushButton*              myAddBtn;
   QPushButton*              myRemoveBtn;
   QPushButton*              mySortBtn;
-  
+
   QCheckBox*                myToAllChk;
   QButtonGroup*             myEntityTypeGrp;
-  
+
   QCheckBox*                mySubmeshChk;
   QPushButton*              mySubmeshBtn;
   QLineEdit*                mySubmesh;
-  
+
   QCheckBox*                myGroupChk;
   QPushButton*              myGroupBtn;
   QLineEdit*                myGroup;
-  
+
   SMESHGUI_FilterDlg*       myFilterDlg;
   TColStd_MapOfInteger      myIds;
   int                       myFilterType;
@@ -154,40 +158,41 @@ protected:
   int                       myEntityType;
 };
 
-/*
-  Class       : SMESHGUI_ChangeOrientationDlg
-  Description : Modification of orientation of faces
-*/
+/*!
* Class       : SMESHGUI_ChangeOrientationDlg
* Description : Modification of orientation of faces
+ */
 class  SMESHGUI_ChangeOrientationDlg : public SMESHGUI_MultiEditDlg
-{ 
+{
   Q_OBJECT
 
 public:
-                            SMESHGUI_ChangeOrientationDlg(SMESHGUI* theModule,
-                                                         const char* = 0);
-  virtual                   ~SMESHGUI_ChangeOrientationDlg();
+               SMESHGUI_ChangeOrientationDlg(SMESHGUI* theModule,
+                                            const char* = 0);
+  virtual      ~SMESHGUI_ChangeOrientationDlg();
 
 protected:
-
-  virtual bool              process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
+  virtual bool process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
 };
 
-/*
-  Class       : SMESHGUI_UnionOfTrianglesDlg
-  Description : Construction of quadrangles by automatic association of triangles
-*/
+/*!
* Class       : SMESHGUI_UnionOfTrianglesDlg
* Description : Construction of quadrangles by automatic association of triangles
+ */
 class  SMESHGUI_UnionOfTrianglesDlg : public SMESHGUI_MultiEditDlg
 {
   Q_OBJECT
 
 public:
-                            SMESHGUI_UnionOfTrianglesDlg(SMESHGUI* theModule,
-                                                        const char* = 0);
-  virtual                   ~SMESHGUI_UnionOfTrianglesDlg();
+               SMESHGUI_UnionOfTrianglesDlg(SMESHGUI* theModule,
+                                           const char* = 0);
+  virtual      ~SMESHGUI_UnionOfTrianglesDlg();
 
 protected:
+  virtual bool process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
 
-  virtual bool              process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
+private:
+  SMESHGUI_SpinBox* myMaxAngleSpin;
 };
 
 /*
@@ -199,25 +204,25 @@ class  SMESHGUI_CuttingOfQuadsDlg : public SMESHGUI_MultiEditDlg
   Q_OBJECT
 
 public:
-                            SMESHGUI_CuttingOfQuadsDlg(SMESHGUI* theModule,
-                                                      const char* = 0);
-  virtual                   ~SMESHGUI_CuttingOfQuadsDlg();
+                SMESHGUI_CuttingOfQuadsDlg(SMESHGUI* theModule,
+                                          const char* = 0);
+  virtual       ~SMESHGUI_CuttingOfQuadsDlg();
 
 protected:
-  virtual bool              process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
-  
+  virtual bool  process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& );
+
 protected slots:
-  virtual void              onClose();
-  void                      onPreviewChk();
+  virtual void  onClose();
+  void          onCriterionRB();
+  void          onPreviewChk();
 
 private:
-  void                      displayPreview();
-  void                      erasePreview();
-  
+  void          displayPreview();
+  void          erasePreview();
+
 private:
-  QCheckBox*                myUseDiagChk;
-  SALOME_Actor*             myPreviewActor;
-  QCheckBox*                myPreviewChk;
+  SALOME_Actor* myPreviewActor;
+  QCheckBox*    myPreviewChk;
 };
 
 #endif