blob: 5ed45f5a4a2f85618aba4c6c9f483c907f9403ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#ifndef MANUAL_CAMERA_CONTROLLER_H
#define MANUAL_CAMERA_CONTROLLER_H
#include "uiComponent.h"
#include <SDL2/SDL.h>
#include <gfx/camera_controller.h>
#include <glm/glm.hpp>
#include <maths.h>
class UIShader;
class Camera;
class ManualCameraController : public CameraController, public UIComponent {
public:
explicit ManualCameraController(glm::vec2 f) : UIComponent {{}}, focus {f} { }
bool handleInput(const SDL_Event & e, const Position &) override;
void render(const UIShader &, const Position & parentPos) const override;
void updateCamera(Camera * camera) const override;
private:
bool ctrl {false}, mrb {false};
glm::vec2 focus;
float direction {quarter_pi};
float dist {40}, pitch {quarter_pi};
};
#endif
|