lilith3d::Camera Class Reference

#include <camera.h>

List of all members.


Detailed Description

The class for controlling the camera. The interface is specified in yaw, pitch, and roll ("human" coordinates) but all interpolation is done with full rotation matrices and quaternions.

"MoveXXX" functions move the camera correcting for time, so the input to "MoveXXX" functions is a velocity.

"SetXXX" functions set the position of the camera, so the input is a rotation or

"PanXXX" functions move the camera over time on a path. The Pan functions, when the panning is complete, will call the camera listeners.


Public Member Functions

void MoveCamera (float xVelocity, float yVelocity, float zVelocity)
void MoveCameraAxial2D (float axialVelocity, float perpVelocity)
void MoveCameraAxial3D (float axialVelocity)
void MoveCameraRotation (CameraAxis axis, float deltaRotation)
 Rotate the camera a relative amount on the ROLL, PITCH, or YAW axis.
void SetCameraRotation (float yaw, float pitch)
 Set the yaw, pitch, and roll of the camera.
void SetCamera (float x, float y, float z, float yaw, float pitch)
 Absolute position the camera.
void SetCameraPosition (float x, float y, float z)
 Absolute position the camera.
void PanCamera (float x, float y, float z, float yaw, float pitch)
void PanCamera (U32 millisec, float x, float y, float z, float yaw, float pitch)
const grinliz::Vector3F & Eye ()
 Get the current camera coordinates.
float CalcPitch ()
float CalcYaw ()
grinliz::Vector3F Direction ()
 The forward motion direction of the camera.


Member Function Documentation

void lilith3d::Camera::MoveCamera ( float  xVelocity,
float  yVelocity,
float  zVelocity 
)

Move the camera relative to the current position. The change is in terrain (world) coordinates.

void lilith3d::Camera::MoveCameraAxial2D ( float  axialVelocity,
float  perpVelocity 
)

Move the camera in camera coordinates - an axial velocity is ahead, and the perpendicular to the side. Moves without changing the camera Z.

void lilith3d::Camera::MoveCameraAxial3D ( float  axialVelocity  ) 

Move the camera in camera coordinates - an axial velocity is ahead, and the perpendicular to the side.

void lilith3d::Camera::PanCamera ( float  x,
float  y,
float  z,
float  yaw,
float  pitch 
)

Smoothly move the camera by interpolation.

void lilith3d::Camera::PanCamera ( U32  millisec,
float  x,
float  y,
float  z,
float  yaw,
float  pitch 
)

Smoothly move the camera by interpolation, using a specified time.

float lilith3d::Camera::CalcPitch (  ) 

Calculate the latitude of where the camera is looking. This coresponds to pitch, but isn't an Euler Angle representation.

float lilith3d::Camera::CalcYaw (  ) 

Calculate the longitude of where the camera is looking. This coresponds to yaw, but isn't an Euler Angle representation. Longitude 0 is the x axis.


The documentation for this class was generated from the following file:
Generated on Fri Mar 23 19:36:26 2007 for Lilith3D by  doxygen 1.5.1-p1