00001
00002
00003
00004
00005 #ifndef __S_LIGHT_H_INCLUDED__
00006 #define __S_LIGHT_H_INCLUDED__
00007
00008 #include "SColor.h"
00009
00010 namespace irr
00011 {
00012 namespace video
00013 {
00014
00016 enum E_LIGHT_TYPE
00017 {
00019 ELT_POINT,
00021 ELT_SPOT,
00023 ELT_DIRECTIONAL
00024 };
00025
00027 const c8* const LightTypeNames[] =
00028 {
00029 "Point",
00030 "Spot",
00031 "Directional",
00032 0
00033 };
00034
00036
00038 struct SLight
00039 {
00040 SLight() : AmbientColor(0.f,0.f,0.f), DiffuseColor(1.f,1.f,1.f),
00041 SpecularColor(1.f,1.f,1.f), Attenuation(1.f,0.f,0.f),
00042 OuterCone(45.f), InnerCone(0.f), Falloff(2.f),
00043 Position(0.f,0.f,0.f), Direction(0.f,0.f,1.f),
00044 Radius(100.f), Type(ELT_POINT), CastShadows(true)
00045 {}
00046
00048 SColorf AmbientColor;
00049
00051
00052 SColorf DiffuseColor;
00053
00055
00056 SColorf SpecularColor;
00057
00059
00062 core::vector3df Attenuation;
00063
00065 f32 OuterCone;
00066
00068 f32 InnerCone;
00069
00071 f32 Falloff;
00072
00074
00075 core::vector3df Position;
00076
00078
00079 core::vector3df Direction;
00080
00082 f32 Radius;
00083
00085 E_LIGHT_TYPE Type;
00086
00088 bool CastShadows:1;
00089 };
00090
00091 }
00092 }
00093
00094 #endif
00095