From 0ea5fc66924303d1bf73ba283a383e2aadee02f2 Mon Sep 17 00:00:00 2001 From: neodarz Date: Sat, 11 Aug 2018 20:21:34 +0200 Subject: Initial commit --- docs/doxygen/nel/a02743.html | 1821 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1821 insertions(+) create mode 100644 docs/doxygen/nel/a02743.html (limited to 'docs/doxygen/nel/a02743.html') diff --git a/docs/doxygen/nel/a02743.html b/docs/doxygen/nel/a02743.html new file mode 100644 index 00000000..4ab124dc --- /dev/null +++ b/docs/doxygen/nel/a02743.html @@ -0,0 +1,1821 @@ + + +NeL: NL3D::CLight class Reference + + + +
+

NL3D::CLight Class Reference

#include <light.h> +

+


Detailed Description

+Light class to work with driver.

+Warning: nothing is initialized by default.

+To use this light you must initialize the MODE (setMode), the COLORS and the 3 ATTENUATION FACTORS. If the mode is spotlight or pointlight, you must initialize the POSITION. If the mode is spotlight or directionallight, you must initialize the DIRECTION. If the mode is spotlight, you must intialize the EXPONENT and the CUTOFF.

+To do so, you can use one of the three methods: setupDirectional, setupPointLight, setupSpotLight or use the specifics methods.

+

Author:
Cyril 'Hulud' Corvazier

+Nevrax France

+
Date:
2001
+ +

+ +

+Definition at line 55 of file light.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Types

enum  TLightMode { DirectionalLight, +PointLight, +SpotLight + }

Public Member Functions

Get methods.
NLMISC::CRGBA getAmbiant () const
float getConstantAttenuation () const
float getCutoff () const
NLMISC::CRGBA getDiffuse () const
NLMISC::CVector getDirection () const
float getExponent () const
float getLinearAttenuation () const
TLightMode getMode () const
NLMISC::CVector getPosition () const
float getQuadraticAttenuation () const
NLMISC::CRGBA getSpecular () const
Set methods.
void setAmbiant (const NLMISC::CRGBA &ambiant)
void setConstantAttenuation (float constant)
void setCutoff (float cutoff)
void setDiffuse (const NLMISC::CRGBA &diffuse)
void setDirection (const NLMISC::CVector &direction)
void setExponent (float exponent)
void setLinearAttenuation (float linear)
void setMode (TLightMode mode)
void setPosition (const NLMISC::CVector &position)
void setQuadraticAttenuation (float quadratic)
void setSpecular (const NLMISC::CRGBA &specular)
Quick setup.
void setNoAttenuation ()
void setupAttenuation (float farAttenuationBegin, float farAttenuationEnd)
void setupDirectional (const NLMISC::CRGBA &ambiant, const NLMISC::CRGBA &diffuse, const NLMISC::CRGBA &specular, const NLMISC::CVector &direction, float constant=1, float linear=0, float quadratic=0)
 Quick setup a directional light.

void setupPointLight (const NLMISC::CRGBA &ambiant, const NLMISC::CRGBA &diffuse, const NLMISC::CRGBA &specular, const NLMISC::CVector &position, const NLMISC::CVector &direction, float constant=1, float linear=0, float quadratic=0)
 Quick setup a point light.

void setupSpotExponent (float hotSpotAngle)
void setupSpotLight (const NLMISC::CRGBA &ambiant, const NLMISC::CRGBA &diffuse, const NLMISC::CRGBA &specular, const NLMISC::CVector &position, const NLMISC::CVector &direction, float exponent, float cutoff, float constant=1, float linear=0, float quadratic=0)
 Quick setup a spotlight.


Private Attributes

NLMISC::CRGBA _Ambiant
float _ConstantAttenuation
float _Cutoff
NLMISC::CRGBA _Diffuse
NLMISC::CVector _Direction
float _Exponent
float _LinearAttenuation
TLightMode _Mode
NLMISC::CVector _Position
float _QuadraticAttenuation
NLMISC::CRGBA _Specular
+


Member Enumeration Documentation

+

+ + + + +
+ + +
enum NL3D::CLight::TLightMode +
+
+ + + + + +
+   + + +

+

Enumeration values:
+ + + + +
DirectionalLight  +
PointLight  +
SpotLight  +
+
+ +

+Definition at line 59 of file light.h. +

+Referenced by getMode(). +

+

