00001 #ifndef GLT_LIGHT_H
00002 #define GLT_LIGHT_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00039 #include <glt/gl.h>
00040
00041 #include <iosfwd>
00042
00043 #include <math/vector3.h>
00044 #include <glt/color.h>
00045
00053 class GltLight
00054 {
00055 public:
00056
00058 GltLight(const GLenum light = GL_LIGHT0,const bool getIt = false);
00060 ~GltLight();
00061
00063 void get();
00065 void set() const;
00066
00067 GLenum &light();
00068 bool &enabled();
00069 GltColor &ambient();
00070 GltColor &diffuse();
00071 GltColor &specular();
00072 Vector &position();
00073 Vector &spotDirection();
00074 GLfloat &spotExponent();
00075 GLfloat &spotCutoff();
00076 GLfloat &attenutationConstant();
00077 GLfloat &attenutationLinear();
00078 GLfloat &attenutationQuadratic();
00079
00080 const GLenum &light() const;
00081 const bool &enabled() const;
00082 const GltColor &ambient() const;
00083 const GltColor &diffuse() const;
00084 const GltColor &specular() const;
00085 const Vector &position() const;
00086 const Vector &spotDirection() const;
00087 const GLfloat &spotExponent() const;
00088 const GLfloat &spotCutoff() const;
00089 const GLfloat &attenutationConstant() const;
00090 const GLfloat &attenutationLinear() const;
00091 const GLfloat &attenutationQuadratic() const;
00092
00093 private:
00094
00095 GLenum _light;
00096 bool _enabled;
00097
00098 GltColor _ambient;
00099 GltColor _diffuse;
00100 GltColor _specular;
00101 Vector _position;
00102 Vector _spotDirection;
00103 GLfloat _spotExponent;
00104 GLfloat _spotCutoff;
00105 GLfloat _attenuationConstant;
00106 GLfloat _attenuationLinear;
00107 GLfloat _attenuationQuadratic;
00108
00109 const static GltColor _ambientDefault;
00110 const static GltColor _diffuseDefault;
00111 const static GltColor _specularDefault;
00112 const static Vector _positionDefault;
00113 const static Vector _spotDirectionDefault;
00114 const static GLfloat _spotExponentDefault;
00115 const static GLfloat _spotCutoffDefault;
00116 const static GLfloat _attenuationConstantDefault;
00117 const static GLfloat _attenuationLinearDefault;
00118 const static GLfloat _attenuationQuadraticDefault;
00119 };
00120
00121 #endif