summaryrefslogtreecommitdiff
path: root/gfx/followCameraController.h
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-02-16 18:19:39 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-02-16 18:19:39 +0000
commit87701279438dd44d758bb486da15e1e5003c872d (patch)
tree9c75ce556c6662328a99d11b176499521fb7c4e1 /gfx/followCameraController.h
parentDefine a vehicle weak ptr (diff)
downloadilt-87701279438dd44d758bb486da15e1e5003c872d.tar.bz2
ilt-87701279438dd44d758bb486da15e1e5003c872d.tar.xz
ilt-87701279438dd44d758bb486da15e1e5003c872d.zip
Add a camera controller that follows vehicles
Diffstat (limited to 'gfx/followCameraController.h')
-rw-r--r--gfx/followCameraController.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/gfx/followCameraController.h b/gfx/followCameraController.h
new file mode 100644
index 0000000..d57b59f
--- /dev/null
+++ b/gfx/followCameraController.h
@@ -0,0 +1,24 @@
+#ifndef FOLLOW_CAMERA_CONTROLLER_H
+#define FOLLOW_CAMERA_CONTROLLER_H
+
+#include "game/worldobject.h"
+#include <game/vehicles/vehicle.h>
+#include <gfx/camera_controller.h>
+
+class Camera;
+class Shader;
+
+class FollowCameraController : public CameraController {
+public:
+ enum class Mode { Pan, Ride, ISO };
+ explicit FollowCameraController(VehicleWPtr, Mode = Mode::Pan);
+
+ void tick(TickDuration) override { }
+
+ void updateCamera(Camera * camera, Shader * shader) const override;
+
+private:
+ VehicleWPtr target;
+ Mode mode;
+};
+#endif