--- /dev/null
+// 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