#ifndef DEF_TX_LIGHT
 #define DEF_TX_LIGHT

//------------------------------------------//
//				 TKA4 Light					//
//				26. 10. 2007				//
//------------------------------------------//


//--- Includes
#include "gl_add.h"

#include "TX_Error.h"
#include "../StrDivider/StrDiv.h"
//=== Includes 



//--- txLight ---//
class txLight {	
public:	
	GLint  number;

	GLfloat  LightPos[4];  // Point source
	GLfloat  Param[4];

	GLfloat  Ambient[4];
	GLfloat  Diffuse[4];
	GLfloat  Specular[4];

public:
	txLight() { }

	txLight(int num, char* filename) {
		number = num;

		if (filename == STR_NONE || filename == NULL) {
			
			
			LightPos[0]=-100.0f; LightPos[1]=100.0f; LightPos[2]=50.0f; LightPos[3]=1;
			Param[0]=0; Param[1]=0; Param[2]=0; Param[3]=0;
			
			Ambient[0]=0.5f; Ambient[1]=0.5f; Ambient[2]=0.5f; Ambient[3]=1.0f;
			Diffuse[0]=1; Diffuse[1]=1; Diffuse[2]=1; Diffuse[3]=1;
			Specular[0]=1; Specular[1]=1; Specular[2]=1; Specular[3]=1;
		}
	}


	inline void Init() {
		glLightModelfv(GL_LIGHT_MODEL_AMBIENT, Param);

		glLightfv(GL_LIGHT0+number, GL_AMBIENT, Ambient);
		glLightfv(GL_LIGHT0+number, GL_DIFFUSE, Diffuse);
		glLightfv(GL_LIGHT0+number, GL_SPECULAR, Specular);

		glLightfv(GL_LIGHT0+number, GL_POSITION, LightPos);
	}

	inline void ApplyPosition() {
		glLightfv(GL_LIGHT0+number, GL_POSITION, LightPos);
	}

	inline void Disable() { glDisable (GL_LIGHT0+number); }
	inline void Enable() { glEnable (GL_LIGHT0+number); }
};



#endif