4#ifndef CAMERACONTROLLER_H
5#define CAMERACONTROLLER_H
31 virtual const char *
GetName()
const {
return ""; }
93 void Reset()
override;
97 const char *
GetName()
const override {
return m_name; }
113 void PitchCamera(
float amount)
override { m_rotToX += amount * m_zoomPct; }
114 void YawCamera(
float amount)
override { m_rotToY += amount * m_zoomPct; }
118 m_rotToX = rotation.
x;
119 m_rotToY = rotation.
y;
123 void getRots(
double &rotX,
double &rotY);
150 const char *
GetName()
const override {
return Lang::EXTERNAL_VIEW; }
153 virtual void PitchCamera(
float amount)
override { m_rotX += amount; }
154 virtual void YawCamera(
float amount)
override { m_rotY += amount; }
169 void Reset()
override;
172 double m_dist, m_distTo;
185 const char *
GetName()
const override {
return Lang::SIDEREAL_VIEW; }
222 void Reset()
override;
225 double m_dist, m_distTo;
235 const char *
GetName()
const override {
return Lang::FLYBY_VIEW; }
252 m_roll += M_PI / 4 * amount;
262 void Reset()
override;
265 double m_dist, m_distTo;
nlohmann::json Json
Definition: Json.h:8
Definition: CameraController.h:16
virtual void Update()
Definition: CameraController.cpp:34
void SetPosition(const vector3d &pos)
Definition: CameraController.h:37
virtual ~CameraController()
Definition: CameraController.h:26
Type
Definition: CameraController.h:18
@ INTERNAL
Definition: CameraController.h:19
@ FLYBY
Definition: CameraController.h:22
@ SIDEREAL
Definition: CameraController.h:21
@ EXTERNAL
Definition: CameraController.h:20
void SetOrient(const matrix3x3d &orient)
Definition: CameraController.h:41
virtual bool IsExternal() const
Definition: CameraController.h:34
virtual void LoadFromJson(const Json &jsonObj)
Definition: CameraController.h:33
virtual void SaveToJson(Json &jsonObj)
Definition: CameraController.h:32
const matrix3x3d & GetOrient() const
Definition: CameraController.h:42
const Ship * GetShip() const
Definition: CameraController.h:48
virtual void Reset()
Definition: CameraController.cpp:28
virtual void OnDeactivated()
Definition: CameraController.h:46
virtual void OnActivated()
Definition: CameraController.h:45
vector3d GetPosition() const
Definition: CameraController.h:38
virtual Type GetType() const =0
virtual const char * GetName() const
Definition: CameraController.h:31
RefCountedPtr< CameraContext > m_camera
Definition: CameraController.h:51
Definition: CameraController.h:145
virtual void PitchCamera(float amount) override
Definition: CameraController.h:153
void Reset() override
Definition: CameraController.cpp:224
void ZoomEvent(float amount) override
Definition: CameraController.cpp:212
virtual void SetRotationAngles(vector3f rotation) override
Definition: CameraController.h:156
virtual void YawCamera(float amount) override
Definition: CameraController.h:154
void ZoomEventUpdate(float frameTime) override
Animated zoom update (on each frame), primarily designed for mouse wheel.
Definition: CameraController.cpp:219
bool IsExternal() const override
Definition: CameraController.h:151
void SaveToJson(Json &jsonObj) override
Definition: CameraController.cpp:289
Type GetType() const override
Definition: CameraController.h:149
void Update() override
Definition: CameraController.cpp:231
void LoadFromJson(const Json &jsonObj) override
Definition: CameraController.cpp:300
const char * GetName() const override
Definition: CameraController.h:150
Definition: CameraController.h:230
void PitchCamera(float amount) override
Definition: CameraController.h:238
void Update() override
Definition: CameraController.cpp:406
void LoadFromJson(const Json &jsonObj) override
Definition: CameraController.cpp:442
void ZoomEvent(float amount) override
Definition: CameraController.cpp:387
void RollCamera(float amount) override
Definition: CameraController.h:250
bool IsExternal() const override
Definition: CameraController.h:236
void ZoomEventUpdate(float frameTime) override
Animated zoom update (on each frame), primarily designed for mouse wheel.
Definition: CameraController.cpp:393
Type GetType() const override
Definition: CameraController.h:234
const char * GetName() const override
Definition: CameraController.h:235
void YawCamera(float amount) override
Definition: CameraController.h:244
void Reset() override
Definition: CameraController.cpp:399
void SaveToJson(Json &jsonObj) override
Definition: CameraController.cpp:431
Definition: CameraController.h:80
const char * GetName() const override
Definition: CameraController.h:97
void SetMode(Mode m)
Definition: CameraController.cpp:141
void SetRotationAngles(vector3f rotation) override
Definition: CameraController.h:116
bool GetSmoothingEnabled() const
Definition: CameraController.h:100
Mode
Definition: CameraController.h:82
@ MODE_FRONT
Definition: CameraController.h:83
@ MODE_MAX
Definition: CameraController.h:89
@ MODE_REAR
Definition: CameraController.h:84
@ MODE_RIGHT
Definition: CameraController.h:86
@ MODE_TOP
Definition: CameraController.h:87
@ MODE_LEFT
Definition: CameraController.h:85
@ MODE_BOTTOM
Definition: CameraController.h:88
void LoadFromJson(const Json &jsonObj) override
Definition: CameraController.cpp:183
void SetSmoothingEnabled(bool enabled)
Definition: CameraController.cpp:136
void SaveToJson(Json &jsonObj) override
Definition: CameraController.cpp:172
void YawCamera(float amount) override
Definition: CameraController.h:114
void ZoomEvent(float amount) override
Definition: CameraController.cpp:162
void PitchCamera(float amount) override
Definition: CameraController.h:113
void OnDeactivated() override
Definition: CameraController.cpp:196
void ZoomEventUpdate(float frameTime) override
Animated zoom update (on each frame), primarily designed for mouse wheel.
Definition: CameraController.cpp:167
Type GetType() const override
Definition: CameraController.h:96
void Update() override
Definition: CameraController.cpp:109
void getRots(double &rotX, double &rotY)
Definition: CameraController.cpp:130
Mode GetMode() const
Definition: CameraController.h:103
void Reset() override
Definition: CameraController.cpp:88
Definition: CameraController.h:59
virtual void SetRotationAngles(vector3f rotation)
Definition: CameraController.h:71
virtual void ZoomEventUpdate(float frameTime)
Animated zoom update (on each frame), primarily designed for mouse wheel.
Definition: CameraController.h:77
virtual void PitchCamera(float amount)
Definition: CameraController.h:67
MoveableCameraController(RefCountedPtr< CameraContext > camera, const Ship *ship)
Definition: CameraController.h:61
virtual void YawCamera(float amount)
Definition: CameraController.h:68
virtual void RollCamera(float amount)
Definition: CameraController.h:66
virtual void ZoomEvent(float amount)
Definition: CameraController.h:75
Definition: RefCounted.h:36
Definition: CameraController.h:180
void RollCamera(float amount) override
Definition: CameraController.h:200
void Reset() override
Definition: CameraController.cpp:335
void SaveToJson(Json &jsonObj) override
Definition: CameraController.cpp:354
void Update() override
Definition: CameraController.cpp:341
void ZoomEvent(float amount) override
Definition: CameraController.cpp:323
void YawCamera(float amount) override
Definition: CameraController.h:194
void SetRotationAngles(vector3f rotation) override
Definition: CameraController.h:207
void LoadFromJson(const Json &jsonObj) override
Definition: CameraController.cpp:364
Type GetType() const override
Definition: CameraController.h:184
const char * GetName() const override
Definition: CameraController.h:185
void PitchCamera(float amount) override
Definition: CameraController.h:188
void ZoomEventUpdate(float frameTime) override
Animated zoom update (on each frame), primarily designed for mouse wheel.
Definition: CameraController.cpp:329
bool IsExternal() const override
Definition: CameraController.h:186
vector3< T > VectorZ() const
Definition: matrix3x3.h:43
vector3< T > VectorX() const
Definition: matrix3x3.h:41
static matrix3x3 Identity()
Definition: matrix3x3.h:45
vector3< T > VectorY() const
Definition: matrix3x3.h:42
static matrix3x3 Rotate(double ang, const vector3< double > &v)
Definition: matrix3x3.h:87
T y
Definition: vector3.h:20
T x
Definition: vector3.h:20
T z
Definition: vector3.h:20