X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IViewer.h;h=17c3723afa8b602ffca77c6e3d23dc42e482dfb1;hb=745c72679f6346375d5e886b25cc3865f3c4daae;hp=c58173af9169b6146c9a1a7b93685e136113fc7e;hpb=dc75c390f0aa6108d6983a8618dc4b9a4cd5949e;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IViewer.h b/src/ModuleBase/ModuleBase_IViewer.h index c58173af9..17c3723af 100644 --- a/src/ModuleBase/ModuleBase_IViewer.h +++ b/src/ModuleBase/ModuleBase_IViewer.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2021 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -12,16 +12,16 @@ // // 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 +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef ModuleBase_IViewer_H #define ModuleBase_IViewer_H #include "ModuleBase.h" + #include #include #include @@ -32,6 +32,11 @@ class QMouseEvent; class QKeyEvent; class QContextMenuEvent; class ModuleBase_IViewWindow; +#ifdef HAVE_SALOME +class OCCViewer_Fitter; +#else +class AppElements_Fitter; +#endif /** * \ingroup GUI @@ -129,8 +134,80 @@ Q_OBJECT /// Fit all along Z (perpendicular to display) //virtual void Zfitall() = 0; + /// Show highlight for pre-highlighted sub-shape + virtual void updateHighlight() {} + + /// Set flag which indicates that viewer is used for 2d operations + /// \param is2d a new 2d mode state + void set2dMode(bool is2d) { + myIs2dMode = is2d; + } + + /// Returns current state of 2d mode flag + bool is2dMode() const { + return myIs2dMode; + } + + // Methods for color scale management + + //! Returns True if ColorScale is visible + virtual bool isColorScaleVisible() const = 0; + + //! Show/Hide ColorScale object + virtual void setColorScaleShown(bool on) = 0; + + //! Set position of color scale + // \param theX is X position relative to current view width + // \param theY is Y position relative to current view heigth + virtual void setColorScalePosition(double theX, double theY) = 0; + + //! Set size of color scale + // \param theW is width relative to current view width + // \param theh is height relative to current view heigth + virtual void setColorScaleSize(double theW, double theH) = 0; + + //! Set range of color scale + // \param theMin is a minimal value + // \param theMax is a maximal value + virtual void setColorScaleRange(double theMin, double theMax) = 0; + + //! Set number of intervals of color scale + // \param theNb is number of intervals + virtual void setColorScaleIntervals(int theNb) = 0; + + //! Set text heigth of color scale + // \param theH is number of intervals + virtual void setColorScaleTextHeigth(int theH) = 0; + + //! Set color of text of color scale + // \param theH is number of intervals + virtual void setColorScaleTextColor(const QColor& theColor) = 0; + + //! Set title of color scale + // \param theText is a title + virtual void setColorScaleTitle(const QString& theText) = 0; + + /// Switches On additional highlight for objects preselection + void showSelectionHighlight() { + myShowHighlight = true; + } + + /// Switches Off additional highlight for objects preselection + void hideSelectionHighlight() { + myShowHighlight = false; + } + +#ifdef HAVE_SALOME + virtual void setFitter(OCCViewer_Fitter* theFitter) = 0; + virtual OCCViewer_Fitter* fitter() const = 0; +#else + virtual void setFitter(AppElements_Fitter* theFitter) = 0; + virtual AppElements_Fitter* fitter() const = 0; +#endif + static Handle(Prs3d_Drawer) DefaultHighlightDrawer; + signals: /// Signal emited when last view window is closed void lastViewClosed(); @@ -182,6 +259,9 @@ signals: /// A map for storing a scale factors dependent on view object QMap myWindowScale; + bool myIs2dMode; + + bool myShowHighlight; }; #endif