X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IViewer.h;h=374e526bdd865975a8e13ab803735f612e3741db;hb=49d5a27258260087aad5e7ca30d6863e08a186d1;hp=3e557504aeb061377a6168f5aed1f3eda32bbc06;hpb=716f7ba09656559d4059bb68a30c8d4ec2fcadad;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IViewer.h b/src/ModuleBase/ModuleBase_IViewer.h index 3e557504a..374e526bd 100644 --- a/src/ModuleBase/ModuleBase_IViewer.h +++ b/src/ModuleBase/ModuleBase_IViewer.h @@ -8,6 +8,7 @@ #include #include #include +#include class QMouseEvent; class QKeyEvent; @@ -17,7 +18,7 @@ class ModuleBase_IViewWindow; /** * \ingroup GUI * A Base object for definition of connector object to - * Salome Viewer. Reimplemented in NewGeom_SalomeViewer class + * Salome Viewer. Reimplemented in SHAPERGUI_SalomeViewer class */ class MODULEBASE_EXPORT ModuleBase_IViewer : public QObject { @@ -25,20 +26,23 @@ Q_OBJECT public: /// Constructor /// \param theParent a parent object - ModuleBase_IViewer(QObject* theParent) - : QObject(theParent) - { - } + ModuleBase_IViewer(QObject* theParent); //! Returns AIS_InteractiveContext from current OCCViewer virtual Handle(AIS_InteractiveContext) AISContext() const = 0; + //! Trihedron 3d object shown in the viewer + virtual Handle(AIS_Trihedron) trihedron() const = 0; + //! Retrurns V3d_Vioewer from current viewer virtual Handle(V3d_Viewer) v3dViewer() const = 0; //! Returns Vsd_View object from currently active view window virtual Handle(V3d_View) activeView() const = 0; + //! Returns currently active view port widget + virtual QWidget* activeViewPort() const = 0; + //! Enable or disable selection in the viewer //! \param isEnabled is enable or disable flag virtual void enableSelection(bool isEnabled) = 0; @@ -53,6 +57,9 @@ Q_OBJECT //! Returns true if multiselection is enabled virtual bool isMultiSelectionEnabled() const = 0; + //! Enable or disable draw mode in the viewer + virtual bool enableDrawMode(bool isEnabled) = 0; + //! Perfroms the fit all for the active view virtual void fitAll() = 0; @@ -60,7 +67,9 @@ Q_OBJECT /// \param theX the X projection value /// \param theY the Y projection value /// \param theZ the Z projection value - virtual void setViewProjection(double theX, double theY, double theZ) = 0; + /// \param theTwist the twist angle in radians + virtual void setViewProjection( double theX, double theY, double theZ, + double theTwist ) = 0; /// Add selection filter to the viewer /// \param theFilter a selection filter @@ -80,6 +89,8 @@ Q_OBJECT /// Update current viewer virtual void update() = 0; + /// Returns a scale factor of the given view + /// \param theView a view object const double Scale(const Handle(V3d_View)& theView) { if (!myWindowScale.contains(theView)) @@ -87,13 +98,16 @@ Q_OBJECT return myWindowScale[theView]; } + /// Remember a scale factor for the view object + /// \param theView a view object + /// \param theVal a scale factor void SetScale(const Handle(V3d_View)& theView, const double theVal) { myWindowScale[theView] = theVal; } /// Method returns True if the viewer can process editing objects /// by mouse drugging. If this is impossible thet it has to return False. virtual bool canDragByMouse() const { return true; } - // Fit all along Z (perpendicular to display) + /// Fit all along Z (perpendicular to display) virtual void Zfitall() = 0; signals: @@ -140,7 +154,11 @@ signals: /// \param theTransformation type of transformation (see AppElements_ViewWindow::OperationType) void viewTransformed(int theTransformation); + /// Signal emited on selection changed + void trihedronVisibilityChanged(bool theState); + protected: + /// A map for storing a scale factors dependent on view object QMap myWindowScale; };