#ifndef cameraH_included
#define cameraH_included

#include <utils/maths.h>

struct Camera
{
	glm::vec3 eye = glm::vec3(0.0f);
	glm::vec3 look = glm::vec3(0.0f);
	glm::vec3 up = glm::vec3(0.0f, 1.0f, 0.0f);
	float yaw = 0.0f;
	float pitch = 0.0f;
};

extern Camera g_camera;

void cameraUpdateMouseLook(int x, int y);
void cameraUpdateLook(const Vec3& target, float dist);
void cameraUpdateLook_FPS(const Vec3& pos);
glm::vec3 cameraGetDirection();
Vec3 cameraGetDir();
void cameraPushToRender();

#endif // !cameraH_included
