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:33
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:27
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:223
void ZoomEvent(float amount) override
Definition CameraController.cpp:211
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:218
bool IsExternal() const override
Definition CameraController.h:151
void SaveToJson(Json &jsonObj) override
Definition CameraController.cpp:288
Type GetType() const override
Definition CameraController.h:149
void Update() override
Definition CameraController.cpp:230
void LoadFromJson(const Json &jsonObj) override
Definition CameraController.cpp:299
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:405
void LoadFromJson(const Json &jsonObj) override
Definition CameraController.cpp:441
void ZoomEvent(float amount) override
Definition CameraController.cpp:386
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:392
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:398
void SaveToJson(Json &jsonObj) override
Definition CameraController.cpp:430
Definition CameraController.h:80
const char * GetName() const override
Definition CameraController.h:97
void SetMode(Mode m)
Definition CameraController.cpp:140
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:182
void SetSmoothingEnabled(bool enabled)
Definition CameraController.cpp:135
void SaveToJson(Json &jsonObj) override
Definition CameraController.cpp:171
void YawCamera(float amount) override
Definition CameraController.h:114
void ZoomEvent(float amount) override
Definition CameraController.cpp:161
void PitchCamera(float amount) override
Definition CameraController.h:113
void OnDeactivated() override
Definition CameraController.cpp:195
void ZoomEventUpdate(float frameTime) override
Animated zoom update (on each frame), primarily designed for mouse wheel.
Definition CameraController.cpp:166
Type GetType() const override
Definition CameraController.h:96
void Update() override
Definition CameraController.cpp:108
void getRots(double &rotX, double &rotY)
Definition CameraController.cpp:129
Mode GetMode() const
Definition CameraController.h:103
void Reset() override
Definition CameraController.cpp:87
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:334
void SaveToJson(Json &jsonObj) override
Definition CameraController.cpp:353
void Update() override
Definition CameraController.cpp:340
void ZoomEvent(float amount) override
Definition CameraController.cpp:322
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:363
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:328
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:18
T x
Definition vector3.h:18
T z
Definition vector3.h:18