-// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015 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
#include "SUIT_ViewWindow.h"
#include <gp_Pnt.hxx>
#include <V3d_Plane.hxx>
+#include <TopAbs_ShapeEnum.hxx>
class QtxRectRubberBand;
class SUIT_Desktop;
struct viewAspect
{
public:
- double scale;
- double centerX;
- double centerY;
- double projX;
- double projY;
- double projZ;
- double twist;
- double atX;
- double atY;
- double atZ;
- double eyeX;
- double eyeY;
- double eyeZ;
- double scaleX;
- double scaleY;
- double scaleZ;
- QString name;
- bool isVisible;
- double size;
- // graduated trihedron
- bool gtIsVisible;
- bool gtDrawNameX;
- bool gtDrawNameY;
- bool gtDrawNameZ;
- QString gtNameX;
- QString gtNameY;
- QString gtNameZ;
- int gtNameColorRX;
- int gtNameColorGX;
- int gtNameColorBX;
- int gtNameColorRY;
- int gtNameColorGY;
- int gtNameColorBY;
- int gtNameColorRZ;
- int gtNameColorGZ;
- int gtNameColorBZ;
- bool gtDrawValuesX;
- bool gtDrawValuesY;
- bool gtDrawValuesZ;
- int gtNbValuesX;
- int gtNbValuesY;
- int gtNbValuesZ;
- int gtOffsetX;
- int gtOffsetY;
- int gtOffsetZ;
- int gtColorRX;
- int gtColorGX;
- int gtColorBX;
- int gtColorRY;
- int gtColorGY;
- int gtColorBY;
- int gtColorRZ;
- int gtColorGZ;
- int gtColorBZ;
- bool gtDrawTickmarksX;
- bool gtDrawTickmarksY;
- bool gtDrawTickmarksZ;
- int gtTickmarkLengthX;
- int gtTickmarkLengthY;
- int gtTickmarkLengthZ;
+ double scale;
+ double centerX; // deprecated since OCCT 6.7.1
+ double centerY; // deprecated since OCCT 6.7.1
+ double projX;
+ double projY;
+ double projZ;
+ double twist;
+ double atX;
+ double atY;
+ double atZ;
+ double eyeX;
+ double eyeY;
+ double eyeZ;
+ double scaleX;
+ double scaleY;
+ double scaleZ;
+ QString name;
+ bool isVisible;
+ double size;
+ // graduated trihedron
+ bool gtIsVisible;
+ bool gtDrawNameX;
+ bool gtDrawNameY;
+ bool gtDrawNameZ;
+ QString gtNameX;
+ QString gtNameY;
+ QString gtNameZ;
+ int gtNameColorRX;
+ int gtNameColorGX;
+ int gtNameColorBX;
+ int gtNameColorRY;
+ int gtNameColorGY;
+ int gtNameColorBY;
+ int gtNameColorRZ;
+ int gtNameColorGZ;
+ int gtNameColorBZ;
+ bool gtDrawValuesX;
+ bool gtDrawValuesY;
+ bool gtDrawValuesZ;
+ int gtNbValuesX;
+ int gtNbValuesY;
+ int gtNbValuesZ;
+ int gtOffsetX;
+ int gtOffsetY;
+ int gtOffsetZ;
+ int gtColorRX;
+ int gtColorGX;
+ int gtColorBX;
+ int gtColorRY;
+ int gtColorGY;
+ int gtColorBY;
+ int gtColorRZ;
+ int gtColorGZ;
+ int gtColorBZ;
+ bool gtDrawTickmarksX;
+ bool gtDrawTickmarksY;
+ bool gtDrawTickmarksZ;
+ int gtTickmarkLengthX;
+ int gtTickmarkLengthY;
+ int gtTickmarkLengthZ;
+
+public:
+ viewAspect()
+ : scale( 0.0 ),
+ centerX( 0.0 ), centerY( 0.0 ),
+ projX( 0.0 ), projY( 0.0 ), projZ( 0.0 ),
+ twist( 0.0 ),
+ atX( 0.0 ), atY( 0.0 ), atZ( 0.0 ),
+ eyeX( 0.0 ), eyeY( 0.0 ), eyeZ( 0.0 ),
+ scaleX( 0.0 ), scaleY( 0.0 ), scaleZ( 0.0 ),
+ name(),
+ isVisible( false ),
+ size( 0.0 ),
+ gtIsVisible( false ),
+ gtDrawNameX( false ), gtDrawNameY( false ), gtDrawNameZ( false ),
+ gtNameX(), gtNameY(), gtNameZ(),
+ gtNameColorRX( 0 ), gtNameColorGX( 0 ), gtNameColorBX( 0 ),
+ gtNameColorRY( 0 ), gtNameColorGY( 0 ), gtNameColorBY( 0 ),
+ gtNameColorRZ( 0 ), gtNameColorGZ( 0 ), gtNameColorBZ( 0 ),
+ gtDrawValuesX( false ), gtDrawValuesY( false ), gtDrawValuesZ( false ),
+ gtNbValuesX( 0 ), gtNbValuesY( 0 ), gtNbValuesZ( 0 ),
+ gtOffsetX( 0 ), gtOffsetY( 0 ), gtOffsetZ( 0 ),
+ gtColorRX( 0 ), gtColorGX( 0 ), gtColorBX( 0 ),
+ gtColorRY( 0 ), gtColorGY( 0 ), gtColorBY( 0 ),
+ gtColorRZ( 0 ), gtColorGZ( 0 ), gtColorBZ( 0 ),
+ gtDrawTickmarksX( false ), gtDrawTickmarksY( false ), gtDrawTickmarksZ( false ),
+ gtTickmarkLengthX( 0 ), gtTickmarkLengthY( 0 ), gtTickmarkLengthZ( 0 ) {}
};
typedef QList<viewAspect> viewAspectList;
Q_OBJECT
public:
- enum { DumpId, FitAllId, FitRectId, ZoomId, PanId, GlobalPanId,
+ enum { DumpId, FitAllId, FitRectId, FitSelectionId, ZoomId, PanId, GlobalPanId,
ChangeRotationPointId, RotationId,
FrontId, BackId, TopId, BottomId, LeftId, RightId, ClockWiseId, AntiClockWiseId,
ResetId, CloneId, ClippingId, MemId, RestoreId,
SwitchInteractionStyleId, SwitchZoomingStyleId,
SwitchPreselectionId, SwitchSelectionId,
MaximizedId, SynchronizeId, ReturnTo3dViewId,
+ OrthographicId, PerspectiveId, StereoId, RayTracingId, EnvTextureId, LightSourceId,
UserId };
enum OperationType{ NOTHING, PANVIEW, ZOOMVIEW, ROTATE,
- PANGLOBAL, WINDOWFIT, FITALLVIEW, RESETVIEW,
+ PANGLOBAL, WINDOWFIT, FITALLVIEW, FITSELECTION, RESETVIEW,
FRONTVIEW, BACKVIEW, TOPVIEW, BOTTOMVIEW, LEFTVIEW, RIGHTVIEW,
- CLOCKWISEVIEW, ANTICLOCKWISEVIEW };
+ CLOCKWISEVIEW, ANTICLOCKWISEVIEW, PROJECTION };
enum RotationPointType{ GRAVITY, 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();
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 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 );
+
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 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 setRestoreFlag();
virtual void onSwitchInteractionStyle( bool on );
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 activateSetRotationGravity();
virtual void activateSetRotationSelected( double theX, double theY, double theZ );
- virtual void activateStartPointSelection();
+ virtual void activateStartPointSelection( TopAbs_ShapeEnum );
virtual void updateGravityCoords();
virtual void showEvent( QShowEvent * );
protected:
virtual QString filter() const;
+ bool isOpenGlStereoSupport() const;
+
/* Transformation selected but not started yet */
bool transformRequested() const;
bool setTransformRequested ( OperationType );
void createActions();
void createToolBar();
-
+
virtual OperationType getButtonState(QMouseEvent* theEvent, int theInteractionStyle);
viewAspect getViewParams() const;
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;