CCamera.h 877 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include "WallpaperEngine/Render/Wallpapers/CScene.h"
  3. #include <glm/mat4x4.hpp>
  4. #include <glm/vec2.hpp>
  5. #include <glm/vec3.hpp>
  6. #include "WallpaperEngine/Core/Scenes/CCamera.h"
  7. namespace WallpaperEngine::Render {
  8. class CScene;
  9. class CCamera {
  10. public:
  11. CCamera (CScene* scene, const Core::Scenes::CCamera* camera);
  12. ~CCamera ();
  13. void setOrthogonalProjection (float width, float height);
  14. const glm::vec3& getCenter () const;
  15. const glm::vec3& getEye () const;
  16. const glm::vec3& getUp () const;
  17. const glm::mat4& getProjection () const;
  18. const glm::mat4& getLookAt () const;
  19. CScene* getScene () const;
  20. bool isOrthogonal () const;
  21. private:
  22. bool m_isOrthogonal;
  23. glm::mat4 m_projection;
  24. glm::mat4 m_lookat;
  25. const Core::Scenes::CCamera* m_camera;
  26. CScene* m_scene;
  27. };
  28. } // namespace WallpaperEngine::Render