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(float const aspectRatio, float const nearPlane = 0.1f, float const farPlane = 100.f, float const focalLength = 0.13f);
25 
26  float GetFieldOfView() const;
27  float GetFocalLength() const;
28  float GetAspectRatio() const;
29 
30  void SetFieldOfView(float const fieldOfView);
31  void SetFocalLength(float const focalLength);
32  void SetAspectRatio(float 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 
44  float FocalLength;
45  float AspectRatio;
46 
47  };
48 
49  }
50 }
EProjectionType
Definition: CPerspectiveCamera.h:12
float FocalLength
Definition: CPerspectiveCamera.h:44
Definition: CCatmullRomAdvancedSplineInterpolator.h:7
Lightweight wrapper for std::type_info that enables sorting (e.g. for use in a std::map) ...
Definition: ionClass.h:20
Definition: CCamera.h:12
Definition: CPerspectiveCamera.h:19
float AspectRatio
Definition: CPerspectiveCamera.h:45