#include <point_light_named.h>
Inheritance diagram for NL3D::CPointLightNamed:
Nevrax France
Definition at line 48 of file point_light_named.h.
Public Types | |
typedef TTransformList::iterator | ItTransformList |
typedef NLMISC::CSTLBlockList< CTransform * > | TTransformList |
The list of model this light influence. | |
enum | TType { PointLight = 0, SpotLight, AmbientLight } |
Public Member Functions | |
CPointLightNamed () | |
Constructor. | |
NLMISC::CRGBA | getDefaultAmbient () const |
Get the Default ambient color of the light. | |
NLMISC::CRGBA | getDefaultDiffuse () const |
Get the Default diffuse color of the light. | |
NLMISC::CRGBA | getDefaultSpecular () const |
Get the Default specular color of the light. | |
NLMISC::CRGBA | getUnAnimatedDiffuse () const |
get the unanimated diffuse (used for Landscape) | |
void | serial (NLMISC::IStream &f) |
Get the ambient color of the light. | |
void | setDefaultAmbient (NLMISC::CRGBA ambient) |
Set the Default ambient color of the light. Default to Black. | |
void | setDefaultDiffuse (NLMISC::CRGBA diffuse) |
Set the Default diffuse color of the light. Default to White. | |
void | setDefaultSpecular (NLMISC::CRGBA specular) |
Set the Default specular color of the light. Default to White. | |
void | setLightFactor (NLMISC::CRGBA nAnimatedFactor, NLMISC::CRGBA nUnAnimatedFactor) |
void | setLightFactor (NLMISC::CRGBA nFactor) |
Render tools. | |
ItTransformList | appendLightedModel (CTransform *model) |
append a model to the list. called by CLightingManager. | |
float | computeLinearAttenuation (const CVector &pos, float precomputedDist, float modelRadius=0) const |
float | computeLinearAttenuation (const CVector &pos) const |
Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1]. | |
void | removeLightedModel (ItTransformList it) |
remove a model from the list. called by CTransform. | |
void | resetLightedModels () |
Dirt all models this light influence. | |
void | setupDriverLight (CLight &light, uint8 factor) |
setup the CLight with current pointLight state. factor is used to modulate the colors. | |
void | setupDriverLightUserAttenuation (CLight &light, uint8 factor) |
Render tools. | |
ItTransformList | appendLightedModel (CTransform *model) |
append a model to the list. called by CLightingManager. | |
float | computeLinearAttenuation (const CVector &pos, float precomputedDist, float modelRadius=0) const |
float | computeLinearAttenuation (const CVector &pos) const |
Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1]. | |
void | removeLightedModel (ItTransformList it) |
remove a model from the list. called by CTransform. | |
void | resetLightedModels () |
Dirt all models this light influence. | |
void | setupDriverLight (CLight &light, uint8 factor) |
setup the CLight with current pointLight state. factor is used to modulate the colors. | |
void | setupDriverLightUserAttenuation (CLight &light, uint8 factor) |
Light setup | |
NLMISC::CRGBA | getAmbient () const |
Get the ambient color of the light. | |
float | getAttenuationBegin () const |
get the begin radius of the attenuation. | |
float | getAttenuationEnd () const |
get the end radius of the attenuation. | |
NLMISC::CRGBA | getDiffuse () const |
Get the diffuse color of the light. | |
const CVector & | getPosition () const |
Get the position in WorldSpace. | |
NLMISC::CRGBA | getSpecular () const |
Get the specular color of the light. | |
float | getSpotAngleBegin () const |
get the begin radius of the SpotAngles. | |
float | getSpotAngleEnd () const |
get the end radius of the SpotAngles. | |
const CVector & | getSpotDirection () const |
get the spot Direction | |
TType | getType () const |
Get the ambient color of the light. | |
void | setAmbient (NLMISC::CRGBA ambient) |
Set the ambient color of the light. Default to Black. | |
void | setColor (NLMISC::CRGBA color) |
Set the diffuse and specular color of the light to the same value. don't modify _Ambient. | |
void | setDiffuse (NLMISC::CRGBA diffuse) |
Set the diffuse color of the light. Default to White. | |
void | setPosition (const CVector &v) |
Set the position in WorldSpace. | |
void | setSpecular (NLMISC::CRGBA specular) |
Set the specular color of the light. Default to White. | |
void | setType (TType type) |
set/get the type of the light. | |
void | setupAttenuation (float attenuationBegin, float attenuationEnd) |
void | setupSpotAngle (float spotAngleBegin, float spotAngleEnd) |
void | setupSpotDirection (const CVector &dir) |
Static Public Member Functions | |
void | purge () |
Data Fields | |
std::string | AnimatedLight |
Animation used by this light. | |
uint32 | LightGroup |
Group of the light. | |
Private Attributes | |
NLMISC::CRGBA | _DefaultAmbient |
NLMISC::CRGBA | _DefaultDiffuse |
NLMISC::CRGBA | _DefaultSpecular |
sint | _IdInInfluenceList |
NLMISC::CRGBA | _UnAnimatedDiffuse |
Friends | |
class | CLightInfluenceInterpolator |
|
Definition at line 74 of file point_light.h. Referenced by NL3D::CPointLight::appendLightedModel(), and NL3D::CPointLight::removeLightedModel(). |
|
The list of model this light influence.
Definition at line 73 of file point_light.h. |
|
Definition at line 76 of file point_light.h.
00077 { 00078 // The light is a point. 00079 PointLight= 0, 00080 00081 // The light is a spotlight with a cone. 00082 SpotLight, 00083 00084 // The light is an Ambient PointLight in an Ig. 00085 AmbientLight 00086 }; |
|
Constructor.
Definition at line 35 of file point_light_named.cpp. References _DefaultAmbient, _DefaultDiffuse, _DefaultSpecular, _UnAnimatedDiffuse, NL3D::CPointLight::getAmbient(), NL3D::CPointLight::getDiffuse(), and NL3D::CPointLight::getSpecular().
00036 { 00037 // copy setup from current 00038 _DefaultAmbient= getAmbient(); 00039 _DefaultDiffuse= getDiffuse(); 00040 _DefaultSpecular= getSpecular(); 00041 _UnAnimatedDiffuse= getDiffuse(); 00042 } |
|
append a model to the list. called by CLightingManager.
Definition at line 409 of file point_light.cpp. References NL3D::CPointLight::_LightedModels, and NL3D::CPointLight::ItTransformList. Referenced by NL3D::CLightingManager::computeModelLightContributions().
00410 { 00411 // append the entry in the list 00412 _LightedModels.push_back(model); 00413 ItTransformList it= _LightedModels.end(); 00414 it--; 00415 return it; 00416 } |
|
Compute a linear attenuation from a point and precomputed distance according to attenuation and spot setup. Return [0,1]
Definition at line 273 of file point_light.cpp. References NL3D::CPointLight::_AttenuationBegin, NL3D::CPointLight::_AttenuationEnd, NL3D::CPointLight::_CosSpotAngleEnd, NL3D::CPointLight::_OOCosSpotAngleDelta, NL3D::CPointLight::_OODeltaAttenuation, NL3D::CPointLight::_SpotDirection, NLMISC::clamp(), and NLMISC::sqr().
00274 { 00275 float gAtt; 00276 00277 // Attenuation Distance 00278 if(_AttenuationEnd==0) 00279 gAtt= 1; 00280 else 00281 { 00282 float distMinusRadius= dist - modelRadius; 00283 if(distMinusRadius<_AttenuationBegin) 00284 gAtt= 1; 00285 else if(distMinusRadius<_AttenuationEnd) 00286 { 00287 gAtt= (_AttenuationEnd - distMinusRadius) * _OODeltaAttenuation; 00288 } 00289 else 00290 gAtt= 0; 00291 } 00292 00293 // Spot Attenuation 00294 if(_Type== SpotLight) 00295 { 00296 float spotAtt; 00297 00298 // Compute unnormalized direction 00299 CVector dir= pos - _Position; 00300 // get cosAngle(dir, SpotDirection): 00301 float cosAngleDirSpot= (dir*_SpotDirection) / dist; 00302 00303 // Modify with modelRadius. NB: made Only for big models. 00304 if(modelRadius>0) 00305 { 00306 // If the pointLight is in the model, consider no spotAtt 00307 if(modelRadius > dist) 00308 spotAtt= 1; 00309 else 00310 { 00311 // compute the angle of the cone made by the model sphere and the pointLightCenter. 00312 float cosAngleSphere= modelRadius / sqrtf( sqr(dist) + sqr(modelRadius) ); 00313 /* If this one is smaller than cosAngleDirSpot, it's mean that the angle of this cone is greater than the 00314 angleDirSpot, hence a part of the sphere "ps" exist such that _SportDirection*(ps-_Position).normed() == 1 00315 => no spotAttenuation 00316 */ 00317 if(cosAngleSphere < cosAngleDirSpot) 00318 spotAtt= 1; 00319 else 00320 { 00321 // Must compute cos( AngleDirSpot-AngleSphere ) 00322 float sinAngleSphere= sqrtf(1 - sqr(cosAngleSphere)); 00323 float sinAngleDirSpot= sqrtf(1 - sqr(cosAngleDirSpot)); 00324 float cosDelta= cosAngleSphere * cosAngleDirSpot + sinAngleSphere * sinAngleDirSpot; 00325 00326 // spot attenuation on the exterior of the sphere 00327 spotAtt= (cosDelta - _CosSpotAngleEnd) * _OOCosSpotAngleDelta; 00328 } 00329 } 00330 } 00331 else 00332 { 00333 // spot attenuation 00334 spotAtt= (cosAngleDirSpot - _CosSpotAngleEnd) * _OOCosSpotAngleDelta; 00335 } 00336 00337 // modulate 00338 clamp(spotAtt, 0.f, 1.f); 00339 gAtt*= spotAtt; 00340 } 00341 00342 return gAtt; 00343 } |
|
Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1].
Definition at line 267 of file point_light.cpp. Referenced by NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPatch::generateTileVegetable(), NL3D::CZoneLighter::processZonePointLightRT(), NL3D::CZoneLighter::CPointLightRT::testRaytrace(), NL3D::CInstanceLighter::CPointLightRT::testRaytrace(), and NL3D::CTransform::traverseLight().
00268 { 00269 return computeLinearAttenuation(pos, (pos - _Position).norm() ); 00270 } |
|
Get the ambient color of the light.
Definition at line 129 of file point_light.h. Referenced by NL3D::CLightContribution::computeCurrentAmbient(), NL3D::CLightingManager::computeModelLightContributions(), CPointLightNamed(), NL3D::CPointLightUser::getAmbient(), and NL3D::CSurfaceLightGrid::getStaticLightSetup().
00129 {return _Ambient;}
|
|
get the begin radius of the attenuation.
Definition at line 141 of file point_light.h. References NL3D::CPointLight::_AttenuationBegin. Referenced by NL3D::CZoneLighter::addStaticPointLight(), NL3D::CInstanceLighter::addStaticPointLight(), NL3D::CPatchDLMPointLight::compile(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPointLightUser::getAttenuationBegin(), and NL3D::CPSLight::step().
00141 {return _AttenuationBegin;}
|
|
get the end radius of the attenuation.
Definition at line 143 of file point_light.h. References NL3D::CPointLight::_AttenuationEnd. Referenced by NL3D::CLightingManager::addDynamicLight(), NL3D::CZoneLighter::addStaticPointLight(), NL3D::CInstanceLighter::addStaticPointLight(), NL3D::CPatchDLMPointLight::compile(), NL3D::CZoneLighter::compilePointLightRT(), NL3D::CInstanceLighter::compilePointLightRT(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPointLightUser::getAttenuationEnd(), NL3D::CZoneLighter::CPredPointLightToPoint::operator()(), NL3D::CInstanceLighter::CPredPointLightToPoint::operator()(), and NL3D::CPSLight::step().
00143 {return _AttenuationEnd;}
|
|
Get the Default ambient color of the light.
Definition at line 71 of file point_light_named.h. References _DefaultAmbient.
00071 {return _DefaultAmbient;} |
|
Get the Default diffuse color of the light.
Definition at line 73 of file point_light_named.h. References _DefaultDiffuse.
00073 {return _DefaultDiffuse;} |
|
Get the Default specular color of the light.
Definition at line 75 of file point_light_named.h. References _DefaultSpecular.
00075 {return _DefaultSpecular;} |
|
Get the diffuse color of the light.
Definition at line 131 of file point_light.h. Referenced by NL3D::CPatchDLMPointLight::compile(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CShadowMapManager::computeShadowColors(), NL3D::CShadowMapManager::computeShadowDirection(), CPointLightNamed(), NL3D::CPointLightUser::getDiffuse(), NL3D::CSkeletonModel::renderCLod(), serial(), NL3D::CPSLight::step(), and NL3D::CParticleSystemModel::traverseRender().
00131 {return _Diffuse;}
|
|
Get the position in WorldSpace.
Definition at line 116 of file point_light.h. Referenced by NL3D::CLightingManager::addDynamicLight(), NL3D::CZoneLighter::addStaticPointLight(), NL3D::CInstanceLighter::addStaticPointLight(), NL3D::CPatchDLMPointLight::compile(), NL3D::CZoneLighter::compilePointLightRT(), NL3D::CInstanceLighter::compilePointLightRT(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CShadowMapManager::computeShadowDirection(), NL3D::CPatch::generateTileVegetable(), NL3D::CSkeletonModel::renderCLod(), and NL3D::CTransform::traverseLight().
00116 {return _Position;}
|
|
Get the specular color of the light.
Definition at line 133 of file point_light.h. Referenced by CPointLightNamed(), and NL3D::CPointLightUser::getSpecular().
00133 {return _Specular;}
|
|
get the begin radius of the SpotAngles.
Definition at line 151 of file point_light.h. References NL3D::CPointLight::_SpotAngleBegin. Referenced by NL3D::CPatchDLMPointLight::compile(), and NL3D::CPointLightUser::getSpotAngleBegin().
00151 {return _SpotAngleBegin;}
|
|
get the end radius of the SpotAngles.
Definition at line 153 of file point_light.h. References NL3D::CPointLight::_SpotAngleEnd. Referenced by NL3D::CPatchDLMPointLight::compile(), and NL3D::CPointLightUser::getSpotAngleEnd().
00153 {return _SpotAngleEnd;}
|
|
get the spot Direction
Definition at line 161 of file point_light.h. References NL3D::CPointLight::_SpotDirection. Referenced by NL3D::CPatchDLMPointLight::compile(), and NL3D::CPointLightModel::traverseLight().
00161 {return _SpotDirection;}
|
|
Get the ambient color of the light.
Definition at line 138 of file point_light.cpp. Referenced by NL3D::CPatchDLMPointLight::compile(), NL3D::CZoneLighter::compilePointLightRT(), NL3D::CInstanceLighter::compilePointLightRT(), NL3D::CLightingManager::computeModelLightContributions(), NL3D::CPointLightUser::isSpotlight(), NL3D::CInstanceLighter::processIGPointLightRT(), NL3D::CZoneLighter::CPointLightRT::testRaytrace(), NL3D::CInstanceLighter::CPointLightRT::testRaytrace(), and NL3D::CPointLightModel::traverseLight().
00139 {
00140 return _Type;
00141 }
|
|
get the unanimated diffuse (used for Landscape)
Definition at line 78 of file point_light_named.h. References _UnAnimatedDiffuse. Referenced by NL3D::CVegetableLightEx::computeCurrentColors().
00078 {return _UnAnimatedDiffuse;} |
|
Definition at line 424 of file point_light.cpp. References NL3D::CPointLight::_LightedModelListMemory, and NLMISC::CBlockMemory< CTransform *, false >::purge().
00425 { 00426 _LightedModelListMemory.purge(); 00427 } |
|
remove a model from the list. called by CTransform.
Definition at line 418 of file point_light.cpp. References NL3D::CPointLight::_LightedModels, and NL3D::CPointLight::ItTransformList. Referenced by NL3D::CTransform::resetLighting().
00419 {
00420 // delete the entry in the list.
00421 _LightedModels.erase(it);
00422 }
|
|
Dirt all models this light influence.
Definition at line 393 of file point_light.cpp. References NL3D::CPointLight::_LightedModels, nlassert, and NL3D::CTransform::resetLighting(). Referenced by NL3D::CPointLightModel::traverseLight(), and NL3D::CPointLight::~CPointLight().
00394 { 00395 // For each transform, resetLighting him. 00396 while(_LightedModels.begin() != _LightedModels.end() ) 00397 { 00398 CTransform *model= *_LightedModels.begin(); 00399 // reset lighting 00400 model->resetLighting(); 00401 00402 // NB: the transform must erase him from this list. 00403 nlassert( _LightedModels.begin() == _LightedModels.end() || *_LightedModels.begin() != model ); 00404 } 00405 } |
|
Get the ambient color of the light.
Reimplemented from NL3D::CPointLight. Definition at line 73 of file point_light_named.cpp. References _DefaultAmbient, _DefaultDiffuse, _DefaultSpecular, _UnAnimatedDiffuse, NL3D::CPointLight::getDiffuse(), NLMISC::IStream::isReading(), NLMISC::IStream::serial(), NLMISC::IStream::serialVersion(), and sint.
00074 { 00075 sint ver = f.serialVersion(1); 00076 00077 // Serialize parent. 00078 CPointLight::serial(f); 00079 00080 // Serialize my data 00081 f.serial(AnimatedLight); 00082 f.serial(_DefaultAmbient); 00083 f.serial(_DefaultDiffuse); 00084 f.serial(_DefaultSpecular); 00085 00086 if (ver>=1) 00087 f.serial(LightGroup); 00088 00089 // read: and copy default _UnAnimatedDiffuse 00090 if(f.isReading()) 00091 { 00092 _UnAnimatedDiffuse= getDiffuse(); 00093 } 00094 } |
|
Set the ambient color of the light. Default to Black.
Definition at line 120 of file point_light.h. Referenced by NL3D::CPointLightUser::setAmbient(), and setLightFactor().
00120 {_Ambient=ambient;} |
|
Set the diffuse and specular color of the light to the same value. don't modify _Ambient.
Definition at line 126 of file point_light.h. Referenced by NL3D::CPointLightUser::setColor(), and NL3D::CPSLight::step().
00126 {_Diffuse= _Specular= color;} |
|
Set the Default ambient color of the light. Default to Black.
Definition at line 64 of file point_light_named.h. References _DefaultAmbient.
00064 {_DefaultAmbient=ambient;} |
|
Set the Default diffuse color of the light. Default to White.
Definition at line 66 of file point_light_named.h. References _DefaultDiffuse.
00066 {_DefaultDiffuse=diffuse;} |
|
Set the Default specular color of the light. Default to White.
Definition at line 68 of file point_light_named.h. References _DefaultSpecular.
00068 {_DefaultSpecular=specular;} |
|
Set the diffuse color of the light. Default to White.
Definition at line 122 of file point_light.h. Referenced by NL3D::CPointLightUser::setDiffuse(), and setLightFactor().
00122 {_Diffuse=diffuse;} |
|
modulate the default color setup with nFactor, and set to the current setup. give 2 params the second is the "not animated" factor. used for Landscape. Definition at line 53 of file point_light_named.cpp. References _DefaultAmbient, _DefaultDiffuse, _DefaultSpecular, _UnAnimatedDiffuse, NLMISC::CRGBA::modulateFromColor(), NL3D::CPointLight::setAmbient(), NL3D::CPointLight::setDiffuse(), and NL3D::CPointLight::setSpecular().
00054 { 00055 CRGBA col; 00056 // setup current ambient. 00057 col.modulateFromColor(_DefaultAmbient, nAnimatedFactor); 00058 setAmbient(col); 00059 // setup current diffuse. 00060 col.modulateFromColor(_DefaultDiffuse, nAnimatedFactor); 00061 setDiffuse(col); 00062 // setup current specular. 00063 col.modulateFromColor(_DefaultSpecular, nAnimatedFactor); 00064 setSpecular(col); 00065 00066 // special UnAnimatedDiffuse 00067 col.modulateFromColor(_DefaultDiffuse, nUnAnimatedFactor); 00068 _UnAnimatedDiffuse= col; 00069 } |
|
modulate the default color setup with nFactor, and set to the current setup. NB: getUnAnimatedDiffuse() == getDiffuse() Definition at line 46 of file point_light_named.cpp.
00047 { 00048 setLightFactor(nFactor, nFactor); 00049 } |
|
Set the position in WorldSpace.
Definition at line 114 of file point_light.h. References v. Referenced by NL3D::CPointLightModel::traverseLight().
00114 {_Position= v;} |
|
Set the specular color of the light. Default to White.
Definition at line 124 of file point_light.h. Referenced by setLightFactor(), and NL3D::CPointLightUser::setSpecular().
00124 {_Specular=specular;} |
|
set/get the type of the light.
Definition at line 134 of file point_light.cpp. References type. Referenced by NL3D::CPointLightUser::enableSpotlight().
00135 { 00136 _Type= type; 00137 } |
|
setup the attenuation of the light. if (0,0) attenuation is disabled. clamp(attenuationBegin,0 , +oo) and calmp(attenuationEnd, attenuationBegin, +oo) Definition at line 144 of file point_light.cpp. References NL3D::CPointLight::_AttenuationBegin, NL3D::CPointLight::_AttenuationEnd, and NL3D::CPointLight::computeAttenuationFactors(). Referenced by NL3D::CPointLightUser::setupAttenuation(), and NL3D::CPSLight::step().
00145 { 00146 // set values. 00147 attenuationBegin= max(attenuationBegin, 0.f); 00148 attenuationEnd= max(attenuationEnd, attenuationBegin); 00149 _AttenuationBegin= attenuationBegin; 00150 _AttenuationEnd= attenuationEnd; 00151 00152 // update factors. 00153 computeAttenuationFactors(); 00154 00155 } |
|
setup the CLight with current pointLight state. factor is used to modulate the colors.
Definition at line 346 of file point_light.cpp. References NL3D::CPointLight::_SpotDirection, NL3D::CPointLight::_SpotExponent, NLMISC::CRGBA::modulateFromuiRGBOnly(), NL3D::CLight::setupPointLight(), NL3D::CLight::setupSpotLight(), uint, and uint8.
00347 { 00348 // expand 0..255 to 0..256, to avoid loss of precision. 00349 uint ufactor= factor + (factor>>7); // add 0 or 1. 00350 00351 // modulate with factor 00352 CRGBA ambient, diffuse, specular; 00353 ambient.modulateFromuiRGBOnly(_Ambient, ufactor); 00354 diffuse.modulateFromuiRGBOnly(_Diffuse, ufactor); 00355 specular.modulateFromuiRGBOnly(_Specular, ufactor); 00356 00357 // setup the pointLight 00358 if(_Type == SpotLight ) 00359 { 00360 light.setupSpotLight(ambient, diffuse, specular, _Position, _SpotDirection, 00361 _SpotExponent, float(NLMISC::Pi/2) , 00362 _ConstantAttenuation, _LinearAttenuation, _QuadraticAttenuation); 00363 } 00364 // PointLight or AmbientLight 00365 else 00366 { 00367 light.setupPointLight(ambient, diffuse, specular, _Position, CVector::Null, 00368 _ConstantAttenuation, _LinearAttenuation, _QuadraticAttenuation); 00369 } 00370 } |
|
setup the CLight with current pointLight state. Don't use driver Attenuation and use software one setuped with an additional userAttenuation
Definition at line 374 of file point_light.cpp. References NLMISC::CRGBA::modulateFromuiRGBOnly(), NL3D::CLight::setupPointLight(), uint, and uint8.
00375 { 00376 // expand 0..255 to 0..256, to avoid loss of precision. 00377 uint ufactor= factor + (factor>>7); // add 0 or 1. 00378 00379 // modulate with factor 00380 CRGBA ambient, diffuse, specular; 00381 ambient.modulateFromuiRGBOnly(_Ambient, ufactor); 00382 diffuse.modulateFromuiRGBOnly(_Diffuse, ufactor); 00383 specular.modulateFromuiRGBOnly(_Specular, ufactor); 00384 00385 // setup the pointLight, disabling attenuation. 00386 // NB: setup a pointLight even if it is a SpotLight because already attenuated 00387 light.setupPointLight(ambient, diffuse, specular, _Position, CVector::Null, 00388 1, 0, 0); 00389 } |
|
setup the spot AngleBegin and AngleEnd that define spot attenuation of the light. Usefull only if SpotLight NB: clamp(angleBegin, 0, PI); clamp(angleEnd, angleBegin, PI); Default is PI/4, PI/2 Definition at line 159 of file point_light.cpp. References NL3D::CPointLight::_SpotAngleBegin, NL3D::CPointLight::_SpotAngleEnd, NLMISC::clamp(), NL3D::CPointLight::computeSpotAttenuationFactors(), and NLMISC::Pi. Referenced by NL3D::CPointLightUser::setupSpotAngle().
00160 { 00161 clamp(spotAngleBegin, 0.f, float(Pi)); 00162 clamp(spotAngleEnd, spotAngleBegin, float(Pi)); 00163 _SpotAngleBegin= spotAngleBegin; 00164 _SpotAngleEnd= spotAngleEnd; 00165 00166 // update factors. 00167 computeSpotAttenuationFactors(); 00168 } |
|
setup the spot Direction. Usefull only if SpotLight. Normalized internally Default is (0, 1, 0) Definition at line 172 of file point_light.cpp. References NL3D::CPointLight::_SpotDirection, and NLMISC::CVector::normalize(). Referenced by NL3D::CPointLightModel::traverseLight().
00173 { 00174 _SpotDirection= dir; 00175 _SpotDirection.normalize(); 00176 } |
|
Definition at line 98 of file point_light_named.h. |
|
Definition at line 102 of file point_light_named.h. Referenced by CPointLightNamed(), getDefaultAmbient(), serial(), setDefaultAmbient(), and setLightFactor(). |
|
Definition at line 103 of file point_light_named.h. Referenced by CPointLightNamed(), getDefaultDiffuse(), serial(), setDefaultDiffuse(), and setLightFactor(). |
|
Definition at line 104 of file point_light_named.h. Referenced by CPointLightNamed(), getDefaultSpecular(), serial(), setDefaultSpecular(), and setLightFactor(). |
|
Definition at line 99 of file point_light_named.h. Referenced by NL3D::CLightInfluenceInterpolator::interpolate(). |
|
Definition at line 107 of file point_light_named.h. Referenced by CPointLightNamed(), getUnAnimatedDiffuse(), serial(), and setLightFactor(). |
|
Animation used by this light.
Definition at line 52 of file point_light_named.h. Referenced by NL3D::CPointLightNamedSort::operator<(). |
|
Group of the light.
Definition at line 55 of file point_light_named.h. Referenced by NL3D::CPointLightNamedSort::operator<(). |