OpenGLTests/src/objects/Camera.hpp

31 lines
515 B
C++
Raw Normal View History

2020-09-05 15:39:53 +02:00
#pragma once
#include <glm/glm.hpp>
#include "Shader.hpp"
class Camera
{
public:
Camera() = default;
2020-09-06 13:37:17 +02:00
Camera(glm::vec3 position, glm::vec3 direction);
Camera(glm::vec3 position, glm::vec2 pitchYaw);
2020-09-05 15:39:53 +02:00
void SetPosition(glm::vec3 newPos);
void Move(glm::vec3 movement);
2020-09-06 13:37:17 +02:00
void SetRotation(glm::vec2 pitchYaw);
void Rotate(glm::vec2 pitchYaw);
2020-09-05 15:39:53 +02:00
void Use(const Shader& program);
2020-09-06 13:37:17 +02:00
public:
glm::vec3 front, up, right;
2020-09-05 15:39:53 +02:00
private:
void CalculateCamera();
2020-09-06 13:37:17 +02:00
glm::vec3 position, direction;
2020-09-05 15:39:53 +02:00
glm::mat4 viewMatrix;
};