00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "api_gl1.h"
00035 #include "../Core/System/sharedptr.h"
00036 #include "../Core/Math/vec3.h"
00037
00038 class CL_Colorf;
00039 class CL_LightSource_GL1_Impl;
00040
00044 class CL_API_GL1 CL_LightSource_GL1
00045 {
00047 public:
00049 CL_LightSource_GL1();
00050
00051 ~CL_LightSource_GL1();
00052
00054 public:
00058 float get_spot_exponent() const;
00059
00062 float get_spot_cutoff() const;
00063
00066 float get_constant_attenuation() const;
00067
00070 float get_linear_attenuation() const;
00071
00074 float get_quadratic_attenuation() const;
00075
00077 CL_Colorf get_ambient_intensity() const;
00078
00080 CL_Colorf get_diffuse_intensity() const;
00081
00083 CL_Colorf get_specular_intensity() const;
00084
00086 CL_Vec4f get_position() const;
00087
00089 CL_Vec4f get_spot_direction() const;
00090
00092 public:
00096 void set_spot_exponent(float spot_exponent);
00097
00100 void set_spot_cutoff(float spot_cutoff);
00101
00104 void set_constant_attenuation(float constant_attenuation);
00105
00108 void set_linear_attenuation(float linear_attenuation);
00109
00112 void set_quadratic_attenuation(float quadratic_attenuation);
00113
00115 void set_ambient_intensity(const CL_Colorf &color);
00116
00118 void set_diffuse_intensity(const CL_Colorf &color);
00119
00121 void set_specular_intensity(const CL_Colorf &color);
00122
00133 void set_position(const CL_Vec4f &position);
00134
00136 void set_spot_direction(const CL_Vec3f &spot_direction);
00137
00139 private:
00140 CL_SharedPtr<CL_LightSource_GL1_Impl> impl;
00141 };
00142