• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/samples/opengl/penguin/
1/////////////////////////////////////////////////////////////////////////////
2// Name:        penguin.h
3// Purpose:     wxGLCanvas demo program
4// Author:      Robert Roebling
5// Modified by:
6// Created:     04/01/98
7// RCS-ID:      $Id: penguin.h 36174 2005-11-14 17:38:24Z JS $
8// Copyright:   (c) Robert Roebling
9// Licence:     wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_PENGUIN_H_
13#define _WX_PENGUIN_H_
14
15
16#include "wx/defs.h"
17#include "wx/app.h"
18#include "wx/menu.h"
19#include "wx/dcclient.h"
20#include "wx/wfstream.h"
21#if wxUSE_ZLIB
22#include "wx/zstream.h"
23#endif
24
25#include "wx/glcanvas.h"
26
27extern "C"
28{
29#include "trackball.h"
30}
31
32#include "dxfrenderer.h"
33
34// OpenGL view data
35struct GLData
36{
37    bool initialized;           // have OpenGL been initialized?
38    float beginx, beginy;       // position of mouse
39    float quat[4];              // orientation of object
40    float zoom;                 // field of view in degrees
41};
42
43// Define a new application type
44class MyApp: public wxApp
45{
46public:
47    bool OnInit();
48};
49
50// Define a new frame type
51class TestGLCanvas;
52
53class MyFrame: public wxFrame
54{
55public:
56    MyFrame(wxFrame *frame, const wxString& title, const wxPoint& pos,
57        const wxSize& size, long style = wxDEFAULT_FRAME_STYLE);
58
59    void OnMenuFileOpen(wxCommandEvent& event);
60    void OnMenuFileExit(wxCommandEvent& event);
61    void OnMenuHelpAbout(wxCommandEvent& event);
62
63#if wxUSE_GLCANVAS
64    void SetCanvas( TestGLCanvas *canvas ) { m_canvas = canvas; }
65    TestGLCanvas *GetCanvas() { return m_canvas; }
66
67private:
68    TestGLCanvas *m_canvas;
69#endif
70
71    DECLARE_EVENT_TABLE()
72};
73
74#if wxUSE_GLCANVAS
75
76class TestGLCanvas: public wxGLCanvas
77{
78public:
79    TestGLCanvas(wxWindow *parent, wxWindowID id = wxID_ANY,
80        const wxPoint& pos = wxDefaultPosition,
81        const wxSize& size = wxDefaultSize, long style = 0,
82        const wxString& name = wxT("TestGLCanvas"));
83
84    ~TestGLCanvas();
85
86    void LoadDXF(const wxString& filename);
87
88protected:
89    void OnPaint(wxPaintEvent& event);
90    void OnSize(wxSizeEvent& event);
91    void OnEraseBackground(wxEraseEvent& event);
92    void OnMouse(wxMouseEvent& event);
93
94private:
95    void InitGL();
96    void ResetProjectionMode();
97
98    GLData m_gldata;
99    DXFRenderer m_renderer;
100
101    DECLARE_EVENT_TABLE()
102};
103
104#endif // #if wxUSE_GLCANVAS
105
106#endif // #ifndef _WX_PENGUIN_H_
107
108