aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/others/irrlicht-1.8.1/include/SLight.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/others/irrlicht-1.8.1/include/SLight.h')
-rw-r--r--src/others/irrlicht-1.8.1/include/SLight.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/src/others/irrlicht-1.8.1/include/SLight.h b/src/others/irrlicht-1.8.1/include/SLight.h
new file mode 100644
index 0000000..f809d2e
--- /dev/null
+++ b/src/others/irrlicht-1.8.1/include/SLight.h
@@ -0,0 +1,98 @@
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __S_LIGHT_H_INCLUDED__
6#define __S_LIGHT_H_INCLUDED__
7
8#include "SColor.h"
9
10namespace irr
11{
12namespace video
13{
14
15//! Enumeration for different types of lights
16enum E_LIGHT_TYPE
17{
18 //! point light, it has a position in space and radiates light in all directions
19 ELT_POINT,
20 //! spot light, it has a position in space, a direction, and a limited cone of influence
21 ELT_SPOT,
22 //! directional light, coming from a direction from an infinite distance
23 ELT_DIRECTIONAL,
24
25 //! Only used for counting the elements of this enum
26 ELT_COUNT
27};
28
29//! Names for light types
30const c8* const LightTypeNames[] =
31{
32 "Point",
33 "Spot",
34 "Directional",
35 0
36};
37
38//! structure for holding data describing a dynamic point light.
39/** Irrlicht supports point lights, spot lights, and directional lights.
40*/
41struct SLight
42{
43 SLight() : AmbientColor(0.f,0.f,0.f), DiffuseColor(1.f,1.f,1.f),
44 SpecularColor(1.f,1.f,1.f), Attenuation(1.f,0.f,0.f),
45 OuterCone(45.f), InnerCone(0.f), Falloff(2.f),
46 Position(0.f,0.f,0.f), Direction(0.f,0.f,1.f),
47 Radius(100.f), Type(ELT_POINT), CastShadows(true)
48 {}
49
50 //! Ambient color emitted by the light
51 SColorf AmbientColor;
52
53 //! Diffuse color emitted by the light.
54 /** This is the primary color you want to set. */
55 SColorf DiffuseColor;
56
57 //! Specular color emitted by the light.
58 /** For details how to use specular highlights, see SMaterial::Shininess */
59 SColorf SpecularColor;
60
61 //! Attenuation factors (constant, linear, quadratic)
62 /** Changes the light strength fading over distance.
63 Can also be altered by setting the radius, Attenuation will change to
64 (0,1.f/radius,0). Can be overridden after radius was set. */
65 core::vector3df Attenuation;
66
67 //! The angle of the spot's outer cone. Ignored for other lights.
68 f32 OuterCone;
69
70 //! The angle of the spot's inner cone. Ignored for other lights.
71 f32 InnerCone;
72
73 //! The light strength's decrease between Outer and Inner cone.
74 f32 Falloff;
75
76 //! Read-ONLY! Position of the light.
77 /** If Type is ELT_DIRECTIONAL, it is ignored. Changed via light scene node's position. */
78 core::vector3df Position;
79
80 //! Read-ONLY! Direction of the light.
81 /** If Type is ELT_POINT, it is ignored. Changed via light scene node's rotation. */
82 core::vector3df Direction;
83
84 //! Read-ONLY! Radius of light. Everything within this radius will be lighted.
85 f32 Radius;
86
87 //! Read-ONLY! Type of the light. Default: ELT_POINT
88 E_LIGHT_TYPE Type;
89
90 //! Read-ONLY! Does the light cast shadows?
91 bool CastShadows:1;
92};
93
94} // end namespace video
95} // end namespace irr
96
97#endif
98