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

NL3D::CPointLightNamedArray Class Reference

#include <point_light_named_array.h> +

+


Detailed Description

+A class used bi CInstanceGroup and CZone. Just a list of pointLights, grouped by name.
Author:
Lionel Berenguier

+Nevrax France

+
Date:
2001
+ +

+ +

+Definition at line 45 of file point_light_named_array.h. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

void build (const std::vector< CPointLightNamed > &pointLights, std::vector< uint > &indexRemap)
void clear ()
 clear All: pointLights and map.

 CPointLightNamedArray ()
 Constructor.

std::vector< CPointLightNamed > & getPointLights ()
 get the pointLights sorted (mutable version). Be sure what you do!

const std::vector< CPointLightNamed > & getPointLights () const
 get the pointLights sorted (const version).

void initAnimatedLightIndex (const CScene &scene)
void serial (NLMISC::IStream &f)
void setPointLightFactor (const CScene &scene)
 update the Light factor for all pointLights (animated and unanimated one)


Private Types

typedef std::vector< CPointLightGroupTPLGVec

Private Attributes

TPLGVec _PointLightGroupMap
 Info for LightGroupName and setPointLightFactor.

std::vector< CPointLightNamed_PointLights
 List of pointLight.

+


Member Typedef Documentation

+

+ + + + +
+ + +
typedef std::vector<CPointLightGroup> NL3D::CPointLightNamedArray::TPLGVec [private] +
+
+ + + + + +
+   + + +

+ +

+Definition at line 125 of file point_light_named_array.h.

+


Constructor & Destructor Documentation

+

+ + + + +
+ + + + + + + + + +
NL3D::CPointLightNamedArray::CPointLightNamedArray  ) 
+
+ + + + + +
+   + + +

+Constructor. +

+ +

+Definition at line 40 of file point_light_named_array.cpp. +

+

00041 {
+00042 }
+
+


Member Function Documentation

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + +
void NL3D::CPointLightNamedArray::build const std::vector< CPointLightNamed > &  pointLights,
std::vector< uint > &  indexRemap
+
+ + + + + +
+   + + +

+sort pointLights and make Groups by name for setFactor(). indexRemap gets news Ids for pointLights. eg: old PointLight nb 0 is now at indexRemap[0]. +

+Definition at line 71 of file point_light_named_array.cpp. +

+References _PointLightGroupMap, _PointLights, and uint. +

+Referenced by NL3D::CZone::build(), and NL3D::CInstanceGroup::buildPointLightList(). +

+

00072 {
+00073         uint    i;
+00074 
+00075         // sort by name.
+00076         //----------
+00077         // Fill Sort array
+00078         vector<CPointLightNamedSort>    pointLightSorts;
+00079         pointLightSorts.resize(pointLights.size());
+00080         for(i=0; i<pointLightSorts.size(); i++)
+00081         {
+00082                 pointLightSorts[i].PointLight= &pointLights[i];
+00083                 pointLightSorts[i].SrcId= i;
+00084         }
+00085         // sort
+00086         sort(pointLightSorts.begin(), pointLightSorts.end());
+00087         // Copy data, and Fill indexRemap array
+00088         _PointLights.resize(pointLights.size());
+00089         indexRemap.resize(pointLights.size());
+00090         for(i=0; i<pointLightSorts.size(); i++)
+00091         {
+00092                 // Copy yhe PointLight to its new destination
+00093                 _PointLights[i]= *pointLightSorts[i].PointLight;
+00094                 // set the new index at the old position.
+00095                 indexRemap[pointLightSorts[i].SrcId]= i;
+00096         }
+00097 
+00098         // Regroup.
+00099         // ---------
+00100         _PointLightGroupMap.clear();
+00101         if(_PointLights.size() > 0 )
+00102         {
+00103                 bool    first= true;
+00104                 string  precName;
+00105                 uint precGroup;
+00106                 // for all sorted pointLights
+00107                 uint i;
+00108                 for(i=0;i<_PointLights.size();i++)
+00109                 {
+00110                         const   std::string &curName = _PointLights[i].AnimatedLight;
+00111                         const   uint curGroup = _PointLights[i].LightGroup;
+00112                         if ( first || (precName!=curName) || (precGroup != curGroup) )
+00113                         {
+00114                                 // End last group
+00115                                 if(first)
+00116                                         first= false;
+00117                                 else
+00118                                         _PointLightGroupMap.back ().EndId= i;
+00119 
+00120                                 // Start new group
+00121                                 _PointLightGroupMap.push_back (CPointLightGroup ());
+00122                                 _PointLightGroupMap.back ().StartId= i;
+00123                                 _PointLightGroupMap.back ().AnimationLight = curName;
+00124                                 _PointLightGroupMap.back ().LightGroup = curGroup;
+00125                                 precName = curName;
+00126                                 precGroup = curGroup;
+00127                         }
+00128                 }
+00129                 // End last group.
+00130                 _PointLightGroupMap.back ().EndId= i;
+00131         }
+00132 }
+
+

+ + + + +
+ + + + + + + + + +
void NL3D::CPointLightNamedArray::clear  ) 
+
+ + + + + +
+   + + +

+clear All: pointLights and map. +

+ +

+Definition at line 63 of file point_light_named_array.cpp. +

+References _PointLightGroupMap, and _PointLights. +

+Referenced by NL3D::CInstanceGroup::serial(). +

+

00064 {
+00065         _PointLights.clear();
+00066         _PointLightGroupMap.clear();
+00067 }
+
+

+ + + + +
+ + + + + + + + + +
std::vector<CPointLightNamed>& NL3D::CPointLightNamedArray::getPointLights  )  [inline]
+
+ + + + + +
+   + + +

