SuperTuxKart
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
CameraFPS Class Reference

Handles the game camera. More...

#include <camera_fps.hpp>

Inheritance diagram for CameraFPS:
Inheritance graph
[legend]

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.
 
- Public Member Functions inherited from Camera
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 AbstractKartgetKart () const
 Returns the kart to which this camera is attached.
 
AbstractKartgetKart ()
 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 Public Member Functions inherited from Camera
static CameracreateCamera (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 CameragetCamera (unsigned int n)
 Returns a camera.
 
static CameragetActiveCamera ()
 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

- Public Types inherited from Camera
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
}
 
- Protected Member Functions inherited from Camera
 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 Protected Member Functions inherited from Camera
static CameracreateCamera (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.
 
- Protected Attributes inherited from Camera
scene::ICameraSceneNode * m_camera
 The camera scene node.
 
AbstractKartm_kart
 The kart that the camera follows.
 

Detailed Description

Handles the game camera.

Member Function Documentation

◆ applyMouseMovement()

void CameraFPS::applyMouseMovement ( float  x,
float  y 
)

Applies mouse movement to the first person camera.

Parameters
xThe horizontal difference of the mouse position.
yThe vertical difference of the mouse position.

◆ update()

void CameraFPS::update ( float  dt)
virtual

Called once per time frame to move the camera to the right position.

Parameters
dtTime step.

Reimplemented from Camera.

Member Data Documentation

◆ m_attached

bool CameraFPS::m_attached
private

Attache the first person camera to a kart.

That means moving the kart also moves the camera.

◆ m_lin_velocity

core::vector3df CameraFPS::m_lin_velocity
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.

◆ m_target_angular_velocity

float CameraFPS::m_target_angular_velocity
private

Target angular velocity.

Used for smooth movement in fps perpective.


The documentation for this class was generated from the following files: