#ifndef CCAMERA_H
#define CCAMERA_H

enum type_modecam { CENTRE, SUITBLOC, SUITGUIDE };

class CCamera
{
public:
	CVector3 Position;
	CVector3 Observation;
	CVector3 Haut;

	void (*DisplayFunc)(void);

	long TempsLastFrame;

	bool EstAvance, EstRecule;
	type_modecam ModeCam;

	CCamera() : Position(MAX_X * 2.5f, MAX_Y * 2.5f, MAX_Z2 * 2.5f),
				Observation(MAX_X2, MAX_Y2, MAX_Z2), Haut(0, 0, 1)
	{
		EstAvance = EstRecule = false;
		TempsLastFrame = 0;
		DisplayFunc = 0;
		ModeCam = CENTRE;
	}

	void CamLookAt();
	void ChangeMode();
	
	void TournePosition(float Angle, const CVector3& Axe);
	void Avance(float Delta);
};

extern CCamera gCamera;

#endif
