parade/include/Camera.h

29 lines
1.0 KiB
C++

#pragma once
#include <glm/glm.hpp>
class Camera
{
private:
glm::vec3 m_position = { 0.f, 0.f, 1.f };
glm::vec3 m_front = { 0.f, 0.f, 0.f };
glm::vec3 m_up = { 0.f, 1.f, 0.f };
glm::vec3 m_right = { 1.f, 0.f, 0.f };
public:
// Since all variables are dependent on each other I've decided to
// disable the setters until I make sure they don't break things
// glm::vec3& position() { return m_position; }
// glm::vec3& front() { return m_front; }
// glm::vec3& up() { return m_up; }
// glm::vec3& right() { return m_right; }
const glm::vec3& position() const { return m_position; }
const glm::vec3& front() const { return m_front; }
const glm::vec3& up() const { return m_up; }
const glm::vec3& right() const { return m_right; }
void pan(float dist_x, float dist_y);
void orbit(float yaw, float pitch);
void zoom(float dist);
};