Salome HOME
3b5ea5303265a1044461abf69d204919e6c44ba6
[modules/gui.git] / src / OCCViewer / OCCViewer_ViewPort3d.h
1 #ifndef OCCVIEWER_VIEWPORT3D_H
2 #define OCCVIEWER_VIEWPORT3D_H
3
4 #include "OCCViewer_ViewPort.h"
5
6 #include <qcolor.h>
7
8 #include <V3d_View.hxx>
9 #include <V3d_Viewer.hxx>
10
11 class QRect;
12
13 class OCCVIEWER_EXPORT OCCViewer_ViewPort3d: public OCCViewer_ViewPort
14 {
15         Q_OBJECT
16
17   friend class OCCViewer_ViewTransformer;
18
19 public:
20         OCCViewer_ViewPort3d( QWidget*, const Handle(V3d_Viewer)&, V3d_TypeOfView = V3d_ORTHOGRAPHIC );
21         virtual ~OCCViewer_ViewPort3d();
22
23 public:
24         Handle(V3d_View)        getView() const;
25   Handle(V3d_View)                  setView( const Handle(V3d_View)& );
26         Handle(V3d_Viewer)      getViewer() const;
27
28   void setAnimationMode(bool theDegenerated);
29
30         virtual void                    setBackgroundColor( const QColor& color);
31   virtual QColor        backgroundColor() const;
32
33 //   void         setActive( V3d_TypeOfView );
34   virtual bool syncronize( const OCCViewer_ViewPort3d* );
35
36   double getZSize() const;
37   void   setZSize( double );
38
39   virtual void onUpdate();
40
41   // TRANSFORMATIONS
42   virtual void          reset();
43   virtual void          pan( int , int );
44         virtual void            setCenter( int , int );
45         virtual void            fitRect( const QRect& );
46         virtual void            zoom( int, int, int, int );
47   virtual void          fitAll( bool keepScale = false, bool withZ = true, bool upd = true );
48
49         void                    startRotation( int, int );
50         void                    rotate( int, int );
51         void                    endRotation();
52
53 protected:
54     // EVENTS
55         virtual void                    paintEvent( QPaintEvent* );
56   virtual void      resizeEvent( QResizeEvent* );
57
58 private:
59         Handle(V3d_View) activeView() const;
60         Handle(V3d_View) inactiveView() const;
61         bool             mapView( const Handle(V3d_View)& );
62         bool               setWindow( const Handle(V3d_View)& );
63         bool                                       mapped( const Handle(V3d_View)& ) const;
64
65 private:
66   Handle(V3d_View)              myOrthoView;
67   Handle(V3d_View)              myPerspView;
68   Handle(V3d_View)              myActiveView;
69         bool            myDegenerated;
70   bool    myAnimate;
71         double  myScale;
72 };
73
74 #endif