// VISU VISUGUI : GUI of VISU component
//
// 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
//
//
//
// File : VisuGUI.h
-// Author : Laurent CORNABE & Hubert ROLLAND
+// Author : Laurent CORNABE & Hubert ROLLAND
// Module : VISU
// $Header$
#ifndef VisuGUI_HeaderFile
#define VisuGUI_HeaderFile
-#ifndef _Standard_HeaderFile
-#include <Standard.hxx>
-#endif
-
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(VISU_Gen)
-#include CORBA_SERVER_HEADER(SALOMEDS)
-#include CORBA_SERVER_HEADER(SALOMEDS_Attributes)
-
-#include "QAD_Desktop.h"
-class VTKViewer_ViewFrame;
-
-#include "VISUConfig.hh"
-class VISU_Actor;
-class VISU_MeshAct;
-class VISU_ScalarMapAct;
-class VisuGUI_SelectionDlg;
-
-#include <vtkDataSet.h>
-class vtkRenderer;
-
-#include <TColStd_MapOfInteger.hxx>
-#include <TColStd_MapIteratorOfMapOfInteger.hxx>
-#include "SALOME_ListIteratorOfListIO.hxx"
-
-#include "SALOMEGUI.h"
-
-namespace VISU{
- class VISU_Gen_i;
-
- class Result_i;
-
- class Prs3d_i;
- class ScalarMap_i;
- class DeformedShape_i;
- class IsoSurfaces_i;
- class CutPlanes_i;
- class CutLines_i;
- class Vectors_i;
- class StreamLines_i;
-
- class Table_i;
- class Curve_i;
- class Container_i;
-}
-
-// ======================================================================
-// CLASS VIUSGUI
-// ======================================================================
-//
-
-class VisuGUI : public SALOMEGUI{
+#include "SalomeApp_Module.h"
+
+class SUIT_ViewManager;
+
+class VisuGUI: public SalomeApp_Module
+{
Q_OBJECT;
- public:
- VisuGUI( const QString& name = "", QObject* parent = 0 );
- virtual ~VisuGUI();
-
- static VISU::VISU_Gen_i* GetVisuGen();
-
- static QAD_Desktop* GetDesktop();
- static QAD_Study* GetActiveStudy();
- static vtkRenderer* GetRenderer();
- static VTKViewer_ViewFrame* GetVtkViewFrame();
- static SALOMEDS::Study_var GetStudyDocument();
- static SALOMEDS::StudyBuilder_var NewBuilder();
- static VISU::Storable::TRestoringMap getMapOfValue(SALOMEDS::SObject_var theSObject);
-
- static VISU::Result_i* CreatePresent(SALOMEDS::SObject_var theField, VISU::Result_var& theResult);
-
- enum CameraOrient {e3D, eFront, eLeft, eTop};
- static CameraOrient SetFitAll( VTKViewer_ViewFrame* vf);
-
- typedef VISU::Result_ptr (VISU::VISU_Gen_i::* TImportFun)(const char*);
- void ImportFromFile(TImportFun theImportFun);
-
- bool CreateScalarMap(SALOMEDS::SObject_var theField);
- static VISU::ScalarMap_i* CreateScalarMapPrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool CreateDeformedShape(SALOMEDS::SObject_var theField);
- static VISU::DeformedShape_i* CreateDeformedShapePrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool CreateVectors(SALOMEDS::SObject_var theField);
- static VISU::Vectors_i* CreateVectorsPrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool CreateIsoSurfaces(SALOMEDS::SObject_var theField);
- static VISU::IsoSurfaces_i* CreateIsoSurfacesPrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool CreateCutPlanes(SALOMEDS::SObject_var theField);
- static VISU::CutPlanes_i* CreateCutPlanesPrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool CreateCutLines(SALOMEDS::SObject_var theField);
- static VISU::CutLines_i* CreateCutLinesPrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool CreateStreamLines(SALOMEDS::SObject_var theField);
- static VISU::StreamLines_i* CreateStreamLinesPrs(SALOMEDS::SObject_var theField,
- const char* theMeshName, VISU::Entity theEntity,
- const char* theFieldName, int theTimeId);
- bool TestObjectBrowser(SALOMEDS::SObject_var& objVisu);
-
- static void ShowTrihedron(bool Show);
- static void ChangeViewer(int theType);
-
- static void NewColor(VISU_Actor *Actor);
- static void NewWireframeColor(VISU_MeshAct *Actor);
- static void NewOpacity(VISU_Actor *Actor);
- static void NewLinewidth(VISU_Actor *Actor);
-
- static void ChangeScalarBar();
- static void SetSweepingPreferences();
-
- static void PlotTable( VISU::Table_i* table, int theDisplaying );
- static void PlotCurve( VISU::Curve_i* curve, int theDisplaying );
- static void PlotContainer( VISU::Container_i* container, int theDisplaying );
-
- static QString getVisuInputDir();
- static QString getVisuOutputDir();
-
- static QString getValue(SALOMEDS::SObject_var theSObject, QString theKey);
- static int checkHomoSelection();
-
- static VISU_Actor* UpdateViewer(VISU::Prs3d_i* thePrs, bool theDispOnly=false);
- static bool IsDisplayed(VISU::Prs3d_i* thePrs);
- static void ErasePrs(VISU::Prs3d_i* thePrs);
-
- static VISU::Prs3d_i* GetSelectedPrs3d(Handle(SALOME_InteractiveObject)* theIO = NULL);
- static void RecreateActor(VISU::Prs3d_i* thePrs);
- static void CreateActor(VISU::Prs3d_i* thePrs);
- static VISU_Actor* GetActor(VISU::Prs3d_i* thePrs, VTKViewer_ViewFrame* theViewFrame = NULL);
-
- void VisuGUI::ChangeRepresentation(VISU::PresentationType theType);
- void DeletePresentation(VISU::Prs3d_i* thePrs);
- void DeletePresentation(VISU::Curve_i* theCurve);
-
- void SetState(int aState );
- void ResetState();
- void EmitSignalDeactivateDialog();
- void EmitSignalCloseAllDialogs();
- QDialog* GetActiveDialogBox();
- void SetActiveDialogBox(QDialog* aDlg);
-
- void CreatePlot(SALOMEDS::SObject_var theTableSO);
-
-// ----------------------------------------
-// All method of standard EXPORT
-// ----------------------------------------
- virtual bool OnGUIEvent(int theCommandID, QAD_Desktop* parent);
- virtual bool SetSettings(QAD_Desktop* parent);
- virtual void DefinePopup(QString & theContext,
- QString & theParent,
- QString & theObject ) ;
- virtual bool CustomPopup(QAD_Desktop* parent,
- QPopupMenu* popup,
- const QString & theContext,
- const QString & theParent,
- const QString & theObject);
- virtual void BuildPresentation( const Handle(SALOME_InteractiveObject)&,
- QAD_ViewFrame* = 0 );
- virtual bool OnMousePress(QMouseEvent* pe ,
- QAD_Desktop* parent,
- QAD_StudyFrame* studyFrame);
- virtual bool OnMouseMove(QMouseEvent* pe ,
- QAD_Desktop* parent,
- QAD_StudyFrame* studyFrame);
- virtual bool OnKeyPress(QKeyEvent* pe,
- QAD_Desktop* parent,
- QAD_StudyFrame* studyFrame);
- virtual void SupportedViewType (int* buffer, int bufferSize);
+
+public:
+
+ VisuGUI();
+ virtual ~VisuGUI();
+
+ virtual LightApp_Displayer* displayer();
+ virtual void initialize( CAM_Application* );
+ virtual void windows( QMap<int, int>& ) const;
+ virtual void viewManagers( QStringList& ) const;
+
+ virtual QString engineIOR() const;
+
+ virtual void studyActivated();
+
+ virtual void contextMenuPopup( const QString& theClient, QPopupMenu* theMenu, QString& theTitle );
+
+ virtual void createPreferences();
+ virtual void preferencesChanged( const QString&, const QString& );
+
+ virtual
+ SUIT_ViewManager*
+ getViewManager(const QString& theType,
+ const bool theIsCreate);
public slots:
- void ImportTablesFromFile();
- void ExportTableToFile();
-
- void ImportFile();
- void CopyAndImportFile();
-
- void ExportToFile();
-
- void CreateMesh();
- void CreateScalarMap();
- void CreateDeformedShape();
- void CreateVectors();
- void CreateIsoSurfaces();
- void CreateCutPlanes();
- void CreateCutLines();
- void CreateStreamLines();
- void CreateManyMesh();
- void CreatePlot2dView();
-
- void DisplayPrs();
- void DisplayOnlyPrs();
- void ErasePrs();
- void EditPrs();
- void DisplayManyPrs();
- void DisplayOnlyManyPrs();
- void EraseManyPrs();
- void EditContainer();
-
- void MakeSurfaceframe();
- void MakeInsideframe();
- void MakeWireframe();
- void MakeSurface();
- void MakePoints();
- void MakeShrink();
-
- void ChageColor();
- void ChangeWireframeColor();
- void ChangeOpacity();
- void ChangeLines();
-
- void ShowTable();
- void CreateTable();
- void DeleteObject();
- void PlotData();
- void CurveProperties();
- void ClearContainer();
-
- void SaveViewParams();
- void RestoreViewParams();
-
- void DeletePrs();
- void Rename();
- void RenameTable();
- void RenameContainer();
- void Sweep();
- void TimeAnimation();
-
- void ImportMedField();
- //void ImportMedMesh();
-
- void DeleteViewParams();
- void CopyPresentation();
-
- void SelectionInfo();
-
-private :
- QDialog* myActiveDialogBox;
- int myState ;
- VisuGUI_SelectionDlg* mySelectionDlg;
+ virtual bool deactivateModule( SUIT_Study* );
+ virtual bool activateModule( SUIT_Study* );
+
+protected slots:
+ void OnImportFromFile();
+ void OnExploreMEDFile();
+ void OnImportTableFromFile();
+ void OnExportTableToFile();
+ void OnImportMedField();
+
+ void OnCreateMesh();
+ void OnCreateScalarMap();
+ void OnCreateDeformedShape();
+ void OnCreateVectors();
+ void OnCreateIsoSurfaces();
+ void OnCreateCutPlanes();
+ void OnCreateCutLines();
+ void OnCreateStreamLines();
+ void OnCreatePlot3D();
+ void OnCreateManyMesh();
+ void OnCreatePlot2dView();
+
+ void OnEditScalarMap();
+ void OnEditDeformedShape();
+ void OnEditCutPlanes();
+ void OnEditCutLines();
+ void OnEditIsoSurfaces();
+ void OnEditVectors();
+ void OnEditStreamLines();
+ void OnEditPlot3D();
+
+ virtual void OnDisplayPrs();
+ virtual void OnDisplayOnlyPrs();
+ virtual void OnErasePrs();
+ virtual void OnEraseAll();
+
+ void OnMakeSurfaceframe();
+ void OnMakeInsideframe();
+ void OnMakeWireframe();
+ void OnMakeSurface();
+ void OnMakePoints();
+ void OnMakeShrink();
+
+ void OnSetShadingOn();
+ void OnSetShadingOff();
+
+ void OnChangeColor();
+ void OnChangeWireframeColor();
+ void OnChangeOpacity();
+ void OnChangeLines();
+
+ void OnShowTable();
+ void OnCreateTable();
+ void OnDeleteObjects();
+ void OnPlotData();
+ void OnCurveProperties();
+ void OnClearContainer();
+ void OnEditContainer();
+
+ void OnMergeScalarBars();
+ void OnFreeScalarBars();
+
+ void OnSaveViewParams();
+ void OnRestoreViewParams();
+
+ void OnRename();
+ void OnClippingPlanes();
+ void OnSweep();
+ void OnTimeAnimation();
+ void OnShowAnimation();
+
+ void OnCopyPresentation();
+
+ void OnSelectionInfo();
+
+ void OnTranslatePrs();
+ void OnArrangeActors();
+
+ void OnScaling();
+ void OnCubeAxes();
+
+protected:
+ virtual LightApp_Selection* createSelection() const;
+
+private:
+ void createActions();
+ void createMenus();
+ void createToolBars();
+ void createPopupMenus();
+
+private:
+ LightApp_Displayer* myDisplayer;
};
#endif