]> git.localhorst.tv Git - blank.git/blobdiff - src/controller.hpp
rename model -> controller
[blank.git] / src / controller.hpp
diff --git a/src/controller.hpp b/src/controller.hpp
new file mode 100644 (file)
index 0000000..8b2cd4e
--- /dev/null
@@ -0,0 +1,41 @@
+#ifndef BLANK_CONTROLLER_HPP_
+#define BLANK_CONTROLLER_HPP_
+
+#include <glm/glm.hpp>
+
+
+namespace blank {
+
+class FPSController {
+
+public:
+       FPSController();
+       ~FPSController();
+
+       glm::mat4 Transform() const;
+
+       void Velocity(glm::vec3 vel) { velocity = vel; }
+       void Position(glm::vec3 pos) { position = pos; }
+       void Move(glm::vec3 delta) { position += delta; }
+
+       // all angles in radians (full circle = 2π)
+       float Pitch() const { return pitch; }
+       void Pitch(float p) { pitch = p; }
+       void RotatePitch(float delta) { pitch += delta; }
+       float Yaw() const { return yaw; }
+       void Yaw(float y) { yaw = y; }
+       void RotateYaw(float delta) { yaw += delta; }
+
+       void Update(int dt);
+
+private:
+       glm::vec3 velocity;
+       glm::vec3 position;
+       float pitch;
+       float yaw;
+
+};
+
+}
+
+#endif