aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03091.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/doxygen/nel/a03091.html')
-rw-r--r--docs/doxygen/nel/a03091.html2413
1 files changed, 2413 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03091.html b/docs/doxygen/nel/a03091.html
new file mode 100644
index 00000000..41a7d90e
--- /dev/null
+++ b/docs/doxygen/nel/a03091.html
@@ -0,0 +1,2413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>NeL: NL3D::CPointLight class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NL3D::CPointLight Class Reference</h1><code>#include &lt;<a class="el" href="a06180.html">point_light.h</a>&gt;</code>
+<p>
+<p>Inheritance diagram for NL3D::CPointLight:
+<p><center><img src="a03091.png" usemap="#NL3D::CPointLight_map" border="0" alt=""></center>
+<map name="NL3D::CPointLight_map">
+<area href="a03094.html" alt="NL3D::CPointLightNamed" shape="rect" coords="0,56,153,80">
+</map>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+Description of a light. Owned by an IG, or a <a class="el" href="a03093.html">CPointLightModel</a>. With the special sunLight, this is the only light which can interact with <a class="el" href="a02316.html">CTransform</a> models in the standard lighting system.<p>
+Only Positionnal with or without attenuation are supported. no directionnal. This restriction is for faster rendering, especially if VertexProgram is used. New: Spot are managed but VertexProgrammed meshes won't use localAttenuation. Special Ambiant are provided too but they are considered like PointLight for dynamic light. They are used in a special way for static light in Igs.<p>
+<dl compact><dt><b>Author:</b></dt><dd>Lionel Berenguier <p>
+Nevrax France </dd></dl>
+<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a02747.html">CLightingManager</a> </dd></dl>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00069">69</a> of file <a class="el" href="a06180.html">point_light.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Light setup</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_0">getAmbient</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ambient color of the light. <a href="#NL3D_1_1CPointLightNamedz693_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_1">getAttenuationBegin</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the begin radius of the attenuation. <a href="#NL3D_1_1CPointLightNamedz693_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_2">getAttenuationEnd</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the end radius of the attenuation. <a href="#NL3D_1_1CPointLightNamedz693_2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_3">getDiffuse</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the diffuse color of the light. <a href="#NL3D_1_1CPointLightNamedz693_3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_4">getPosition</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the position in WorldSpace. <a href="#NL3D_1_1CPointLightNamedz693_4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_5">getSpecular</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the specular color of the light. <a href="#NL3D_1_1CPointLightNamedz693_5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_6">getSpotAngleBegin</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the begin radius of the SpotAngles. <a href="#NL3D_1_1CPointLightNamedz693_6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_7">getSpotAngleEnd</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the end radius of the SpotAngles. <a href="#NL3D_1_1CPointLightNamedz693_7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_8">getSpotDirection</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">get the spot Direction <a href="#NL3D_1_1CPointLightNamedz693_8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">TType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_9">getType</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ambient color of the light. <a href="#NL3D_1_1CPointLightNamedz693_9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightz693_10">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &amp;f)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the ambient color of the light. <a href="#NL3D_1_1CPointLightz693_10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_10">setAmbient</a> (<a class="el" href="a03337.html">NLMISC::CRGBA</a> ambient)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the ambient color of the light. Default to Black. <a href="#NL3D_1_1CPointLightNamedz693_10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_11">setColor</a> (<a class="el" href="a03337.html">NLMISC::CRGBA</a> color)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the diffuse and specular color of the light to the same value. don't modify _Ambient. <a href="#NL3D_1_1CPointLightNamedz693_11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_12">setDiffuse</a> (<a class="el" href="a03337.html">NLMISC::CRGBA</a> diffuse)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the diffuse color of the light. Default to White. <a href="#NL3D_1_1CPointLightNamedz693_12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_13">setPosition</a> (const <a class="el" href="a03128.html">CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the position in WorldSpace. <a href="#NL3D_1_1CPointLightNamedz693_13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_14">setSpecular</a> (<a class="el" href="a03337.html">NLMISC::CRGBA</a> specular)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the specular color of the light. Default to White. <a href="#NL3D_1_1CPointLightNamedz693_14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_15">setType</a> (<a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">TType</a> <a class="el" href="a04223.html#a581">type</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">set/get the type of the light. <a href="#NL3D_1_1CPointLightNamedz693_15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_16">setupAttenuation</a> (float attenuationBegin, float attenuationEnd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_17">setupSpotAngle</a> (float spotAngleBegin, float spotAngleEnd)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedz693_18">setupSpotDirection</a> (const <a class="el" href="a03128.html">CVector</a> &amp;dir)</td></tr>
+
+<tr><td colspan=2><br><h2>Public Types</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef TTransformList::iterator&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw1">ItTransformList</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>typedef <a class="el" href="a03445.html">NLMISC::CSTLBlockList</a>&lt;<br>
+ <a class="el" href="a02316.html">CTransform</a> * &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw4">TTransformList</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The list of model this light influence. <a href="#NL3D_1_1CPointLightNamedw4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>enum &nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">TType</a> { <a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw2">PointLight</a> = 0,
+<a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw3">SpotLight</a>,
+<a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw0">AmbientLight</a>
+ }</td></tr>
+
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLighta0">CPointLight</a> (const <a class="el" href="a03091.html">CPointLight</a> &amp;o)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">do not copy _LightedModels. <a href="#NL3D_1_1CPointLighta0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLighta1">CPointLight</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03091.html">CPointLight</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLighta2">operator=</a> (const <a class="el" href="a03091.html">CPointLight</a> &amp;o)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">do not copy _LightedModels. <a href="#NL3D_1_1CPointLighta2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLighta3">~CPointLight</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">call resetLightModels. <a href="#NL3D_1_1CPointLighta3"></a><br><br></td></tr>
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightNamede0">purge</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightd0">computeAttenuationFactors</a> ()</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightd1">computeSpotAttenuationFactors</a> ()</td></tr>
+
+<tr><td colspan=2><br><h2>Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr0">_Ambient</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr3">_ConstantAttenuation</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr5">_Diffuse</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03445.html">TTransformList</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr7">_LinearAttenuation</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr10">_Position</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr11">_QuadraticAttenuation</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr12">_Specular</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr13">_SpotAngleBegin</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr14">_SpotAngleEnd</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>float&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr16">_SpotExponent</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">TType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a></td></tr>
+
+<tr><td colspan=2><br><h2>Static Private Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02274.html">NLMISC::CBlockMemory</a>&lt; <a class="el" href="a02316.html">CTransform</a> *,<br>
+ false &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03091.html#NL3D_1_1CPointLightv0">_LightedModelListMemory</a></td></tr>
+
+</table>
+<hr><h2>Member Typedef Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPointLightNamedw1" doxytag="NL3D::CPointLight::ItTransformList" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef TTransformList::iterator <a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw1">NL3D::CPointLight::ItTransformList</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00074">74</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00409">appendLightedModel()</a>, and <a class="el" href="a06179.html#l00418">removeLightedModel()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedw4" doxytag="NL3D::CPointLight::TTransformList" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> typedef <a class="el" href="a03445.html">NLMISC::CSTLBlockList</a>&lt;<a class="el" href="a02316.html">CTransform</a>*&gt; <a class="el" href="a03445.html">NL3D::CPointLight::TTransformList</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The list of model this light influence.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00073">73</a> of file <a class="el" href="a06180.html">point_light.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Member Enumeration Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPointLightNamedw5" doxytag="NL3D::CPointLight::TType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> enum <a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">NL3D::CPointLight::TType</a>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+<dl compact><dt><b>Enumeration values: </b></dt><dd>
+<table border=0 cellspacing=2 cellpadding=0>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw2" doxytag="PointLight" ></a>PointLight</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw3" doxytag="SpotLight" ></a>SpotLight</em>&nbsp;</td><td>
+</td></tr>
+<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw0" doxytag="AmbientLight" ></a>AmbientLight</em>&nbsp;</td><td>
+</td></tr>
+</table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00076">76</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+<div class="fragment"><pre>00077 {
+00078 <span class="comment">// The light is a point.</span>
+00079 <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw2">PointLight</a>= 0,
+00080
+00081 <span class="comment">// The light is a spotlight with a cone.</span>
+00082 <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw3">SpotLight</a>,
+00083
+00084 <span class="comment">// The light is an Ambient PointLight in an Ig.</span>
+00085 <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw0">AmbientLight</a>
+00086 };
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPointLighta1" doxytag="NL3D::CPointLight::CPointLight" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NL3D::CPointLight::CPointLight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Constructor Default type is PointLight. Default ambient is Black, Diffuse and Specular are white. Position is <a class="el" href="a03128.html#NLMISC_1_1CVectors3">CVector::Null</a>. Attenuation is 10-30.
+<p>
+Definition at line <a class="el" href="a06179.html#l00046">46</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>, <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>, <a class="el" href="a06180.html#l00232">_CosSpotAngleEnd</a>, <a class="el" href="a06180.html#l00234">_OOCosSpotAngleDelta</a>, <a class="el" href="a06180.html#l00230">_SpotAngleBegin</a>, <a class="el" href="a06180.html#l00231">_SpotAngleEnd</a>, <a class="el" href="a06180.html#l00229">_SpotDirection</a>, <a class="el" href="a06180.html#l00235">_SpotExponent</a>, <a class="el" href="a06179.html#l00180">computeAttenuationFactors()</a>, <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, and <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>.
+<p>
+<div class="fragment"><pre>00046 : <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>(&amp;_LightedModelListMemory)
+00047 {
+00048 <a class="code" href="a03091.html#NL3D_1_1CPointLightr10">_Position</a>= CVector::Null;
+00049 <a class="code" href="a03091.html#NL3D_1_1CPointLightr0">_Ambient</a>= CRGBA::Black;
+00050 <a class="code" href="a03091.html#NL3D_1_1CPointLightr5">_Diffuse</a>= <a class="code" href="a03091.html#NL3D_1_1CPointLightr12">_Specular</a>= CRGBA::White;
+00051
+00052 <span class="comment">// Default setup. this is arbitrary</span>
+00053 <a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>= 10;
+00054 <a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>= 30;
+00055
+00056 <span class="comment">// Default spot setup. this is arbitrary</span>
+00057 <a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>.set(0,1,0);
+00058 <a class="code" href="a03091.html#NL3D_1_1CPointLightr13">_SpotAngleBegin</a>= float(NLMISC::Pi/4);
+00059 <a class="code" href="a03091.html#NL3D_1_1CPointLightr14">_SpotAngleEnd</a>= float(NLMISC::Pi/2);
+00060
+00061 <span class="comment">// compute AttenuationFactors only one time.</span>
+00062 <span class="keyword">static</span> <span class="keywordtype">bool</span> done= <span class="keyword">false</span>;
+00063 <span class="keyword">static</span> <span class="keywordtype">float</span> cAtt, lAtt, qAtt;
+00064 <span class="keyword">static</span> <span class="keywordtype">float</span> spotCOOD, spotCAE, spotEXP;
+00065 <span class="keywordflow">if</span>(!done)
+00066 {
+00067 done= <span class="keyword">true</span>;
+00068 <a class="code" href="a03091.html#NL3D_1_1CPointLightd0">computeAttenuationFactors</a>();
+00069 <a class="code" href="a03091.html#NL3D_1_1CPointLightd1">computeSpotAttenuationFactors</a>();
+00070 <span class="comment">// bkup setup.</span>
+00071 cAtt= <a class="code" href="a03091.html#NL3D_1_1CPointLightr3">_ConstantAttenuation</a>;
+00072 lAtt= <a class="code" href="a03091.html#NL3D_1_1CPointLightr7">_LinearAttenuation</a>;
+00073 qAtt= <a class="code" href="a03091.html#NL3D_1_1CPointLightr11">_QuadraticAttenuation</a>;
+00074 spotCAE= <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>;
+00075 spotCOOD= <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>;
+00076 spotEXP= <a class="code" href="a03091.html#NL3D_1_1CPointLightr16">_SpotExponent</a>;
+00077 }
+00078 <span class="keywordflow">else</span>
+00079 {
+00080 <span class="comment">// just copy bkuped setup.</span>
+00081 <a class="code" href="a03091.html#NL3D_1_1CPointLightr3">_ConstantAttenuation</a>= cAtt;
+00082 <a class="code" href="a03091.html#NL3D_1_1CPointLightr7">_LinearAttenuation</a>= lAtt;
+00083 <a class="code" href="a03091.html#NL3D_1_1CPointLightr11">_QuadraticAttenuation</a>= qAtt;
+00084 <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>= spotCAE;
+00085 <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>= spotCOOD;
+00086 <a class="code" href="a03091.html#NL3D_1_1CPointLightr16">_SpotExponent</a>= spotEXP;
+00087 }
+00088 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLighta3" doxytag="NL3D::CPointLight::~CPointLight" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NL3D::CPointLight::~<a class="el" href="a03091.html">CPointLight</a> </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+call resetLightModels.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00127">127</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06179.html#l00393">resetLightedModels()</a>.
+<p>
+<div class="fragment"><pre>00128 {
+00129 <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedz695_4">resetLightedModels</a>();
+00130 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLighta0" doxytag="NL3D::CPointLight::CPointLight" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> NL3D::CPointLight::CPointLight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03091.html">CPointLight</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>o</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+do not copy _LightedModels.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00092">92</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06179.html#l00099">operator=()</a>.
+<p>
+<div class="fragment"><pre>00092 : <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>(&amp;_LightedModelListMemory)
+00093 {
+00094 <span class="comment">// copy (no need to init)</span>
+00095 <a class="code" href="a03091.html#NL3D_1_1CPointLighta2">operator=</a>(o);
+00096 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_0" doxytag="NL3D::CPointLight::appendLightedModel" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw1">CPointLight::ItTransformList</a> NL3D::CPointLight::appendLightedModel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02316.html">CTransform</a> *&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>model</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+append a model to the list. called by <a class="el" href="a02747.html">CLightingManager</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00409">409</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00241">_LightedModels</a>, and <a class="el" href="a06180.html#l00074">ItTransformList</a>.
+<p>
+Referenced by <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>.
+<p>
+<div class="fragment"><pre>00410 {
+00411 <span class="comment">// append the entry in the list</span>
+00412 <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.push_back(model);
+00413 <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw1">ItTransformList</a> it= <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.end();
+00414 it--;
+00415 <span class="keywordflow">return</span> it;
+00416 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightd0" doxytag="NL3D::CPointLight::computeAttenuationFactors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::computeAttenuationFactors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00180">180</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>, <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>, <a class="el" href="a06180.html#l00223">_OODeltaAttenuation</a>, <a class="el" href="a05892.html#l00292">NL3D::CLight::getConstantAttenuation()</a>, <a class="el" href="a05892.html#l00304">NL3D::CLight::getLinearAttenuation()</a>, <a class="el" href="a05892.html#l00316">NL3D::CLight::getQuadraticAttenuation()</a>, and <a class="el" href="a05891.html#l00109">NL3D::CLight::setupAttenuation()</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, and <a class="el" href="a06179.html#l00144">setupAttenuation()</a>.
+<p>
+<div class="fragment"><pre>00181 {
+00182 <span class="comment">// disable attenuation?</span>
+00183 <span class="keywordflow">if</span>(<a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>==0 &amp;&amp; <a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>==0)
+00184 {
+00185 <span class="comment">// setup for attenuation disabled.</span>
+00186 <a class="code" href="a03091.html#NL3D_1_1CPointLightr3">_ConstantAttenuation</a>= 1;
+00187 <a class="code" href="a03091.html#NL3D_1_1CPointLightr7">_LinearAttenuation</a>= 0;
+00188 <a class="code" href="a03091.html#NL3D_1_1CPointLightr11">_QuadraticAttenuation</a>= 0;
+00189 }
+00190 <span class="keywordflow">else</span>
+00191 {
+00192 <span class="comment">// precompute attenuation values, with help of CLight formula!!</span>
+00193 <span class="keyword">static</span> CLight dummyLight;
+00194 dummyLight.setupAttenuation(_AttenuationBegin, _AttenuationEnd);
+00195 <a class="code" href="a03091.html#NL3D_1_1CPointLightr3">_ConstantAttenuation</a>= dummyLight.getConstantAttenuation();
+00196 <a class="code" href="a03091.html#NL3D_1_1CPointLightr7">_LinearAttenuation</a>= dummyLight.getLinearAttenuation();
+00197 <a class="code" href="a03091.html#NL3D_1_1CPointLightr11">_QuadraticAttenuation</a>= dummyLight.getQuadraticAttenuation();
+00198
+00199 <span class="comment">// setup _OODeltaAttenuation</span>
+00200 <a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a>= _AttenuationEnd - <a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>;
+00201 <span class="keywordflow">if</span>(<a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a> &lt;=0 )
+00202 <a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a>= 0;
+00203 <span class="keywordflow">else</span>
+00204 <a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a>= 1.0f / <a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a>;
+00205 }
+00206 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_1" doxytag="NL3D::CPointLight::computeLinearAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NL3D::CPointLight::computeLinearAttenuation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>pos</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>precomputedDist</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>modelRadius</em> = 0</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Compute a linear attenuation from a point and precomputed distance according to attenuation and spot setup. Return [0,1] <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>modelRadius</em>&nbsp;</td><td>if !0, suppose the point is a sphere, and compute the approximate Max attenuation from every point on this sphere</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00273">273</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>, <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>, <a class="el" href="a06180.html#l00232">_CosSpotAngleEnd</a>, <a class="el" href="a06180.html#l00234">_OOCosSpotAngleDelta</a>, <a class="el" href="a06180.html#l00223">_OODeltaAttenuation</a>, <a class="el" href="a06180.html#l00229">_SpotDirection</a>, <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, and <a class="el" href="a05587.html#l00107">NLMISC::sqr()</a>.
+<p>
+<div class="fragment"><pre>00274 {
+00275 <span class="keywordtype">float</span> gAtt;
+00276
+00277 <span class="comment">// Attenuation Distance</span>
+00278 <span class="keywordflow">if</span>(<a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>==0)
+00279 gAtt= 1;
+00280 <span class="keywordflow">else</span>
+00281 {
+00282 <span class="keywordtype">float</span> distMinusRadius= dist - modelRadius;
+00283 <span class="keywordflow">if</span>(distMinusRadius&lt;<a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>)
+00284 gAtt= 1;
+00285 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(distMinusRadius&lt;<a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>)
+00286 {
+00287 gAtt= (<a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a> - distMinusRadius) * <a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a>;
+00288 }
+00289 <span class="keywordflow">else</span>
+00290 gAtt= 0;
+00291 }
+00292
+00293 <span class="comment">// Spot Attenuation</span>
+00294 <span class="keywordflow">if</span>(<a class="code" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a>== <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw3">SpotLight</a>)
+00295 {
+00296 <span class="keywordtype">float</span> spotAtt;
+00297
+00298 <span class="comment">// Compute unnormalized direction</span>
+00299 CVector dir= pos - <a class="code" href="a03091.html#NL3D_1_1CPointLightr10">_Position</a>;
+00300 <span class="comment">// get cosAngle(dir, SpotDirection):</span>
+00301 <span class="keywordtype">float</span> cosAngleDirSpot= (dir*<a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>) / dist;
+00302
+00303 <span class="comment">// Modify with modelRadius. NB: made Only for big models.</span>
+00304 <span class="keywordflow">if</span>(modelRadius&gt;0)
+00305 {
+00306 <span class="comment">// If the pointLight is in the model, consider no spotAtt</span>
+00307 <span class="keywordflow">if</span>(modelRadius &gt; dist)
+00308 spotAtt= 1;
+00309 <span class="keywordflow">else</span>
+00310 {
+00311 <span class="comment">// compute the angle of the cone made by the model sphere and the pointLightCenter.</span>
+00312 <span class="keywordtype">float</span> cosAngleSphere= modelRadius / sqrtf( <a class="code" href="a05378.html#a373">sqr</a>(dist) + <a class="code" href="a05378.html#a373">sqr</a>(modelRadius) );
+00313 <span class="comment">/* If this one is smaller than cosAngleDirSpot, it's mean that the angle of this cone is greater than the </span>
+00314 <span class="comment"> angleDirSpot, hence a part of the sphere "ps" exist such that _SportDirection*(ps-_Position).normed() == 1</span>
+00315 <span class="comment"> =&gt; no spotAttenuation</span>
+00316 <span class="comment"> */</span>
+00317 <span class="keywordflow">if</span>(cosAngleSphere &lt; cosAngleDirSpot)
+00318 spotAtt= 1;
+00319 <span class="keywordflow">else</span>
+00320 {
+00321 <span class="comment">// Must compute cos( AngleDirSpot-AngleSphere )</span>
+00322 <span class="keywordtype">float</span> sinAngleSphere= sqrtf(1 - <a class="code" href="a05378.html#a373">sqr</a>(cosAngleSphere));
+00323 <span class="keywordtype">float</span> sinAngleDirSpot= sqrtf(1 - <a class="code" href="a05378.html#a373">sqr</a>(cosAngleDirSpot));
+00324 <span class="keywordtype">float</span> cosDelta= cosAngleSphere * cosAngleDirSpot + sinAngleSphere * sinAngleDirSpot;
+00325
+00326 <span class="comment">// spot attenuation on the exterior of the sphere</span>
+00327 spotAtt= (cosDelta - <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>) * <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>;
+00328 }
+00329 }
+00330 }
+00331 <span class="keywordflow">else</span>
+00332 {
+00333 <span class="comment">// spot attenuation</span>
+00334 spotAtt= (cosAngleDirSpot - <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>) * <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>;
+00335 }
+00336
+00337 <span class="comment">// modulate</span>
+00338 <a class="code" href="a05378.html#a374">clamp</a>(spotAtt, 0.f, 1.f);
+00339 gAtt*= spotAtt;
+00340 }
+00341
+00342 <span class="keywordflow">return</span> gAtt;
+00343 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_2" doxytag="NL3D::CPointLight::computeLinearAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NL3D::CPointLight::computeLinearAttenuation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>pos</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Compute a linear attenuation from a point according to attenuation and spot setup. Return [0,1].
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00267">267</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06162.html#l00050">NL3D::CPatch::generateTileVegetable()</a>, <a class="el" href="a06768.html#l03346">NL3D::CZoneLighter::processZonePointLightRT()</a>, <a class="el" href="a06768.html#l03139">NL3D::CZoneLighter::CPointLightRT::testRaytrace()</a>, <a class="el" href="a05824.html#l00954">NL3D::CInstanceLighter::CPointLightRT::testRaytrace()</a>, and <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00268 {
+00269 <span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedz695_2">computeLinearAttenuation</a>(pos, (pos - _Position).norm() );
+00270 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightd1" doxytag="NL3D::CPointLight::computeSpotAttenuationFactors" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::computeSpotAttenuationFactors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [private]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00210">210</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00232">_CosSpotAngleEnd</a>, <a class="el" href="a06180.html#l00234">_OOCosSpotAngleDelta</a>, <a class="el" href="a06180.html#l00230">_SpotAngleBegin</a>, <a class="el" href="a06180.html#l00231">_SpotAngleEnd</a>, and <a class="el" href="a06180.html#l00235">_SpotExponent</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, and <a class="el" href="a06179.html#l00159">setupSpotAngle()</a>.
+<p>
+<div class="fragment"><pre>00211 {
+00212 <span class="comment">// Factors for linear Attenuation.</span>
+00213 <span class="keywordtype">float</span> cosSpotAngleBegin= (<span class="keywordtype">float</span>)cosf(_SpotAngleBegin);
+00214 <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>= (<span class="keywordtype">float</span>)cos(_SpotAngleEnd);
+00215 <span class="keywordflow">if</span>(cosSpotAngleBegin - <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a> &gt; 0)
+00216 <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>= 1.0f / (cosSpotAngleBegin - <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>);
+00217 <span class="keywordflow">else</span>
+00218 <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>= 1e10f;
+00219
+00220 <span class="comment">// compute an exponent such that at middleAngle, att is 0.5f.</span>
+00221 <span class="keywordtype">float</span> caMiddle= (cosSpotAngleBegin + <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>) /2;
+00222 <span class="keywordtype">float</span> divid=(<span class="keywordtype">float</span>)log (caMiddle);
+00223 <span class="keywordflow">if</span> (divid==0.f)
+00224 divid=0.0001f;
+00225 <a class="code" href="a03091.html#NL3D_1_1CPointLightr16">_SpotExponent</a>= (<span class="keywordtype">float</span>)(log (0.5)/divid);
+00226 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_0" doxytag="NL3D::CPointLight::getAmbient" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03337.html">NLMISC::CRGBA</a> NL3D::CPointLight::getAmbient </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the ambient color of the light.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00129">129</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a05894.html#l00106">NL3D::CLightContribution::computeCurrentAmbient()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06184.html#l00035">NL3D::CPointLightNamed::CPointLightNamed()</a>, <a class="el" href="a06188.html#l00072">NL3D::CPointLightUser::getAmbient()</a>, and <a class="el" href="a06475.html#l00062">NL3D::CSurfaceLightGrid::getStaticLightSetup()</a>.
+<p>
+<div class="fragment"><pre>00129 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr0">_Ambient</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_1" doxytag="NL3D::CPointLight::getAttenuationBegin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NL3D::CPointLight::getAttenuationBegin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the begin radius of the attenuation.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00141">141</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>.
+<p>
+Referenced by <a class="el" href="a06768.html#l03179">NL3D::CZoneLighter::addStaticPointLight()</a>, <a class="el" href="a05824.html#l00999">NL3D::CInstanceLighter::addStaticPointLight()</a>, <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06188.html#l00094">NL3D::CPointLightUser::getAttenuationBegin()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00141 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_2" doxytag="NL3D::CPointLight::getAttenuationEnd" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NL3D::CPointLight::getAttenuationEnd </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the end radius of the attenuation.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00143">143</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>.
+<p>
+Referenced by <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a06768.html#l03179">NL3D::CZoneLighter::addStaticPointLight()</a>, <a class="el" href="a05824.html#l00999">NL3D::CInstanceLighter::addStaticPointLight()</a>, <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06188.html#l00099">NL3D::CPointLightUser::getAttenuationEnd()</a>, <a class="el" href="a06768.html#l03329">NL3D::CZoneLighter::CPredPointLightToPoint::operator()()</a>, <a class="el" href="a05824.html#l01140">NL3D::CInstanceLighter::CPredPointLightToPoint::operator()()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00143 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_3" doxytag="NL3D::CPointLight::getDiffuse" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03337.html">NLMISC::CRGBA</a> NL3D::CPointLight::getDiffuse </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the diffuse color of the light.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00131">131</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06372.html#l00626">NL3D::CShadowMapManager::computeShadowColors()</a>, <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>, <a class="el" href="a06184.html#l00035">NL3D::CPointLightNamed::CPointLightNamed()</a>, <a class="el" href="a06188.html#l00077">NL3D::CPointLightUser::getDiffuse()</a>, <a class="el" href="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, <a class="el" href="a06184.html#l00073">NL3D::CPointLightNamed::serial()</a>, <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>, and <a class="el" href="a06148.html#l00680">NL3D::CParticleSystemModel::traverseRender()</a>.
+<p>
+<div class="fragment"><pre>00131 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr5">_Diffuse</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_4" doxytag="NL3D::CPointLight::getPosition" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a03128.html">CVector</a>&amp; NL3D::CPointLight::getPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the position in WorldSpace.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00116">116</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a05901.html#l00151">NL3D::CLightingManager::addDynamicLight()</a>, <a class="el" href="a06768.html#l03179">NL3D::CZoneLighter::addStaticPointLight()</a>, <a class="el" href="a05824.html#l00999">NL3D::CInstanceLighter::addStaticPointLight()</a>, <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06372.html#l00595">NL3D::CShadowMapManager::computeShadowDirection()</a>, <a class="el" href="a06162.html#l00050">NL3D::CPatch::generateTileVegetable()</a>, <a class="el" href="a06393.html#l01295">NL3D::CSkeletonModel::renderCLod()</a>, and <a class="el" href="a06568.html#l01080">NL3D::CTransform::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00116 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr10">_Position</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_5" doxytag="NL3D::CPointLight::getSpecular" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03337.html">NLMISC::CRGBA</a> NL3D::CPointLight::getSpecular </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the specular color of the light.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00133">133</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06184.html#l00035">NL3D::CPointLightNamed::CPointLightNamed()</a>, and <a class="el" href="a06188.html#l00082">NL3D::CPointLightUser::getSpecular()</a>.
+<p>
+<div class="fragment"><pre>00133 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr12">_Specular</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_6" doxytag="NL3D::CPointLight::getSpotAngleBegin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NL3D::CPointLight::getSpotAngleBegin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the begin radius of the SpotAngles.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00151">151</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+References <a class="el" href="a06180.html#l00230">_SpotAngleBegin</a>.
+<p>
+Referenced by <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, and <a class="el" href="a06188.html#l00125">NL3D::CPointLightUser::getSpotAngleBegin()</a>.
+<p>
+<div class="fragment"><pre>00151 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr13">_SpotAngleBegin</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_7" doxytag="NL3D::CPointLight::getSpotAngleEnd" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float NL3D::CPointLight::getSpotAngleEnd </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the end radius of the SpotAngles.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00153">153</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+References <a class="el" href="a06180.html#l00231">_SpotAngleEnd</a>.
+<p>
+Referenced by <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, and <a class="el" href="a06188.html#l00130">NL3D::CPointLightUser::getSpotAngleEnd()</a>.
+<p>
+<div class="fragment"><pre>00153 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr14">_SpotAngleEnd</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_8" doxytag="NL3D::CPointLight::getSpotDirection" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> const <a class="el" href="a03128.html">CVector</a>&amp; NL3D::CPointLight::getSpotDirection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+get the spot Direction
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00161">161</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+References <a class="el" href="a06180.html#l00229">_SpotDirection</a>.
+<p>
+Referenced by <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00161 {<span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_9" doxytag="NL3D::CPointLight::getType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">CPointLight::TType</a> NL3D::CPointLight::getType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the ambient color of the light.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00138">138</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+Referenced by <a class="el" href="a06163.html#l00052">NL3D::CPatchDLMPointLight::compile()</a>, <a class="el" href="a06768.html#l03202">NL3D::CZoneLighter::compilePointLightRT()</a>, <a class="el" href="a05824.html#l01023">NL3D::CInstanceLighter::compilePointLightRT()</a>, <a class="el" href="a05901.html#l00256">NL3D::CLightingManager::computeModelLightContributions()</a>, <a class="el" href="a06188.html#l00115">NL3D::CPointLightUser::isSpotlight()</a>, <a class="el" href="a05824.html#l01161">NL3D::CInstanceLighter::processIGPointLightRT()</a>, <a class="el" href="a06768.html#l03139">NL3D::CZoneLighter::CPointLightRT::testRaytrace()</a>, <a class="el" href="a05824.html#l00954">NL3D::CInstanceLighter::CPointLightRT::testRaytrace()</a>, and <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00139 {
+00140 <span class="keywordflow">return</span> <a class="code" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a>;
+00141 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLighta2" doxytag="NL3D::CPointLight::operator=" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03091.html">CPointLight</a> &amp; NL3D::CPointLight::operator= </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03091.html">CPointLight</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>o</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+do not copy _LightedModels.
+<p>
+copy all but _LightedModels !!
+<p>
+Definition at line <a class="el" href="a06179.html#l00099">99</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00217">_Ambient</a>, <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>, <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>, <a class="el" href="a06180.html#l00224">_ConstantAttenuation</a>, <a class="el" href="a06180.html#l00232">_CosSpotAngleEnd</a>, <a class="el" href="a06180.html#l00218">_Diffuse</a>, <a class="el" href="a06180.html#l00225">_LinearAttenuation</a>, <a class="el" href="a06180.html#l00234">_OOCosSpotAngleDelta</a>, <a class="el" href="a06180.html#l00223">_OODeltaAttenuation</a>, <a class="el" href="a06180.html#l00214">_Position</a>, <a class="el" href="a06180.html#l00226">_QuadraticAttenuation</a>, <a class="el" href="a06180.html#l00219">_Specular</a>, <a class="el" href="a06180.html#l00230">_SpotAngleBegin</a>, <a class="el" href="a06180.html#l00231">_SpotAngleEnd</a>, <a class="el" href="a06180.html#l00229">_SpotDirection</a>, <a class="el" href="a06180.html#l00235">_SpotExponent</a>, and <a class="el" href="a06180.html#l00211">_Type</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00092">CPointLight()</a>.
+<p>
+<div class="fragment"><pre>00100 {
+00102 <a class="code" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a>= o._Type;
+00103 <a class="code" href="a03091.html#NL3D_1_1CPointLightr10">_Position</a>= o._Position;
+00104 <a class="code" href="a03091.html#NL3D_1_1CPointLightr0">_Ambient</a>= o._Ambient;
+00105 <a class="code" href="a03091.html#NL3D_1_1CPointLightr5">_Diffuse</a>= o._Diffuse;
+00106 <a class="code" href="a03091.html#NL3D_1_1CPointLightr12">_Specular</a>= o._Specular;
+00107
+00108 <a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>= o._AttenuationBegin;
+00109 <a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>= o._AttenuationEnd;
+00110 <a class="code" href="a03091.html#NL3D_1_1CPointLightr9">_OODeltaAttenuation</a>= o._OODeltaAttenuation;
+00111 <a class="code" href="a03091.html#NL3D_1_1CPointLightr3">_ConstantAttenuation</a>= o._ConstantAttenuation;
+00112 <a class="code" href="a03091.html#NL3D_1_1CPointLightr7">_LinearAttenuation</a>= o._LinearAttenuation;
+00113 <a class="code" href="a03091.html#NL3D_1_1CPointLightr11">_QuadraticAttenuation</a>= o._QuadraticAttenuation;
+00114
+00115 <a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>= o._SpotDirection;
+00116 <a class="code" href="a03091.html#NL3D_1_1CPointLightr13">_SpotAngleBegin</a>= o._SpotAngleBegin;
+00117 <a class="code" href="a03091.html#NL3D_1_1CPointLightr14">_SpotAngleEnd</a>= o._SpotAngleEnd;
+00118 <a class="code" href="a03091.html#NL3D_1_1CPointLightr4">_CosSpotAngleEnd</a>= o._CosSpotAngleEnd;
+00119 <a class="code" href="a03091.html#NL3D_1_1CPointLightr8">_OOCosSpotAngleDelta</a>= o._OOCosSpotAngleDelta;
+00120 <a class="code" href="a03091.html#NL3D_1_1CPointLightr16">_SpotExponent</a>= o._SpotExponent;
+00121
+00122 <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+00123 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamede0" doxytag="NL3D::CPointLight::purge" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::purge </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00424">424</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a03091.html#NL3D_1_1CPointLightv0">_LightedModelListMemory</a>, and <a class="el" href="a05490.html#l00185">NLMISC::CBlockMemory&lt; CTransform *, false &gt;::purge()</a>.
+<p>
+<div class="fragment"><pre>00425 {
+00426 <a class="code" href="a03091.html#NL3D_1_1CPointLightv0">_LightedModelListMemory</a>.<a class="code" href="a02274.html#NLMISC_1_1CBlockMemorya6">purge</a>();
+00427 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_3" doxytag="NL3D::CPointLight::removeLightedModel" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::removeLightedModel </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw1">ItTransformList</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>it</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+remove a model from the list. called by <a class="el" href="a02316.html">CTransform</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00418">418</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00241">_LightedModels</a>, and <a class="el" href="a06180.html#l00074">ItTransformList</a>.
+<p>
+Referenced by <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>.
+<p>
+<div class="fragment"><pre>00419 {
+00420 <span class="comment">// delete the entry in the list.</span>
+00421 <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.erase(it);
+00422 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_4" doxytag="NL3D::CPointLight::resetLightedModels" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::resetLightedModels </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Dirt all models this light influence.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00393">393</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00241">_LightedModels</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, and <a class="el" href="a06568.html#l00988">NL3D::CTransform::resetLighting()</a>.
+<p>
+Referenced by <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>, and <a class="el" href="a06179.html#l00127">~CPointLight()</a>.
+<p>
+<div class="fragment"><pre>00394 {
+00395 <span class="comment">// For each transform, resetLighting him.</span>
+00396 <span class="keywordflow">while</span>(<a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.begin() != <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.end() )
+00397 {
+00398 CTransform *model= *<a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.begin();
+00399 <span class="comment">// reset lighting</span>
+00400 model-&gt;resetLighting();
+00401
+00402 <span class="comment">// NB: the transform must erase him from this list.</span>
+00403 <a class="code" href="a04199.html#a6">nlassert</a>( <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.begin() == <a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.end() || *<a class="code" href="a03091.html#NL3D_1_1CPointLightr6">_LightedModels</a>.begin() != model );
+00404 }
+00405 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightz693_10" doxytag="NL3D::CPointLight::serial" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Get the ambient color of the light.
+<p>
+
+<p>
+Reimplemented in <a class="el" href="a03094.html#NL3D_1_1CPointLightNameda5">NL3D::CPointLightNamed</a>.
+<p>
+Definition at line <a class="el" href="a06179.html#l00230">230</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>, <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>, <a class="el" href="a06180.html#l00230">_SpotAngleBegin</a>, <a class="el" href="a06180.html#l00231">_SpotAngleEnd</a>, <a class="el" href="a06180.html#l00229">_SpotDirection</a>, <a class="el" href="a06179.html#l00180">computeAttenuationFactors()</a>, <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, <a class="el" href="a06463.html#l00064">NLMISC::IStream::isReading()</a>, <a class="el" href="a06462.html#l00232">NLMISC::IStream::serial()</a>, <a class="el" href="a06462.html#l00261">NLMISC::IStream::serialEnum()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, <a class="el" href="a06682.html#l00136">NLMISC::CVector::set()</a>, and <a class="el" href="a05981.html#l00104">sint</a>.
+<p>
+<div class="fragment"><pre>00231 {
+00232 <a class="code" href="a04558.html#a14">sint</a> ver= f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(1);
+00233
+00234 <span class="keywordflow">if</span>(ver&gt;=1)
+00235 {
+00236 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama7">serialEnum</a>(_Type);
+00237 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_SpotDirection);
+00238 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_SpotAngleBegin);
+00239 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_SpotAngleEnd);
+00240 }
+00241 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00242 {
+00243 <a class="code" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a>= <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw2">PointLight</a>;
+00244 <a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>.set(0,1,0);
+00245 <a class="code" href="a03091.html#NL3D_1_1CPointLightr13">_SpotAngleBegin</a>= float(NLMISC::Pi/4);
+00246 <a class="code" href="a03091.html#NL3D_1_1CPointLightr14">_SpotAngleEnd</a>= float(NLMISC::Pi/2);
+00247 }
+00248
+00249 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_Position);
+00250 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_Ambient);
+00251 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_Diffuse);
+00252 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_Specular);
+00253 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_AttenuationBegin);
+00254 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_AttenuationEnd);
+00255
+00256 <span class="comment">// precompute.</span>
+00257 <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00258 {
+00259 <a class="code" href="a03091.html#NL3D_1_1CPointLightd0">computeAttenuationFactors</a>();
+00260 <a class="code" href="a03091.html#NL3D_1_1CPointLightd1">computeSpotAttenuationFactors</a>();
+00261 }
+00262
+00263 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_10" doxytag="NL3D::CPointLight::setAmbient" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setAmbient </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>ambient</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the ambient color of the light. Default to Black.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00120">120</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06188.html#l00050">NL3D::CPointLightUser::setAmbient()</a>, and <a class="el" href="a06184.html#l00053">NL3D::CPointLightNamed::setLightFactor()</a>.
+<p>
+<div class="fragment"><pre>00120 {<a class="code" href="a03091.html#NL3D_1_1CPointLightr0">_Ambient</a>=ambient;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_11" doxytag="NL3D::CPointLight::setColor" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setColor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>color</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the diffuse and specular color of the light to the same value. don't modify _Ambient.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00126">126</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06188.html#l00065">NL3D::CPointLightUser::setColor()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00126 {<a class="code" href="a03091.html#NL3D_1_1CPointLightr5">_Diffuse</a>= <a class="code" href="a03091.html#NL3D_1_1CPointLightr12">_Specular</a>= color;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_12" doxytag="NL3D::CPointLight::setDiffuse" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setDiffuse </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>diffuse</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the diffuse color of the light. Default to White.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00122">122</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06188.html#l00055">NL3D::CPointLightUser::setDiffuse()</a>, and <a class="el" href="a06184.html#l00053">NL3D::CPointLightNamed::setLightFactor()</a>.
+<p>
+<div class="fragment"><pre>00122 {<a class="code" href="a03091.html#NL3D_1_1CPointLightr5">_Diffuse</a>=diffuse;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_13" doxytag="NL3D::CPointLight::setPosition" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the position in WorldSpace.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00114">114</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+References <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00114 {<a class="code" href="a03091.html#NL3D_1_1CPointLightr10">_Position</a>= <a class="code" href="a04223.html#a576">v</a>;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_14" doxytag="NL3D::CPointLight::setSpecular" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setSpecular </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03337.html">NLMISC::CRGBA</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>specular</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Set the specular color of the light. Default to White.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00124">124</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06184.html#l00053">NL3D::CPointLightNamed::setLightFactor()</a>, and <a class="el" href="a06188.html#l00060">NL3D::CPointLightUser::setSpecular()</a>.
+<p>
+<div class="fragment"><pre>00124 {<a class="code" href="a03091.html#NL3D_1_1CPointLightr12">_Specular</a>=specular;}
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_15" doxytag="NL3D::CPointLight::setType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">TType</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>type</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+set/get the type of the light.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00134">134</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a05646.html#l00244">type</a>.
+<p>
+Referenced by <a class="el" href="a06188.html#l00107">NL3D::CPointLightUser::enableSpotlight()</a>.
+<p>
+<div class="fragment"><pre>00135 {
+00136 <a class="code" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a>= <a class="code" href="a04223.html#a581">type</a>;
+00137 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_16" doxytag="NL3D::CPointLight::setupAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setupAttenuation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>attenuationBegin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>attenuationEnd</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the attenuation of the light. if (0,0) attenuation is disabled. clamp(attenuationBegin,0 , +oo) and calmp(attenuationEnd, attenuationBegin, +oo)
+<p>
+Definition at line <a class="el" href="a06179.html#l00144">144</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00222">_AttenuationBegin</a>, <a class="el" href="a06180.html#l00222">_AttenuationEnd</a>, and <a class="el" href="a06179.html#l00180">computeAttenuationFactors()</a>.
+<p>
+Referenced by <a class="el" href="a06188.html#l00089">NL3D::CPointLightUser::setupAttenuation()</a>, and <a class="el" href="a06244.html#l00146">NL3D::CPSLight::step()</a>.
+<p>
+<div class="fragment"><pre>00145 {
+00146 <span class="comment">// set values.</span>
+00147 attenuationBegin= max(attenuationBegin, 0.f);
+00148 attenuationEnd= max(attenuationEnd, attenuationBegin);
+00149 <a class="code" href="a03091.html#NL3D_1_1CPointLightr1">_AttenuationBegin</a>= attenuationBegin;
+00150 <a class="code" href="a03091.html#NL3D_1_1CPointLightr2">_AttenuationEnd</a>= attenuationEnd;
+00151
+00152 <span class="comment">// update factors.</span>
+00153 <a class="code" href="a03091.html#NL3D_1_1CPointLightd0">computeAttenuationFactors</a>();
+00154
+00155 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_5" doxytag="NL3D::CPointLight::setupDriverLight" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setupDriverLight </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02743.html">CLight</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>light</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>factor</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the <a class="el" href="a02743.html">CLight</a> with current pointLight state. factor is used to modulate the colors.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00346">346</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00229">_SpotDirection</a>, <a class="el" href="a06180.html#l00235">_SpotExponent</a>, <a class="el" href="a06340.html#l00236">NLMISC::CRGBA::modulateFromuiRGBOnly()</a>, <a class="el" href="a05891.html#l00059">NL3D::CLight::setupPointLight()</a>, <a class="el" href="a05891.html#l00082">NL3D::CLight::setupSpotLight()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00347 {
+00348 <span class="comment">// expand 0..255 to 0..256, to avoid loss of precision.</span>
+00349 <a class="code" href="a04558.html#a15">uint</a> ufactor= factor + (factor&gt;&gt;7); <span class="comment">// add 0 or 1.</span>
+00350
+00351 <span class="comment">// modulate with factor</span>
+00352 <a class="code" href="a03337.html">CRGBA</a> ambient, diffuse, specular;
+00353 ambient.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(_Ambient, ufactor);
+00354 diffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(_Diffuse, ufactor);
+00355 specular.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(_Specular, ufactor);
+00356
+00357 <span class="comment">// setup the pointLight</span>
+00358 <span class="keywordflow">if</span>(<a class="code" href="a03091.html#NL3D_1_1CPointLightr17">_Type</a> == <a class="code" href="a03091.html#NL3D_1_1CPointLightNamedw5NL3D_1_1CPointLightNamedw3">SpotLight</a> )
+00359 {
+00360 light.setupSpotLight(ambient, diffuse, specular, _Position, _SpotDirection,
+00361 _SpotExponent, <span class="keywordtype">float</span>(NLMISC::Pi/2) ,
+00362 _ConstantAttenuation, _LinearAttenuation, _QuadraticAttenuation);
+00363 }
+00364 <span class="comment">// PointLight or AmbientLight</span>
+00365 <span class="keywordflow">else</span>
+00366 {
+00367 light.setupPointLight(ambient, diffuse, specular, _Position, CVector::Null,
+00368 _ConstantAttenuation, _LinearAttenuation, _QuadraticAttenuation);
+00369 }
+00370 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz695_6" doxytag="NL3D::CPointLight::setupDriverLightUserAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setupDriverLightUserAttenuation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02743.html">CLight</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>light</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>factor</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the <a class="el" href="a02743.html">CLight</a> with current pointLight state. Don't use driver Attenuation and use software one setuped with an additional userAttenuation <dl compact><dt><b>Parameters:</b></dt><dd>
+ <table border="0" cellspacing="2" cellpadding="0">
+ <tr><td valign=top><em>factor</em>&nbsp;</td><td>is used to modulate the colors. Should also integrate light attenuation.</td></tr>
+ </table>
+</dl>
+
+<p>
+Definition at line <a class="el" href="a06179.html#l00374">374</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06340.html#l00236">NLMISC::CRGBA::modulateFromuiRGBOnly()</a>, <a class="el" href="a05891.html#l00059">NL3D::CLight::setupPointLight()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00375 {
+00376 <span class="comment">// expand 0..255 to 0..256, to avoid loss of precision.</span>
+00377 <a class="code" href="a04558.html#a15">uint</a> ufactor= factor + (factor&gt;&gt;7); <span class="comment">// add 0 or 1.</span>
+00378
+00379 <span class="comment">// modulate with factor</span>
+00380 <a class="code" href="a03337.html">CRGBA</a> ambient, diffuse, specular;
+00381 ambient.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(_Ambient, ufactor);
+00382 diffuse.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(_Diffuse, ufactor);
+00383 specular.<a class="code" href="a03337.html#NLMISC_1_1CRGBAz2022_5">modulateFromuiRGBOnly</a>(_Specular, ufactor);
+00384
+00385 <span class="comment">// setup the pointLight, disabling attenuation. </span>
+00386 <span class="comment">// NB: setup a pointLight even if it is a SpotLight because already attenuated</span>
+00387 light.setupPointLight(ambient, diffuse, specular, _Position, CVector::Null,
+00388 1, 0, 0);
+00389 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_17" doxytag="NL3D::CPointLight::setupSpotAngle" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setupSpotAngle </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">float&nbsp;</td>
+ <td class="mdname" nowrap> <em>spotAngleBegin</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>float&nbsp;</td>
+ <td class="mdname" nowrap> <em>spotAngleEnd</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+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
+<p>
+Definition at line <a class="el" href="a06179.html#l00159">159</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00230">_SpotAngleBegin</a>, <a class="el" href="a06180.html#l00231">_SpotAngleEnd</a>, <a class="el" href="a05587.html#l00115">NLMISC::clamp()</a>, <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, and <a class="el" href="a05587.html#l00079">NLMISC::Pi</a>.
+<p>
+Referenced by <a class="el" href="a06188.html#l00120">NL3D::CPointLightUser::setupSpotAngle()</a>.
+<p>
+<div class="fragment"><pre>00160 {
+00161 <a class="code" href="a05378.html#a374">clamp</a>(spotAngleBegin, 0.f, <span class="keywordtype">float</span>(Pi));
+00162 <a class="code" href="a05378.html#a374">clamp</a>(spotAngleEnd, spotAngleBegin, <span class="keywordtype">float</span>(Pi));
+00163 <a class="code" href="a03091.html#NL3D_1_1CPointLightr13">_SpotAngleBegin</a>= spotAngleBegin;
+00164 <a class="code" href="a03091.html#NL3D_1_1CPointLightr14">_SpotAngleEnd</a>= spotAngleEnd;
+00165
+00166 <span class="comment">// update factors.</span>
+00167 <a class="code" href="a03091.html#NL3D_1_1CPointLightd1">computeSpotAttenuationFactors</a>();
+00168 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightNamedz693_18" doxytag="NL3D::CPointLight::setupSpotDirection" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> void NL3D::CPointLight::setupSpotDirection </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>dir</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+setup the spot Direction. Usefull only if SpotLight. Normalized internally Default is (0, 1, 0)
+<p>
+Definition at line <a class="el" href="a06179.html#l00172">172</a> of file <a class="el" href="a06179.html">point_light.cpp</a>.
+<p>
+References <a class="el" href="a06180.html#l00229">_SpotDirection</a>, and <a class="el" href="a06682.html#l00119">NLMISC::CVector::normalize()</a>.
+<p>
+Referenced by <a class="el" href="a06182.html#l00084">NL3D::CPointLightModel::traverseLight()</a>.
+<p>
+<div class="fragment"><pre>00173 {
+00174 <a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>= dir;
+00175 <a class="code" href="a03091.html#NL3D_1_1CPointLightr15">_SpotDirection</a>.normalize();
+00176 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NL3D_1_1CPointLightr0" doxytag="NL3D::CPointLight::_Ambient" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03337.html">NLMISC::CRGBA</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr0">NL3D::CPointLight::_Ambient</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00217">217</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr1" doxytag="NL3D::CPointLight::_AttenuationBegin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr1">NL3D::CPointLight::_AttenuationBegin</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00222">222</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00180">computeAttenuationFactors()</a>, <a class="el" href="a06179.html#l00273">computeLinearAttenuation()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06180.html#l00141">getAttenuationBegin()</a>, <a class="el" href="a06179.html#l00099">operator=()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, and <a class="el" href="a06179.html#l00144">setupAttenuation()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr2" doxytag="NL3D::CPointLight::_AttenuationEnd" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr2">NL3D::CPointLight::_AttenuationEnd</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00222">222</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00180">computeAttenuationFactors()</a>, <a class="el" href="a06179.html#l00273">computeLinearAttenuation()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06180.html#l00143">getAttenuationEnd()</a>, <a class="el" href="a06179.html#l00099">operator=()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, and <a class="el" href="a06179.html#l00144">setupAttenuation()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr3" doxytag="NL3D::CPointLight::_ConstantAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr3">NL3D::CPointLight::_ConstantAttenuation</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00224">224</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr4" doxytag="NL3D::CPointLight::_CosSpotAngleEnd" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr4">NL3D::CPointLight::_CosSpotAngleEnd</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00232">232</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00273">computeLinearAttenuation()</a>, <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, and <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr5" doxytag="NL3D::CPointLight::_Diffuse" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03337.html">NLMISC::CRGBA</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr5">NL3D::CPointLight::_Diffuse</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00218">218</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightv0" doxytag="NL3D::CPointLight::_LightedModelListMemory" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02274.html">NLMISC::CBlockMemory</a>&lt; <a class="el" href="a02316.html">CTransform</a> *, false &gt; <a class="el" href="a03091.html#NL3D_1_1CPointLightv0">NL3D::CPointLight::_LightedModelListMemory</a><code> [static, private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Referenced by <a class="el" href="a06179.html#l00424">purge()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr6" doxytag="NL3D::CPointLight::_LightedModels" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03445.html">TTransformList</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr6">NL3D::CPointLight::_LightedModels</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00241">241</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00409">appendLightedModel()</a>, <a class="el" href="a06179.html#l00418">removeLightedModel()</a>, and <a class="el" href="a06179.html#l00393">resetLightedModels()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr7" doxytag="NL3D::CPointLight::_LinearAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr7">NL3D::CPointLight::_LinearAttenuation</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00225">225</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr8" doxytag="NL3D::CPointLight::_OOCosSpotAngleDelta" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr8">NL3D::CPointLight::_OOCosSpotAngleDelta</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00234">234</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00273">computeLinearAttenuation()</a>, <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, and <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr9" doxytag="NL3D::CPointLight::_OODeltaAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr9">NL3D::CPointLight::_OODeltaAttenuation</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00223">223</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00180">computeAttenuationFactors()</a>, <a class="el" href="a06179.html#l00273">computeLinearAttenuation()</a>, and <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr10" doxytag="NL3D::CPointLight::_Position" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr10">NL3D::CPointLight::_Position</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00214">214</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr11" doxytag="NL3D::CPointLight::_QuadraticAttenuation" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr11">NL3D::CPointLight::_QuadraticAttenuation</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00226">226</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr12" doxytag="NL3D::CPointLight::_Specular" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03337.html">NLMISC::CRGBA</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr12">NL3D::CPointLight::_Specular</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00219">219</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr13" doxytag="NL3D::CPointLight::_SpotAngleBegin" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr13">NL3D::CPointLight::_SpotAngleBegin</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00230">230</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06180.html#l00151">getSpotAngleBegin()</a>, <a class="el" href="a06179.html#l00099">operator=()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, and <a class="el" href="a06179.html#l00159">setupSpotAngle()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr14" doxytag="NL3D::CPointLight::_SpotAngleEnd" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr14">NL3D::CPointLight::_SpotAngleEnd</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00231">231</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06180.html#l00153">getSpotAngleEnd()</a>, <a class="el" href="a06179.html#l00099">operator=()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, and <a class="el" href="a06179.html#l00159">setupSpotAngle()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr15" doxytag="NL3D::CPointLight::_SpotDirection" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03128.html">CVector</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr15">NL3D::CPointLight::_SpotDirection</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00229">229</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00273">computeLinearAttenuation()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06180.html#l00161">getSpotDirection()</a>, <a class="el" href="a06179.html#l00099">operator=()</a>, <a class="el" href="a06179.html#l00230">serial()</a>, <a class="el" href="a06179.html#l00346">setupDriverLight()</a>, and <a class="el" href="a06179.html#l00172">setupSpotDirection()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr16" doxytag="NL3D::CPointLight::_SpotExponent" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> float <a class="el" href="a03091.html#NL3D_1_1CPointLightr16">NL3D::CPointLight::_SpotExponent</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00235">235</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00210">computeSpotAttenuationFactors()</a>, <a class="el" href="a06179.html#l00046">CPointLight()</a>, <a class="el" href="a06179.html#l00099">operator=()</a>, and <a class="el" href="a06179.html#l00346">setupDriverLight()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NL3D_1_1CPointLightr17" doxytag="NL3D::CPointLight::_Type" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a03091.html#NL3D_1_1CPointLightNamedw5">TType</a> <a class="el" href="a03091.html#NL3D_1_1CPointLightr17">NL3D::CPointLight::_Type</a><code> [private]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06180.html#l00211">211</a> of file <a class="el" href="a06180.html">point_light.h</a>.
+<p>
+Referenced by <a class="el" href="a06179.html#l00099">operator=()</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06180.html">point_light.h</a><li><a class="el" href="a06179.html">point_light.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 07:01:38 2004 for NeL by
+<a href="http://www.doxygen.org/index.html">
+<img src="doxygen.png" alt="doxygen" align="middle" border=0 >
+</a>1.3.6 </small></address>
+</body>
+</html>