00060         { 
+00061                 // The light is directional.
+00062                 DirectionalLight, 
+00063                 
+00064                 // The light is a point.
+00065                 PointLight, 
+00066 
+00067                 // The light is a spotlight with a cone.
+00068                 SpotLight 
+00069         };
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + +
NLMISC::CRGBA NL3D::CLight::getAmbiant  )  const [inline]
+
+ + + + + +
+   + + +

+Get the ambiant color of the light. +

+Definition at line 232 of file light.h. +

+References _Ambiant. +

+Referenced by NL3D::CRenderTrav::beginVPLightSetup(), NL3D::CLightUser::getAmbiant(), and NL3D::CDriverGL::setLight(). +

+

00233         {
+00234                 return _Ambiant;
+00235         }
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::CLight::getConstantAttenuation  )  const [inline]
+
+ + + + + +
+   + + +

+Get constant attenuation.

+The intensity of the light is attenuated this way: light_intensity = light_intensity / ( CONSTANT_ATTENUATION + vertex_light_distance * LINEAR_ATTENUATION + vertex_light_distance * vertex_light_distance * QUADRATIC_ATTENUATION ); +

+Definition at line 292 of file light.h. +

+References _ConstantAttenuation. +

+Referenced by NL3D::CPointLight::computeAttenuationFactors(), NL3D::CLightUser::getConstantAttenuation(), and NL3D::CDriverGL::setLight(). +

+

00293         {
+00294                 return _ConstantAttenuation;
+00295         }
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::CLight::getCutoff  )  const [inline]
+
+ + + + + +
+   + + +

+Get the cutoff of the light in radian. Should be between [0, Pi/2]. Used only for SpotLight. +

+Definition at line 280 of file light.h. +

+References _Cutoff. +

+Referenced by NL3D::CLightUser::getCutoff(), and NL3D::CDriverGL::setLight(). +

+

00281         {
+00282                 return _Cutoff;
+00283         }
+
+

+ + + + +
+ + + + + + + + + +
NLMISC::CRGBA NL3D::CLight::getDiffuse  )  const [inline]
+
+ + + + + +
+   + + +

+Get the diffuse color of the light. +

+Definition at line 240 of file light.h. +

+Referenced by NL3D::CRenderTrav::beginVPLightSetup(), NL3D::CLightUser::getDiffuse(), and NL3D::CDriverGL::setLight(). +

+

00241         {
+00242                 return _Diffuse;
+00243         }
+
+

+ + + + +
+ + + + + + + + + +
NLMISC::CVector NL3D::CLight::getDirection  )  const [inline]
+
+ + + + + +
+   + + +

+Get the direction of the light. Used only for DirectionalLight and SpotLight. +

+Definition at line 264 of file light.h. +

+References _Direction. +

+Referenced by NL3D::CMeshVPPerPixelLight::begin(), NL3D::CLightUser::getDirection(), and NL3D::CDriverGL::setLight(). +

+

00265         {
+00266                 return _Direction;
+00267         }
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::CLight::getExponent  )  const [inline]
+
+ + + + + +
+   + + +

+Get the exponent of the light. Used only for SpotLight. +

+Definition at line 272 of file light.h. +

+References _Exponent. +

+Referenced by NL3D::CLightUser::getExponent(), and NL3D::CDriverGL::setLight(). +

+

00273         {
+00274                 return _Exponent;
+00275         }
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::CLight::getLinearAttenuation  )  const [inline]
+
+ + + + + +
+   + + +

+Get linear attenuation.

+The intensity of the light is attenuated this way: light_intensity = light_intensity / ( CONSTANT_ATTENUATION + vertex_light_distance * LINEAR_ATTENUATION + vertex_light_distance * vertex_light_distance * QUADRATIC_ATTENUATION ); +

+Definition at line 304 of file light.h. +

+References _LinearAttenuation. +

+Referenced by NL3D::CPointLight::computeAttenuationFactors(), NL3D::CLightUser::getLinearAttenuation(), and NL3D::CDriverGL::setLight(). +

+

00305         {
+00306                 return _LinearAttenuation;
+00307         }
+
+

+ + + + +
+ + + + + + + + + +
TLightMode NL3D::CLight::getMode  )  const [inline]
+
+ + + + + +
+   + + +

+Get the light mode. +

+Definition at line 224 of file light.h. +

+References _Mode, and TLightMode. +

