Integration of OCCT 6.5.0 from SVN
[occt.git] / samples / mfc / standard / 04_Viewer3d / src / Viewer3dDoc.h
1 // Viewer3dDoc.h : interface of the CViewer3dDoc class
2 //
3 /////////////////////////////////////////////////////////////////////////////
4
5 #if !defined(AFX_VIEWERDOC_H__4EF39FBA_4EBB_11D1_8D67_0800369C8A03__INCLUDED_)
6 #define AFX_VIEWERDOC_H__4EF39FBA_4EBB_11D1_8D67_0800369C8A03__INCLUDED_
7
8 #if _MSC_VER >= 1000
9 #pragma once
10 #endif // _MSC_VER >= 1000
11
12 #include "OCCDemo_Presentation.h"
13 #include "OffsetDlg.h"
14 #include "OCC_3dDoc.h"
15 #include "ResultDialog.h"
16 #include "User_Cylinder.hxx"
17
18
19 #include <AIS_Trihedron.hxx>
20 #include <AIS_InteractiveContext.hxx>
21 #include <V3d_Viewer.hxx>
22
23 class COffsetDlg;
24 class OCCDemo_Presentation;
25
26 class CViewer3dDoc : public OCC_3dDoc
27 {
28         DECLARE_DYNCREATE(CViewer3dDoc)
29 protected: // create from serialization only
30         CViewer3dDoc();
31         void InitViewButtons();
32         void DoSample();
33
34 public:
35         void SetMyStaticTrihedronAxisIsDisplayed(BOOL IsDisplayed);
36         Handle_AIS_Shape GetBox();
37         Handle_AIS_Shape GetSphere();
38         Handle_User_Cylinder GetCylinder();
39         Handle_AIS_Shape GetOverlappedBox();
40         Handle_AIS_Shape GetOverlappedSphere();
41         Handle_AIS_Shape GetOverlappedCylinder();
42         void Start();
43         Standard_CString GetDataDir() {return myDataDir;}
44         static void Fit();
45
46         virtual ~CViewer3dDoc();
47         void UpdateResultMessageDlg(CString Title, TCollection_AsciiString aMessage);
48         virtual BOOL OnNewDocument();
49         virtual void Popup (const Standard_Integer  x       ,
50                                         const Standard_Integer  y       ,
51                         const Handle(V3d_View)& aView   );
52         
53         virtual void DragEvent (const Standard_Integer  x       ,
54                                                 const Standard_Integer  y       ,
55                                                 const Standard_Integer  TheState,
56                          const Handle(V3d_View)& aView   );
57     virtual void InputEvent     (const Standard_Integer  x       ,
58                                      const Standard_Integer  y       ,
59                          const Handle(V3d_View)& aView   );  
60     virtual void ShiftDragEvent (const Standard_Integer  x       ,
61                                          const Standard_Integer  y       ,
62                                          const Standard_Integer  TheState,
63                          const Handle(V3d_View)& aView   ); 
64     virtual void ShiftInputEvent(const Standard_Integer  x       ,
65                                          const Standard_Integer  y       ,
66                          const Handle(V3d_View)& aView   ); 
67  
68
69 #ifdef _DEBUG
70         virtual void AssertValid() const;
71         virtual void Dump(CDumpContext& dc) const;
72 #endif
73
74 // Generated message map functions
75 protected:
76         BOOL myStaticTrihedronAxisIsDisplayed;  
77         //{{AFX_MSG(CViewer3dDoc)
78         afx_msg void OnBox();
79         afx_msg void OnCylinder();
80         afx_msg void OnSphere();
81         afx_msg void OnRemoveAll();
82         afx_msg void OnNbisos();
83         afx_msg void OnFaces();
84         afx_msg void OnEdges();
85         afx_msg void OnVertices();
86         afx_msg void OnNeutral();
87         afx_msg void OnUsercylinderChangefacecolor();
88         afx_msg void OnFillet3d();
89         afx_msg void OnCircle();
90         afx_msg void OnLine();
91         afx_msg void OnOverlappedBox();
92         afx_msg void OnOverlappedCylinder();
93         afx_msg void OnOverlappedSphere();
94         afx_msg void OnPolygonOffsets();
95         afx_msg void OnUpdatePolygonOffsets(CCmdUI* pCmdUI);
96         afx_msg void OnUpdateCylinder(CCmdUI* pCmdUI);
97         afx_msg void OnUpdateSphere(CCmdUI* pCmdUI);
98         afx_msg void OnUpdateBox(CCmdUI* pCmdUI);
99         afx_msg void OnUpdateOverlappedCylinder(CCmdUI* pCmdUI);
100         afx_msg void OnUpdateOverlappedSphere(CCmdUI* pCmdUI);
101         afx_msg void OnUpdateOverlappedBox(CCmdUI* pCmdUI);
102         afx_msg void OnObjectRemove();
103         afx_msg void OnObjectErase();
104         afx_msg void OnObjectDisplayall();
105         afx_msg void OnObjectColoredMesh();
106         afx_msg void OnUpdateObjectColoredMesh(CCmdUI* pCmdUI);
107         afx_msg void OnUpdateObjectShading(CCmdUI* pCmdUI);
108         afx_msg void OnUpdateObjectWireframe(CCmdUI* pCmdUI);
109         afx_msg void OnOptionsTrihedronDynamicTrihedron();
110         afx_msg void OnUpdateOptionsTrihedronDynamicTrihedron(CCmdUI* pCmdUI);
111         afx_msg void OnUpdateOptionsTrihedronStaticTrihedron(CCmdUI* pCmdUI);
112         afx_msg void OnTextureOn();
113         afx_msg void OnBUTTONNext();
114         afx_msg void OnBUTTONStart();
115         afx_msg void OnBUTTONRepeat();
116         afx_msg void OnBUTTONPrev();
117         afx_msg void OnBUTTONEnd();
118         afx_msg void OnUpdateBUTTONNext(CCmdUI* pCmdUI);
119         afx_msg void OnUpdateBUTTONPrev(CCmdUI* pCmdUI);
120         afx_msg void OnUpdateBUTTONStart(CCmdUI* pCmdUI);
121         afx_msg void OnUpdateBUTTONRepeat(CCmdUI* pCmdUI);
122         afx_msg void OnUpdateBUTTONEnd(CCmdUI* pCmdUI);
123         afx_msg void OnFileNew();
124         afx_msg void OnBUTTONShowResult();
125         afx_msg void OnDumpView();
126         //}}AFX_MSG
127         DECLARE_MESSAGE_MAP()
128
129 //Attributes
130 protected:
131         int myState;
132
133 private:
134         COffsetDlg* myOffsetDlg;
135
136         Handle_User_Cylinder myCylinder;
137         Handle_AIS_Shape mySphere;
138         Handle_AIS_Shape myBox;
139         Handle_AIS_Shape myOverlappedCylinder;
140         Handle_AIS_Shape myOverlappedSphere;
141         Handle_AIS_Shape myOverlappedBox;
142         Handle_AIS_Trihedron myTrihedron;
143
144         OCCDemo_Presentation *myPresentation;
145         char myDataDir[5]; // for "Data\0"
146         char myLastPath[MAX_PATH]; // directory of lastly saved file in DumpView()
147         bool isTextureSampleStarted;
148 };
149
150 /////////////////////////////////////////////////////////////////////////////
151
152 //{{AFX_INSERT_LOCATION}}
153 // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
154
155 #endif // !defined(AFX_VIEWERDOC_H__4EF39FBA_4EBB_11D1_8D67_0800369C8A03__INCLUDED_)