Cutout Vis2012
TUWienVisualisierung2(SS2012)-AdaptiveCutaways
 All Classes Namespaces Functions Pages
CameraController.h
1 #ifndef _CAMERACONTROLLER_H_
2 #define _CAMERACONTROLLER_H_
3 
4 #include "Camera.h"
5 #include "InputHandler.h"
6 #include <glm/glm.hpp>
7 
8 
17 {
18 public:
22  CameraController(Camera* camera, InputHandler* inputHandler);
23 
27  void startOrbit();
31  void stopOrbit();
36  void zoomBy(int zoom);
44  void update(double frameLength);
48  void setPivot(const glm::vec3& pivot);
49 
53  bool isActive() const;
54 
55 private:
56 
57  enum CCState
58  {
59  IDLE,
60  ORBIT
61  };
62 
63  InputHandler* _inputHandler;
64  Camera* _camera;
65  glm::vec3 _pivot;
66  glm::vec3 _position;
67 
68  glm::vec3 _startPosition;
69  int _startMousePosX, _startMousePosY;
70  int _lastMouseWheel;
71 
72  CCState _state;
73 };
74 
75 #endif