Lugdunum  0.1.0
Perspective.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 
5 namespace lug {
6 namespace Graphics {
7 
8 namespace Builder {
9 class Camera;
10 } // Builder
11 
12 namespace Render {
13 namespace Camera {
14 
16  friend class Builder::Camera;
17 
18 public:
19  Perspective(const Perspective&) = delete;
20  Perspective(Perspective&&) = delete;
21 
22  Perspective& operator=(const Perspective&) = delete;
23  Perspective& operator=(Perspective&&) = delete;
24 
25  ~Perspective() = default;
26 
27  float getFovY() const;
28  void setFovY(float fovy);
29 
30  float getAspectRatio() const;
31  void setAspectRatio(float aspectRatio);
32 
33 protected:
34  explicit Perspective(const std::string& name);
35 
36  void updateProj() override final;
37 
38 private:
39  float _fovy{0.0f};
40  float _aspectRatio{0.0f};
41 };
42 
44 
45 } // Camera
46 } // Render
47 } // Graphics
48 } // lug
#define LUG_GRAPHICS_API
Definition: Export.hpp:11