37 #if MRPT_HAS_WXWIDGETS
39 #include <wx/string.h>
41 #include <wx/bitmap.h>
44 #include <wx/artprov.h>
46 #include <wx/msgdlg.h>
47 #include <wx/filedlg.h>
48 #include <wx/progdlg.h>
49 #include <wx/imaglist.h>
50 #include <wx/busyinfo.h>
52 #include <wx/textdlg.h>
53 #include <wx/dirdlg.h>
54 #include <wx/colordlg.h>
55 #include <wx/dcmemory.h>
57 #if wxUSE_GLCANVAS && MRPT_HAS_OPENGL_GLUT
59 #include <wx/glcanvas.h>
60 #include <wx/dcclient.h>
70 class GUI_IMPEXP CMyGLCanvasBase:
public wxGLCanvas
73 CMyGLCanvasBase( wxWindow *parent, wxWindowID
id = wxID_ANY,
74 const wxPoint& pos = wxDefaultPosition,
75 const wxSize&
size = wxDefaultSize,
76 long style = 0,
const wxString& name = _T(
"CMyGLCanvasBase") );
78 virtual ~CMyGLCanvasBase();
80 void OnPaint(wxPaintEvent& event);
81 void OnSize(wxSizeEvent& event);
82 void OnEraseBackground(wxEraseEvent& event);
83 void OnEnterWindow(wxMouseEvent& event);
85 void OnChar(wxKeyEvent& event);
87 void OnLeftDown(wxMouseEvent& event);
88 void OnMouseMove(wxMouseEvent& event);
89 void OnRightDown(wxMouseEvent& event);
90 void OnRightUp(wxMouseEvent& event);
91 void OnLeftUp(wxMouseEvent& event);
92 void OnMouseWheel(wxMouseEvent& event);
98 float cameraPointingX,cameraPointingY,cameraPointingZ;
99 float cameraZoomDistance;
100 float cameraElevationDeg,cameraAzimuthDeg;
101 bool cameraIsProjective;
105 bool useCameraFromScene;
112 float clearColorR,clearColorG,clearColorB;
114 static float SENSIBILITY_DEG_PER_PIXEL;
117 virtual void OnCharCustom( wxKeyEvent& event ) { }
119 virtual void OnPreRender() { }
120 virtual void OnPostRender() { }
121 virtual void OnPostRenderSwapBuffers(
double At, wxPaintDC &dc) { }
122 virtual void OnRenderError(
const wxString &str ) { }
137 virtual void OnUserManuallyMovesCamera(
138 float new_cameraPointingX,
139 float new_cameraPointingY,
140 float new_cameraPointingZ,
141 float new_cameraZoomDistance,
142 float new_cameraElevationDeg,
143 float new_cameraAzimuthDeg )
145 cameraPointingX = new_cameraPointingX;
146 cameraPointingY = new_cameraPointingY;
147 cameraPointingZ = new_cameraPointingZ;
148 cameraZoomDistance = new_cameraZoomDistance;
149 cameraElevationDeg = new_cameraElevationDeg ;
150 cameraAzimuthDeg = new_cameraAzimuthDeg;
153 inline void getLastMousePosition(
int &x,
int& y)
const {
160 opengl::COpenGLScenePtr m_openGLScene;
163 wxGLContext *m_gl_context;
166 int m_mouseLastX,m_mouseLastY;
168 int mouseClickX,mouseClickY;
172 unsigned long m_StartTime;
173 unsigned long m_LastTime;
174 unsigned long m_LastRedraw;
180 const std::string &str,
192 const std::string &str,
199 void OnWindowCreation(wxWindowCreateEvent &ev);
201 DECLARE_EVENT_TABLE()
208 #endif // wxUSE_GLCANVAS
209 #endif // MRPT_HAS_WXWIDGETS
210 #endif // CMyGLCanvas_H