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

#ifndef _EPSG_LIGHTSOURCE_
#define _EPSG_LIGHTSOURCE_

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

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

		virtual int			setupLights();

		void				setPosition( float x, float y, float z );
		void				setPosition( Vec3<float> pos );
		void				setDirectional( bool val );
		void				setAmbient( float r, float g, float b, float a );
		void				setDiffuse( float r, float g, float b, float a );
		void				setSpecular( float r, float g, float b, float a );

	private:
		int					_id;
		Vec4<float>			_pos;
		Vec4<float>			_amb;
		Vec4<float>			_dif;
		Vec4<float>			_spc;
	};
}

#endif //_EPSG_LIGHTSOURCE_