Pioneer
Loading...
Searching...
No Matches
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
9static const float COCKPIT_LAG_MAX_ANGLE = 7.5f;
10static const float COCKPIT_ROTATION_INTERP_MULTIPLIER = 5.0f;
11static const float COCKPIT_ACCEL_INTERP_MULTIPLIER = 0.5f;
12static const float COCKPIT_MAX_GFORCE = 10000.0f;
13static const float COCKPIT_ACCEL_OFFSET = 0.075f;
14
15class Player;
16class Camera;
18
19class ShipCockpit : public ModelBody {
20public:
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
31protected:
32 float CalculateSignedForwardVelocity(const vector3d &forward, const vector3d &velocity);
33
34private:
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
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