+Referenced by NL3D::CMeshVPPerPixelLight::begin(), NL3D::CLightUser::getMode(), and NL3D::CDriverGL::setLight(). +

+

00225         {
+00226                 return _Mode;
+00227         }
+
+

+ + + + +
+ + + + + + + + + +
NLMISC::CVector NL3D::CLight::getPosition  )  const [inline]
+
+ + + + + +
+   + + +

+Get the position of the light. Used only for SpotLight and PointLight. +

+Definition at line 256 of file light.h. +

+References _Position. +

+Referenced by NL3D::CMeshVPPerPixelLight::begin(), NL3D::CRenderTrav::beginVPLightSetup(), NL3D::CLightUser::getPosition(), and NL3D::CDriverGL::setLight(). +

+

00257         {
+00258                 return _Position;
+00259         }
+
+

+ + + + +
+ + + + + + + + + +
float NL3D::CLight::getQuadraticAttenuation  )  const [inline]
+
+ + + + + +
+   + + +

+Get quadratic attenuation.

+The intensity of the light is attenuated this way: light_intensity = light_intensity / ( CONSTANT_ATTENUATION + vertex_light_distance * LINEAR_ATTENUATION + vertex_light_distance * vertex_light_distance * QUADRATIC_ATTENUATION ); +

+Definition at line 316 of file light.h. +

+References _QuadraticAttenuation. +

+Referenced by NL3D::CPointLight::computeAttenuationFactors(), NL3D::CLightUser::getQuadraticAttenuation(), and NL3D::CDriverGL::setLight(). +

+

00317         {
+00318                 return _QuadraticAttenuation;
+00319         }
+
+

+ + + + +
+ + + + + + + + + +
NLMISC::CRGBA NL3D::CLight::getSpecular  )  const [inline]
+
+ + + + + +
+   + + +

+Get the specular color of the light. +

+Definition at line 248 of file light.h. +

+Referenced by NL3D::CRenderTrav::beginVPLightSetup(), NL3D::CLightUser::getSpecular(), and NL3D::CDriverGL::setLight(). +

+

00249         {
+00250                 return _Specular;
+00251         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setAmbiant const NLMISC::CRGBA ambiant  )  [inline]
+
+ + + + + +
+   + + +

+Set the ambiant color of the light. +

+Definition at line 127 of file light.h. +

+References _Ambiant. +

