//********************************************
//********************************************
// class CCamera header file
//********************************************
//********************************************

#ifndef __CCAMERA_H__
#define __CCAMERA_H__

#include "3DPoint.h"
class CCamera
{

	public :

		// Construction / destruction
		CCamera();
		virtual ~CCamera();
		void Serialize(CArchive& ar);

		double GetNextZRotation();
		double GetNextYRotation();
		double GetNextXRotation();
		double GetNextZTranslation();
		double GetNextYTranslation();
		double GetNextXTranslation();

		void SetNextZRotation(double dZ);
		void SetNextYRotation(double dY);
		void SetNextXRotation(double dX);
		void SetNextZTranslation(double dZ);
		void SetNextYTranslation(double dY);
		void SetNextXTranslation(double dX);

	protected:
		double m_dNextCameraPositionArray[6];
		//stores a 4x4 matrix
		//entries 0->3 are the first row
		//entries 4->7 are the second row 
		//entries 8->11 are the third row 
		//entries 12->15 are the forth row 
		double m_dCameraPositionMatrix[16];
		//WorldPoint m_worldPoint;
public:
	void SetHeight(double dHeight);
	void SetInitialPosition(double x, double y, double z);
	void Reset();
	void SetCameraMatrix(double *);
	double* GetCameraMatrix(void);
	void ResetNextTranslations(void);
};
#endif