-// 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
+// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 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.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// File : SMESHGUI_MeshPatternDlg.h
+// Author : Sergey LITONIN, Open CASCADE S.A.S.
+//
+#ifndef SMESHGUI_MESHPATTERNDLG_H
+#define SMESHGUI_MESHPATTERNDLG_H
+
+// SMESH includes
+#include "SMESH_SMESHGUI.hxx"
+
+// Qt includes
+#include <QDialog>
+#include <QMap>
+
+// IDL includes
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_SERVER_HEADER(SMESH_Pattern)
+
+class QFrame;
+class QLineEdit;
+class QPushButton;
+class QRadioButton;
+class QCheckBox;
+class QButtonGroup;
+class QLabel;
+class SalomeApp_IntSpinBox;
+class vtkUnstructuredGrid;
+class SALOME_Actor;
+class SVTK_Selector;
+class LightApp_SelectionMgr;
+class SMESHGUI;
+class SMESHGUI_CreatePatternDlg;
+class SMESHGUI_PatternWidget;
+
+/*
+ Class : SMESHGUI_MeshPatternDlg
+ Description : Dialog to specify filters for VTK viewer
+*/
+
+class SMESHGUI_EXPORT SMESHGUI_MeshPatternDlg : public QDialog
+{
+ Q_OBJECT
+
+ // Pattern type
+ enum { Type_2d, Type_3d };
+
+ // selection input
+ enum { Mesh, Object, Vertex1, Vertex2, Ids };
+
+public:
+ SMESHGUI_MeshPatternDlg( SMESHGUI* );
+ virtual ~SMESHGUI_MeshPatternDlg();
+
+ void Init();
+
+protected slots:
+ virtual void reject();
+
+private slots:
+ void onOk();
+ bool onApply();
+ void onHelp();
+
+ void onDeactivate();
+
+ void onSelectionDone();
+ void onSelInputChanged();
+
+ void onTypeChanged( int );
+ void onModeToggled( bool );
+ void onOpen();
+ void onNew();
+ void onReverse( bool );
+ void onPreview( bool );
+ void onOkCreationDlg();
+ void onCloseCreationDlg();
+ void onTextChanged( const QString& );
+ void onNodeChanged( int );
+
+private:
+ QWidget* createButtonFrame( QWidget* );
+ QWidget* createMainFrame( QWidget* );
+ void displayPreview();
+ vtkUnstructuredGrid* getGrid();
+ void erasePreview();
+ void updateWgState();
+ bool loadFromFile( const QString& );
+ void activateSelection();
+ QStringList prepareFilters() const;
+ QString autoExtension( const QString& ) const;
+ void enterEvent( QEvent* );
+ void keyPressEvent( QKeyEvent* );
+ bool isValid( const bool = true );
+ void resetSelInput();
+ bool isRefine() const;
+
+ bool getIds( QList<int>& ) const;
+ int getNode( bool = false ) const;
+
+private:
+ QPushButton* myOkBtn;
+ QPushButton* myApplyBtn;
+ QPushButton* myCloseBtn;
+ QPushButton* myHelpBtn;
+
+ QButtonGroup* myTypeGrp;
+ QRadioButton* mySwitch2d;
+ QRadioButton* mySwitch3d;
+
+ QCheckBox* myRefine;
+
+ QFrame* myRefineGrp;
+ SalomeApp_IntSpinBox* myNode1;
+ SalomeApp_IntSpinBox* myNode2;
+ QLabel* myNode2Lbl;
+
+ QFrame* myGeomGrp;
+ QMap<int, QPushButton*> mySelBtn;
+ QMap<int, QLineEdit*> mySelEdit;
+ QMap<int, QLabel*> mySelLbl;
+
+ QLineEdit* myName;
+ QPushButton* myOpenBtn;
+ QPushButton* myNewBtn;
+
+ QCheckBox* myReverseChk;
+ QCheckBox* myCreatePolygonsChk;
+ QCheckBox* myCreatePolyedrsChk;
+ SMESHGUI_PatternWidget* myPicture2d;
+ QLabel* myPicture3d;
+
+ QCheckBox* myPreviewChk;
+
+ SMESHGUI* mySMESHGUI;
+ SVTK_Selector* mySelector;
+ LightApp_SelectionMgr* mySelectionMgr;
+ int mySelInput;
+ int myNbPoints;
+ int myType;
+ bool myIsCreateDlgOpen;
+ bool myBusy;
+
+ SMESH::SMESH_Mesh_var myMesh;
+ GEOM::GEOM_Object_var myMeshShape;
+ QMap<int, GEOM::GEOM_Object_var> myGeomObj;
+
+ SMESHGUI_CreatePatternDlg* myCreationDlg;
+ SMESH::SMESH_Pattern_var myPattern;
+ SALOME_Actor* myPreviewActor;
+
+ QString myHelpFileName;
+};
+
+#endif // SMESHGUI_MESHPATTERNDLG_H