-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2022 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
double scaleY;
double scaleZ;
QString name;
+ // trihedron
bool isVisible;
double size;
+ // view cube
+ bool vcIsVisible;
// graduated trihedron
bool gtIsVisible;
bool gtDrawNameX;
name(),
isVisible( false ),
size( 0.0 ),
+ vcIsVisible( false ),
gtIsVisible( false ),
gtDrawNameX( false ), gtDrawNameY( false ), gtDrawNameZ( false ),
gtNameX(), gtNameY(), gtNameZ(),
Q_OBJECT
public:
- enum { DumpId, FitAllId, FitRectId, ZoomId, PanId, GlobalPanId,
- ChangeRotationPointId, RotationId,
- FrontId, BackId, TopId, BottomId, LeftId, RightId, ClockWiseId, AntiClockWiseId,
- ResetId, CloneId, ClippingId, MemId, RestoreId,
- TrihedronShowId, AxialScaleId, GraduatedAxesId, AmbientId,
- SwitchInteractionStyleId, SwitchZoomingStyleId,
- SwitchPreselectionId, SwitchSelectionId,
- MaximizedId, SynchronizeId, ReturnTo3dViewId,
- UserId };
-
- enum OperationType{ NOTHING, PANVIEW, ZOOMVIEW, ROTATE,
- PANGLOBAL, WINDOWFIT, FITALLVIEW, RESETVIEW,
+ enum ActionId { DumpId, FitAllId, FitRectId, FitSelectionId, ZoomId, PanId, GlobalPanId,
+ ChangeRotationPointId, RotationId,
+ FrontId, BackId, TopId, BottomId, LeftId, RightId, ClockWiseId, AntiClockWiseId,
+ ResetId, CloneId, ClippingId, MemId, RestoreId,
+ TrihedronShowId, AxialScaleId, GraduatedAxesId, AmbientId,
+ SwitchInteractionStyleId, SwitchZoomingStyleId,
+ SwitchPreselectionId, SwitchSelectionId,
+ MaximizedId, SynchronizeId, ReturnTo3dViewId,
+ OrthographicId, PerspectiveId, StereoId, RayTracingId, EnvTextureId, LightSourceId,
+ RectangleSelectionStyleId, PolygonSelectionStyleId, CircleSelectionStyleId,
+ ViewCubeShowId,
+ UserId };
+
+ enum OperationType{ NOVIEWOP, 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 SelectionStyle { RectStyle, PolygonStyle, CyrcleStyle };
+ 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();
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,
virtual void setVisualParameters( const QString& parameters );
virtual void initSketchers();
- virtual OCCViewer_ViewSketcher* getSketcher( const int );
+ virtual OCCViewer_ViewSketcher* getSketcher( const int ) const;
virtual void activateSketching( int );
virtual bool isSelectionEnabled() const;
virtual void enableSelection( bool );
+ virtual int projectionType() const;
+ virtual void setProjectionType( int );
+
+ virtual SelectionStyle selectionStyle() const;
+ virtual void setSelectionStyle(SelectionStyle);
+
+ 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; }
virtual QColor backgroundColor() const; // obsolete
virtual void setBackgroundColor( const QColor& ); // obsolete
+ virtual void showStaticTrihedron( bool );
+
virtual Qtx::BackgroundData background() const;
virtual void setBackground( const Qtx::BackgroundData& );
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();
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();
virtual void activateZoom();
virtual void activateWindowFit();
virtual void activateRotation();
virtual void onAmbientToogle();
virtual void onMemorizeView();
virtual void onRestoreView();
- virtual void onTrihedronShow();
+ virtual void onTrihedronShow(bool);
+ virtual void onViewCubeShow(bool);
virtual void setRestoreFlag();
virtual void onSwitchInteractionStyle( bool on );
virtual void onSwitchZoomingStyle( bool on );
virtual void onSwitchPreselection( bool on );
virtual void onSwitchSelection( bool on );
+ virtual void onSwitchSelectionStyle(QAction* theAction);
+ virtual void onRayTracing();
+ virtual void onEnvTexture();
+ virtual void onLightSource();
+ virtual void onPanning();
virtual void activateSetRotationGravity();
virtual void activateSetRotationSelected( double theX, double theY, double theZ );
protected:
virtual QString filter() const;
+ bool isOpenGlStereoSupport() const;
+
/* Transformation selected but not started yet */
bool transformRequested() const;
bool setTransformRequested ( OperationType );
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();
virtual OCCViewer_ViewSketcher* createSketcher( int );
+ void saveCursor();
+
OCCViewer_ViewSketcher* mypSketcher;
QList<OCCViewer_ViewSketcher*> mySketchers;
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;
Handle(V3d_Plane) myReserveClipPlane;
viewAspectList myViewAspects;
+ bool myPanningByBtn;
};
#ifdef WIN32