6#if !defined(AFX_3DLIGHT_H__5C85DAE7_BE95_4F8B_B661_B0CF9BE55255__INCLUDED_)
7#define AFX_3DLIGHT_H__5C85DAE7_BE95_4F8B_B661_B0CF9BE55255__INCLUDED_
16BEGIN_MOOTOOLS_NAMESPACE
18typedef enum _LIGHT_TYPE
20 LIGHT_DIRECTIONAL = 0,
27#define C3DLIGHT_KIND MAKE_CUSTOM_ID('l','k','n','d')
28#define C3DLIGHT_COLOR MAKE_CUSTOM_ID('l','c','l','r')
29#define C3DLIGHT_INTENSITY MAKE_CUSTOM_ID('l','i','n','t')
30#define C3DLIGHT_INNER_RADIUS MAKE_CUSTOM_ID('l','i','n','r')
31#define C3DLIGHT_OUTER_RADIUS MAKE_CUSTOM_ID('l','o','u','r')
32#define C3DLIGHT_INNER_ANGLE MAKE_CUSTOM_ID('l','i','n','a')
33#define C3DLIGHT_OUTER_ANGLE MAKE_CUSTOM_ID('l','o','u','a')
37#define DEFAULT_LIGHT_KIND LIGHT_DIRECTIONAL
38#define DEFAULT_LIGHT_COLOR CRGBColor(1.0, 1.0, 1.0, 255)
39#define DEFAULT_LIGHT_INTENSITY 1.0
40#define DEFAULT_LIGHT_INNER_RADIUS 0.0
41#define DEFAULT_LIGHT_OUTER_RADIUS 0.0
42#define DEFAULT_LIGHT_INNER_ANGLE 0.0
43#define DEFAULT_LIGHT_OUTER_ANGLE DEG2RAD(30)
45#define C3DLIGHT_RADIUS_INFINITE -1
56 void SetLightKind(
int kind);
59 double GetIntensity();
60 void SetIntensity(
double v);
61 double GetInnerRadius();
62 void SetInnerRadius(
double v);
63 double GetOuterRadius();
64 void SetOuterRadius(
double v);
65 void ClearAttenuation();
66 double GetInnerAngle();
67 void SetInnerAngle(
double v);
68 double GetOuterAngle();
69 void SetOuterAngle(
double v);
74 virtual bool IsFinalObject()
const {
return false; }
79 switch(GetLightKind())
81 case LIGHT_DIRECTIONAL:
82 GenerateDirectionalLight();
95 displayable->SetScene(scene);
105 void GenerateOmniLight();
106 void GenerateDirectionalLight();
107 void GenerateSpotLight();
110END_MOOTOOLS_NAMESPACE
C3DBaseObject class which is the common base class for all object types.
The file contains C3DObject class definition which handles N-Gons polygonal object.
This is the base class for any kind of object.
Definition 3DBaseObject.h:106
This class implements a light object in the scene (OBJECT_LIGHT)
Definition 3DLight.h:50
virtual C3DBaseObject * GetFinalObject(bool detach=false, bool computeIfNeeded=true)
Returns the object itself or any kind of object. For example for a patch it can returns a C3DObject o...
Definition 3DLight.h:75
C3DObject handles polygonal mesh.
Definition 3DObject.h:24
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27
CRGBColor handles an r, g, b, a color that can be initialized in different way.
Definition RGBColor.h:22