#include "Tetobject.h"

#ifndef _CAMERA
#define _CAMERA

class Camera
{
public:
	Camera();
	virtual ~Camera();

	void Set();
	void Init();
	void MoveForward();
	void MoveBackward();
	void MoveLeft();
	void MoveRight();
	void MoveUp();
	void MoveDown();
	void TurnHorizontal(float spin);
	void TurnVertical(float spin);

	void NextCameraMode();
	void Follow(Tetobject* model);	// set the model to follow

	void SetPos(float *p);
	float *GetPos() {return &m_pos[0];};

private:
	float m_pos[4];
	float m_yz;	 //yz-plane angle
	float m_xz;  //xz-plane angle

	Tetobject* model;		// model to follow
	int cameramode;			// 0=shooter, 1=behind, 2=from right side, 3=from front, ...?
	int cameramodecounter;	// help for better input, counts some times before cameramode changes
	int camdistance;			// distance from standardposition of the camera of a view...
	int camheight;
	float camRotX;			// when rotating, store change in X and Y direction
	float camRotY;
	int CAMSTEP;


//helper var
	float m_stsin; 
	float m_stcos; 
};

#endif _CAMERA