OpenGLTests/src/objects/Camera.hpp

35 lines
585 B
C++
Raw Normal View History

2020-09-05 13:39:53 +00:00
#pragma once
#include <glm/glm.hpp>
#include "Shader.hpp"
2020-09-06 12:17:00 +00:00
// TODO: reimplement, make it better
2020-09-05 13:39:53 +00:00
class Camera
{
public:
Camera() = default;
2020-09-06 11:37:17 +00:00
Camera(glm::vec3 position, glm::vec2 pitchYaw);
2020-09-05 13:39:53 +00:00
void SetPosition(glm::vec3 newPos);
void Move(glm::vec3 movement);
2020-09-06 11:37:17 +00:00
void SetRotation(glm::vec2 pitchYaw);
void Rotate(glm::vec2 pitchYaw);
2020-09-06 12:17:00 +00:00
void Constrain(glm::vec4 constraints);
2020-09-05 13:39:53 +00:00
void Use(const Shader& program);
2020-09-06 11:37:17 +00:00
public:
glm::vec3 front, up, right;
2020-09-05 13:39:53 +00:00
private:
void CalculateCamera();
2020-09-06 12:17:00 +00:00
glm::vec3 position;
glm::vec2 rotation;
glm::vec4 rotationConstraints;
2020-09-05 13:39:53 +00:00
glm::mat4 viewMatrix;
};