ee57227eb3e7142cc9c2323fe3ce6d5385e3f45c
[occt.git] / samples / qt / VoxelDemo / inc / Viewer.h
1 #ifndef _VIEWER_H_
2 #define _VIEWER_H_
3
4 #if _MSC_VER > 1000
5 #pragma once
6 #endif // _MSC_VER > 1000
7
8 #include <QWidget.h>
9
10 #include <AIS_InteractiveContext.hxx>
11 #include <V3d_View.hxx>
12
13 #include <Voxel_Prs.hxx>
14 #include <Voxel_Selector.hxx>
15
16 class Viewer : public QWidget 
17 {
18         
19         Q_OBJECT
20
21 public:
22
23         Viewer(QWidget* parent);
24         virtual ~Viewer();
25
26         Handle(AIS_InteractiveContext) getIC() const { return myIC; }
27         Handle(V3d_View) getView() const { return myView; }
28     Voxel_Selector& getSelector() { return mySelector; }
29     void setPrs(const Handle(Voxel_Prs)& prs) { myPrs = prs; }
30         virtual QPaintEngine*          paintEngine() const;
31
32 signals:
33         
34         void mousePressed(Qt::KeyboardModifiers,int,int);
35         void mouseMoved(Qt::KeyboardModifiers,int,int);
36         void mouseReleased(Qt::KeyboardModifiers,int,int);
37         void mouseDoubleClick(Qt::KeyboardModifiers,int,int);
38
39 protected:
40         virtual void paintEvent(QPaintEvent* pEvent);
41         virtual void resizeEvent(QResizeEvent* rsEvent);
42         virtual void mousePressEvent(QMouseEvent* mpEvent);
43         virtual void mouseMoveEvent(QMouseEvent* mmEvent);
44         virtual void mouseReleaseEvent(QMouseEvent* mrEvent);
45         virtual void mouseDoubleClickEvent(QMouseEvent* mdcEvent);
46
47 private:
48         Handle(AIS_InteractiveContext) myIC;
49         Handle(V3d_View)               myView;
50
51         bool myRotate;
52         bool myZoom;
53         bool myPan;
54
55         QPoint myStartPnt;
56
57     void setDegenerateMode(const bool );
58
59     Voxel_Selector mySelector;
60     Handle(Voxel_Prs) myPrs;
61 };
62
63 #endif // _VIEWER_H_