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;
|
|
|
|
};
|