SuperTuxKart
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Attributes | Friends | List of all members
CameraDebug Class Reference

Handles the debug camera. More...

#include <camera_debug.hpp>

Inheritance diagram for CameraDebug:
Inheritance graph
[legend]

Public Types

enum  CameraDebugType { CM_DEBUG_TOP_OF_KART, CM_DEBUG_GROUND, CM_DEBUG_BEHIND_KART, CM_DEBUG_SIDE_OF_KART }
 
- 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_SIMPLE_REPLAY, CM_FALLING
}
 

Public Member Functions

void update (float dt)
 Called once per time frame to move the camera to the right position. More...
 
- Public Member Functions inherited from CameraNormal
void snapToPosition ()
 
bool isDebug ()
 
bool isFPS ()
 
void setAmbientLight (const video::SColor &color)
 Sets the ambient light for this camera. More...
 
float getDistanceToKart () const
 
const video::SColor & getAmbientLight () const
 Returns the current ambient light. More...
 
- Public Member Functions inherited from Camera
void setMode (Mode mode)
 Sets the mode of the camera. More...
 
Mode getMode ()
 Set the camera to the given mode. More...
 
void setKart (AbstractKart *new_kart)
 Changes the owner of this camera to the new kart. More...
 
virtual void setInitialTransform ()
 Saves the current kart position as initial starting position for the camera.
 
virtual void activate (bool alsoActivateInIrrlicht=true)
 Sets viewport etc. More...
 
CameraType getType ()
 Returns the type of this camera. More...
 
void setFoV ()
 Sets the field of view for the irrlicht camera. More...
 
int getIndex () const
 Returns the camera index (or player kart index, which is the same). More...
 
core::matrix4 getPreviousPVMatrix () const
 Returns the project-view matrix of the previous frame. More...
 
void setPreviousPVMatrix (core::matrix4 mat)
 Returns the project-view matrix of the previous frame. More...
 
const AbstractKartgetKart () const
 Returns the kart to which this camera is attached. More...
 
AbstractKartgetKart ()
 Returns the kart to which this camera is attached. More...
 
void setAmbientLight (const video::SColor &color)
 Sets the ambient light for this camera. More...
 
const video::SColor & getAmbientLight () const
 Returns the current ambient light. More...
 
const core::recti & getViewport () const
 Returns the viewport of this camera. More...
 
const core::vector2df & getScaling () const
 Returns the scaling in x/y direction for this camera. More...
 
scene::ICameraSceneNode * getCameraSceneNode ()
 Returns the camera scene node. More...
 
Vec3 getXYZ ()
 Returs the absolute position of the camera. More...
 

Static Public Member Functions

static void setDebugType (CameraDebugType type)
 Sets the debug type for all cameras. More...
 
- 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. More...
 
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. More...
 
static CameraType getDefaultCameraType ()
 Returns the default type for each camera that will be created. More...
 
static unsigned int getNumCameras ()
 Returns the number of cameras used. More...
 
static CameragetCamera (unsigned int n)
 Returns a camera. More...
 
static CameragetActiveCamera ()
 Returns the currently active camera. More...
 
static void removeAllCameras ()
 Remove all cameras. More...
 

Private Member Functions

void getCameraSettings (float *above_kart, float *cam_angle, float *side_way, float *distance)
 Determine the camera settings for the current frame. More...
 
void positionCamera (float dt, float above_kart, float cam_angle, float side_way, float distance)
 Actually sets the camera based on the given parameter. More...
 
 CameraDebug (int camera_index, AbstractKart *kart)
 
virtual ~CameraDebug ()
 Removes the camera scene node from the scene.
 

Static Private Attributes

static CameraDebugType m_default_debug_Type
 

Friends

class Camera
 

Additional Inherited Members

- 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. More...
 
- 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. More...
 
- Protected Attributes inherited from Camera
scene::ICameraSceneNode * m_camera
 The camera scene node. More...
 
AbstractKartm_kart
 The kart that the camera follows. More...
 

Detailed Description

Handles the debug camera.

Inherits from CameraNormal to make use of the smoothing function.

Member Enumeration Documentation

◆ CameraDebugType

Enumerator
CM_DEBUG_TOP_OF_KART 

Camera hovering over kart.

CM_DEBUG_GROUND 

Camera at ground level, wheel debugging.

CM_DEBUG_BEHIND_KART 

Camera straight behind kart.

CM_DEBUG_SIDE_OF_KART 

Camera to the right of the kart.

Member Function Documentation

◆ getCameraSettings()

void CameraDebug::getCameraSettings ( float *  above_kart,
float *  cam_angle,
float *  sideway,
float *  distance 
)
private

Determine the camera settings for the current frame.

Parameters
above_kartHow far above the camera should aim at.
cam_angleAngle above the kart plane for the camera.
sidewaySideway movement of the camera.
distanceDistance from kart.

◆ positionCamera()

void CameraDebug::positionCamera ( float  dt,
float  above_kart,
float  cam_angle,
float  side_way,
float  distance 
)
private

Actually sets the camera based on the given parameter.

Parameters
above_kartHow far above the camera should aim at.
cam_angleAngle above the kart plane for the camera.
sidewaySideway movement of the camera.
distanceDistance from kart.

◆ setDebugType()

static void CameraDebug::setDebugType ( CameraDebugType  type)
inlinestatic

Sets the debug type for all cameras.

◆ update()

void CameraDebug::update ( float  dt)
virtual

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

Parameters
dtTime step.

Reimplemented from CameraNormal.

Member Data Documentation

◆ m_default_debug_Type

CameraDebug::CameraDebugType CameraDebug::m_default_debug_Type
staticprivate

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