#pragma once

#include <glm/glm.hpp>

#include "object.h"

namespace kek {

class Camera: public DefaultObject {

public:
	glm::vec3 direction;
	float roll;

	Camera();

	void lookAt(glm::vec3 direction);

	void lookAtPos(glm::vec3 pos);

	void setYaw(float degrees);

	void rotateYaw(float degrees);

	void setPitch(float degrees);

	void rotatePitch(float degrees);

	void setRoll(float degrees);

	void rotateRoll(float degrees);

	glm::mat4 transformationMatrix();

	void lookAtMatrix(glm::mat4 matrix);

	// x = yaw, y = pitch, z = roll
	glm::vec3 eulerAngles();

	void applyEuler(glm::vec3 euler);

};

}