Voxel
 All Classes Namespaces Files Functions Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
Renderer::Camera Struct Reference

Camera class. More...

#include <renderer_camera.h>

Public Member Functions

 Camera (Vector< double, 3 > const &xx, Vector< double, 3 > const &yy, Vector< double, 3 > const &zz, Vector< double, 3 > const &position, double const zoom=1)
 Initializes a Camera matrix, and orthonormalizes the vectors.
Vector< double, 3 > const & VectorX () const
 Returns the X vector.
Vector< double, 3 > const & VectorY () const
 Returns the Y vector.
Vector< double, 3 > const & VectorZ () const
 Returns the Z vector.
Vector< double, 3 > const & Position () const
 Returns the position.
double const & Zoom () const
 Returns the zoom level.
void MoveRight (double const distance)
 Move the camera right (in camera coordinates) by the specified distance.
void MoveUp (double const distance)
 Move the camera up (in camera coordinates) by the specified distance.
void MoveBackward (double const distance)
 Move the camera backwards (in camera coordinates) by the specified distance.
void MoveLeft (double const distance)
 Move the camera left (in camera coordinates) by the specified distance.
void MoveDown (double const distance)
 Move the camera down (in camera coordinates) by the specified distance.
void MoveForward (double const distance)
 Move the camera forwards (in camera coordinates) by the specified distance.
void TurnCounterclockwise (double const angle)
 Roll the camera counterclockwise (in camera coordinates) by the specified angle (measured in radians).
void TurnDown (double const angle)
 Yaw the camera down (in camera coordinates) by the specified angle (measured in radians).
void TurnLeft (double const angle)
 Pitch the camera left (in camera coordinates) by the specified angle (measured in radians).
void TurnClockwise (double const angle)
 Roll the camera clockwise (in camera coordinates) by the specified angle (measured in radians).
void TurnUp (double const angle)
 Yaw the camera up (in camera coordinates) by the specified angle (measured in radians).
void TurnRight (double const angle)
 Pitch the camera right (in camera coordinates) by the specified angle (measured in radians).
void ZoomOut (double const amount)
 Zooms in by the specified amount.
void ZoomIn (double const amount)
 Zooms in by the specified amount.
void ZoomTo (double const zoom=1)
 Sets the zoom level.
void Normalize ()
 Orthonormalize the X, Y and Z vectors.

Detailed Description

Camera class.

Represents a camera matrix, consisting of a position, three vectors, and a zoom level. Following convention, the Z vector points backwards (i.e. towards the observer, from the scene), the Y vector points up (i.e. towards the top of the screen), and the X vector points right (i.e. the right side of the screen). Pictorially:

  |Y
  |
  P----X
 /
/Z

Where the observer (at position P) is looking along the direction opposite Z, with Y and X defining the orientation of the viewing frustum. The 3x4 camera matrix is simply [X,Y,Z,P].

Definition at line 52 of file renderer_camera.h.


The documentation for this struct was generated from the following file: