X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FOCCViewer%2FOCCViewer_ViewWindow.h;h=6375da086929097ab374234792fd1a86364dc243;hb=fd22340460025ea5a2b068a75787c8666324238b;hp=088249714aaa3d344fc6d20120fd50ff800ef7f9;hpb=a683fa08752d7aca288d306202058d1e263209bf;p=modules%2Fgui.git diff --git a/src/OCCViewer/OCCViewer_ViewWindow.h b/src/OCCViewer/OCCViewer_ViewWindow.h old mode 100755 new mode 100644 index 088249714..6375da086 --- a/src/OCCViewer/OCCViewer_ViewWindow.h +++ b/src/OCCViewer/OCCViewer_ViewWindow.h @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2019 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 @@ -143,7 +143,7 @@ class OCCVIEWER_EXPORT OCCViewer_ViewWindow : public SUIT_ViewWindow Q_OBJECT public: - enum { DumpId, FitAllId, FitRectId, FitSelectionId, ZoomId, PanId, GlobalPanId, + enum ActionId { DumpId, FitAllId, FitRectId, FitSelectionId, ZoomId, PanId, GlobalPanId, ChangeRotationPointId, RotationId, FrontId, BackId, TopId, BottomId, LeftId, RightId, ClockWiseId, AntiClockWiseId, ResetId, CloneId, ClippingId, MemId, RestoreId, @@ -151,19 +151,27 @@ public: SwitchInteractionStyleId, SwitchZoomingStyleId, SwitchPreselectionId, SwitchSelectionId, MaximizedId, SynchronizeId, ReturnTo3dViewId, + OrthographicId, PerspectiveId, StereoId, RayTracingId, EnvTextureId, LightSourceId, UserId }; enum OperationType{ NOTHING, PANVIEW, ZOOMVIEW, ROTATE, PANGLOBAL, WINDOWFIT, FITALLVIEW, FITSELECTION, RESETVIEW, FRONTVIEW, BACKVIEW, TOPVIEW, BOTTOMVIEW, LEFTVIEW, RIGHTVIEW, - CLOCKWISEVIEW, ANTICLOCKWISEVIEW }; + CLOCKWISEVIEW, ANTICLOCKWISEVIEW, PROJECTION }; - enum RotationPointType{ GRAVITY, SELECTED }; + enum RotationPointType{ BBCENTER, SELECTED }; enum SketchingType { NoSketching, Rect, Polygon }; - enum Mode2dType { No2dMode, XYPlane, XZPlane, YZPlane}; + enum Mode2dType { No2dMode, XYPlane, XZPlane, YZPlane }; + enum ProjectionType { Orthographic, Perspective, Stereo }; + + enum StereoType { QuadBuffer, Anaglyph, RowInterlaced, ColumnInterlaced, ChessBoard, SideBySide, OverUnder, SoftPageFlip, NumberOfModes }; + + enum AnaglyphFilter { RedCyan, YellowBlue, GreenMagenta }; + + enum FocusIODType { Absolute, Relative }; OCCViewer_ViewWindow(SUIT_Desktop* theDesktop, OCCViewer_Viewer* theModel); virtual ~OCCViewer_ViewWindow(); @@ -178,6 +186,8 @@ public: virtual void initLayout(); + virtual bool enableDrawMode( bool ); + virtual void updateEnabledDrawMode(); virtual void setCuttingPlane( bool on, const double x = 0 , const double y = 0 , const double z = 0, @@ -206,10 +216,38 @@ public: virtual bool isSelectionEnabled() const; virtual void enableSelection( bool ); + virtual int projectionType() const; + virtual void setProjectionType( int ); + + virtual int stereoType() const; + virtual void setStereoType( const int ); + + virtual int anaglyphFilter() const; + virtual void setAnaglyphFilter( const int ); + + virtual void setStereographicFocus( const int, const double ); + virtual int stereographicFocusType() const; + virtual double stereographicFocusValue() const; + + virtual void setInterocularDistance( const int, const double ); + virtual int interocularDistanceType() const; + virtual double interocularDistanceValue() const; + + virtual bool isReverseStereo() const; + virtual void setReverseStereo( const bool ); + + virtual bool isVSync() const; + virtual void setVSync( const bool ); + + virtual bool isQuadBufferSupport() const; + virtual void setQuadBufferSupport( const bool ); + + virtual bool isAutomaticZoom() const; + virtual void setAutomaticZoom( const bool ); + void setTransformEnabled( const OperationType, const bool ); bool transformEnabled( const OperationType ) const; - void set2dMode( Mode2dType ); Mode2dType get2dMode() const { return my2dMode; } @@ -235,6 +273,11 @@ public: virtual SUIT_CameraProperties cameraProperties(); + bool isActionVisible( ActionId theId ) const; + void setActionVisible( ActionId theId, bool isVisible ); + + void resetState(); + public slots: virtual void onFrontView(); virtual void onViewFitAll(); @@ -246,6 +289,9 @@ public slots: virtual void onRightView(); virtual void onClockWiseView(); virtual void onAntiClockWiseView(); + virtual void onProjectionType( QAction* theAction ); + virtual void onStereoType( bool activate ); + virtual void onProjectionType(); virtual void onResetView(); virtual void onFitAll(); virtual void onFitSelection(); @@ -267,6 +313,10 @@ public slots: virtual void onSwitchZoomingStyle( bool on ); virtual void onSwitchPreselection( bool on ); virtual void onSwitchSelection( bool on ); + virtual void onRayTracing(); + virtual void onEnvTexture(); + virtual void onLightSource(); + virtual void onPanning(); virtual void activateSetRotationGravity(); virtual void activateSetRotationSelected( double theX, double theY, double theZ ); @@ -299,6 +349,8 @@ public: protected: virtual QString filter() const; + bool isOpenGlStereoSupport() const; + /* Transformation selected but not started yet */ bool transformRequested() const; bool setTransformRequested ( OperationType ); @@ -311,19 +363,20 @@ protected: void vpMouseReleaseEvent(QMouseEvent* theEvent); void vpMouseMoveEvent(QMouseEvent* theEvent); - void resetState(); void drawRect(); void endDrawRect(); void createActions(); void createToolBar(); - + virtual OperationType getButtonState(QMouseEvent* theEvent, int theInteractionStyle); viewAspect getViewParams() const; bool computeGravityCenter( double& theX, double& theY, double& theZ ); + void projAndPanToGravity(V3d_TypeOfOrientation CamOri); + virtual void onSketchingStarted(); virtual void onSketchingFinished(); @@ -358,10 +411,11 @@ protected: bool myCursorIsHand; bool myDrawRect; // set when a rect is used for selection or magnify bool myEnableDrawMode; + bool myDrawRectEnabled; bool myPaintersRedrawing; // set to draw with external painters bool IsSketcherStyle; bool myIsKeyFree; - + bool myAutomaticZoom; QCursor myCursor; double myCurScale; @@ -386,6 +440,7 @@ private: Handle(V3d_Plane) myReserveClipPlane; viewAspectList myViewAspects; + bool myPanningByBtn; }; #ifdef WIN32