X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVISUGUI%2FVisuGUI.h;h=e6e1210a76e801df7d53453f296d7985bff229a1;hb=6255f79f80594409f8e726c1706941b56769c592;hp=9bed10f884c35eba421a51a8f26a7d9cb5f39d1a;hpb=de799091f3bde871c887d0bf34f9f5f1c9146de8;p=modules%2Fvisu.git diff --git a/src/VISUGUI/VisuGUI.h b/src/VISUGUI/VisuGUI.h index 9bed10f8..e6e1210a 100644 --- a/src/VISUGUI/VisuGUI.h +++ b/src/VISUGUI/VisuGUI.h @@ -1,276 +1,246 @@ -// VISU VISUGUI : GUI of VISU component +// 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. // -// 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 +// 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 // + +// VISU VISUGUI : GUI of VISU component // 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 -#endif - -#include -#include CORBA_SERVER_HEADER(VISU_Gen) -#include CORBA_SERVER_HEADER(SALOMEDS) -#include CORBA_SERVER_HEADER(SALOMEDS_Attributes) +#include -#include "QAD_Desktop.h" -class VTKViewer_ViewFrame; +#include +#include -#include "VISUConfig.hh" -class VISU_Actor; -class VISU_MeshAct; -class VISU_ScalarMapAct; -class VisuGUI_SelectionDlg; +#include "VisuGUI_Panel.h" -#include -class vtkRenderer; +#include +#include -#include -#include -#include "SALOME_ListIteratorOfListIO.hxx" +class SUIT_ViewManager; +class VisuGUI_Slider; +class VisuGUI_Sweep; -#include "SALOMEGUI.h" +namespace VISU +{ + class Prs3d_i; + typedef std::pair TPrs3dToInd; // prs pointer and default index of scalar bar placement + typedef std::set TSetPrs3d; + typedef std::map TViewToPrs3d; +} -namespace VISU{ - class VISU_Gen_i; +class VisuGUI: public SalomeApp_Module +{ + Q_OBJECT; - class Result_i; +public: + enum PanelId { SelectionPanelId = 0, + FeatureEdgesPanelId, + ClippingPlanesPanelId }; - 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; -} +public: + VisuGUI(); + virtual ~VisuGUI(); -// ====================================================================== -// CLASS VIUSGUI -// ====================================================================== -// + virtual LightApp_Displayer* displayer(); + virtual void initialize( CAM_Application* ); + virtual void windows( QMap& ) const; + virtual void viewManagers( QStringList& ) const; -class VisuGUI : public SALOMEGUI{ - 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); + virtual QString engineIOR() const; + + virtual void studyActivated(); + + virtual void contextMenuPopup( const QString& theClient, QMenu* theMenu, QString& theTitle ); + + virtual void createPreferences(); + virtual void preferencesChanged( const QString&, const QString& ); + + virtual + SUIT_ViewManager* + getViewManager(const QString& theType, + const bool theIsCreate); + + VISU::TViewToPrs3d& + getScalarBarsMap(); + + virtual bool renameAllowed( const QString& ) const; + virtual bool renameObject( const QString&, const QString& ); - 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)&); - 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); + +signals: + void moduleDeactivated(); + void moduleActivated(); + void presentationCreated(VISU::Prs3d_i* thePrs); + void beforeObjectDelete(QString theEntry); 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(); + virtual bool deactivateModule( SUIT_Study* ); + virtual bool activateModule( SUIT_Study* ); + virtual void OnEraseAll(); + +protected slots: + void OnImportFromFile(); + void OnImportFromSauvFile(); + void OnImportTableFromFile(); + void OnExportTableToFile(); + void OnImportMedField(); + + void OnLoadComponentData(); + + void OnCreateMesh(); + void OnCreateScalarMap(); + void OnCreateDeformedShape(); + void OnCreateVectors(); + void OnCreateIsoSurfaces(); + void OnCreateCutPlanes(); + void OnCreateCutLines(); + void OnCreateCutSegment(); + void OnCreateStreamLines(); + void OnCreatePlot3D(); + void OnCreateManyMesh(); + void OnCreatePlot2dView(); + void OnCreateDeformedShapeAndScalarMap(); + + void OnEditScalarMap(); + void OnEditDeformedShape(); + void OnEditCutPlanes(); + void OnEditCutLines(); + void OnEditCutSegment(); + void OnEditIsoSurfaces(); + void OnEditVectors(); + void OnEditStreamLines(); + void OnEditPlot3D(); + void OnEditDeformedShapeAndScalarMap(); + + virtual void OnDisplayPrs(); + virtual void OnDisplayOnlyPrs(); + virtual void OnErasePrs(); + // virtual void OnEraseAll(); + + void OnToggleSelectionPanel(); + void OnSwitchSelectionMode(); + void OnSwitchSelectionMode( int ); + + void OnMakeSurfaceframe(); + void OnMakeInsideframe(); + void OnMakeWireframe(); + void OnMakeSurface(); + void OnMakePoints(); + void OnMakeShrink(); + + void OnMakeFeatureEdges(); + + void OnSetShadingOn(); + void OnSetShadingOff(); + + void OnChangeColor(); + void OnChangeWireframeColor(); + void OnChangeOpacity(); + void OnChangeLines(); + void OnChangePointMarker(); + void OnChangeShrinkFactor(); + + void OnShowTable(); + void OnShowTablePlot(); + void OnShowScalarBar(); + void OnHideScalarBar(); + void OnCreateTable(); + void OnDeleteObjects(); + void OnPlotData(); + void OnCurveProperties(); + void OnCurveScale(); + void OnClearContainer(); + void OnEditContainer(); + + void OnMergeScalarBars(); + void OnFreeScalarBars(); + + virtual void OnSaveViewParams(); + virtual void OnRestoreViewParams(); + + void OnClippingPlanes(); + void OnSweep(); + void OnParallelTimeAnimation(); + void OnSucccessiveTimeAnimation(); + void OnShowAnimation(); + + void OnPointEvolution(); + void OnShowEvolution(); + + void OnCopyPresentation(); + + void OnTranslatePrs(); + void OnArrangeActors(); + void OnPlot3dFromCutPlane(); + + void OnManageCache(); + + void OnFilterScalars(); - void DeletePrs(); - void Rename(); - void RenameTable(); - void RenameContainer(); - void Sweep(); - void TimeAnimation(); - - void ImportMedField(); - //void ImportMedMesh(); - - void DeleteViewParams(); - void CopyPresentation(); + void OnValuesLabeling(); + void OnValuesLabelingParams(); + + void OnArcQuadMode(); + void OnLineQuadMode(); + + void OnShowDeviation(); + + // MULTIPR + void OnMultiprViewFullRes(); + void OnMultiprViewMediumRes(); + void OnMultiprViewLowRes(); + void OnMultiprViewHide(); + void OnMultiprChangeRes(VISU::Result::Resolution theResolution); + + void OnFileInfo(); + void OnExportMED(); + +protected: + virtual LightApp_Selection* createSelection() const; + + virtual void processPresentationCreated( VISU::Prs3d_i* thePrs ); + + void OnTimeAnimation(VISU::Animation::AnimationMode theMode); + +private: + void createActions(); + void createMenus(); + void createToolBars(); + void createPopupMenus(); + void createPanels(); + void SetScalarBarVisibility( bool ); + void activateAppropriateViewer( Handle(SALOME_InteractiveObject) theIO ); + int addVtkFontPref( const QString& label, const int pId, const QString& param, const bool useSize ); - void SelectionInfo(); +private: + QMap myPanels; + VisuGUI_Slider* mySlider; + VisuGUI_Sweep* mySweep; -private : - QDialog* myActiveDialogBox; - int myState ; - VisuGUI_SelectionDlg* mySelectionDlg; + LightApp_Displayer* myDisplayer; + VISU::TViewToPrs3d myScalarBarsMap; }; #endif