| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /////////////////////////////////////////////////////////////////////////////
- // Name: penguin.h
- // Purpose: wxGLCanvas demo program
- // Author: Robert Roebling
- // Modified by:
- // Created: 04/01/98
- // Copyright: (c) Robert Roebling
- // Licence: wxWindows licence
- /////////////////////////////////////////////////////////////////////////////
- #ifndef _WX_PENGUIN_H_
- #define _WX_PENGUIN_H_
- #include "wx/defs.h"
- #include "wx/app.h"
- #include "wx/menu.h"
- #include "wx/dcclient.h"
- #include "wx/wfstream.h"
- #if wxUSE_ZLIB
- #include "wx/zstream.h"
- #endif
- #include "wx/glcanvas.h"
- extern "C"
- {
- #include "trackball.h"
- }
- #include "dxfrenderer.h"
- // OpenGL view data
- struct GLData
- {
- bool initialized; // have OpenGL been initialized?
- float beginx, beginy; // position of mouse
- float quat[4]; // orientation of object
- float zoom; // field of view in degrees
- };
- // Define a new application type
- class MyApp : public wxApp
- {
- public:
- virtual bool OnInit();
- };
- // Define a new frame type
- class TestGLCanvas;
- class MyFrame : public wxFrame
- {
- public:
- MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos,
- const wxSize& size, long style = wxDEFAULT_FRAME_STYLE);
- void OnMenuFileOpen(wxCommandEvent& event);
- void OnMenuFileExit(wxCommandEvent& event);
- void OnMenuHelpAbout(wxCommandEvent& event);
- void SetCanvas(TestGLCanvas *canvas) { m_canvas = canvas; }
- TestGLCanvas *GetCanvas() { return m_canvas; }
- private:
- TestGLCanvas *m_canvas;
- wxDECLARE_EVENT_TABLE();
- };
- class TestGLCanvas : public wxGLCanvas
- {
- public:
- TestGLCanvas(wxWindow *parent, wxWindowID id = wxID_ANY,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = 0,
- const wxString& name = wxT("TestGLCanvas"));
- virtual ~TestGLCanvas();
- void LoadDXF(const wxString& filename);
- protected:
- void OnPaint(wxPaintEvent& event);
- void OnSize(wxSizeEvent& event);
- void OnEraseBackground(wxEraseEvent& event);
- void OnMouse(wxMouseEvent& event);
- private:
- void InitGL();
- void ResetProjectionMode();
- wxGLContext* m_glRC;
- GLData m_gldata;
- DXFRenderer m_renderer;
- wxDECLARE_NO_COPY_CLASS(TestGLCanvas);
- wxDECLARE_EVENT_TABLE();
- };
- #endif // #ifndef _WX_PENGUIN_H_
|