]> SALOME platform Git repositories - modules/smesh.git/blobdiff - src/SMESHGUI/SMESHGUI_MeshPatternDlg.h
Salome HOME
Merge with version on tag OCC-V2_1_0d
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_MeshPatternDlg.h
diff --git a/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h b/src/SMESHGUI/SMESHGUI_MeshPatternDlg.h
new file mode 100755 (executable)
index 0000000..1c1787b
--- /dev/null
@@ -0,0 +1,169 @@
+//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS \r
+// \r
+//  This library is free software; you can redistribute it and/or \r
+//  modify it under the terms of the GNU Lesser General Public \r
+//  License as published by the Free Software Foundation; either \r
+//  version 2.1 of the License. \r
+// \r
+//  This library is distributed in the hope that it will be useful, \r
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of \r
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU \r
+//  Lesser General Public License for more details. \r
+// \r
+//  You should have received a copy of the GNU Lesser General Public \r
+//  License along with this library; if not, write to the Free Software \r
+//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA \r
+// \r
+//  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org \r
+//\r
+//\r
+//\r
+//  File   : SMESHGUI_MeshPatternDlg.h\r
+//  Author : Sergey LITONIN\r
+//  Module : SMESH\r
+\r
+\r
+#ifndef SMESHGUI_MeshPatternDlg_H\r
+#define SMESHGUI_MeshPatternDlg_H\r
+\r
+#include <qdialog.h>\r
+\r
+// IDL Headers\r
+#include <SALOMEconfig.h>\r
+#include CORBA_SERVER_HEADER(GEOM_Gen)\r
+#include CORBA_SERVER_HEADER(SMESH_Mesh)\r
+#include CORBA_SERVER_HEADER(SMESH_Pattern)\r
+\r
+class QCloseEvent;\r
+class QFrame;\r
+class QLineEdit;\r
+class SMESHGUI_SpinBox;\r
+class QPushButton;\r
+class SALOME_Selection;\r
+class QRadioButton;\r
+class QCheckBox;\r
+class QButtonGroup;\r
+class QLabel;\r
+class SMESHGUI_CreatePatternDlg;\r
+class SMESHGUI_PatternWidget;\r
+class vtkUnstructuredGrid;\r
+class SALOME_Actor;\r
+\r
+/*\r
+  Class       : SMESHGUI_MeshPatternDlg\r
+  Description : Dialog to specify filters for VTK viewer\r
+*/\r
+\r
+class SMESHGUI_MeshPatternDlg : public QDialog\r
+{\r
+  Q_OBJECT\r
+\r
+  // Pattern type\r
+  enum { Type_2d, Type_3d };\r
+\r
+  // selection input\r
+  enum { Mesh, Object, Vertex1, Vertex2 };\r
+\r
+public:\r
+                                      SMESHGUI_MeshPatternDlg( QWidget*,\r
+                                                               SALOME_Selection*,\r
+                                                               const char* = 0 );\r
+  virtual                             ~SMESHGUI_MeshPatternDlg();\r
+\r
+  void                                Init( SALOME_Selection* );\r
+  \r
+private slots:\r
+\r
+  void                                onOk();\r
+  bool                                onApply();\r
+  void                                onClose();\r
+\r
+  void                                onDeactivate();\r
+\r
+  void                                onSelectionDone();\r
+  void                                onSelInputChanged();\r
+\r
+  void                                onTypeChanged( int );\r
+  void                                onOpen();\r
+  void                                onNew();\r
+  void                                onReverse( bool );\r
+  void                                onPreview( bool );\r
+  void                                onOkCreationDlg();\r
+  void                                onCloseCreationDlg();\r
+\r
+private:\r
+\r
+  QFrame*                             createButtonFrame( QWidget* );\r
+  QFrame*                             createMainFrame  ( QWidget* );\r
+  void                                displayPreview();\r
+  vtkUnstructuredGrid*                getGrid();\r
+  void                                erasePreview();\r
+  void                                updateWgState();\r
+  bool                                loadFromFile( const QString& );\r
+  void                                activateSelection();\r
+  QStringList                         prepareFilters() const;\r
+  QString                             autoExtension( const QString& theFileName ) const;\r
+  void                                closeEvent( QCloseEvent* e ) ;\r
+  void                                enterEvent ( QEvent * ) ;\r
+  bool                                isValid( const bool theMess = true );\r
+  void                                resetSelInput();\r
+\r
+private:\r
+\r
+  QPushButton*                        myOkBtn;\r
+  QPushButton*                        myApplyBtn;\r
+  QPushButton*                        myCloseBtn;\r
+\r
+  QButtonGroup*                       myTypeGrp;\r
+  QRadioButton*                       mySwitch2d;\r
+  QRadioButton*                       mySwitch3d;\r
+\r
+  QMap< int, QPushButton* >           mySelBtn;\r
+  QMap< int, QLineEdit* >             mySelEdit;\r
+  QMap< int, QLabel* >                mySelLbl;\r
+\r
+  QLineEdit*                          myName;\r
+  QPushButton*                        myOpenBtn;\r
+  QPushButton*                        myNewBtn;\r
+\r
+  QCheckBox*                          myReverseChk;\r
+  SMESHGUI_PatternWidget*             myPicture2d;\r
+  QFrame*                             myPicture3d;\r
+  QLabel*                             myPreview3d;\r
+\r
+  QCheckBox*                          myPreviewChk;\r
+    \r
+  SALOME_Selection*                   mySelection;\r
+  int                                 mySelInput;\r
+  int                                 myNbPoints;\r
+  int                                 myType;\r
+  bool                                myIsCreateDlgOpen;\r
+\r
+  SMESH::SMESH_Mesh_var               myMesh;\r
+  GEOM::GEOM_Object_var               myMeshShape;\r
+  QMap< int, GEOM::GEOM_Object_var >  myGeomObj;\r
+  \r
+  SMESHGUI_CreatePatternDlg*          myCreationDlg;\r
+  SMESH::SMESH_Pattern_var            myPattern;\r
+  SALOME_Actor*                       myPreviewActor;\r
+};\r
+\r
+#endif\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r