#ifndef CAMERAINFO_H_
#define CAMERAINFO_H_

#include <ElementRenderer\StateChange.hpp>
#include <Stuff\StuffHeaders.hpp>
#include"ViewSpline.h"


class CameraInfo
{
public:
	enum CAMMODE {CM_TRACK,CM_FREE} ;
protected:
	float CurTime,Vel;
	void ValidateTime();
	CAMMODE Mode;
public:
	
	Stuff::Point3D  Loc,TargetLoc;
	Stuff::Vector3D Dir;
	Stuff::Scalar CamTrackAlt,TarTrackAlt;
	Stuff::Scalar NearClip,FarClip;
	Stuff::Radian FOV;
	ElementRenderer::StateChange State;
	
	bool UseTarget,Animate,CamATrkFlg,TarATrkFlg;
	SplineLoop *ViewLoop;
	
	CameraInfo();
	~CameraInfo();
	float GetTime() { return CurTime;}
	CAMMODE GetMode() { return Mode;}
	void SetMode(CAMMODE cmd);
	void SetTime(float tme); 
	void AddTime(float tme=0.1f);
	float GetVel() {return Vel;}
	void SetVel(float v) {Vel=v;}
	void ZeroTime() ;
	void UpdateCPos();
};



#endif