47 lines
716 B
C++
47 lines
716 B
C++
#ifndef CAMERA_H_
|
|
#define CAMERA_H_
|
|
|
|
#include "entity.h"
|
|
#include "../lib/glm/glm.hpp"
|
|
|
|
class Camera : public Entity {
|
|
public:
|
|
Camera();
|
|
|
|
[[nodiscard]] const glm::mat4& projection() const
|
|
{
|
|
return projection_;
|
|
}
|
|
void set_projection(const glm::mat4& proj)
|
|
{
|
|
projection_ = proj;
|
|
}
|
|
|
|
[[nodiscard]] const glm::ivec4& viewport() const
|
|
{
|
|
return viewport_;
|
|
}
|
|
void set_viewport(const glm::ivec4& vp)
|
|
{
|
|
viewport_ = vp;
|
|
}
|
|
|
|
[[nodiscard]] const glm::vec3& clear_color() const
|
|
{
|
|
return clear_color_;
|
|
}
|
|
void set_clear_color(const glm::vec3& color)
|
|
{
|
|
clear_color_ = color;
|
|
}
|
|
|
|
void prepare();
|
|
|
|
private:
|
|
glm::mat4 projection_;
|
|
glm::ivec4 viewport_;
|
|
glm::vec3 clear_color_;
|
|
};
|
|
|
|
#endif // CAMERA_H_
|