17 namespace mrpt {
namespace gui { } }
20 #if MRPT_HAS_WXWIDGETS
22 #include <wx/string.h>
24 #include <wx/bitmap.h>
27 #include <wx/artprov.h>
29 #include <wx/msgdlg.h>
30 #include <wx/filedlg.h>
31 #include <wx/progdlg.h>
32 #include <wx/imaglist.h>
33 #include <wx/busyinfo.h>
35 #include <wx/textdlg.h>
36 #include <wx/dirdlg.h>
37 #include <wx/colordlg.h>
38 #include <wx/dcmemory.h>
40 #if wxUSE_GLCANVAS && MRPT_HAS_OPENGL_GLUT
42 #include <wx/glcanvas.h>
43 #include <wx/dcclient.h>
59 class GUI_IMPEXP CMyGLCanvasBase:
public wxGLCanvas
62 CMyGLCanvasBase( wxWindow *parent, wxWindowID
id = wxID_ANY,
63 const wxPoint& pos = wxDefaultPosition,
64 const wxSize&
size = wxDefaultSize,
65 long style = 0,
const wxString& name = _T(
"CMyGLCanvasBase") );
67 virtual ~CMyGLCanvasBase();
69 void OnPaint(wxPaintEvent& event);
70 void OnSize(wxSizeEvent& event);
71 void OnEraseBackground(wxEraseEvent& event);
72 void OnEnterWindow(wxMouseEvent& event);
74 void OnChar(wxKeyEvent& event);
76 void OnMouseDown(wxMouseEvent& event);
77 void OnMouseMove(wxMouseEvent& event);
78 void OnMouseUp(wxMouseEvent& event);
79 void OnMouseWheel(wxMouseEvent& event);
85 float cameraPointingX,cameraPointingY,cameraPointingZ;
86 float cameraZoomDistance;
87 float cameraElevationDeg,cameraAzimuthDeg;
88 bool cameraIsProjective;
93 bool useCameraFromScene;
100 float clearColorR,clearColorG,clearColorB;
102 static float SENSIBILITY_DEG_PER_PIXEL;
105 virtual void OnCharCustom( wxKeyEvent& event ) {
109 virtual void OnPreRender() { }
110 virtual void OnPostRender() { }
111 virtual void OnPostRenderSwapBuffers(
double At, wxPaintDC &dc) {
115 virtual void OnRenderError(
const wxString &str ) {
132 virtual void OnUserManuallyMovesCamera(
133 float new_cameraPointingX,
134 float new_cameraPointingY,
135 float new_cameraPointingZ,
136 float new_cameraZoomDistance,
137 float new_cameraElevationDeg,
138 float new_cameraAzimuthDeg )
140 cameraPointingX = new_cameraPointingX;
141 cameraPointingY = new_cameraPointingY;
142 cameraPointingZ = new_cameraPointingZ;
143 cameraZoomDistance = new_cameraZoomDistance;
144 cameraElevationDeg = new_cameraElevationDeg ;
145 cameraAzimuthDeg = new_cameraAzimuthDeg;
148 inline void getLastMousePosition(
int &x,
int& y)
const {
155 mrpt::opengl::COpenGLScenePtr m_openGLScene;
158 wxGLContext *m_gl_context;
161 int m_mouseLastX,m_mouseLastY;
163 int mouseClickX,mouseClickY;
167 unsigned long m_StartTime;
168 unsigned long m_LastTime;
169 unsigned long m_LastRedraw;
172 void OnWindowCreation(wxWindowCreateEvent &ev);
174 DECLARE_EVENT_TABLE()
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
size_t size(const MATRIXLIKE &m, int dim)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.