/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* E.P. Scene Graph
* Developed by:
*       - Eduardo Ribeiro (eribeiro @ tecgraf . puc-rio . br)
*       - Peter Dam (peter @ tecgraf . puc-rio . br)
* File: Camera.h
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

#ifndef _EPSG_CAMERA_
#define _EPSG_CAMERA_

#include "EPSG/Leaf.h"
#include "EPSG/Vec3.h"

namespace EPSG
{
	class Camera : public Leaf
	{
	public:
		/* [CONSTRUCTOR] */	Camera();

		virtual bool		setupCamera();
		
		void				setFovY( float fovY );
		void				setZPlanes( float zNear, float zFar );
		void				setEye( float x, float y, float z );
		void				setEye( Vec3<float> eye );
		void				setCenter( float x, float y, float z );
		void				setCenter( Vec3<float> center );
		void				setUp( float x, float y, float z );
		void				setUp( Vec3<float> up );

		float				getZNear();
		float				getZFar();

	private:
		float				_fovY;
		float				_zNear;
		float				_zFar;
		Vec3<float>			_eye;
		Vec3<float>			_center;
		Vec3<float>			_up;
	};
}

#endif //_EPSG_CAMERA_