Pioneer
ShipCockpit.h
Go to the documentation of this file.
1 // Copyright © 2013-14 Meteoric Games Ltd
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _SHIP_COCKPIT_H_
5 #define _SHIP_COCKPIT_H_
6 
7 #include "ModelBody.h"
8 
9 static const float COCKPIT_LAG_MAX_ANGLE = 7.5f;
10 static const float COCKPIT_ROTATION_INTERP_MULTIPLIER = 5.0f;
11 static const float COCKPIT_ACCEL_INTERP_MULTIPLIER = 0.5f;
12 static const float COCKPIT_MAX_GFORCE = 10000.0f;
13 static const float COCKPIT_ACCEL_OFFSET = 0.075f;
14 
15 class Player;
16 class Camera;
18 
19 class ShipCockpit : public ModelBody {
20 public:
21  explicit ShipCockpit(const std::string &modelName);
22  virtual ~ShipCockpit();
23 
24  virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override;
25 
26  void Update(const Player *player, float timeStep);
27  void RenderCockpit(Graphics::Renderer *renderer, const Camera *camera, FrameId frameId);
28  void OnActivated(const Player *player);
30 
31 protected:
32  float CalculateSignedForwardVelocity(const vector3d &forward, const vector3d &velocity);
33 
34 private:
35  ShipCockpit(const ShipCockpit &) = delete;
36  ShipCockpit &operator=(const ShipCockpit &) = delete;
37 
38  vector3d m_shipDir; // current ship direction
39  vector3d m_shipYaw; // current ship yaw vector
40  vector3d m_dir; // cockpit direction
41  vector3d m_yaw; // cockpit yaw vector
42  float m_rotInterp; // for rotation interpolation
43  float m_transInterp; // for translation interpolation
44  float m_gForce; // current ship gforce
45  float m_offset; // current ship offset due to acceleration effect
46  float m_shipVel; // current ship velocity
47  vector3d m_translate; // cockpit translation
48  matrix4x4d m_transform; // cockpit transformation
50 };
51 #endif
Definition: Camera.h:80
Definition: Renderer.h:44
Definition: CameraController.h:80
Definition: ModelBody.h:25
Definition: Player.h:16
Definition: ShipCockpit.h:19
float CalculateSignedForwardVelocity(const vector3d &forward, const vector3d &velocity)
Definition: ShipCockpit.cpp:211
void Update(const Player *player, float timeStep)
Definition: ShipCockpit.cpp:49
virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override
Definition: ShipCockpit.cpp:38
virtual ~ShipCockpit()
Definition: ShipCockpit.cpp:34
ShipCockpit(const std::string &modelName)
Definition: ShipCockpit.cpp:14
void OnActivated(const Player *player)
Definition: ShipCockpit.cpp:201
void resetInternalCameraController(void)
Definition: ShipCockpit.cpp:44
void RenderCockpit(Graphics::Renderer *renderer, const Camera *camera, FrameId frameId)
Definition: ShipCockpit.cpp:192
Definition: FrameId.h:9