////////////////////////////////////////////////////////////////////////////////
// LightSource.h
// Stores data on a light source
// Copyright Bjoern Ganster
// Developed since 2021
////////////////////////////////////////////////////////////////////////////////

#ifndef LightSource__h
#define LightSource__h

#include "RenderableObject.h"
#include "Point3D.h"

class LightSource: public RenderableObject {
public:
	Point3D mPos;
	GLenum mLightNo;
	GLfloat mAmbientFactor;
	GLfloat mSpecularFactor;
	GLfloat mConstantAttenuation;
	GLfloat mLinearAttenuation;
	GLfloat mQuadraticAttenuation;
	bool mRenderShadows;

	// Constructor
	LightSource(GLenum lightNo);

	// Destructor
	~LightSource();

	// Activate light source
	void activate(bool renderingShadows);

	// Deactivate light source
	void deactivate();
};

#endif