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_
 |