#ifndef CAMERA_H
#define CAMERA_H
#include <GL/glm/glm.hpp> //Include GLM library
#include <GL/glm/gtc/matrix_transform.hpp> //Include header to be able to perform matrix transformations
#include <GL/glm/gtc/type_ptr.hpp> //Get direct pointer to matrix data
#include <GL/freeglut.h>
class Camera
{
public:
//Constructors
Camera(); //Default constructor called if no parameter is passed. .
Camera(GLfloat camPosX, GLfloat camPosY, GLfloat camPosZ, //Explicit constructor.
GLfloat camTargetX, GLfloat camTargetY, GLfloat camTargetZ);
glm::mat4 createViewMatrix(); //Create the view matrix
//Camera rotation
/*void yawRotation(GLfloat angle); //Yaw rotation
void pitchRotation(GLfloat angle); //Pitch rotation limited to +- 90 degrees
//Camera movements
void moveForward(GLfloat moveSpeed);
void moveBackward(GLfloat moveSpeed);
void moveLeft(GLfloat moveSpeed);
void moveRight(GLfloat moveSpeed);
void moveUp(GLfloat moveSpeed);
void moveDown(GLfloat moveSpeed);*/
private:
glm::vec3 cameraPosition; //Position of camera in the world
glm::vec3 cameraTarget; //Target of the camera in the world
//GLfloat degToRad(GLfloat angle); //Convert degrees to radians
//glm::vec3 cartesianToSpherical(glm::vec3 cartesianCoord); //Convert cartesian coordinates to spherical coordinates
//glm::vec3 sphericalToCartesian(glm::vec3 sphericalCoord); //Convert spherical coordinates to cartesian coordinates
};
#endif