#ifndef CCAMERA
#define CCAMERA 1
#define ROTATE 1
#define ZOOM 2
#include <gl/glut.h>
#include <vcg/Point3.h>
using namespace vcg;
//===========================================================================================
//Camera per la vista OpenGL<br>
//basata sul tutorial <a href="http://www.gametutorials.com/Tutorials/OpenGL/OpenGL_Pg1.htm">
//http://www.gametutorials.com/Tutorials/OpenGL/OpenGL_Pg1.htm </a>*/
//===========================================================================================
class CCamera {
public:
//=========================
//la posizione della camera
//=========================
Point3<float> m_vPosition;
//===========================
//punto di vista della camera
//===========================
Point3<float> m_vView;
//===========================
//vettore Up della camera
//===========================
Point3<float> m_vUpVector;
//===========================
//centro di rotazione
//===========================
Point3<float> m_vcentrorotazione;
/**Costruttore*/
CCamera();
/** Position camera permette di cambiare Posizione, punto di vista e vettore up*/
void PositionCamera(float positionX, float positionY, float positionZ,
float viewX, float viewY, float viewZ,
float upVectorX, float upVectorY, float upVectorZ);
void RotateView(float angle, float x, float y, float z);
void RotateAroundPoint(Point3<float> vCenter, float angle, float x, float y, float z);
void MoveCamera(float speed);
void Draw();
};
#endif