CPerspectiveCamera.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "CCamera.h"
5 
6 
7 namespace ion
8 {
9  namespace Scene
10  {
11 
12  enum class EProjectionType
13  {
14  Standard,
17  };
18 
19  class CPerspectiveCamera : public CCamera
20  {
21 
22  public:
23 
24  CPerspectiveCamera(f32 const aspectRatio, f32 const nearPlane = 0.1f, f32 const farPlane = 100.f, f32 const focalLength = 0.13f);
25 
26  f32 GetFieldOfView() const;
27  f32 GetFocalLength() const;
28  f32 GetAspectRatio() const;
29 
30  void SetFieldOfView(f32 const fieldOfView);
31  void SetFocalLength(f32 const focalLength);
32  void SetAspectRatio(f32 const aspectRatio);
33 
34  void RecalculateProjectionMatrix();
35  void Update();
36 
37  EProjectionType GetProjectionType() const;
38  void SetProjectionType(EProjectionType const Type);
39 
40  protected:
41 
43 
46 
47  };
48 
49  }
50 }
f32 AspectRatio
Definition: CPerspectiveCamera.h:45
EProjectionType
Definition: CPerspectiveCamera.h:12
f32 FocalLength
Definition: CPerspectiveCamera.h:44
float f32
Definition: ionTypes.h:94
Definition: CCatmullRomAdvancedSplineInterpolator.h:7
Definition: CCamera.h:12
Lightweight wrapper for std::type_info that enables sorting (e.g. for use in a std::map) ...
Definition: ionClass.h:180
Definition: CPerspectiveCamera.h:19