//
// Created by vlad on 23.03.23.
//

#ifndef GRAPHICS_LABS_CAMERA_H
#define GRAPHICS_LABS_CAMERA_H

#include <glm/glm.hpp>

class Camera {
public:
    void updateVectors();

    glm::vec3 front;
    glm::vec3 up;
    glm::vec3 right;
    glm::vec3 dir;

    glm::vec3 position;
    float fov;
    glm::mat4 rotation;
    bool perspective = true;
    bool flipped = false;
    float aspect = 0.0f;
    Camera(glm::vec3 position, float fov);

    void rotate(float x, float y, float z);

    glm::mat4 getProjection();
    glm::mat4 getView();
};

#endif //GRAPHICS_LABS_CAMERA_H
