//
// Created by sebastian on 07.02.26.
//

#ifndef CAMERA_H
#define CAMERA_H
#include <cstdio>

#include "glm/vec3.hpp"


class Camera {
private:
    glm::vec3 position = glm::vec3(0.0f, 5.0f, 0.0f);
    float pitch = 0.0f;
    float yaw = 0.0f;
    float roll = 0.0f;

public:
    Camera() = default;
    void move(const glm::vec3 moveDir, const float moveSpeed) {
        if (moveDir != glm::vec3(0.0f)) {
            printf("moveDir: %f %f %f\n", moveDir.x, moveDir.y, moveDir.z);
        }
        position += moveDir * moveSpeed;
    }
    [[nodiscard]] glm::vec3 getPosition() const {return position;}
    void setPosition(glm::vec3 position) {this->position = position;}
    [[nodiscard]] float getPitch() const {return pitch;}
    void setPitch(float pitch) {this->pitch = pitch;}
    [[nodiscard]] float getYaw() const {return yaw;}
    void setYaw(float yaw) {this->yaw = yaw;}
    [[nodiscard]] float getRoll() const {return roll;}
    void setRoll(const float roll) {this->roll = roll;}

};



#endif //CAMERA_H
