KrisLibrary  1.0.0
GLUTNavigationProgram.h
1 #ifndef GL_GLUT_NAVIGATION_PROGRAM_H
2 #define GL_GLUT_NAVIGATION_PROGRAM_H
3 
4 
5 #include <KrisLibrary/math3d/geometry3d.h>
6 #include <KrisLibrary/camera/viewport.h>
7 #include <KrisLibrary/Timer.h>
8 #include "GLUTProgram.h"
9 
16 {
17 public:
19  virtual bool Initialize();
20  virtual void Handle_Display();
21  virtual void Handle_Reshape(int w,int h);
22  virtual void Handle_Click(int button,int state,int x,int y);
23  virtual void Handle_Drag(int x,int y);
24  virtual void Handle_Keypress(unsigned char key,int x,int y);
25  virtual void Handle_Idle();
26 
27  //overrideable
28  virtual void SetWorldLights() {}
29  virtual void RenderWorld() {}
30  virtual void RenderScreen() {}
31 
32  virtual void BeginDrag(int x,int y,int button,int modifiers);
33  virtual void DoDrag(int dx,int dy,int button,int modifiers);
34  virtual void EndDrag(int x,int y,int button,int modifiers);
35  virtual void DoFreeDrag(int dx,int dy,int button);
36  virtual void DoCtrlDrag(int dx,int dy,int button);
37  virtual void DoAltDrag(int dx,int dy,int button);
38  virtual void DoShiftDrag(int dx,int dy,int button);
39 
40  void DragPan(int dx,int dy);
41  void DragRotate(int dx,int dy);
42  void DragZoom(int dx,int dy);
43  void DragTruck(int dx,int dy);
44 
45  void Set2DMode(bool mode=true);
46  void DisplayCameraTarget();
47  void CenterCameraOn(const Math3D::AABB3D& bbox);
48 
49  void WriteDisplaySettings(std::ostream& out) const;
50  void ReadDisplaySettings(std::istream& in);
51 
52  Camera::Viewport viewport;
54  int oldmousex,oldmousey;
55  int clickButton, clickModifiers;
56  bool stereo_mode;
57  float stereo_offset;
58  Timer timer;
59  int show_view_target; float t_hide_view_target;
60  float frames_per_second; bool show_frames_per_second;
61  int frames_rendered;
62  bool mode_2d;
63 };
64 
65 #endif
A 3D navigation program based on GLUT.
Definition: GLUTNavigationProgram.h:15
A 3D axis-aligned bounding box.
Definition: AABB3D.h:13
Definition: GLUTProgram.h:6
Definition: camera.h:85
A class containing viewport / camera information. This uses OpenGL coordinate convention in which x i...
Definition: viewport.h:11
Definition: Timer.h:6