+Referenced by NL3D::CLightUser::setAmbiant(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00128         {
+00129                 _Ambiant=ambiant;
+00130         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setConstantAttenuation float  constant  )  [inline]
+
+ + + + + +
+   + + +

+Set constant attenuation.

+The intensity of the light is attenuated this way: light_intensity = light_intensity / ( CONSTANT_ATTENUATION + vertex_light_distance * LINEAR_ATTENUATION + vertex_light_distance * vertex_light_distance * QUADRATIC_ATTENUATION ); +

+Definition at line 187 of file light.h. +

+References _ConstantAttenuation. +

+Referenced by NL3D::CLightUser::setConstantAttenuation(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00188         {
+00189                 _ConstantAttenuation=constant;
+00190         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setCutoff float  cutoff  )  [inline]
+
+ + + + + +
+   + + +

+Set the cutoff of the light in radian. Should be between [0, Pi/2]. Used only for SpotLight. +

+Definition at line 175 of file light.h. +

+References _Cutoff. +

+Referenced by NL3D::CLightUser::setCutoff(), and setupSpotLight(). +

+

00176         {
+00177                 _Cutoff=cutoff;
+00178         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setDiffuse const NLMISC::CRGBA diffuse  )  [inline]
+
+ + + + + +
+   + + +

+Set the diffuse color of the light. +

+Definition at line 135 of file light.h. +

+Referenced by NL3D::CLightUser::setDiffuse(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00136         {
+00137                 _Diffuse=diffuse;
+00138         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setDirection const NLMISC::CVector direction  )  [inline]
+
+ + + + + +
+   + + +

+Set the direction of the light. Used only for DirectionalLight and SpotLight. +

+Definition at line 159 of file light.h. +

+References _Direction. +

+Referenced by NL3D::CLightUser::setDirection(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00160         {
+00161                 _Direction=direction;
+00162         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setExponent float  exponent  )  [inline]
+
+ + + + + +
+   + + +

+Set the Intensity distribution of the light. Should be between [0, 1]. Used only for SpotLight. +

+Definition at line 167 of file light.h. +

+References _Exponent. +

+Referenced by NL3D::CLightUser::setExponent(), setupSpotExponent(), and setupSpotLight(). +

+

00168         {
+00169                 _Exponent=exponent;
+00170         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setLinearAttenuation float  linear  )  [inline]
+
+ + + + + +
+   + + +

+Set linear attenuation.

+The intensity of the light is attenuated this way: light_intensity = light_intensity / ( CONSTANT_ATTENUATION + vertex_light_distance * LINEAR_ATTENUATION + vertex_light_distance * vertex_light_distance * QUADRATIC_ATTENUATION ); +

+Definition at line 199 of file light.h. +

+References _LinearAttenuation. +

+Referenced by NL3D::CLightUser::setLinearAttenuation(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00200         {
+00201                 _LinearAttenuation=linear;
+00202         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setMode TLightMode  mode  )  [inline]
+
+ + + + + +
+   + + +

+Set the light mode. +

+Definition at line 119 of file light.h. +

+References _Mode. +

+Referenced by NL3D::CLightUser::setMode(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00120         {
+00121                 _Mode=mode;
+00122         }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CLight::setNoAttenuation  ) 
+
+ + + + + +
+   + + +

+Set no attenuation.

+The light will not use attenuation. +

+Definition at line 160 of file light.cpp. +

+References _ConstantAttenuation, _LinearAttenuation, and _QuadraticAttenuation. +

+Referenced by NL3D::CLightUser::setNoAttenuation(). +

+

00161 {
+00162         _ConstantAttenuation=1.f;
+00163         _QuadraticAttenuation=0.f;
+00164         _LinearAttenuation=0.f;
+00165 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setPosition const NLMISC::CVector position  )  [inline]
+
+ + + + + +
+   + + +

+Set the position of the light. Used only for SpotLight and PointLight. +

+Definition at line 151 of file light.h. +

+References _Position. +

+Referenced by NL3D::CLightUser::setPosition(), setupPointLight(), and setupSpotLight(). +

+

00152         {
+00153                 _Position=position;
+00154         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setQuadraticAttenuation float  quadratic  )  [inline]
+
+ + + + + +
+   + + +

+Set quadratic attenuation.

+The intensity of the light is attenuated this way: light_intensity = light_intensity / ( CONSTANT_ATTENUATION + vertex_light_distance * LINEAR_ATTENUATION + vertex_light_distance * vertex_light_distance * QUADRATIC_ATTENUATION ); +

+Definition at line 211 of file light.h. +

+References _QuadraticAttenuation. +

+Referenced by NL3D::CLightUser::setQuadraticAttenuation(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00212         {
+00213                 _QuadraticAttenuation=quadratic;
+00214         }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setSpecular const NLMISC::CRGBA specular  )  [inline]
+
+ + + + + +
+   + + +

+Set the specular color of the light. +

+Definition at line 143 of file light.h. +

+Referenced by NL3D::CLightUser::setSpecular(), setupDirectional(), setupPointLight(), and setupSpotLight(). +

+

00144         {
+00145                 _Specular=specular;
+00146         }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CLight::setupAttenuation float  farAttenuationBegin,
float  farAttenuationEnd
+
+ + + + + +
+   + + +

+Setup attenuation with begin and end attenuation distance.

+

Parameters:
+ + + +
farAttenuationBegin is the distance of the begin of the attenuation (attenuation == 0.9f)
farAttenuationEnd is the distance of the end of the attenuation (attenuation == 0.1f)
+
+ +

+Definition at line 109 of file light.cpp. +

+References _ConstantAttenuation, _LinearAttenuation, and _QuadraticAttenuation. +

+Referenced by NL3D::CPointLight::computeAttenuationFactors(), and NL3D::CLightUser::setupAttenuation(). +

+

00110 {
+00111         _ConstantAttenuation=1.f;
+00112         _QuadraticAttenuation=(float)(0.1/(0.9*farAttenuationBegin*farAttenuationBegin));
+00113         _LinearAttenuation=(float)(0.1/(0.9*farAttenuationBegin));
+00114 
+00115         // blend factor
+00116         float factor = (0.1f*_LinearAttenuation*farAttenuationEnd-0.1f*_QuadraticAttenuation*farAttenuationEnd*farAttenuationEnd);
+00117 
+00118         if (factor == 0.0f)
+00119                 factor = 0.0001f;
+00120         factor = (0.9f-0.1f*_QuadraticAttenuation*farAttenuationEnd*farAttenuationEnd)/factor;
+00121 
+00122         if ((factor<0.f)||(factor>1.f))
+00123         {
+00124                 // Better factor
+00125                 float d0_1Lin=1.f / ( _ConstantAttenuation + _LinearAttenuation*farAttenuationEnd );
+00126                 float d0_1Quad=1.f / ( _ConstantAttenuation + _QuadraticAttenuation*farAttenuationEnd*farAttenuationEnd );
+00127 
+00128                 // Better
+00129                 if (fabs (d0_1Lin-0.1f)<fabs (d0_1Quad-0.1f))
+00130                         _QuadraticAttenuation=0.f;
+00131                 else
+00132                         _LinearAttenuation=0.f;
+00133         }
+00134         else
+00135         {
+00136                 _LinearAttenuation*=factor;
+00137                 _QuadraticAttenuation*=(1.f-factor);
+00138         }
+00139 
+00140 #ifdef NL_DEBUG
+00141         // Should be near previous result
+00142         float d1_0=1.f / ( _ConstantAttenuation + _LinearAttenuation*0.f + _QuadraticAttenuation*0.f*0.f );
+00143         float d0_9=1.f / ( _ConstantAttenuation + _LinearAttenuation*farAttenuationBegin + _QuadraticAttenuation*farAttenuationBegin*farAttenuationBegin );
+00144         float d0_1=1.f / ( _ConstantAttenuation + _LinearAttenuation*farAttenuationEnd + _QuadraticAttenuation*farAttenuationEnd*farAttenuationEnd );
+00145 #endif // NL_DEBUG*/
+00146 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CLight::setupDirectional const NLMISC::CRGBA ambiant,
const NLMISC::CRGBA diffuse,
const NLMISC::CRGBA specular,
const NLMISC::CVector direction,
float  constant = 1,
float  linear = 0,
float  quadratic = 0
+
+ + + + + +
+   + + +

+Quick setup a directional light. +

+ +

+Definition at line 37 of file light.cpp. +

+References DirectionalLight, setAmbiant(), setConstantAttenuation(), setDiffuse(), setDirection(), setLinearAttenuation(), setMode(), setQuadraticAttenuation(), and setSpecular(). +

+Referenced by NL3D::CRenderTrav::changeLightSetup(), NL3D::CRenderTrav::resetLightSetup(), and NL3D::CLightUser::setupDirectional(). +

+

00039 {
+00040         // Set the mode
+00041         setMode (DirectionalLight);
+00042 
+00043         // Set the colors
+00044         setAmbiant (ambiant);
+00045         setDiffuse (diffuse);
+00046         setSpecular (specular);
+00047 
+00048         // Set the direction
+00049         setDirection (direction);
+00050 
+00051         // Set attenuation
+00052         setConstantAttenuation (constant);
+00053         setLinearAttenuation (linear);
+00054         setQuadraticAttenuation (quadratic);
+00055 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CLight::setupPointLight const NLMISC::CRGBA ambiant,
const NLMISC::CRGBA diffuse,
const NLMISC::CRGBA specular,
const NLMISC::CVector position,
const NLMISC::CVector direction,
float  constant = 1,
float  linear = 0,
float  quadratic = 0
+
+ + + + + +
+   + + +

+Quick setup a point light. +

+ +

+Definition at line 59 of file light.cpp. +

+References setAmbiant(), setConstantAttenuation(), setDiffuse(), setDirection(), setLinearAttenuation(), setMode(), setPosition(), setQuadraticAttenuation(), and setSpecular(). +

+Referenced by NL3D::CPointLight::setupDriverLight(), NL3D::CPointLight::setupDriverLightUserAttenuation(), and NL3D::CLightUser::setupPointLight(). +

+

00061 {
+00062         // Set the mode
+00063         setMode (PointLight);
+00064 
+00065         // Set the colors
+00066         setAmbiant (ambiant);
+00067         setDiffuse (diffuse);
+00068         setSpecular (specular);
+00069 
+00070         // Set the position and direction
+00071         setPosition (position);
+00072         setDirection (direction);
+00073 
+00074         // Set attenuation
+00075         setConstantAttenuation (constant);
+00076         setLinearAttenuation (linear);
+00077         setQuadraticAttenuation (quadratic);
+00078 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CLight::setupSpotExponent float  hotSpotAngle  ) 
+
+ + + + + +
+   + + +

+Setup spot exponent with angle of the hotspot.

+

Parameters:
+ + +
hotSpotAngle is the angle in radian between the axis of the spot and the vector from light where attenuation is == 0.9.
+
+ +

+Definition at line 150 of file light.cpp. +

+References setExponent(). +

+Referenced by NL3D::CLightUser::setupSpotExponent(). +

+

00151 {
+00152         float divid=(float)log (cos (hotSpotAngle));
+00153         if (divid==0.f)
+00154                 divid=0.0001f;
+00155         setExponent ((float)(log (0.9)/divid));
+00156 }
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void NL3D::CLight::setupSpotLight const NLMISC::CRGBA ambiant,
const NLMISC::CRGBA diffuse,
const NLMISC::CRGBA specular,
const NLMISC::CVector position,
const NLMISC::CVector direction,
float  exponent,
float  cutoff,
float  constant = 1,
float  linear = 0,
float  quadratic = 0
+
+ + + + + +
+   + + +

+Quick setup a spotlight. +

+ +

+Definition at line 82 of file light.cpp. +

+References setAmbiant(), setConstantAttenuation(), setCutoff(), setDiffuse(), setDirection(), setExponent(), setLinearAttenuation(), setMode(), setPosition(), setQuadraticAttenuation(), setSpecular(), and SpotLight. +

+Referenced by NL3D::CPointLight::setupDriverLight(), and NL3D::CLightUser::setupSpotLight(). +

+

00084 {
+00085         // Set the mode
+00086         setMode (SpotLight);
+00087 
+00088         // Set the colors
+00089         setAmbiant (ambiant);
+00090         setDiffuse (diffuse);
+00091         setSpecular (specular);
+00092 
+00093         // Set the position and direction
+00094         setPosition (position);
+00095         setDirection (direction);
+00096 
+00097         // Set spotlight parameters
+00098         setExponent (exponent);
+00099         setCutoff (cutoff);
+00100 
+00101         // Set attenuation
+00102         setConstantAttenuation (constant);
+00103         setLinearAttenuation (linear);
+00104         setQuadraticAttenuation (quadratic);
+00105 }
+
+


Field Documentation

+

+ + + + +
+ + +
NLMISC::CRGBA NL3D::CLight::_Ambiant [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 327 of file light.h. +

+Referenced by getAmbiant(), and setAmbiant().

+

+ + + + +
+ + +
float NL3D::CLight::_ConstantAttenuation [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 340 of file light.h. +

+Referenced by getConstantAttenuation(), setConstantAttenuation(), setNoAttenuation(), and setupAttenuation().

+

+ + + + +
+ + +
float NL3D::CLight::_Cutoff [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 337 of file light.h. +

+Referenced by getCutoff(), and setCutoff().

+

+ + + + +
+ + +
NLMISC::CRGBA NL3D::CLight::_Diffuse [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 328 of file light.h.

+

+ + + + +
+ + +
NLMISC::CVector NL3D::CLight::_Direction [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 333 of file light.h. +

+Referenced by getDirection(), and setDirection().

+

+ + + + +
+ + +
float NL3D::CLight::_Exponent [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 336 of file light.h. +

+Referenced by getExponent(), and setExponent().

+

+ + + + +
+ + +
float NL3D::CLight::_LinearAttenuation [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 341 of file light.h. +

+Referenced by getLinearAttenuation(), setLinearAttenuation(), setNoAttenuation(), and setupAttenuation().

+

+ + + + +
+ + +
TLightMode NL3D::CLight::_Mode [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 324 of file light.h. +

+Referenced by getMode(), and setMode().

+

+ + + + +
+ + +
NLMISC::CVector NL3D::CLight::_Position [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 332 of file light.h. +

+Referenced by getPosition(), and setPosition().

+

+ + + + +
+ + +
float NL3D::CLight::_QuadraticAttenuation [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 342 of file light.h. +

+Referenced by getQuadraticAttenuation(), setNoAttenuation(), setQuadraticAttenuation(), and setupAttenuation().

+

+ + + + +
+ + +
NLMISC::CRGBA NL3D::CLight::_Specular [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 329 of file light.h.

+


The documentation for this class was generated from the following files: +
Generated on Tue Mar 16 06:49:24 2004 for NeL by + +doxygen +1.3.6
+ + -- cgit v1.2.1