Salome HOME
Enable setting of Numeric Functors as criteria in Split Quadrangles and Union Triangl...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MultiEditDlg.h
index a35f517581394077e001ba7bf6fb2f8f69762878..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
 //
 //
 //
 #define SMESHGUI_MultiEditDlg_H
 
 #include <qdialog.h>
-#include "SMESH_TypeFilter.hxx"
+
+#include "SUIT_SelectionFilter.h"
+
 #include <TColStd_MapOfInteger.hxx>
 
 #include <SALOMEconfig.h>
 #include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_SERVER_HEADER(SMESH_Filter)
 
-class QCloseEvent;
+class SMESHGUI;
 class SMESHGUI_FilterDlg;
+class SMESHGUI_SpinBox;
+
+class SMESH_Actor;
+
+class SalomeApp_SelectionMgr;
+class SALOME_Actor;
+class SVTK_Selector;
+class SVTK_ViewWindow;
+
+class QFrame;
+class QObject;
+class QListBox;
+class QComboBox;
 class QCheckBox;
 class QGroupBox;
-class QListBox;
-class QFrame;
 class QLineEdit;
-class SMESHGUI_SpinBox;
 class QPushButton;
-class SALOME_Selection;
-class SMESH_Actor;
-class SALOME_Actor;
+class QButtonGroup;
 
-/*
-  Class       : SMESHGUI_MultiEditDlg
-  Description : Base class for dialogs of diagonal inversion and 
-                union of two neighboring triangles
-*/
+/*!
* 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:
-                            SMESHGUI_MultiEditDlg( QWidget*,
-                                                   SALOME_Selection*,
-                                                   const int,
-                                                   const char* = 0 );
+                            SMESHGUI_MultiEditDlg(SMESHGUI* theModule,
+                                                 const int,
+                                                 const bool = false,
+                                                 const char* = 0 );
   virtual                   ~SMESHGUI_MultiEditDlg();
 
-  void                      Init( SALOME_Selection* ) ;
+  void                      Init();
+
+  bool                      eventFilter( QObject* object, QEvent* event );
 
 signals:
   void                      ListContensChanged();
 
 protected slots:
-
   void                      onOk();
   virtual bool              onApply();
   virtual void              onClose();
 
   void                      onDeactivate();
   void                      onSelectionDone();
-  
+
   void                      onFilterBtn();
   void                      onAddBtn();
   void                      onRemoveBtn();
@@ -87,92 +99,100 @@ protected slots:
   void                      onGroupChk();
   virtual void              onToAllChk();
   void                      onFilterAccepted();
-  
-protected:
+  void                      on3d2dChanged(int);
 
+  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* );
+  QFrame*                   createMainFrame  ( QWidget*, const bool );
   bool                      isValid( const bool ) const;
   SMESH::long_array_var     getIds();
   void                      updateButtons();
   void                      setSelectionMode();
   virtual bool              isIdValid( const int theID ) const;
   virtual bool              process( SMESH::SMESH_MeshEditor_ptr, const SMESH::long_array& ) = 0;
-  
-protected:
+  int                       entityType();
 
+protected:
   QPushButton*              myOkBtn;
   QPushButton*              myApplyBtn;
   QPushButton*              myCloseBtn;
-  SALOME_Selection*         mySelection;
-  SMESH::SMESH_Mesh_var     myMesh;
   SMESH_Actor*              myActor;
-  
+  SMESH::SMESH_Mesh_var     myMesh;
+
+  SalomeApp_SelectionMgr*   mySelectionMgr;
+  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;
-  Handle(SMESH_TypeFilter)  mySubmeshFilter;
-  Handle(SMESH_TypeFilter)  myGroupFilter;
   bool                      myBusy;
+  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( QWidget*,
-                                                           SALOME_Selection*,
-                                                           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( QWidget*,
-                                                          SALOME_Selection*,
-                                                          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;
 };
 
 /*
@@ -184,26 +204,25 @@ class  SMESHGUI_CuttingOfQuadsDlg : public SMESHGUI_MultiEditDlg
   Q_OBJECT
 
 public:
-                            SMESHGUI_CuttingOfQuadsDlg( QWidget*,
-                                                        SALOME_Selection*,
-                                                        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