Aether3D
Game Engine
Camera.hpp
1 #ifndef CAMERA_H
2 #define CAMERA_H
3 
4 #ifndef SCENEGRAPHNODE_H
5 # include "SceneGraphNode.hpp"
6 #endif
7 
8 struct Vec3;
9 class Texture;
10 
12 class Camera : public SceneGraphNode
13 {
14  public:
15  virtual ~Camera() {}
16 
24  virtual void LookAt( const Vec3& eye, const Vec3& center, const Vec3& up ) = 0;
25 
27  virtual void MoveForward( float amount ) = 0;
28 
30  virtual void MoveRight( float amount ) = 0;
31 
33  virtual void MoveUp( float amount ) = 0;
34 
39  virtual void OffsetRotation( const Vec3& axis, float angleDegrees ) = 0;
40 
47  virtual Vec3 ScreenPoint( const Vec3& worldPoint ) const = 0;
48 
57  virtual void SetProjection( float fieldOfViewDegrees, float aspect, float nearDepth, float farDepth ) = 0;
58 
67  virtual void SetViewport( int left, int right, int top, int bottom ) = 0;
68 
79  virtual void SetProjection( float left, float right, float bottom, float top, float nearDepth, float farDepth ) = 0;
80 
86  virtual void SetRenderTarget( Texture* target ) = 0;
87 
89  virtual Vec3 ViewDirection() const = 0;
90 
92  virtual float FarClipPlane() const = 0;
93 
95  virtual float NearClipPlane() const = 0;
96 };
97 
98 #endif
Camera::ViewDirection
virtual Vec3 ViewDirection() const =0
Camera::SetViewport
virtual void SetViewport(int left, int right, int top, int bottom)=0
Camera::LookAt
virtual void LookAt(const Vec3 &eye, const Vec3 &center, const Vec3 &up)=0
Camera
Perspective or orthographic camera.
Definition: Camera.hpp:12
Camera::ScreenPoint
virtual Vec3 ScreenPoint(const Vec3 &worldPoint) const =0
Camera::MoveUp
virtual void MoveUp(float amount)=0
Texture
2D or Cube Map texture.
Definition: Texture.hpp:7
Camera::NearClipPlane
virtual float NearClipPlane() const =0
Vec3
3-component vector.
Definition: Vec3.hpp:22
Camera::SetRenderTarget
virtual void SetRenderTarget(Texture *target)=0
Camera::MoveRight
virtual void MoveRight(float amount)=0
Camera::OffsetRotation
virtual void OffsetRotation(const Vec3 &axis, float angleDegrees)=0
Camera::FarClipPlane
virtual float FarClipPlane() const =0
Camera::SetProjection
virtual void SetProjection(float fieldOfViewDegrees, float aspect, float nearDepth, float farDepth)=0
Camera::MoveForward
virtual void MoveForward(float amount)=0
SceneGraphNode
Scene Graph Node. Models, Lights and Cameras are derived from this class.
Definition: SceneGraphNode.hpp:28