SuperTuxKart
|
Handles the game camera. More...
#include <camera_fps.hpp>
Public Member Functions | |
virtual void | update (float dt) OVERRIDE |
Called once per time frame to move the camera to the right position. | |
void | applyMouseMovement (float x, float y) |
Applies mouse movement to the first person camera. | |
void | setSmoothMovement (bool value) |
Sets if the first person camera should be moved smooth. | |
bool | getSmoothMovement () |
If the first person camera should be moved smooth. | |
void | setAttachedFpsCam (bool value) |
Sets if the first person camera should be moved with the kart. | |
bool | getAttachedFpsCam () |
If the first person camera should be moved with the kart. | |
void | setMaximumVelocity (float vel) |
Sets the angular velocity for this camera. | |
float | getMaximumVelocity () |
Returns the current angular velocity. | |
void | setDirection (core::vector3df target) |
Sets the vector, the first person camera should look at. | |
const core::vector3df & | getDirection () |
Gets the vector, the first person camera should look at. | |
void | setUpVector (core::vector3df target) |
Sets the up vector, the first person camera should use. | |
const core::vector3df & | getUpVector () |
Gets the up vector, the first person camera should use. | |
void | setAngularVelocity (float vel) |
Sets the angular velocity for this camera. | |
float | getAngularVelocity () |
Returns the current target angular velocity. | |
void | setLinearVelocity (core::vector3df vel) |
Sets the linear velocity for this camera. | |
const core::vector3df & | getLinearVelocity () |
Returns the current linear velocity. | |
![]() | |
void | setMode (Mode mode) |
Sets the mode of the camera. | |
Mode | getMode () |
Set the camera to the given mode. | |
Mode | getPreviousMode () |
Returns the last known mode of the camera. | |
bool | isSpectatorMode () |
Returns true if camera is a spectator camera. | |
void | setNextSpectatorMode () |
Switch to next spectator mode (a -> soccer -> top view -> a) | |
void | setKart (AbstractKart *new_kart) |
Changes the owner of this camera to the new kart. | |
virtual void | setInitialTransform () |
Saves the current kart position as the initial starting position for the camera. | |
virtual void | activate (bool alsoActivateInIrrlicht=true) |
Sets viewport etc. | |
virtual void | update (float dt) |
Called once per time frame to move the camera to the right position. | |
CameraType | getType () |
Returns the type of this camera. | |
void | setFoV () |
Sets the field of view for the irrlicht camera. | |
int | getIndex () const |
Returns the camera index (or player kart index, which is the same). | |
core::matrix4 | getPreviousPVMatrix () const |
Returns the project-view matrix of the previous frame. | |
void | setPreviousPVMatrix (core::matrix4 mat) |
Returns the project-view matrix of the previous frame. | |
const AbstractKart * | getKart () const |
Returns the kart to which this camera is attached. | |
AbstractKart * | getKart () |
Returns the kart to which this camera is attached. | |
void | setAmbientLight (const video::SColor &color) |
Sets the ambient light for this camera. | |
const video::SColor & | getAmbientLight () const |
Returns the current ambient light. | |
const core::recti & | getViewport () const |
Returns the viewport of this camera. | |
const core::vector2df & | getScaling () const |
Returns the scaling in x/y direction for this camera. | |
scene::ICameraSceneNode * | getCameraSceneNode () |
Returns the camera scene node. | |
Vec3 | getXYZ () |
Returs the absolute position of the camera. | |
void | setupCamera () |
Sets up the viewport, aspect ratio, field of view, and scaling for this camera. | |
Static Public Member Functions | |
static bool | isFPS () |
![]() | |
static Camera * | createCamera (AbstractKart *kart, const int index) |
Creates a new camera and adds it to the list of all cameras. | |
static void | resetAllCameras () |
static void | changeCamera (unsigned int camera_index, CameraType type) |
static void | setDefaultCameraType (CameraType type) |
Sets the default type for each camera that will be created. | |
static CameraType | getDefaultCameraType () |
Returns the default type for each camera that will be created. | |
static unsigned int | getNumCameras () |
Returns the number of cameras used. | |
static Camera * | getCamera (unsigned int n) |
Returns a camera. | |
static Camera * | getActiveCamera () |
Returns the currently active camera. | |
static void | removeAllCameras () |
Remove all cameras. | |
Private Member Functions | |
void | positionCamera (float dt, float above_kart, float cam_angle, float side_way, float distance, float smoothing) |
CameraFPS (int camera_index, AbstractKart *kart) | |
virtual | ~CameraFPS () |
Removes the camera scene node from the scene. | |
Private Attributes | |
float | m_position_speed |
The speed at which the camera changes position. | |
float | m_target_speed |
The speed at which the camera target changes position. | |
float | m_rotation_range |
Factor of the effects of steering in camera aim. | |
bool | m_smooth |
Smooth acceleration with the first person camera. | |
bool | m_attached |
Attache the first person camera to a kart. | |
float | m_angular_velocity |
The speed at which the up-vector rotates, only used for the first person camera. | |
float | m_target_angular_velocity |
Target angular velocity. | |
float | m_max_velocity |
Maximum velocity for fps camera. | |
core::vector3df | m_lin_velocity |
Linear velocity of the camera, used for end and first person camera. | |
core::vector3df | m_target_velocity |
Velocity of the target of the camera, used for end and first person camera. | |
core::vector3df | m_target_direction |
The target direction for the camera, only used for the first person camera. | |
core::vector3df | m_direction_velocity |
The speed at which the direction changes, only used for the first person camera. | |
core::vector3df | m_target_up_vector |
The up vector the camera should have, only used for the first person camera. | |
core::vector3df | m_local_position |
Save the local position if the first person camera is attached to the kart. | |
core::vector3df | m_local_direction |
Save the local direction if the first person camera is attached to the kart. | |
core::vector3df | m_local_up |
Save the local up vector if the first person camera is attached to the kart. | |
Friends | |
class | Camera |
Additional Inherited Members | |
![]() | |
enum | CameraType { CM_TYPE_NORMAL , CM_TYPE_DEBUG , CM_TYPE_FPS , CM_TYPE_END } |
The different camera types that can be used. More... | |
enum | Mode { CM_NORMAL , CM_CLOSEUP , CM_REVERSE , CM_LEADER_MODE , CM_SPECTATOR_SOCCER , CM_SPECTATOR_TOP_VIEW , CM_SIMPLE_REPLAY , CM_FALLING } |
![]() | |
Camera (CameraType type, int camera_index, AbstractKart *kart) | |
virtual | ~Camera () |
Removes the camera scene node from the scene. | |
virtual void | reset () |
Reset is called when a new race starts. | |
![]() | |
static Camera * | createCamera (unsigned int index, CameraType type, AbstractKart *kart) |
Creates a camera of the specified type, but does not add it to the list of all cameras. | |
![]() | |
scene::ICameraSceneNode * | m_camera |
The camera scene node. | |
AbstractKart * | m_kart |
The kart that the camera follows. | |
Handles the game camera.
void CameraFPS::applyMouseMovement | ( | float | x, |
float | y | ||
) |
Applies mouse movement to the first person camera.
x | The horizontal difference of the mouse position. |
y | The vertical difference of the mouse position. |
|
virtual |
Called once per time frame to move the camera to the right position.
dt | Time step. |
Reimplemented from Camera.
|
private |
Attache the first person camera to a kart.
That means moving the kart also moves the camera.
|
private |
Linear velocity of the camera, used for end and first person camera.
It's stored relative to the camera direction for the first person view.
|
private |
Target angular velocity.
Used for smooth movement in fps perpective.