34 lines
		
	
	
		
			776 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			776 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include "ogl.h"
 | 
						|
#include <Kore/Math/Vector.h>
 | 
						|
 | 
						|
namespace Kore {
 | 
						|
	enum LightType { DirectionalLight, PointLight, SpotLight };
 | 
						|
 | 
						|
	class LightImpl {
 | 
						|
	public:
 | 
						|
		LightImpl();
 | 
						|
		virtual ~LightImpl();
 | 
						|
 | 
						|
	protected:
 | 
						|
		// Submit light parameters to OpenGL (lightID is GL_LIGHT<n> where <n> is in the range [0, 7])
 | 
						|
		void submitLightParamsToGL(GLenum lightID) const;
 | 
						|
 | 
						|
		// Submit light transformation to OpenGL (lightID is GL_LIGHT<n> where <n> is in the range [0, 7]).
 | 
						|
		void submitLightTransformToGL(GLenum lightID) const;
 | 
						|
 | 
						|
		LightType myType;
 | 
						|
		vec4 myAmbient;
 | 
						|
		vec4 myDiffuse;
 | 
						|
		vec4 mySpecular;
 | 
						|
		vec4 myPositionOrDirection;
 | 
						|
		vec3 mySpotDirection;
 | 
						|
		float mySpotExponent;
 | 
						|
		float mySpotCutoff;
 | 
						|
		float myConstAttn;
 | 
						|
		float myLinearAttn;
 | 
						|
		float myQuadricAttn;
 | 
						|
	};
 | 
						|
}
 |