Tramway SDK
camera.h
Go to the documentation of this file.
1// Tramway Drifting and Dungeon Exploration Simulator SDK Runtime
2
3#ifndef TRAM_SDK_EXTENSIONS_CAMERA_CAMERA_H
4#define TRAM_SDK_EXTENSIONS_CAMERA_CAMERA_H
5
6#include <framework/math.h>
7#include <framework/core.h>
8#include <framework/event.h>
9
10namespace tram::Ext::Camera {
11
12class Camera {
13public:
14 void SetActive();
15 void SetFollowing(Entity*);
17
18 inline void SetPosition(vec3 position) { this->position = position; }
19 inline void SetRotation(quat rotation) { this->rotation = rotation; }
20
21 inline vec3 GetPosition() { return position; }
22 inline quat GetRotation() { return rotation; }
23
24 void SetViewTransform();
26
27 void SetFollowingLookat(quat new_lookat);
28
29 void SetLayerMask(uint32_t layer_mask) { this->layer_mask = layer_mask; }
30
31 virtual void Update() = 0;
32 virtual ~Camera();
33protected:
34 vec3 position = {0.0f, 0.0f, 0.0f};
35 quat rotation = {1.0f, 0.0f, 0.0f, 0.0f};
36
38
39 uint32_t layer_mask = 1 + 2;
40
42 quat following_lookat = {1.0f, 0.0f, 0.0f, 0.0f};
43};
44
45void Init();
46void Update();
47
48}
49
50#endif // TRAM_SDK_EXTENSIONS_CAMERA_CAMERA_H
Entity base class.
Definition: entity.h:23
Interface API for cameras.
Definition: camera.h:12
void SetFollowingLookat(quat new_lookat)
Definition: camera.cpp:99
vec3 position
Definition: camera.h:34
void SetRotation(quat rotation)
Definition: camera.h:19
virtual ~Camera()
Definition: camera.cpp:61
void SetViewTransform()
Definition: camera.cpp:65
quat rotation
Definition: camera.h:35
void SetPosition(vec3 position)
Definition: camera.h:18
uint32_t layer_mask
Definition: camera.h:39
void SetFollowing(Entity *)
Definition: camera.cpp:83
quat following_lookat
Definition: camera.h:42
void SetLayerMask(uint32_t layer_mask)
Definition: camera.h:29
id_t GetFollowing()
Definition: camera.cpp:95
listener_t following_listener
Definition: camera.h:37
quat GetRotation()
Definition: camera.h:22
id_t following
Definition: camera.h:41
void SetActive()
Definition: camera.cpp:79
virtual void Update()=0
Definition: camera.cpp:57
void SetListenerTransform()
Definition: camera.cpp:74
vec3 GetPosition()
Definition: camera.h:21
Several different camera implementations.
void Update()
Definition: camera.cpp:52
void Init()
Definition: camera.cpp:41
uint32_t id_t
Definition: core.h:10
glm::vec3 vec3
Definition: math.h:11
glm::quat quat
Definition: math.h:12
uint32_t listener_t
Definition: event.h:16