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 
69  virtual void SetProjection( float left, float right, float bottom, float top, float nearDepth, float farDepth ) = 0;
70 
76  virtual void SetRenderTarget( Texture* target ) = 0;
77 
79  virtual Vec3 ViewDirection() const = 0;
80 
82  virtual float FarClipPlane() const = 0;
83 
85  virtual float NearClipPlane() const = 0;
86 };
87 
88 #endif
virtual void SetRenderTarget(Texture *target)=0
Perspective or orthographic camera.
Definition: Camera.hpp:12
virtual void LookAt(const Vec3 &eye, const Vec3 &center, const Vec3 &up)=0
virtual float NearClipPlane() const =0
virtual void MoveForward(float amount)=0
virtual Vec3 ScreenPoint(const Vec3 &worldPoint) const =0
virtual void MoveRight(float amount)=0
virtual void OffsetRotation(const Vec3 &axis, float angleDegrees)=0
3-component vector.
Definition: Vec3.hpp:22
Scene Graph Node. Models, Lights and Cameras are derived from this class.
Definition: SceneGraphNode.hpp:28
2D or Cube Map texture.
Definition: Texture.hpp:7
virtual void MoveUp(float amount)=0
virtual Vec3 ViewDirection() const =0
virtual float FarClipPlane() const =0
virtual void SetProjection(float fieldOfViewDegrees, float aspect, float nearDepth, float farDepth)=0