+get the pointLights sorted (mutable version). Be sure what you do! +

+ +

+Definition at line 66 of file point_light_named_array.h. +

+References _PointLights. +

+

00066 {return _PointLights;}
+
+

+ + + + +
+ + + + + + + + + +
const std::vector<CPointLightNamed>& NL3D::CPointLightNamedArray::getPointLights  )  const [inline]
+
+ + + + + +
+   + + +

+get the pointLights sorted (const version). +

+ +

+Definition at line 63 of file point_light_named_array.h. +

+References _PointLights. +

+Referenced by NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded(), NL3D::CPatch::appendTileLightInfluences(), NL3D::CZone::build(), NL3D::CInstanceGroup::buildPointLightList(), NL3D::CPatch::getCurrentTileTLIColors(), NL3D::CInstanceGroup::getNumPointLights(), NL3D::CInstanceGroup::getPointLightList(), NL3D::CInstanceGroup::getPointLightNamed(), NL3D::CInstanceGroup::removeFromScene(), and NL3D::CZone::retrieve(). +

+

00063 {return _PointLights;}
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPointLightNamedArray::initAnimatedLightIndex const CScene scene  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 183 of file point_light_named_array.cpp. +

+References _PointLightGroupMap, NL3D::CPointLightNamedArray::CPointLightGroup::AnimationLight, NL3D::CPointLightNamedArray::CPointLightGroup::AnimationLightIndex, count, NL3D::CScene::getAnimatedLightNameToIndex(), and uint. +

+Referenced by NL3D::CInstanceGroup::addToScene(), NL3D::CInstanceGroup::addToSceneAsync(), and NL3D::CLandscape::addZone(). +

+

00184 {
+00185         // Search in the map.
+00186         const uint count = _PointLightGroupMap.size ();
+00187         uint i;
+00188         for (i=0; i<count; i++)
+00189         {
+00190                 // Ref
+00191                 CPointLightGroup &lightGroup = _PointLightGroupMap[i];
+00192                 lightGroup.AnimationLightIndex = scene.getAnimatedLightNameToIndex (lightGroup.AnimationLight);
+00193         }
+00194 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPointLightNamedArray::serial NLMISC::IStream f  ) 
+
+ + + + + +
+   + + +

+ +

+Definition at line 164 of file point_light_named_array.cpp. +

+References _PointLightGroupMap, _PointLights, NLMISC::IStream::serialCont(), NLMISC::IStream::serialVersion(), and sint. +

+

00165 {
+00166         sint ver = f.serialVersion(1);
+00167 
+00168         f.serialCont(_PointLights);
+00169 
+00170         if (ver == 0)
+00171         {
+00172                 std::map<string, CPointLightGroupV0> oldMap;
+00173                 f.serialCont(oldMap);
+00174         }
+00175         else
+00176         {
+00177                 f.serialCont(_PointLightGroupMap);
+00178         }
+00179 }
+
+

+ + + + +
+ + + + + + + + + + +
void NL3D::CPointLightNamedArray::setPointLightFactor const CScene scene  ) 
+
+ + + + + +
+   + + +

+update the Light factor for all pointLights (animated and unanimated one) +

+ +

+Definition at line 135 of file point_light_named_array.cpp. +

+References _PointLightGroupMap, _PointLights, NL3D::CPointLightNamedArray::CPointLightGroup::AnimationLightIndex, count, NL3D::CPointLightNamedArray::CPointLightGroup::EndId, NL3D::CScene::getAnimatedLightFactor(), NL3D::CScene::getLightmapGroupColor(), NL3D::CPointLightNamedArray::CPointLightGroup::LightGroup, nlassert, NL3D::CPointLightNamedArray::CPointLightGroup::StartId, and uint. +

+Referenced by NL3D::CLandscape::addZone(), and NL3D::CInstanceGroup::setPointLightFactor(). +

+

00136 {
+00137         // Search in the map.
+00138         const uint count = _PointLightGroupMap.size ();
+00139         uint i;
+00140         for (i=0; i<count; i++)
+00141         {
+00142                 // Ref
+00143                 CPointLightGroup &lightGroup = _PointLightGroupMap[i];
+00144                 
+00145                 // Get the factor
+00146                 CRGBA factorAnimated=    scene.getAnimatedLightFactor (lightGroup.AnimationLightIndex, lightGroup.LightGroup);
+00147                 CRGBA factorNotAnimated= scene.getLightmapGroupColor (lightGroup.LightGroup);;
+00148 
+00149                 // Found the group. what entries in the array?
+00150                 uint    startId= lightGroup.StartId;
+00151                 const uint      endId= lightGroup.EndId;
+00152                 nlassert(endId<=_PointLights.size());
+00153 
+00154                 // for all entries, setLightFactor
+00155                 for(uint i=startId;i<endId;i++)
+00156                 {
+00157                         _PointLights[i].setLightFactor (factorAnimated, factorNotAnimated);
+00158                 }
+00159         }
+00160 }
+
+


Field Documentation

+

+ + + + +
+ + +
TPLGVec NL3D::CPointLightNamedArray::_PointLightGroupMap [private] +
+
+ + + + + +
+   + + +

+Info for LightGroupName and setPointLightFactor. +

+ +

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

+Referenced by build(), clear(), initAnimatedLightIndex(), serial(), and setPointLightFactor().

+

+ + + + +
+ + +
std::vector<CPointLightNamed> NL3D::CPointLightNamedArray::_PointLights [private] +
+
+ + + + + +
+   + + +

+List of pointLight. +

+ +

+Definition at line 84 of file point_light_named_array.h. +

+Referenced by build(), clear(), getPointLights(), serial(), and setPointLightFactor().

+


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