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

Handles the end race camera. More...

#include <camera_end.hpp>

Inheritance diagram for CameraEnd:
Inheritance graph
[legend]

Classes

class  EndCameraInformation
 A class that stores information about the different end cameras which can be specified in the scene.xml file. More...
 

Public Member Functions

virtual void update (float dt) OVERRIDE
 Called once per time frame to move the camera to the right position.
 
- Public Member Functions inherited from CameraNormal
void snapToPosition ()
 
bool isDebug ()
 
bool isFPS ()
 
virtual void update (float dt) OVERRIDE
 Called once per time frame to move the camera to the right position.
 
void setAmbientLight (const video::SColor &color)
 Sets the ambient light for this camera.
 
void setDistanceToKart (float distance)
 
float getDistanceToKart () const
 
const video::SColor & getAmbientLight () const
 Returns the current ambient light.
 
- 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 void readEndCamera (const XMLNode &root)
 Reads the information about the end camera.
 
static void clearEndCameras ()
 This function clears all end camera data structure.
 
- 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 handleEndCamera (float dt)
 
 CameraEnd (int camera_index, AbstractKart *kart)
 

Private Attributes

unsigned int m_current_end_camera
 Index of the current end camera.
 
unsigned int m_next_end_camera
 The next end camera to be activated.
 

Static Private Attributes

static AlignedArray< EndCameraInformationm_end_cameras
 List of all end camera information.
 

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 end race camera.

It inherits from CameraNormal to make use of the normal camera implementation of a reverse camera.

Member Function Documentation

◆ clearEndCameras()

void CameraEnd::clearEndCameras ( )
static

This function clears all end camera data structure.

This is necessary since all end cameras are shared between all camera instances (i.e. are static), otherwise (if no end camera is defined for a track) the old end camera structure would be used.

◆ readEndCamera()

void CameraEnd::readEndCamera ( const XMLNode root)
static

Reads the information about the end camera.

This information is shared between all cameras, so this is a static function.

Parameters
nodeThe XML node containing all end camera informations

◆ update()

void CameraEnd::update ( float  dt)
virtual

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

This function handles the end camera. It adjusts the camera position according to the current camera type, and checks if a switch to the next camera should be made.

Parameters
dtTime step size.

Reimplemented from CameraNormal.

Member Data Documentation

◆ m_end_cameras

AlignedArray< CameraEnd::EndCameraInformation > CameraEnd::m_end_cameras
staticprivate

List of all end camera information.

This information is shared between all cameras, so it's static.


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