You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
890 B
38 lines
890 B
#pragma once
|
|
#include "ggl.h"
|
|
|
|
class Light {
|
|
protected:
|
|
GLenum mLightIdentifier;
|
|
Light();
|
|
public:
|
|
void SetAmbientColor(float r, float g, float b, float a);
|
|
void SetDiffuseColor(float r, float g, float b, float a);
|
|
void SetSpecularColor(float r, float g, float b, float a);
|
|
void Enable();
|
|
};
|
|
|
|
class DirectionLight : public Light {
|
|
public:
|
|
DirectionLight(GLenum light);
|
|
void SetPosition(float x, float y, float z);
|
|
};
|
|
|
|
class PointLight : public Light {
|
|
float mPosition[3];
|
|
public:
|
|
PointLight(GLenum light);
|
|
void SetPosition(float x, float y, float z);
|
|
void SetConstAttenuation(float v);
|
|
void SetLinearAttenuation(float v);
|
|
void SetQuadricAttenuation(float v);
|
|
void Update(float x, float y, float z);
|
|
};
|
|
|
|
class SpotLight : public PointLight {
|
|
public:
|
|
SpotLight(GLenum light);
|
|
void SetDirection(float x, float y, float z);
|
|
void SetExpone(float v);
|
|
void SetCutoff(float v);
|
|
};
|