diff options
Diffstat (limited to 'docs/doxygen/nel/a02671.html')
-rw-r--r-- | docs/doxygen/nel/a02671.html | 4459 |
1 files changed, 4459 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a02671.html b/docs/doxygen/nel/a02671.html new file mode 100644 index 00000000..186418cf --- /dev/null +++ b/docs/doxygen/nel/a02671.html @@ -0,0 +1,4459 @@ +<!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::CInstanceGroup 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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NL3D::CInstanceGroup Class Reference</h1><code>#include <<a class="el" href="a06351.html">scene_group.h</a>></code> +<p> +<hr><a name="_details"></a><h2>Detailed Description</h2> +A <a class="el" href="a02671.html">CInstanceGroup</a> is a group of mesh instance and so composed by<ul> +<li>A reference to a mesh (refered by the name)</li><li>The transformations to get it to the world</li><li>The parent</li></ul> +<p> +This class can initialize a scene and be serialized.<p> +<dl compact><dt><b>Author:</b></dt><dd>Matthieu Besson <p> +Nevrax France </dd></dl> +<dl compact><dt><b>Date:</b></dt><dd>2001 </dd></dl> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00070">70</a> of file <a class="el" href="a06351.html">scene_group.h</a>.<table border=0 cellpadding=0 cellspacing=0> +<tr><td></td></tr> +<tr><td colspan=2><br><h2>PointLight part</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_0">buildPointLightList</a> (const std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > &pointLightList, std::vector< <a class="el" href="a04558.html#a15">uint</a> > &plRemap)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Build the list of light. NB: sort by LightGroupName the array, and return index remap. <a href="#NL3D_1_1CInstanceGroupz846_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02654.html">CIGSurfaceLight</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">The object used to light dynamic models in town and buildings. <a href="#NL3D_1_1CInstanceGroupz846_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03095.html">CPointLightNamedArray</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Array of pointLights. <a href="#NL3D_1_1CInstanceGroupz846_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_3">_RealTimeSunContribution</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">RealTimeSunContribution. Used for ig_lighter and zone_ig_lighter. <a href="#NL3D_1_1CInstanceGroupz846_3"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Public Types</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom>{ <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw0NL3D_1_1CInstanceGroupw1">NumStaticLightPerInstance</a> = 2 + }</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Should Never be changed. <a href="#NL3D_1_1CInstanceGroupw0">More...</a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>typedef std::vector< <a class="el" href="a02672.html">CInstance</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">A vector of instance. <a href="#NL3D_1_1CInstanceGroupw6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>enum </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7">TState</a> { <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5">StateNotAdded</a> = 0, +<a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>, +<a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw2">StateAdded</a>, +<a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw4">StateError</a> + }</td></tr> + +<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa0">addCluster</a> (<a class="el" href="a02362.html">CCluster</a> *pCluster)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">To construct the cluster system by hand. <a href="#NL3D_1_1CInstanceGroupa0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa1">addToScene</a> (<a class="el" href="a03348.html">CScene</a> &scene, <a class="el" href="a02434.html">IDriver</a> *driver=NULL, <a class="el" href="a04558.html#a15">uint</a> selectedTexture=0)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa2">addToSceneAsync</a> (<a class="el" href="a03348.html">CScene</a> &scene, <a class="el" href="a02434.html">IDriver</a> *driver=NULL, <a class="el" href="a04558.html#a15">uint</a> selectedTexture=0)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa3">build</a> (const <a class="el" href="a03128.html">CVector</a> &vGlobalPos, const <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> &array, const std::vector< <a class="el" href="a02362.html">CCluster</a> > &Clusters, const std::vector< <a class="el" href="a03103.html">CPortal</a> > &Portals, const std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > &pointLightList, const <a class="el" href="a02654.html#NL3D_1_1CIGSurfaceLightw1">CIGSurfaceLight::TRetrieverGridMap</a> *retrieverGridMap=NULL, float igSurfaceLightCellSize=0)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa4">build</a> (const <a class="el" href="a03128.html">CVector</a> &vGlobalPos, const <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> &array, const std::vector< <a class="el" href="a02362.html">CCluster</a> > &Clusters, const std::vector< <a class="el" href="a03103.html">CPortal</a> > &Portals)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa5">CInstanceGroup</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa6">createRoot</a> (<a class="el" href="a03348.html">CScene</a> &scene)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Add all the instances to the scene. <a href="#NL3D_1_1CInstanceGroupa6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa7">displayDebugClusters</a> (<a class="el" href="a02434.html">IDriver</a> *drv, class <a class="el" href="a03483.html">CTextContext</a> *txtCtx)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa8">freezeHRC</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">CTransform::freezeHRC()</a>. Do it for all instances (not clusters), and for the root of the IG. <a href="#NL3D_1_1CInstanceGroupa8"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7">TState</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa9">getAddToSceneState</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa10">getBlendShapes</a> (std::set< std::string > &BlendShapeNames)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get all the blendshapes from an instance group. <a href="#NL3D_1_1CInstanceGroupa10"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa11">getDynamicPortal</a> (std::string &name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the state of a dynamic portal (true=opened, false=closed). <a href="#NL3D_1_1CInstanceGroupa11"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa12">getDynamicPortals</a> (std::vector< std::string > &names)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get all dynamic portals of an instance group. <a href="#NL3D_1_1CInstanceGroupa12"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa13">getGlobalPos</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02672.html">CInstance</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa14">getInstance</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02672.html">CInstance</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa15">getInstance</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa16">getInstanceMatrix</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb, <a class="el" href="a02851.html">NLMISC::CMatrix</a> &dest) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa17">getInstanceName</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the instance name. <a href="#NL3D_1_1CInstanceGroupa17"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a04558.html#a10">sint32</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa18">getInstanceParent</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa19">getInstancePos</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get an instance position. <a href="#NL3D_1_1CInstanceGroupa19"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03296.html">NLMISC::CQuat</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa20">getInstanceRot</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get an instance rotation. <a href="#NL3D_1_1CInstanceGroupa20"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa21">getInstanceScale</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa22">getLights</a> (std::set< std::string > &LightNames)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get all lights (lightmaps) from an instance group. <a href="#NL3D_1_1CInstanceGroupa22"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa23">getNumInstance</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of instance in this group. <a href="#NL3D_1_1CInstanceGroupa23"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html">CInstanceGroup</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa24">getParentClusterSystem</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa25">getPos</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the position of the IG. <a href="#NL3D_1_1CInstanceGroupa25"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03296.html">CQuat</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa26">getRotQuat</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the rotation of the IG. <a href="#NL3D_1_1CInstanceGroupa26"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa27">getShapeName</a> (<a class="el" href="a04558.html#a15">uint</a> instanceIndex, std::string &shapeName) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::string & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa28">getShapeName</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the name of the mesh referenced. <a href="#NL3D_1_1CInstanceGroupa28"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02537.html">CTransformShape</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa29">getTransformShape</a> (<a class="el" href="a04558.html#a15">uint</a> instanceNb) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02674.html">UInstanceGroup</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa30">getUserInterface</a> () const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa31">linkRoot</a> (<a class="el" href="a03348.html">CScene</a> &scene, <a class="el" href="a02316.html">CTransform</a> *father)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">link the root of the ig to a node. No-op if not added to scene. Pass NULL to reset by default <a href="#NL3D_1_1CInstanceGroupa31"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa32">linkToParent</a> (<a class="el" href="a02671.html">CInstanceGroup</a> *pFather)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa33">removeFromScene</a> (<a class="el" href="a03348.html">CScene</a> &scene)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Remove all the instances from the scene. <a href="#NL3D_1_1CInstanceGroupa33"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa34">retrieve</a> (<a class="el" href="a03128.html">CVector</a> &vGlobalPos, <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> &array, std::vector< <a class="el" href="a02362.html">CCluster</a> > &Clusters, std::vector< <a class="el" href="a03103.html">CPortal</a> > &Portals, std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > &pointLightList) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa35">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &f)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Serial the group. <a href="#NL3D_1_1CInstanceGroupa35"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa36">setAddRemoveInstanceCallback</a> (<a class="el" href="a03832.html">IAddRemoveInstance</a> *callback)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set a callback to know when an instance has been added / removed. <a href="#NL3D_1_1CInstanceGroupa36"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa37">setBlendShapeFactor</a> (const std::string &BlendShapeName, float rFactor)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the blendshape factor for the whole instance group (-100 -> 100). <a href="#NL3D_1_1CInstanceGroupa37"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa38">setClusterSystemForInstances</a> (<a class="el" href="a02671.html">CInstanceGroup</a> *pIG)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the cluster system to test for instances that are not in a cluster of this IG. <a href="#NL3D_1_1CInstanceGroupa38"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa39">setDynamicPortal</a> (std::string &name, bool opened)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the state of a dynamic portal (true=opened, false=closed). <a href="#NL3D_1_1CInstanceGroupa39"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa40">setIGAddBeginCallback</a> (<a class="el" href="a03856.html">IIGAddBegin</a> *callback)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set a callback to know when an instance group is being created, and how many instances it contains. <a href="#NL3D_1_1CInstanceGroupa40"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa41">setPos</a> (const <a class="el" href="a03128.html">CVector</a> &pos)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the position of the IG. <a href="#NL3D_1_1CInstanceGroupa41"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa42">setRotQuat</a> (const <a class="el" href="a03296.html">CQuat</a> &quat)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the rotation of the IG. <a href="#NL3D_1_1CInstanceGroupa42"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa43">setTransformNameCallback</a> (<a class="el" href="a03882.html">ITransformName</a> *pTN)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setup the callback in charge of changing name at the addToScene moment. <a href="#NL3D_1_1CInstanceGroupa43"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa44">setUserInterface</a> (class <a class="el" href="a02674.html">UInstanceGroup</a> *uig)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">User Interface related: yes it is ugly.... <a href="#NL3D_1_1CInstanceGroupa44"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa45">stopAddToSceneAsync</a> ()</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa46">unfreezeHRC</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela49">CTransform::unfreezeHRC()</a>. Do it for all instances (not clusters), and for the root of the IG. <a href="#NL3D_1_1CInstanceGroupa46"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa47">~CInstanceGroup</a> ()</td></tr> + +<tr><td colspan="2"><div class="groupHeader">RealTime lighting part</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_0">enableRealTimeSunContribution</a> (bool enable)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setuped at export, tells if the ig is touched by the sun. true by default. <a href="#NL3D_1_1CInstanceGroupz844_0"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02654.html">CIGSurfaceLight</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_1">getIGSurfaceLight</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the SurfaceLight info, for debug purposes. <a href="#NL3D_1_1CInstanceGroupz844_1"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_2">getNumPointLights</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the number of point lights. <a href="#NL3D_1_1CInstanceGroupz844_2"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>const std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_3">getPointLightList</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">get the list of light. NB: the array is sorted by LightGroupName. <a href="#NL3D_1_1CInstanceGroupz844_3"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03094.html">CPointLightNamed</a> & </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_4">getPointLightNamed</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a566">index</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a mutable ref on a point light named. <a href="#NL3D_1_1CInstanceGroupz844_4"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_5">getRealTimeSunContribution</a> () const </td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Setuped at export, tells if the ig is touched by the sun. true by default. <a href="#NL3D_1_1CInstanceGroupz844_5"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_6">getStaticLightSetup</a> (<a class="el" href="a04558.html#a15">uint</a> retrieverIdentifier, <a class="el" href="a04558.html#a14">sint</a> surfaceId, const <a class="el" href="a03128.html">CVector</a> &localPos, std::vector< <a class="el" href="a03092.html">CPointLightInfluence</a> > &pointLightList, <a class="el" href="a04558.html#a7">uint8</a> &sunContribution, <a class="el" href="a03337.html">NLMISC::CRGBA</a> &localAmbient)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="a02654.html#NL3D_1_1CIGSurfaceLighta6">CIGSurfaceLight::getStaticLightSetup()</a>. <a href="#NL3D_1_1CInstanceGroupz844_6"></a><br><br></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>void </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz844_7">setPointLightFactor</a> (const <a class="el" href="a03348.html">CScene</a> &scene)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">set the Light factor for all pointLights "lightGroupName". <a href="#NL3D_1_1CInstanceGroupz844_7"></a><br><br></td></tr> +<tr><td colspan=2><br><h2>Data Fields</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02353.html">CClipTrav</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo0">_ClipTrav</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02362.html">CCluster</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02362.html">CCluster</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html">CInstanceGroup</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo3">_ClusterSystemForInstances</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo4">_GlobalPos</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a02537.html">CTransformShape</a> * > </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html">CInstanceGroup</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo7">_ParentClusterSystem</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector< <a class="el" href="a03103.html">CPortal</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02316.html">CTransform</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a></td></tr> + +<tr><td colspan=2><br><h2>Private Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupd0">addToSceneWhenAllShapesLoaded</a> (<a class="el" href="a03348.html">CScene</a> &scene, <a class="el" href="a02434.html">IDriver</a> *driver, <a class="el" href="a04558.html#a15">uint</a> selectedTexture)</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="a03832.html">IAddRemoveInstance</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03856.html">IIGAddBegin</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03882.html">ITransformName</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02674.html">UInstanceGroup</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr3">_UserIg</a></td></tr> + +<tr><td colspan="2"><div class="groupHeader">Async loading part</div></td></tr> +<tr><td class="memItemLeft" nowrap align=right valign=top>bool </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">_AddToSceneSignal</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7">TState</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02434.html">IDriver</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_2">_AddToSceneTempDriver</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03348.html">CScene</a> * </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_3">_AddToSceneTempScene</a></td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a15">uint</a> </td><td class="memItemRight" valign=bottom><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_4">_AddToSceneTempSelectTexture</a></td></tr> + +</table> +<hr><h2>Member Typedef Documentation</h2> +<a class="anchor" name="NL3D_1_1CInstanceGroupw6" doxytag="NL3D::CInstanceGroup::TInstanceArray" ></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 std::vector<<a class="el" href="a02672.html">CInstance</a>> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">NL3D::CInstanceGroup::TInstanceArray</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +A vector of instance. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00140">140</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00266">build()</a>, and <a class="el" href="a06350.html#l00354">retrieve()</a>. </td> + </tr> +</table> +<hr><h2>Member Enumeration Documentation</h2> +<a class="anchor" name="NL3D_1_1CInstanceGroupw0" doxytag="NL3D::CInstanceGroup::@30" ></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"> anonymous enum + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Should Never be changed. +<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_1CInstanceGroupw0NL3D_1_1CInstanceGroupw1" doxytag="NumStaticLightPerInstance" ></a>NumStaticLightPerInstance</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a06351.html#l00075">75</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +<div class="fragment"><pre>00075 {<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw0NL3D_1_1CInstanceGroupw1">NumStaticLightPerInstance</a>= 2}; +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupw7" doxytag="NL3D::CInstanceGroup::TState" ></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="a02671.html#NL3D_1_1CInstanceGroupw7">NL3D::CInstanceGroup::TState</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5" doxytag="StateNotAdded" ></a>StateNotAdded</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3" doxytag="StateAdding" ></a>StateAdding</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw2" doxytag="StateAdded" ></a>StateAdded</em> </td><td> +</td></tr> +<tr><td valign=top><em><a class="anchor" name="NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw4" doxytag="StateError" ></a>StateError</em> </td><td> +</td></tr> +</table> +</dl> + +<p> +Definition at line <a class="el" href="a06351.html#l00076">76</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +<div class="fragment"><pre>00076 { <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5">StateNotAdded</a> = 0, <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>, <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw2">StateAdded</a>, <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw4">StateError</a> }; +</pre></div> </td> + </tr> +</table> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="NL3D_1_1CInstanceGroupa5" doxytag="NL3D::CInstanceGroup::CInstanceGroup" ></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::CInstanceGroup::CInstanceGroup </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Construct, serialize and link to scene +<p> +Definition at line <a class="el" href="a06350.html#l00245">245</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00427">_AddRemoveInstance</a>, <a class="el" href="a06351.html#l00391">_ClusterSystemForInstances</a>, <a class="el" href="a06351.html#l00395">_GlobalPos</a>, <a class="el" href="a06351.html#l00428">_IGAddBeginCallback</a>, <a class="el" href="a06351.html#l00413">_IGSurfaceLight</a>, <a class="el" href="a06351.html#l00393">_ParentClusterSystem</a>, <a class="el" href="a06351.html#l00403">_RealTimeSunContribution</a>, <a class="el" href="a06351.html#l00426">_TransformName</a>, <a class="el" href="a06351.html#l00431">_UserIg</a>, <a class="el" href="a05806.html#l00043">NL3D::CIGSurfaceLight::setOwner()</a>, and <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5">StateNotAdded</a>. +<p> +<div class="fragment"><pre>00246 { +00247 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a>.setOwner(<span class="keyword">this</span>); +00248 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo4">_GlobalPos</a> = CVector(0,0,0); +00249 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> = NULL; +00250 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo3">_ClusterSystemForInstances</a> = NULL; +00251 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo7">_ParentClusterSystem</a> = NULL; +00252 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_3">_RealTimeSunContribution</a>= <span class="keyword">true</span>; +00253 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a> = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5">StateNotAdded</a>; +00254 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a> = NULL; +00255 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a> = NULL; +00256 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a> = NULL; +00257 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr3">_UserIg</a>= NULL; +00258 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa47" doxytag="NL3D::CInstanceGroup::~CInstanceGroup" ></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::CInstanceGroup::~<a class="el" href="a02671.html">CInstanceGroup</a> </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00261">261</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +<div class="fragment"><pre>00262 { +00263 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="NL3D_1_1CInstanceGroupa0" doxytag="NL3D::CInstanceGroup::addCluster" ></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::CInstanceGroup::addCluster </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02362.html">CCluster</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pCluster</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +To construct the cluster system by hand. +<p> +Cluster/Portal system part +<p> +Definition at line <a class="el" href="a06350.html#l01050">1050</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00385">_ClusterInstances</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00249">NL3D::CScene::initDefaultRoots()</a>. +<p> +<div class="fragment"><pre>01051 { +01052 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.push_back(pCluster); +01053 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa1" doxytag="NL3D::CInstanceGroup::addToScene" ></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"> bool NL3D::CInstanceGroup::addToScene </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em> = NULL, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>selectedTexture</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add all the instances to the scene. By default, <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupa8">freezeHRC()</a> those instances and the root.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign=top><em>scene</em> </td><td>is the scene in which you want to add the instance group. </td></tr> + <tr><td valign=top><em>driver</em> </td><td>is a pointer to a driver. If this pointer is not NULL, the textures used by the shapes will be preloaded in this driver. If the pointer is NULL (default), textures will ve loaded when the shape will be used.</td></tr> + </table> +</dl> + +<p> +Definition at line <a class="el" href="a06350.html#l00503">503</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00428">_IGAddBeginCallback</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06348.html#l00600">NL3D::CScene::createInstance()</a>, <a class="el" href="a06768.html#l02889">getName()</a>, <a class="el" href="a06350.html#l00165">getShapeName()</a>, <a class="el" href="a06186.html#l00183">NL3D::CPointLightNamedArray::initAnimatedLightIndex()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a03856.html#NL3D_1_1IIGAddBegina0">NL3D::IIGAddBegin::startAddingIG()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00186">NL3D::CInstanceGroupUser::addToScene()</a>, and <a class="el" href="a06350.html#l00868">getAddToSceneState()</a>. +<p> +<div class="fragment"><pre>00504 { +00505 <span class="comment">// Init the scene lights</span> +00506 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.initAnimatedLightIndex (scene); +00507 +00508 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00509 +00510 <span class="comment">// Test if portals are linked to their 2 clusters </span> +00511 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +00512 <span class="keywordflow">for</span> (j = 0; j < 2; ++j) +00513 { +00514 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Clusters[j] == NULL) +00515 { +00516 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"Portal %d (name:%s) is not linked to 2 clusters. Instance Group Not Added To Scene."</span>, i, _Portals[i].<a class="code" href="a05345.html#a33">getName</a>().c_str()); +00517 } +00518 } +00519 +00520 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.resize (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(), NULL); +00521 +00522 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a>) +00523 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a>->startAddingIG(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size()); +00524 +00525 <span class="comment">// Creation and positionning of the new instance</span> +00526 +00527 vector<CInstance>::iterator it = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.begin(); +00528 +00529 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); ++i, ++it) +00530 { +00531 <span class="comment">// Get the shape name</span> +00532 string shapeName; +00533 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa28">getShapeName</a> (i, shapeName); +00534 <span class="keywordflow">if</span> (!shapeName.empty ()) +00535 { +00536 <span class="keywordflow">if</span> (!<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i].DontAddToScene) +00537 { +00538 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i] = scene.createInstance (shapeName); +00539 <span class="keywordflow">if</span>( <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i] == NULL ) +00540 { +00541 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"Not found '%s' file\n"</span>, shapeName.c_str()); +00542 } +00543 } +00544 } +00545 } +00546 +00547 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupd0">addToSceneWhenAllShapesLoaded</a> (scene, driver, selectedTexture); +00548 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa2" doxytag="NL3D::CInstanceGroup::addToSceneAsync" ></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"> bool NL3D::CInstanceGroup::addToSceneAsync </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em> = NULL, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>selectedTexture</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00766">766</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00419">_AddToSceneSignal</a>, <a class="el" href="a06351.html#l00423">_AddToSceneTempSelectTexture</a>, <a class="el" href="a06351.html#l00428">_IGAddBeginCallback</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06351.html#l00426">_TransformName</a>, <a class="el" href="a06351.html#l00104">NL3D::CInstanceGroup::CInstance::DontAddToScene</a>, <a class="el" href="a06186.html#l00183">NL3D::CPointLightNamedArray::initAnimatedLightIndex()</a>, <a class="el" href="a06351.html#l00103">NL3D::CInstanceGroup::CInstance::InstanceName</a>, <a class="el" href="a06351.html#l00089">NL3D::CInstanceGroup::CInstance::Name</a>, <a class="el" href="a06351.html#l00099">NL3D::CInstanceGroup::CInstance::Pos</a>, <a class="el" href="a03856.html#NL3D_1_1IIGAddBegina0">NL3D::IIGAddBegin::startAddingIG()</a>, <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a03882.html#NL3D_1_1ITransformNamea0">NL3D::ITransformName::transformName()</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00210">NL3D::CInstanceGroupUser::addToSceneAsync()</a>. +<p> +<div class="fragment"><pre>00767 { +00768 <span class="comment">// Init the scene lights</span> +00769 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.initAnimatedLightIndex (scene); +00770 +00771 <a class="code" href="a04558.html#a11">uint32</a> i; +00772 +00773 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a> = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>; +00774 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_3">_AddToSceneTempScene</a> = &scene; +00775 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_2">_AddToSceneTempDriver</a> = driver; +00776 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_4">_AddToSceneTempSelectTexture</a> = selectedTexture; +00777 +00778 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.resize (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(), NULL); +00779 +00780 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a>) +00781 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a>->startAddingIG(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size()); +00782 +00783 <span class="comment">// Creation and positionning of the new instance</span> +00784 +00785 vector<CInstance>::iterator it = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.begin(); +00786 set<string> allShapesToLoad; +00787 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">_AddToSceneSignal</a> = <span class="keyword">false</span>; +00788 <span class="keywordtype">bool</span> loadAsyncStarted = <span class="keyword">false</span>; +00789 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); ++i, ++it) +00790 { +00791 CInstance &rInstanceInfo = *it; +00792 <span class="keywordflow">if</span> (!rInstanceInfo.DontAddToScene) +00793 { +00794 string shapeName = rInstanceInfo.Name; +00795 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a> != NULL && !rInstanceInfo.InstanceName.empty()) +00796 { +00797 shapeName = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a>->transformName (i, rInstanceInfo.InstanceName, rInstanceInfo.Name); +00798 } +00799 +00800 shapeName = <a class="code" href="a05378.html#a273">strlwr</a> (shapeName); +00801 +00802 <span class="keywordflow">if</span> (!shapeName.empty() && shapeName.find(<span class="charliteral">'.'</span>) == std::string::npos) +00803 shapeName += <span class="stringliteral">".shape"</span>; +00804 +00805 +00806 <span class="keywordflow">if</span> (allShapesToLoad.find(shapeName) == allShapesToLoad.end()) +00807 { +00808 allShapesToLoad.insert (shapeName); +00809 <span class="keywordflow">if</span> (scene.getShapeBank()->isPresent(shapeName) != CShapeBank::Present) +00810 { +00811 <span class="comment">// Load it from file asynchronously</span> +00812 scene.getShapeBank()->loadAsync (shapeName, scene.getDriver(), rInstanceInfo.Pos, &<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">_AddToSceneSignal</a>, selectedTexture); +00813 loadAsyncStarted = <span class="keyword">true</span>; +00814 } +00815 } +00816 } +00817 } +00818 <span class="keywordflow">if</span> (!loadAsyncStarted) +00819 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">_AddToSceneSignal</a> = <span class="keyword">true</span>; +00820 <span class="keywordflow">else</span> +00821 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">_AddToSceneSignal</a> = <span class="keyword">false</span>; +00822 <span class="comment">//CAsyncFileManager::getInstance().signal (&_AddToSceneSignal);</span> +00823 +00824 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00825 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupd0" doxytag="NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded" ></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"> bool NL3D::CInstanceGroup::addToSceneWhenAllShapesLoaded </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>driver</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>selectedTexture</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00571">571</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00427">_AddRemoveInstance</a>, <a class="el" href="a06351.html#l00389">_ClipTrav</a>, <a class="el" href="a06351.html#l00384">_ClusterInfos</a>, <a class="el" href="a06351.html#l00385">_ClusterInstances</a>, <a class="el" href="a06351.html#l00391">_ClusterSystemForInstances</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a05556.html#l00156">NL3D::CClipTrav::Accel</a>, <a class="el" href="a06348.html#l00910">NL3D::CScene::addInstanceGroupForLightAnimation()</a>, <a class="el" href="a05564.html#l00051">NL3D::ClusterId</a>, <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06350.html#l00476">createRoot()</a>, <a class="el" href="a06351.html#l00104">NL3D::CInstanceGroup::CInstance::DontAddToScene</a>, <a class="el" href="a03273.html#NL3D_1_1CQuadGridz774_1">NL3D::CQuadGrid< CCluster * >::erase()</a>, <a class="el" href="a06568.html#l00367">NL3D::CTransform::freeze()</a>, <a class="el" href="a06350.html#l01132">freezeHRC()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06349.html#l00252">NL3D::CScene::getGlobalInstanceGroup()</a>, <a class="el" href="a06349.html#l00474">NL3D::CScene::getHrcTrav()</a>, <a class="el" href="a06575.html#l00076">NL3D::ITransformable::getMatrix()</a>, <a class="el" href="a06187.html#l00063">NL3D::CPointLightNamedArray::getPointLights()</a>, <a class="el" href="a06349.html#l00482">NL3D::CScene::getRoot()</a>, <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>, <a class="el" href="a03832.html#NL3D_1_1IAddRemoveInstancea0">NL3D::IAddRemoveInstance::instanceGroupAdded()</a>, <a class="el" href="a06351.html#l00115">NL3D::CInstanceGroup::CInstance::Light</a>, <a class="el" href="a06350.html#l00884">linkToParent()</a>, <a class="el" href="a06351.html#l00119">NL3D::CInstanceGroup::CInstance::LocalAmbientId</a>, <a class="el" href="a05484.html#l00038">min</a>, <a class="el" href="a05894.html#l00042">NL3D_MAX_LIGHT_CONTRIBUTION</a>, <a class="el" href="a06351.html#l00092">NL3D::CInstanceGroup::CInstance::nParent</a>, <a class="el" href="a06351.html#l00099">NL3D::CInstanceGroup::CInstance::Pos</a>, <a class="el" href="a05555.html#l00433">NL3D::CClipTrav::registerCluster()</a>, <a class="el" href="a06351.html#l00098">NL3D::CInstanceGroup::CInstance::Rot</a>, <a class="el" href="a06351.html#l00100">NL3D::CInstanceGroup::CInstance::Scale</a>, <a class="el" href="a06193.html#l00255">NL3D::CPortal::setWorldMatrix()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw2">StateAdded</a>, <a class="el" href="a06351.html#l00112">NL3D::CInstanceGroup::CInstance::StaticLightEnabled</a>, <a class="el" href="a06351.html#l00113">NL3D::CInstanceGroup::CInstance::SunContribution</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00503">addToScene()</a>. +<p> +<div class="fragment"><pre>00572 { +00573 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00574 +00575 vector<CInstance>::iterator it = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.begin(); +00576 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); ++i, ++it) +00577 { +00578 CInstance &rInstanceInfo = *it; +00579 +00580 <span class="keywordflow">if</span> (!rInstanceInfo.DontAddToScene) +00581 { +00582 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]) +00583 { +00584 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setPos (rInstanceInfo.Pos); +00585 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setRotQuat (rInstanceInfo.Rot); +00586 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setScale (rInstanceInfo.Scale); +00587 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setPivot (CVector::Null); +00588 +00589 <span class="comment">// Static Light Setup</span> +00590 <span class="keywordflow">if</span>( rInstanceInfo.StaticLightEnabled ) +00591 { +00592 <span class="comment">// Count lights.</span> +00593 <a class="code" href="a04558.html#a15">uint</a> numPointLights; +00594 <span class="keywordflow">for</span>(numPointLights= 0; numPointLights<CInstanceGroup::NumStaticLightPerInstance; numPointLights++) +00595 { +00596 <span class="keywordflow">if</span>(rInstanceInfo.Light[numPointLights]==0xFF) +00597 <span class="keywordflow">break</span>; +00598 } +00599 <span class="comment">// Max allowed.</span> +00600 numPointLights= <a class="code" href="a04061.html#a0">min</a>(numPointLights, (<a class="code" href="a04558.html#a15">uint</a>)NL3D_MAX_LIGHT_CONTRIBUTION); +00601 +00602 <span class="comment">// Get pl ptrs.</span> +00603 CPointLight *pls[CInstanceGroup::NumStaticLightPerInstance]; +00604 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> j=0; j<numPointLights;j++) +00605 { +00606 <a class="code" href="a04558.html#a15">uint</a> plId= rInstanceInfo.Light[j]; +00607 pls[j]= (CPointLight*)(&<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights()[plId]); +00608 } +00609 +00610 <span class="comment">// get frozenAmbientlight.</span> +00611 CPointLight *frozenAmbientlight; +00612 <span class="keywordflow">if</span>(rInstanceInfo.LocalAmbientId == 0xFF) +00613 <span class="comment">// must take the sun one.</span> +00614 frozenAmbientlight= NULL; +00615 <span class="keywordflow">else</span> +00616 <span class="comment">// ok, take the local ambient one.</span> +00617 frozenAmbientlight= (CPointLight*)(&<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights()[rInstanceInfo.LocalAmbientId]); +00618 +00619 <span class="comment">// Setup the instance.</span> +00620 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->freezeStaticLightSetup(pls, numPointLights, rInstanceInfo.SunContribution, frozenAmbientlight); +00621 } +00622 +00623 <span class="comment">// Driver not NULL ?</span> +00624 <span class="keywordflow">if</span> (driver) +00625 { +00626 <span class="comment">// Flush shape's texture with this driver</span> +00627 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->Shape->flushTextures (*driver, selectedTexture); +00628 } +00629 } +00630 } +00631 <span class="keywordflow">else</span> +00632 { +00633 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i] = NULL; +00634 } +00635 } +00636 +00637 <span class="comment">// Setup the hierarchy</span> +00638 <span class="comment">// We just have to set the traversal HRC (Hierarchy)</span> +00639 CHrcTrav &hrcTrav = scene.getHrcTrav(); +00640 +00641 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> == NULL) +00642 { +00643 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa6">createRoot</a> (scene); +00644 } +00645 it = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.begin(); +00646 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); ++i, ++it) +00647 <span class="keywordflow">if</span> (!<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i].DontAddToScene && <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i] != NULL) +00648 { +00649 CInstance &rInstanceInfo = *it; +00650 <span class="keywordflow">if</span>( rInstanceInfo.nParent != -1 ) <span class="comment">// Is the instance get a parent</span> +00651 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[rInstanceInfo.nParent]->hrcLinkSon( _Instances[i] ); +00652 <span class="keywordflow">else</span> +00653 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->hrcLinkSon( _Instances[i] ); +00654 } +00655 <span class="comment">// Attach the root of the instance group to the root of the hierarchy traversal</span> +00656 scene.getRoot()->hrcLinkSon( _Root ); +00657 +00658 <span class="comment">// Cluster / Portals</span> +00659 <span class="comment">// -----------------</span> +00660 +00661 CClipTrav *pClipTrav = &scene.getClipTrav(); +00662 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo0">_ClipTrav</a> = pClipTrav; +00663 +00664 <span class="comment">// Create the MOT links (create the physical clusters)</span> +00665 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.resize (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>.size()); +00666 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size(); ++i) +00667 { +00668 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i] = (CCluster*)scene.createModel (ClusterId); +00669 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->Group = <span class="keyword">this</span>; +00670 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->_Portals = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._Portals; +00671 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->_LocalVolume = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._LocalVolume; +00672 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->_LocalBBox = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._LocalBBox; +00673 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->_Volume = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._Volume; +00674 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->_BBox = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._BBox; +00675 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->FatherVisible = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i].FatherVisible; +00676 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->VisibleFromFather = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i].VisibleFromFather; +00677 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->FatherAudible = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i].FatherAudible; +00678 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->AudibleFromFather = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i].AudibleFromFather; +00679 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->Name = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i].Name; +00680 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->setSoundGroup(_ClusterInfos[i].getSoundGroup()); +00681 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->setEnvironmentFx(_ClusterInfos[i].getEnvironmentFx()); +00682 pClipTrav->registerCluster (_ClusterInstances[i]); +00683 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->clipUnlinkFromAll(); +00684 } +00685 +00686 <span class="comment">// Relink portals with newly created clusters</span> +00687 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +00688 <span class="keywordflow">for</span> (j = 0; j < 2; ++j) +00689 { +00690 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Clusters[j]) +00691 { +00692 <a class="code" href="a04558.html#a10">sint32</a> nClusterNb; +00693 nClusterNb = (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Clusters[j] - &<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[0]); +00694 _Portals[i]._Clusters[j] = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[nClusterNb]; +00695 } +00696 } +00697 +00698 <span class="comment">// Link shapes to clusters</span> +00699 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); ++i) +00700 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i] != NULL && !<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i].DontAddToScene) +00701 { +00702 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i].Clusters.size() > 0) +00703 { +00704 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->clipUnlinkFromAll(); +00705 <span class="keywordflow">for</span> (j = 0; j < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i].Clusters.size(); ++j) +00706 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[_InstancesInfos[i].Clusters[j]]->clipAddChild( _Instances[i] ); +00707 <span class="comment">// For the first time we have to set all the instances to NOT move (and not be rebinded)</span> +00708 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->freeze(); +00709 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setClusterSystem (<span class="keyword">this</span>); +00710 } +00711 <span class="keywordflow">else</span> +00712 { +00713 <span class="comment">// These instances are not attached to a cluster at this level so we cannot freeze them</span> +00714 <span class="comment">// Moreover we must set their clustersystem they will be tested against</span> +00715 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setClusterSystem (_ClusterSystemForInstances); +00716 } +00717 } +00718 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->freeze(); +00719 +00720 <span class="comment">// HRC OBS like</span> +00721 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size(); ++i) +00722 { +00723 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->setWorldMatrix (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->getMatrix()); +00724 +00725 <span class="keywordflow">for</span> (j = 0; j < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]->getNbPortals(); ++j) +00726 { +00727 CPortal *pPortal = _ClusterInstances[i]->getPortal(j); +00728 pPortal->setWorldMatrix (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->getMatrix()); +00729 } +00730 +00731 <span class="comment">// Re affect the cluster to the accelerator if not the root</span> +00732 <span class="keywordflow">if</span> (!_ClusterInstances[i]->isRoot()) +00733 { +00734 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo0">_ClipTrav</a>->Accel.erase (_ClusterInstances[i]->AccelIt); +00735 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo0">_ClipTrav</a>->registerCluster (_ClusterInstances[i]); +00736 } +00737 } +00738 +00739 +00740 <span class="comment">// Link the instance group to the parent</span> +00741 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa32">linkToParent</a> (scene.getGlobalInstanceGroup()); +00742 +00743 <span class="comment">// Attach the clusters to the root of the instance group</span> +00744 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size(); ++i) +00745 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->hrcLinkSon( _ClusterInstances[i] ); +00746 +00747 +00748 <span class="comment">// Default: freezeHRC all instances.</span> +00749 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa8">freezeHRC</a>(); +00750 +00751 +00752 <span class="comment">// Register the instanceGroup for light animation</span> +00753 <span class="comment">// -----------------</span> +00754 <span class="comment">// If some PointLight to animate</span> +00755 <span class="keywordflow">if</span>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights().size() > 0) +00756 scene.addInstanceGroupForLightAnimation(<span class="keyword">this</span>); +00757 +00758 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a> = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw2">StateAdded</a>; +00759 +00760 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a>) +00761 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a>->instanceGroupAdded(); +00762 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00763 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa3" doxytag="NL3D::CInstanceGroup::build" ></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::CInstanceGroup::build </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>vGlobalPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> & </td> + <td class="mdname" nowrap> <em>array</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::vector< <a class="el" href="a02362.html">CCluster</a> > & </td> + <td class="mdname" nowrap> <em>Clusters</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::vector< <a class="el" href="a03103.html">CPortal</a> > & </td> + <td class="mdname" nowrap> <em>Portals</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > & </td> + <td class="mdname" nowrap> <em>pointLightList</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02654.html#NL3D_1_1CIGSurfaceLightw1">CIGSurfaceLight::TRetrieverGridMap</a> * </td> + <td class="mdname" nowrap> <em>retrieverGridMap</em> = NULL, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>igSurfaceLightCellSize</em> = 0</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Build the group Build also the list of light. NB: sort by LightGroupName the array. Give also a ptr on a retrieverGridMap to build surfaces (if not NULL). +<p> +Definition at line <a class="el" href="a06350.html#l00266">266</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00384">_ClusterInfos</a>, <a class="el" href="a06351.html#l00395">_GlobalPos</a>, <a class="el" href="a06351.html#l00413">_IGSurfaceLight</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a05806.html#l00050">NL3D::CIGSurfaceLight::build()</a>, <a class="el" href="a06350.html#l01165">buildPointLightList()</a>, <a class="el" href="a05806.html#l00090">NL3D::CIGSurfaceLight::clear()</a>, <a class="el" href="a06351.html#l00140">TInstanceArray</a>, <a class="el" href="a05807.html#l00062">NL3D::CIGSurfaceLight::TRetrieverGridMap</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00272 { +00273 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo4">_GlobalPos</a> = vGlobalPos; +00274 <span class="comment">// Copy the array</span> +00275 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a> = array; +00276 +00277 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a> = Portals; +00278 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a> = Clusters; +00279 +00280 <span class="comment">// Link portals and clusters</span> +00281 <a class="code" href="a04558.html#a11">uint32</a> i, j, k; +00282 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +00283 { +00284 <span class="keywordflow">for</span> (j = 0; j < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>.size(); ++j) +00285 { +00286 <span class="keywordtype">bool</span> bPortalInCluster = <span class="keyword">true</span>; +00287 <span class="keywordflow">for</span> (k = 0; k < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Poly.size(); ++k) +00288 <span class="keywordflow">if</span> (!<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[j].isIn (_Portals[i]._Poly[k]) ) +00289 { +00290 bPortalInCluster = <span class="keyword">false</span>; +00291 <span class="keywordflow">break</span>; +00292 } +00293 <span class="keywordflow">if</span> (bPortalInCluster) +00294 { +00295 _Portals[i].setCluster(&_ClusterInfos[j]); +00296 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[j].link (&_Portals[i]); +00297 } +00298 } +00299 } +00300 +00301 <span class="comment">// Create Meta Cluster if needed</span> +00302 <span class="comment">/*</span> +00303 <span class="comment"> CCluster clusterTemp;</span> +00304 <span class="comment"> bool mustAdd = false;</span> +00305 <span class="comment"> for (i = 0; i < _Portals.size(); ++i)</span> +00306 <span class="comment"> if (_Portals[i].getNbCluster() == 1)</span> +00307 <span class="comment"> {</span> +00308 <span class="comment"> mustAdd = true;</span> +00309 <span class="comment"> break;</span> +00310 <span class="comment"> }</span> +00311 <span class="comment"> if (mustAdd)</span> +00312 <span class="comment"> {</span> +00313 <span class="comment"> CCluster clusterTemp;</span> +00314 <span class="comment"> _ClusterInfos.push_back(clusterTemp);</span> +00315 <span class="comment"> CCluster *pMetaCluster = &_ClusterInfos[_ClusterInfos.size()-1];</span> +00316 <span class="comment"> pMetaCluster->setMetaCluster();</span> +00317 <span class="comment"> for (i = 0; i < _Portals.size(); ++i)</span> +00318 <span class="comment"> if (_Portals[i].getNbCluster() == 1)</span> +00319 <span class="comment"> {</span> +00320 <span class="comment"> _Portals[i].setCluster(pMetaCluster);</span> +00321 <span class="comment"> pMetaCluster->link(&_Portals[i]);</span> +00322 <span class="comment"> }</span> +00323 <span class="comment"> }*/</span> +00324 +00325 +00326 <span class="comment">// Build the list of light. NB: sort by LightGroupName the array.</span> +00327 std::vector<uint> plRemap; +00328 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_0">buildPointLightList</a>(pointLightList, plRemap); +00329 +00330 <span class="comment">// Build IgSurfaceLight</span> +00331 <span class="comment">// clear</span> +00332 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a>.clear(); +00333 <span class="keywordflow">if</span>(retrieverGridMap) +00334 { +00335 <span class="comment">//build</span> +00336 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a>.build(*retrieverGridMap, igSurfaceLightCellSize, plRemap); +00337 } +00338 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa4" doxytag="NL3D::CInstanceGroup::build" ></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::CInstanceGroup::build </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>vGlobalPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> & </td> + <td class="mdname" nowrap> <em>array</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::vector< <a class="el" href="a02362.html">CCluster</a> > & </td> + <td class="mdname" nowrap> <em>Clusters</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const std::vector< <a class="el" href="a03103.html">CPortal</a> > & </td> + <td class="mdname" nowrap> <em>Portals</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Build the group Build with an empty list of light +<p> +Definition at line <a class="el" href="a06350.html#l00342">342</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00140">TInstanceArray</a>. +<p> +Referenced by <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>. +<p> +<div class="fragment"><pre>00345 { +00346 <span class="comment">// empty pointLightList</span> +00347 std::vector<CPointLightNamed> pointLightList; +00348 +00349 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa4">build</a>(vGlobalPos, array, Clusters, Portals, pointLightList); +00350 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz846_0" doxytag="NL3D::CInstanceGroup::buildPointLightList" ></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::CInstanceGroup::buildPointLightList </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > & </td> + <td class="mdname" nowrap> <em>pointLightList</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a04558.html#a15">uint</a> > & </td> + <td class="mdname" nowrap> <em>plRemap</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [private]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Build the list of light. NB: sort by LightGroupName the array, and return index remap. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01165">1165</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06186.html#l00071">NL3D::CPointLightNamedArray::build()</a>, <a class="el" href="a06187.html#l00063">NL3D::CPointLightNamedArray::getPointLights()</a>, <a class="el" href="a06351.html#l00115">NL3D::CInstanceGroup::CInstance::Light</a>, <a class="el" href="a06351.html#l00119">NL3D::CInstanceGroup::CInstance::LocalAmbientId</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06351.html#l00112">NL3D::CInstanceGroup::CInstance::StaticLightEnabled</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00266">build()</a>. +<p> +<div class="fragment"><pre>01167 { +01168 <span class="comment">// build.</span> +01169 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.build(pointLightList, plRemap); +01170 +01171 <span class="comment">// remap Instance precalc lighted.</span> +01172 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> i=0; i<<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); i++) +01173 { +01174 CInstance &inst= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i]; +01175 <span class="comment">// If the instance has no precomputed lighting, skip</span> +01176 <span class="keywordflow">if</span>(!inst.StaticLightEnabled) +01177 <span class="keywordflow">continue</span>; +01178 +01179 <span class="comment">// remap pointlights</span> +01180 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> <a class="code" href="a05373.html#a2">l</a>=0; <a class="code" href="a05373.html#a2">l</a><CInstanceGroup::NumStaticLightPerInstance; <a class="code" href="a05373.html#a2">l</a>++) +01181 { +01182 <span class="comment">// If NULL light, break and continue to next instance</span> +01183 <span class="keywordflow">if</span>(inst.Light[<a class="code" href="a05373.html#a2">l</a>]== 0xFF) +01184 <span class="keywordflow">break</span>; +01185 <span class="keywordflow">else</span> +01186 { +01187 <span class="comment">// Check good index.</span> +01188 <a class="code" href="a04199.html#a6">nlassert</a>(inst.Light[l] < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights().size()); +01189 <span class="comment">// Remap index, because of light sorting.</span> +01190 inst.Light[<a class="code" href="a05373.html#a2">l</a>]= plRemap[inst.Light[<a class="code" href="a05373.html#a2">l</a>]]; +01191 } +01192 } +01193 +01194 <span class="comment">// remap ambient light</span> +01195 <span class="keywordflow">if</span>(inst.LocalAmbientId!=0xFF) +01196 { +01197 <a class="code" href="a04199.html#a6">nlassert</a>(inst.LocalAmbientId < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights().size()); +01198 inst.LocalAmbientId= plRemap[inst.LocalAmbientId]; +01199 } +01200 } +01201 +01202 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa6" doxytag="NL3D::CInstanceGroup::createRoot" ></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::CInstanceGroup::createRoot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scene</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Add all the instances to the scene. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00476">476</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06348.html#l01004">NL3D::CScene::createModel()</a>, <a class="el" href="a06568.html#l00378">NL3D::CTransform::setDontUnfreezeChildren()</a>, <a class="el" href="a06350.html#l01090">setPos()</a>, and <a class="el" href="a06569.html#l00072">NL3D::TransformId</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a05822.html#l00362">NL3D::CInstanceGroupUser::createRoot()</a>. +<p> +<div class="fragment"><pre>00477 { +00478 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> = (CTransform*)scene.createModel (TransformId); +00479 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->setDontUnfreezeChildren (<span class="keyword">true</span>); +00480 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa41">setPos</a> (CVector(0,0,0)); +00481 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa7" doxytag="NL3D::CInstanceGroup::displayDebugClusters" ></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::CInstanceGroup::displayDebugClusters </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02434.html">IDriver</a> * </td> + <td class="mdname" nowrap> <em>drv</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>class <a class="el" href="a03483.html">CTextContext</a> * </td> + <td class="mdname" nowrap> <em>txtCtx</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +For Debug Display of clusters. The view matrix and frustum should have been setuped NB: the ModelMatrix is modified by this method +<p> +Definition at line <a class="el" href="a06350.html#l01224">1224</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05564.html#l00183">NL3D::CCluster::_BBox</a>, <a class="el" href="a06351.html#l00385">_ClusterInstances</a>, <a class="el" href="a05564.html#l00172">NL3D::CCluster::_Portals</a>, <a class="el" href="a05564.html#l00185">NL3D::CCluster::_Volume</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera2">NL3D::IDriver::activeVertexBuffer()</a>, <a class="el" href="a06197.html#l00080">NL3D::CPrimitiveBlock::addLine()</a>, <a class="el" href="a06197.html#l00138">NL3D::CPrimitiveBlock::addTri()</a>, <a class="el" href="a06190.html#l00056">NLMISC::CPolygon::clip()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a06172.html#l00035">NLMISC::CPlane::getNormal()</a>, <a class="el" href="a05385.html#l00096">NLMISC::CAABBox::getRadius()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera34">NL3D::IDriver::getViewMatrix()</a>, <a class="el" href="a05968.html#l00059">NL3D::CMaterial::initUnlit()</a>, <a class="el" href="a05972.html#l01090">NLMISC::CMatrix::inverted()</a>, <a class="el" href="a05564.html#l00160">NL3D::CCluster::Name</a>, <a class="el" href="a05972.html#l01170">NLMISC::CMatrix::normalize()</a>, <a class="el" href="a06172.html#l00068">NLMISC::CPlane::normalize()</a>, <a class="el" href="a06172.html#l00062">NLMISC::CPlane::project()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera51">NL3D::IDriver::render()</a>, <a class="el" href="a05595.html#l00151">NL3D::CComputedString::render3D()</a>, <a class="el" href="a06197.html#l00056">NL3D::CPrimitiveBlock::reserveLine()</a>, <a class="el" href="a06197.html#l00109">NL3D::CPrimitiveBlock::reserveTri()</a>, <a class="el" href="a05646.html#l00977">s</a>, <a class="el" href="a05972.html#l00644">NLMISC::CMatrix::scale()</a>, <a class="el" href="a05641.html#l00064">NL3D::CMaterial::setBlend()</a>, <a class="el" href="a05641.html#l00091">NL3D::CMaterial::setBlendFunc()</a>, <a class="el" href="a05641.html#l00118">NL3D::CMaterial::setColor()</a>, <a class="el" href="a05641.html#l00071">NL3D::CMaterial::setDoubleSided()</a>, <a class="el" href="a06197.html#l00061">NL3D::CPrimitiveBlock::setNumLine()</a>, <a class="el" href="a06197.html#l00114">NL3D::CPrimitiveBlock::setNumTri()</a>, <a class="el" href="a06710.html#l00409">NL3D::CVertexBuffer::setNumVertices()</a>, <a class="el" href="a05972.html#l00267">NLMISC::CMatrix::setPos()</a>, <a class="el" href="a05972.html#l00209">NLMISC::CMatrix::setRot()</a>, <a class="el" href="a02434.html#NL3D_1_1IDrivera68">NL3D::IDriver::setupModelMatrix()</a>, <a class="el" href="a06711.html#l00524">NL3D::CVertexBuffer::setVertexCoord()</a>, <a class="el" href="a06710.html#l00169">NL3D::CVertexBuffer::setVertexFormat()</a>, <a class="el" href="a05641.html#l00099">NL3D::CMaterial::setZFunc()</a>, <a class="el" href="a05641.html#l00105">NL3D::CMaterial::setZWrite()</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a06191.html#l00055">NLMISC::CPolygon::Vertices</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00563">NL3D::CInstanceGroupUser::displayDebugClusters()</a>. +<p> +<div class="fragment"><pre>01225 { +01226 <a class="code" href="a04558.html#a15">uint</a> opacity= 50; +01227 <a class="code" href="a03337.html">CRGBA</a> colorCluster(255, 128, 255, opacity); +01228 <span class="comment">// portals are drawn twice</span> +01229 <a class="code" href="a03337.html">CRGBA</a> colorPortal(128, 255, 128, opacity/2); +01230 +01231 CMaterial clusterMat; +01232 CMaterial portalMat; +01233 CMaterial lineMat; +01234 clusterMat.initUnlit(); +01235 clusterMat.setBlend(<span class="keyword">true</span>); +01236 clusterMat.setBlendFunc(CMaterial::srcalpha, CMaterial::invsrcalpha); +01237 clusterMat.setZWrite(<span class="keyword">false</span>); +01238 clusterMat.setDoubleSided(<span class="keyword">true</span>); +01239 clusterMat.setColor(colorCluster); +01240 portalMat.initUnlit(); +01241 portalMat.setBlend(<span class="keyword">true</span>); +01242 portalMat.setBlendFunc(CMaterial::srcalpha, CMaterial::invsrcalpha); +01243 portalMat.setZWrite(<span class="keyword">false</span>); +01244 portalMat.setDoubleSided(<span class="keyword">true</span>); +01245 portalMat.setColor(colorPortal); +01246 lineMat.initUnlit(); +01247 lineMat.setBlend(<span class="keyword">true</span>); +01248 lineMat.setBlendFunc(CMaterial::srcalpha, CMaterial::invsrcalpha); +01249 lineMat.setZWrite(<span class="keyword">false</span>); +01250 lineMat.setDoubleSided(<span class="keyword">true</span>); +01251 lineMat.setColor(<a class="code" href="a03337.html">CRGBA</a>(0,0,0,opacity)); +01252 +01253 +01254 <span class="comment">// The geometry for each cluster</span> +01255 CVertexBuffer vb; +01256 <span class="comment">// too big cluster won't be rendered</span> +01257 <span class="keyword">const</span> <a class="code" href="a04558.html#a15">uint</a> maxVertices= 10000; +01258 vb.setVertexFormat(CVertexBuffer::PositionFlag); +01259 vb.setNumVertices(maxVertices); +01260 CPrimitiveBlock clusterTriangles; +01261 CPrimitiveBlock clusterLines; +01262 CPrimitiveBlock portalTriangles; +01263 CPrimitiveBlock portalLines; +01264 clusterTriangles.reserveTri(maxVertices); +01265 clusterLines.reserveLine(maxVertices); +01266 portalTriangles.reserveTri(maxVertices); +01267 portalLines.reserveLine(maxVertices); +01268 +01269 <span class="comment">// setup identity matrix</span> +01270 drv->setupModelMatrix(CMatrix::Identity); +01271 +01272 <span class="comment">// For all clusters</span> +01273 <a class="code" href="a04558.html#a15">uint</a> i; +01274 <span class="keywordflow">for</span>(i=0;i<<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size();i++) +01275 { +01276 CCluster *cluster= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[i]; +01277 <span class="keywordflow">if</span>(cluster) +01278 { +01279 <a class="code" href="a04558.html#a15">uint</a> numTotalVertices= 0; +01280 +01281 <span class="comment">// **** Build a set of polys representing the volume (slow but debug!)</span> +01282 <span class="keyword">static</span> std::vector<CPolygon> polygons; +01283 polygons.clear(); +01284 polygons.resize(cluster->_Volume.size()); +01285 <span class="comment">// for each plane, build the associated polygon</span> +01286 <a class="code" href="a04558.html#a15">uint</a> j; +01287 <span class="keywordflow">for</span>(j=0;j<polygons.size();j++) +01288 { +01289 <span class="comment">// Start with a big quad centered on bbox center</span> +01290 CPlane p= cluster->_Volume[j]; +01291 p.normalize(); +01292 CVector quadCenter= p.project(cluster->_BBox.getCenter()); +01293 +01294 <span class="comment">// choose a basis on this plane</span> +01295 CMatrix mat; +01296 <span class="keywordflow">if</span>( fabs(p.getNormal().y)>0.9 ) +01297 mat.setRot(CVector::K, CVector::I, p.getNormal()); +01298 <span class="keywordflow">else</span> +01299 mat.setRot(CVector::I, CVector::J, p.getNormal()); +01300 mat.normalize(CMatrix::ZYX); +01301 mat.setPos(quadCenter); +01302 +01303 <span class="comment">// Build the initial Big quad</span> +01304 <a class="code" href="a03100.html">CPolygon</a> &poly= polygons[j]; +01305 poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.resize(4); +01306 <span class="keywordtype">float</span> <a class="code" href="a04223.html#a626">s</a>= 10 * cluster->_BBox.getRadius(); +01307 poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[0]= mat * CVector(-s,-s,0); +01308 poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[1]= mat * CVector(s,-s,0); +01309 poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[2]= mat * CVector(s,s,0); +01310 poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[3]= mat * CVector(-s,s,0); +01311 +01312 <span class="comment">// clip this poly against all the other (ie not me) planes</span> +01313 <span class="comment">// This make this algo O(N2) but this is for debug....</span> +01314 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> k=0;k<cluster->_Volume.size();k++) +01315 { +01316 <span class="keywordflow">if</span>(j!=k) +01317 { +01318 poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygona3">clip</a>(&cluster->_Volume[k], 1); +01319 } +01320 } +01321 +01322 <span class="comment">// count the number of vertices / triangles / lines to add</span> +01323 <span class="keywordflow">if</span>(poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()>=3) +01324 { +01325 numTotalVertices+= poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size(); +01326 } +01327 } +01328 +01329 <span class="comment">// **** count the number of portals vertices</span> +01330 <span class="keywordflow">for</span>(j=0;j<cluster->_Portals.size();j++) +01331 { +01332 numTotalVertices+= cluster->_Portals[j]->_Poly.size(); +01333 } +01334 +01335 <span class="comment">// **** Draw those cluster polygons, and portals</span> +01336 <span class="comment">// too big clusters won't be rendered</span> +01337 <span class="keywordflow">if</span>(numTotalVertices<=maxVertices) +01338 { +01339 <a class="code" href="a04558.html#a15">uint</a> iVert= 0; +01340 <a class="code" href="a04558.html#a15">uint</a> j; +01341 +01342 <span class="comment">// build the cluster geometry</span> +01343 clusterTriangles.setNumTri(0); +01344 clusterLines.setNumLine(0); +01345 <span class="keywordflow">for</span>(j=0;j<polygons.size();j++) +01346 { +01347 <a class="code" href="a03100.html">CPolygon</a> &poly= polygons[j]; +01348 <span class="keywordflow">if</span>(poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()>=3) +01349 { +01350 <a class="code" href="a04558.html#a15">uint</a> k; +01351 <span class="comment">// add the vertices</span> +01352 <span class="keywordflow">for</span>(k=0;k<poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size();k++) +01353 vb.setVertexCoord(iVert+k, poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>[k]); +01354 +01355 <span class="comment">// add the triangles</span> +01356 <span class="keywordflow">for</span>(k=0;k<poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()-2;k++) +01357 clusterTriangles.addTri(iVert+0, iVert+k+1, iVert+k+2); +01358 +01359 <span class="comment">// add the lines</span> +01360 <span class="keywordflow">for</span>(k=0;k<poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size();k++) +01361 clusterLines.addLine(iVert+k, iVert+ ((k+1)%poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size()) ); +01362 +01363 iVert+= poly.<a class="code" href="a03100.html#NLMISC_1_1CPolygono0">Vertices</a>.size(); +01364 } +01365 } +01366 +01367 <span class="comment">// build the portal geometry</span> +01368 portalTriangles.setNumTri(0); +01369 portalLines.setNumLine(0); +01370 <span class="keywordflow">for</span>(j=0;j<cluster->_Portals.size();j++) +01371 { +01372 std::vector<CVector> &portalVerts= cluster->_Portals[j]->_Poly; +01373 <span class="keywordflow">if</span>(portalVerts.size()>=3) +01374 { +01375 <a class="code" href="a04558.html#a15">uint</a> k; +01376 <span class="comment">// add the vertices</span> +01377 <span class="keywordflow">for</span>(k=0;k<portalVerts.size();k++) +01378 vb.setVertexCoord(iVert+k, portalVerts[k]); +01379 +01380 <span class="comment">// add the triangles</span> +01381 <span class="keywordflow">for</span>(k=0;k<portalVerts.size()-2;k++) +01382 portalTriangles.addTri(iVert+0, iVert+k+1, iVert+k+2); +01383 +01384 <span class="comment">// add the lines</span> +01385 <span class="keywordflow">for</span>(k=0;k<portalVerts.size();k++) +01386 portalLines.addLine(iVert+k, iVert+ ((k+1)%portalVerts.size()) ); +01387 +01388 iVert+= portalVerts.size(); +01389 } +01390 } +01391 +01392 <span class="comment">// render 2 pass with or without ZBuffer (for clearness)</span> +01393 <span class="keywordflow">for</span>(<a class="code" href="a04558.html#a15">uint</a> pass=0;pass<2;pass++) +01394 { +01395 <span class="keywordflow">if</span>(pass==0) +01396 { +01397 clusterMat.setZFunc(CMaterial::always); +01398 portalMat.setZFunc(CMaterial::always); +01399 lineMat.setZFunc(CMaterial::always); +01400 } +01401 <span class="keywordflow">else</span> +01402 { +01403 clusterMat.setZFunc(CMaterial::lessequal); +01404 portalMat.setZFunc(CMaterial::lessequal); +01405 lineMat.setZFunc(CMaterial::lessequal); +01406 } +01407 +01408 drv->activeVertexBuffer(vb); +01409 drv->render(clusterTriangles, clusterMat); +01410 drv->render(clusterLines, lineMat); +01411 drv->render(portalTriangles, portalMat); +01412 drv->render(portalLines, lineMat); +01413 } +01414 } +01415 +01416 } +01417 } +01418 +01419 <span class="comment">// **** For all clusters, Draw the cluster name at center of the cluster</span> +01420 <span class="keywordflow">if</span>(txtCtx) +01421 { +01422 CComputedString computedStr; +01423 +01424 <span class="comment">// bkup fontSize</span> +01425 <a class="code" href="a04558.html#a15">uint</a> bkFontSize; +01426 CMatrix fontMatrix; +01427 bkFontSize= txtCtx->getFontSize(); +01428 <span class="comment">// to be readable</span> +01429 txtCtx->setFontSize(24); +01430 +01431 <span class="comment">// the font matrix</span> +01432 fontMatrix.setRot(drv->getViewMatrix().inverted()); +01433 fontMatrix.normalize(CMatrix::YZX); +01434 fontMatrix.scale(10); +01435 +01436 <span class="comment">// parse all clusters</span> +01437 <span class="keywordflow">for</span>(i=0;i<_ClusterInstances.size();i++) +01438 { +01439 CCluster *cluster= _ClusterInstances[i]; +01440 <span class="keywordflow">if</span>(cluster) +01441 { +01442 fontMatrix.setPos(cluster->_BBox.getCenter()); +01443 txtCtx->computeString(cluster->Name, computedStr); +01444 computedStr.render3D(*drv, fontMatrix); +01445 } +01446 } +01447 +01448 <span class="comment">// restore fontsize</span> +01449 txtCtx->setFontSize(bkFontSize); +01450 } +01451 +01452 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_0" doxytag="NL3D::CInstanceGroup::enableRealTimeSunContribution" ></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::CInstanceGroup::enableRealTimeSunContribution </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">bool </td> + <td class="mdname1" valign="top" nowrap> <em>enable</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setuped at export, tells if the ig is touched by the sun. true by default. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01212">1212</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00403">_RealTimeSunContribution</a>. +<p> +<div class="fragment"><pre>01213 { +01214 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_3">_RealTimeSunContribution</a>= enable; +01215 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa8" doxytag="NL3D::CInstanceGroup::freezeHRC" ></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::CInstanceGroup::freezeHRC </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela4">CTransform::freezeHRC()</a>. Do it for all instances (not clusters), and for the root of the IG. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01132">1132</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06568.html#l00385">NL3D::CTransform::freezeHRC()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a05822.html#l00439">NL3D::CInstanceGroupUser::freezeHRC()</a>. +<p> +<div class="fragment"><pre>01133 { +01134 <span class="comment">// For all instances.</span> +01135 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); i++) +01136 { +01137 <span class="keywordflow">if</span>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]) +01138 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->freezeHRC(); +01139 } +01140 <span class="comment">// and for root.</span> +01141 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->freezeHRC(); +01142 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa9" doxytag="NL3D::CInstanceGroup::getAddToSceneState" ></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="a02671.html#NL3D_1_1CInstanceGroupw7">CInstanceGroup::TState</a> NL3D::CInstanceGroup::getAddToSceneState </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00868">868</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00419">_AddToSceneSignal</a>, <a class="el" href="a06351.html#l00423">_AddToSceneTempSelectTexture</a>, <a class="el" href="a06350.html#l00503">addToScene()</a>, and <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00229">NL3D::CInstanceGroupUser::getAddToSceneState()</a>. +<p> +<div class="fragment"><pre>00869 { +00870 <span class="comment">// If we are adding but we have finished loading shapes (all shapes are here)</span> +00871 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a> == <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>) +00872 { +00873 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">_AddToSceneSignal</a>) +00874 { +00875 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa1">addToScene</a> (*_AddToSceneTempScene, _AddToSceneTempDriver, _AddToSceneTempSelectTexture); +00876 } +00877 } +00878 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a>; +00879 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa10" doxytag="NL3D::CInstanceGroup::getBlendShapes" ></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::CInstanceGroup::getBlendShapes </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::set< std::string > & </td> + <td class="mdname1" valign="top" nowrap> <em>BlendShapeNames</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get all the blendshapes from an instance group. +<p> +BlendShape part +<p> +Definition at line <a class="el" href="a06350.html#l01015">1015</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05993.html#l00146">NL3D::CMeshBaseInstance::getBlendShapeName()</a>, <a class="el" href="a05993.html#l00140">NL3D::CMeshBaseInstance::getNbBlendShape()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>01016 { +01017 BlendShapeNames.clear(); +01018 <span class="keywordflow">for</span>( <a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); ++i ) +01019 { +01020 CMeshBaseInstance *pMBI = dynamic_cast<CMeshBaseInstance*>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]); +01021 <span class="keywordflow">if</span> (pMBI != NULL) +01022 { +01023 <a class="code" href="a04558.html#a11">uint32</a> nNbBS = pMBI->getNbBlendShape(); +01024 <span class="keywordflow">for</span>( <a class="code" href="a04558.html#a11">uint32</a> j = 0; j < nNbBS; ++j ) +01025 { +01026 string sTmp; +01027 pMBI->getBlendShapeName( j, sTmp ); +01028 set<string>::iterator itSet = BlendShapeNames.find(sTmp); +01029 <span class="keywordflow">if</span>( itSet == BlendShapeNames.end() ) +01030 BlendShapeNames.insert( sTmp ); +01031 } +01032 } +01033 } +01034 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa11" doxytag="NL3D::CInstanceGroup::getDynamicPortal" ></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"> bool NL3D::CInstanceGroup::getDynamicPortal </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname1" valign="top" nowrap> <em>name</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the state of a dynamic portal (true=opened, false=closed). +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01081">1081</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00403">NL3D::CInstanceGroupUser::getDynamicPortal()</a>. +<p> +<div class="fragment"><pre>01082 { +01083 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +01084 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i].getName() == name) +01085 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i].isOpened (); +01086 <span class="keywordflow">return</span> <span class="keyword">false</span>; +01087 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa12" doxytag="NL3D::CInstanceGroup::getDynamicPortals" ></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::CInstanceGroup::getDynamicPortals </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::vector< std::string > & </td> + <td class="mdname1" valign="top" nowrap> <em>names</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get all dynamic portals of an instance group. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01065">1065</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06768.html#l02889">getName()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00389">NL3D::CInstanceGroupUser::getDynamicPortals()</a>. +<p> +<div class="fragment"><pre>01066 { +01067 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +01068 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i].getName() != <span class="stringliteral">""</span>) +01069 names.push_back (_Portals[i].<a class="code" href="a05345.html#a33">getName</a>()); +01070 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa13" doxytag="NL3D::CInstanceGroup::getGlobalPos" ></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">NLMISC::CVector</a>& NL3D::CInstanceGroup::getGlobalPos </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00175">175</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00395">_GlobalPos</a>. +<p> +<div class="fragment"><pre>00175 { <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo4">_GlobalPos</a>; } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_1" doxytag="NL3D::CInstanceGroup::getIGSurfaceLight" ></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="a02654.html">CIGSurfaceLight</a>& NL3D::CInstanceGroup::getIGSurfaceLight </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the SurfaceLight info, for debug purposes. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00361">361</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00413">_IGSurfaceLight</a>. +<p> +Referenced by <a class="el" href="a05808.html#l00100">NL3D::CIGSurfaceLightBuild::buildPLDebugMesh()</a>. +<p> +<div class="fragment"><pre>00361 {<span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa14" doxytag="NL3D::CInstanceGroup::getInstance" ></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="a02672.html">CInstanceGroup::CInstance</a> & NL3D::CInstanceGroup::getInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00231">231</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00232 { +00233 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb]; +00234 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa15" doxytag="NL3D::CInstanceGroup::getInstance" ></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="a02672.html">CInstanceGroup::CInstance</a> & NL3D::CInstanceGroup::getInstance </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00225">225</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>. +<p> +<div class="fragment"><pre>00226 { +00227 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb]; +00228 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa16" doxytag="NL3D::CInstanceGroup::getInstanceMatrix" ></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::CInstanceGroup::getInstanceMatrix </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>instanceNb</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02851.html">NLMISC::CMatrix</a> & </td> + <td class="mdname" nowrap> <em>dest</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00205">205</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06350.html#l00181">getInstancePos()</a>, <a class="el" href="a06350.html#l00189">getInstanceRot()</a>, <a class="el" href="a06350.html#l00197">getInstanceScale()</a>, <a class="el" href="a05972.html#l00200">NLMISC::CMatrix::identity()</a>, <a class="el" href="a05972.html#l00618">NLMISC::CMatrix::rotate()</a>, <a class="el" href="a05972.html#l00644">NLMISC::CMatrix::scale()</a>, <a class="el" href="a05972.html#l00470">NLMISC::CMatrix::translate()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00178">NL3D::CInstanceGroupUser::getInstanceMatrix()</a>. +<p> +<div class="fragment"><pre>00206 { +00207 dest.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1961_0">identity</a>(); +00208 dest.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_7">translate</a>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa19">getInstancePos</a>(instanceNb)); +00209 dest.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_1">rotate</a>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa20">getInstanceRot</a>(instanceNb)); +00210 dest.<a class="code" href="a02851.html#NLMISC_1_1CMatrixz1965_6">scale</a>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa21">getInstanceScale</a>(instanceNb)); +00211 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa17" doxytag="NL3D::CInstanceGroup::getInstanceName" ></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 string & NL3D::CInstanceGroup::getInstanceName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the instance name. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00173">173</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00186">NL3D::CInstanceGroupUser::addToScene()</a>, <a class="el" href="a05822.html#l00229">NL3D::CInstanceGroupUser::getAddToSceneState()</a>, and <a class="el" href="a05822.html#l00285">NL3D::CInstanceGroupUser::getInstanceName()</a>. +<p> +<div class="fragment"><pre>00174 { +00175 <span class="comment">// Return the name of the n-th instance</span> +00176 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb].InstanceName; +00177 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa18" doxytag="NL3D::CInstanceGroup::getInstanceParent" ></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="a04558.html#a10">sint32</a> NL3D::CInstanceGroup::getInstanceParent </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00217">217</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00218 { +00219 <span class="comment">// Return the scale vector of the n-th instance</span> +00220 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb].nParent; +00221 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa19" doxytag="NL3D::CInstanceGroup::getInstancePos" ></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> & NL3D::CInstanceGroup::getInstancePos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get an instance position. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00181">181</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00205">getInstanceMatrix()</a>, <a class="el" href="a05822.html#l00296">NL3D::CInstanceGroupUser::getInstancePos()</a>, and <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>. +<p> +<div class="fragment"><pre>00182 { +00183 <span class="comment">// Return the position vector of the n-th instance</span> +00184 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb].Pos; +00185 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa20" doxytag="NL3D::CInstanceGroup::getInstanceRot" ></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="a03296.html">CQuat</a> & NL3D::CInstanceGroup::getInstanceRot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get an instance rotation. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00189">189</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00205">getInstanceMatrix()</a>, <a class="el" href="a05822.html#l00307">NL3D::CInstanceGroupUser::getInstanceRot()</a>, and <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>. +<p> +<div class="fragment"><pre>00190 { +00191 <span class="comment">// Return the rotation vector of the n-th instance</span> +00192 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb].Rot; +00193 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa21" doxytag="NL3D::CInstanceGroup::getInstanceScale" ></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> & NL3D::CInstanceGroup::getInstanceScale </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00197">197</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00205">getInstanceMatrix()</a>, <a class="el" href="a05822.html#l00318">NL3D::CInstanceGroupUser::getInstanceScale()</a>, and <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>. +<p> +<div class="fragment"><pre>00198 { +00199 <span class="comment">// Return the scale vector of the n-th instance</span> +00200 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb].Scale; +00201 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa22" doxytag="NL3D::CInstanceGroup::getLights" ></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::CInstanceGroup::getLights </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::set< std::string > & </td> + <td class="mdname1" valign="top" nowrap> <em>LightNames</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get all lights (lightmaps) from an instance group. +<p> +LightMap part +<p> +Definition at line <a class="el" href="a06350.html#l00993">993</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05993.html#l00131">NL3D::CMeshBaseInstance::getLightMapName()</a>, <a class="el" href="a05993.html#l00124">NL3D::CMeshBaseInstance::getNbLightMap()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +<div class="fragment"><pre>00994 { +00995 LightNames.clear(); +00996 <span class="keywordflow">for</span>( <a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); ++i ) +00997 { +00998 CMeshInstance *pMI = dynamic_cast<CMeshInstance*>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]); +00999 <span class="keywordflow">if</span>( pMI != NULL ) +01000 { +01001 <a class="code" href="a04558.html#a11">uint32</a> nNbLM = pMI->getNbLightMap(); +01002 <span class="keywordflow">for</span>( <a class="code" href="a04558.html#a11">uint32</a> j = 0; j < nNbLM; ++j ) +01003 { +01004 string sTmp; +01005 pMI->getLightMapName( j, sTmp ); +01006 set<string>::iterator itSet = LightNames.find(sTmp); +01007 <span class="keywordflow">if</span>( itSet == LightNames.end() ) +01008 LightNames.insert( sTmp ); +01009 } +01010 } +01011 } +01012 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa23" doxytag="NL3D::CInstanceGroup::getNumInstance" ></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="a04558.html#a15">uint</a> NL3D::CInstanceGroup::getNumInstance </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get number of instance in this group. +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000025">Todo:</a></b></dt><dd>remove all of these methods. For the moment DO NOT USE THEM !!!</dd></dl> + +<p> +Definition at line <a class="el" href="a06350.html#l00158">158</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00502">NL3D::CInstanceGroupUser::getCoarseMeshDist()</a>, <a class="el" href="a05822.html#l00475">NL3D::CInstanceGroupUser::getDistMax()</a>, <a class="el" href="a05822.html#l00285">NL3D::CInstanceGroupUser::getInstanceName()</a>, <a class="el" href="a05822.html#l00296">NL3D::CInstanceGroupUser::getInstancePos()</a>, <a class="el" href="a05822.html#l00307">NL3D::CInstanceGroupUser::getInstanceRot()</a>, <a class="el" href="a05822.html#l00318">NL3D::CInstanceGroupUser::getInstanceScale()</a>, <a class="el" href="a05822.html#l00266">NL3D::CInstanceGroupUser::getNumInstance()</a>, <a class="el" href="a05822.html#l00274">NL3D::CInstanceGroupUser::getShapeName()</a>, <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>, <a class="el" href="a05822.html#l00487">NL3D::CInstanceGroupUser::setCoarseMeshDist()</a>, and <a class="el" href="a05822.html#l00464">NL3D::CInstanceGroupUser::setDistMax()</a>. +<p> +<div class="fragment"><pre>00159 { +00160 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); +00161 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_2" doxytag="NL3D::CInstanceGroup::getNumPointLights" ></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="a04558.html#a15">uint</a> NL3D::CInstanceGroup::getNumPointLights </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the number of point lights. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00341">341</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06187.html#l00063">NL3D::CPointLightNamedArray::getPointLights()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00341 { <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights().size(); } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa24" doxytag="NL3D::CInstanceGroup::getParentClusterSystem" ></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="a02671.html">CInstanceGroup</a>* NL3D::CInstanceGroup::getParentClusterSystem </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the parent ClusterSystem +<p> +Definition at line <a class="el" href="a06351.html#l00376">376</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00393">_ParentClusterSystem</a>. +<p> +Referenced by <a class="el" href="a06348.html#l01268">NL3D::CScene::findCameraClusterSystemFromRay()</a>, and <a class="el" href="a05822.html#l00552">NL3D::CInstanceGroupUser::getParentCluster()</a>. +<p> +<div class="fragment"><pre>00376 {<span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo7">_ParentClusterSystem</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_3" doxytag="NL3D::CInstanceGroup::getPointLightList" ></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 std::vector<<a class="el" href="a03094.html">CPointLightNamed</a>>& NL3D::CInstanceGroup::getPointLightList </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +get the list of light. NB: the array is sorted by LightGroupName. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00338">338</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00406">_PointLightArray</a>, and <a class="el" href="a06187.html#l00063">NL3D::CPointLightNamedArray::getPointLights()</a>. +<p> +Referenced by <a class="el" href="a05808.html#l00100">NL3D::CIGSurfaceLightBuild::buildPLDebugMesh()</a>, <a class="el" href="a06475.html#l00062">NL3D::CSurfaceLightGrid::getStaticLightSetup()</a>, <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>, and <a class="el" href="a06350.html#l00354">retrieve()</a>. +<p> +<div class="fragment"><pre>00338 {<span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights();} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_4" doxytag="NL3D::CInstanceGroup::getPointLightNamed" ></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="a03094.html">CPointLightNamed</a>& NL3D::CInstanceGroup::getPointLightNamed </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>index</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get a mutable ref on a point light named. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00344">344</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06187.html#l00063">NL3D::CPointLightNamedArray::getPointLights()</a>, <a class="el" href="a05646.html#l00225">index</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00345 { +00346 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights()[<a class="code" href="a04223.html#a566">index</a>]; +00347 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa25" doxytag="NL3D::CInstanceGroup::getPos" ></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> NL3D::CInstanceGroup::getPos </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the position of the IG. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01105">1105</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06575.html#l00200">NL3D::ITransformable::getPos()</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00424">NL3D::CInstanceGroupUser::getPos()</a>. +<p> +<div class="fragment"><pre>01106 { +01107 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> != NULL) +01108 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->getPos (); +01109 <span class="keywordflow">else</span> +01110 <span class="keywordflow">return</span> CVector(0.0f, 0.0f, 0.0f); +01111 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_5" doxytag="NL3D::CInstanceGroup::getRealTimeSunContribution" ></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"> bool NL3D::CInstanceGroup::getRealTimeSunContribution </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setuped at export, tells if the ig is touched by the sun. true by default. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00365">365</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00403">_RealTimeSunContribution</a>. +<p> +<div class="fragment"><pre>00365 {<span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_3">_RealTimeSunContribution</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa26" doxytag="NL3D::CInstanceGroup::getRotQuat" ></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="a03296.html">CQuat</a> NL3D::CInstanceGroup::getRotQuat </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the rotation of the IG. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01114">1114</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06575.html#l00212">NL3D::ITransformable::getRotQuat()</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00431">NL3D::CInstanceGroupUser::getRotQuat()</a>. +<p> +<div class="fragment"><pre>01115 { +01116 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> != NULL) +01117 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->getRotQuat (); +01118 <span class="keywordflow">else</span> +01119 <span class="keywordflow">return</span> CQuat(); +01120 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa27" doxytag="NL3D::CInstanceGroup::getShapeName" ></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::CInstanceGroup::getShapeName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>instanceIndex</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::string & </td> + <td class="mdname" nowrap> <em>shapeName</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the instance name to create as written in the instance group. +<p> +Definition at line <a class="el" href="a06350.html#l00552">552</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00426">_TransformName</a>, <a class="el" href="a06351.html#l00103">NL3D::CInstanceGroup::CInstance::InstanceName</a>, <a class="el" href="a06351.html#l00089">NL3D::CInstanceGroup::CInstance::Name</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a03882.html#NL3D_1_1ITransformNamea0">NL3D::ITransformName::transformName()</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00553 { +00554 <span class="keyword">const</span> CInstance &rInstanceInfo = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceIndex]; +00555 shapeName = rInstanceInfo.Name; +00556 +00557 <span class="comment">// If there is a callback added to this instance group then transform</span> +00558 <span class="comment">// the name of the shape to load.</span> +00559 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a> != NULL && !rInstanceInfo.InstanceName.empty()) +00560 { +00561 shapeName = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a>->transformName (instanceIndex, rInstanceInfo.InstanceName, rInstanceInfo.Name); +00562 } +00563 +00564 shapeName = <a class="code" href="a05378.html#a273">strlwr</a> (shapeName); +00565 <span class="keywordflow">if</span> (!shapeName.empty() && shapeName.find(<span class="charliteral">'.'</span>) == std::string::npos) +00566 shapeName += <span class="stringliteral">".shape"</span>; +00567 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa28" doxytag="NL3D::CInstanceGroup::getShapeName" ></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 string & NL3D::CInstanceGroup::getShapeName </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the name of the mesh referenced. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00165">165</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00503">addToScene()</a>, <a class="el" href="a05822.html#l00274">NL3D::CInstanceGroupUser::getShapeName()</a>, and <a class="el" href="a05824.html#l01502">NL3D::CInstanceLighter::lightIgSimple()</a>. +<p> +<div class="fragment"><pre>00166 { +00167 <span class="comment">// Return the name of the n-th instance</span> +00168 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[instanceNb].Name; +00169 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_6" doxytag="NL3D::CInstanceGroup::getStaticLightSetup" ></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"> bool NL3D::CInstanceGroup::getStaticLightSetup </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname" nowrap> <em>retrieverIdentifier</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a04558.html#a14">sint</a> </td> + <td class="mdname" nowrap> <em>surfaceId</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>localPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03092.html">CPointLightInfluence</a> > & </td> + <td class="mdname" nowrap> <em>pointLightList</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> & </td> + <td class="mdname" nowrap> <em>sunContribution</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a03337.html">NLMISC::CRGBA</a> & </td> + <td class="mdname" nowrap> <em>localAmbient</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +See <a class="el" href="a02654.html#NL3D_1_1CIGSurfaceLighta6">CIGSurfaceLight::getStaticLightSetup()</a>. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00353">353</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00413">_IGSurfaceLight</a>, <a class="el" href="a05806.html#l00121">NL3D::CIGSurfaceLight::getStaticLightSetup()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00096">uint8</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00454">NL3D::CInstanceGroupUser::getStaticLightSetup()</a>. +<p> +<div class="fragment"><pre>00355 { +00356 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a>.getStaticLightSetup(retrieverIdentifier, surfaceId, localPos, +00357 pointLightList, sunContribution, localAmbient); +00358 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa29" doxytag="NL3D::CInstanceGroup::getTransformShape" ></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="a02537.html">CTransformShape</a> * NL3D::CInstanceGroup::getTransformShape </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceNb</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Get the instance added to the scene. NULL if instanceNb too big, if addToScene not called, or if instance is DontAddToScene +<p> +Definition at line <a class="el" href="a06350.html#l00237">237</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>. +<p> +<div class="fragment"><pre>00238 { +00239 <span class="keywordflow">if</span>(instanceNb><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size()) +00240 <span class="keywordflow">return</span> NULL; +00241 <span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[instanceNb]; +00242 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa30" doxytag="NL3D::CInstanceGroup::getUserInterface" ></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"> class <a class="el" href="a02674.html">UInstanceGroup</a>* NL3D::CInstanceGroup::getUserInterface </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00251">251</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00431">_UserIg</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00552">NL3D::CInstanceGroupUser::getParentCluster()</a>. +<p> +<div class="fragment"><pre>00251 {<span class="keywordflow">return</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr3">_UserIg</a>;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa31" doxytag="NL3D::CInstanceGroup::linkRoot" ></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::CInstanceGroup::linkRoot </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname" nowrap> <em>scene</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02316.html">CTransform</a> * </td> + <td class="mdname" nowrap> <em>father</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +link the root of the ig to a node. No-op if not added to scene. Pass NULL to reset by default +<p> +Transformation part +<p> +Definition at line <a class="el" href="a06350.html#l01123">1123</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06568.html#l01151">NL3D::CTransform::hrcLinkSon()</a>. +<p> +<div class="fragment"><pre>01124 { +01125 <span class="keywordflow">if</span>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>) +01126 { +01127 father->hrcLinkSon( _Root ); +01128 } +01129 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa32" doxytag="NL3D::CInstanceGroup::linkToParent" ></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"> bool NL3D::CInstanceGroup::linkToParent </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02671.html">CInstanceGroup</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pFather</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Look through all hierarchy our clusters that must be linked to our parent +<p> +Definition at line <a class="el" href="a06350.html#l00884">884</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00385">_ClusterInstances</a>, <a class="el" href="a06351.html#l00393">_ParentClusterSystem</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a05822.html#l00376">NL3D::CInstanceGroupUser::linkToParentCluster()</a>. +<p> +<div class="fragment"><pre>00885 { +00886 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00887 <span class="keywordtype">bool</span> ret; +00888 <span class="comment">/*</span> +00889 <span class="comment"> for (i = 0; i < pFather->_ClusterInstances.size(); ++i)</span> +00890 <span class="comment"> {</span> +00891 <span class="comment"> for(j = 0; j < pFather->_ClusterInstances[i]->Children.size(); ++j)</span> +00892 <span class="comment"> {</span> +00893 <span class="comment"> if (linkToParent(pFather->_ClusterInstances[i]->Children[j]->Group))</span> +00894 <span class="comment"> return true;</span> +00895 <span class="comment"> }</span> +00896 <span class="comment"> } </span> +00897 <span class="comment">*/</span> +00898 ret = <span class="keyword">false</span>; +00899 <span class="keywordflow">if</span> (<span class="keyword">this</span> != pFather) +00900 { +00901 <span class="keywordflow">for</span> (j = 0; j < this-><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size(); ++j) +00902 { +00903 <span class="keywordflow">if</span> ((this-><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[j]->FatherVisible) || +00904 (this-><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[j]->VisibleFromFather)) +00905 { +00906 <span class="keywordflow">for</span> (i = 0; i < pFather->_ClusterInstances .size(); ++i) +00907 { +00908 <span class="comment">// If my cluster j is in the cluster i of the father</span> +00909 <span class="keywordflow">if</span> (pFather->_ClusterInstances[i]->isIn(this->_ClusterInstances[j]->getBBox())) +00910 { +00911 <span class="keywordflow">if</span> (this-><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[j]->Father != pFather->_ClusterInstances[i]) <span class="comment">// and not already son of the father cluster ?</span> +00912 { +00913 <span class="comment">// unlink from parent</span> +00914 this-><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[j]->unlinkFromParent(); +00915 +00916 <span class="comment">// relink to the new father found</span> +00917 pFather->_ClusterInstances[i]->Children.push_back(this->_ClusterInstances[j]); +00918 this-><a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[j]->Father = pFather->_ClusterInstances[i]; +00919 } +00920 ret = <span class="keyword">true</span>; +00921 } +00922 } +00923 } +00924 } +00925 } +00926 +00927 <span class="comment">// store new parent</span> +00928 <span class="keywordflow">if</span>(ret) +00929 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo7">_ParentClusterSystem</a>= pFather; +00930 +00931 <span class="keywordflow">return</span> ret; +00932 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa33" doxytag="NL3D::CInstanceGroup::removeFromScene" ></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"> bool NL3D::CInstanceGroup::removeFromScene </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scene</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Remove all the instances from the scene. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00935">935</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00427">_AddRemoveInstance</a>, <a class="el" href="a06351.html#l00384">_ClusterInfos</a>, <a class="el" href="a06351.html#l00385">_ClusterInstances</a>, <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06348.html#l00691">NL3D::CScene::deleteInstance()</a>, <a class="el" href="a06348.html#l01053">NL3D::CScene::deleteModel()</a>, <a class="el" href="a06349.html#l00475">NL3D::CScene::getClipTrav()</a>, <a class="el" href="a06187.html#l00063">NL3D::CPointLightNamedArray::getPointLights()</a>, <a class="el" href="a03832.html#NL3D_1_1IAddRemoveInstancea1">NL3D::IAddRemoveInstance::instanceGroupRemoved()</a>, <a class="el" href="a05622.html#l00290">nlassert</a>, <a class="el" href="a06348.html#l00918">NL3D::CScene::removeInstanceGroupForLightAnimation()</a>, <a class="el" href="a05981.html#l00100">uint32</a>, <a class="el" href="a06568.html#l01061">NL3D::CTransform::unfreezeStaticLightSetup()</a>, and <a class="el" href="a05555.html#l00439">NL3D::CClipTrav::unregisterCluster()</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00257">NL3D::CInstanceGroupUser::removeFromScene()</a>. +<p> +<div class="fragment"><pre>00936 { +00937 <a class="code" href="a04558.html#a11">uint32</a> i, j, k; +00938 +00939 <span class="comment">// Remove shapes</span> +00940 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); ++i) +00941 { +00942 CTransformShape *pTShape = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]; +00943 <span class="keywordflow">if</span>(pTShape) +00944 { +00945 <span class="comment">// For security, unfreeze any StaticLightSetup setuped.</span> +00946 pTShape->unfreezeStaticLightSetup(); +00947 <span class="comment">// delete the instance</span> +00948 scene.deleteInstance (pTShape); +00949 _Instances[i] = NULL; +00950 } +00951 } +00952 +00953 <span class="comment">// Relink portals with old clusters</span> +00954 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +00955 <span class="keywordflow">for</span> (k = 0; k < 2; ++k) +00956 { +00957 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Clusters[k]) +00958 { +00959 <span class="keywordflow">for</span> (j = 0; j < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size(); ++j) +00960 <span class="keywordflow">if</span>( <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Clusters[k] == <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>[j] ) +00961 <span class="keywordflow">break</span>; +00962 +00963 <a class="code" href="a04199.html#a6">nlassert</a> (j!=<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size()); +00964 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i]._Clusters[k] = &<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[j]; +00965 } +00966 } +00967 +00968 <span class="comment">// Remove clusters</span> +00969 CClipTrav *pClipTrav = &scene.getClipTrav(); +00970 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo2">_ClusterInstances</a>.size(); ++i) +00971 { +00972 pClipTrav->unregisterCluster (_ClusterInstances[i]); +00973 scene.deleteModel (_ClusterInstances[i]); +00974 } +00975 +00976 scene.deleteModel (_Root); +00977 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> = NULL; +00978 +00979 +00980 <span class="comment">// UnRegister the instanceGroup for light animation</span> +00981 <span class="comment">// -----------------</span> +00982 <span class="comment">// If some PointLight to animate</span> +00983 <span class="keywordflow">if</span>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.getPointLights().size() > 0) +00984 scene.removeInstanceGroupForLightAnimation(<span class="keyword">this</span>); +00985 +00986 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a>) +00987 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a>->instanceGroupRemoved(); +00988 <span class="keywordflow">return</span> <span class="keyword">true</span>; +00989 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa34" doxytag="NL3D::CInstanceGroup::retrieve" ></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::CInstanceGroup::retrieve </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname" nowrap> <em>vGlobalPos</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap><a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> & </td> + <td class="mdname" nowrap> <em>array</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a02362.html">CCluster</a> > & </td> + <td class="mdname" nowrap> <em>Clusters</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03103.html">CPortal</a> > & </td> + <td class="mdname" nowrap> <em>Portals</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>std::vector< <a class="el" href="a03094.html">CPointLightNamed</a> > & </td> + <td class="mdname" nowrap> <em>pointLightList</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Retreive group information. NB: data may have changed, eg: order of lights. +<p> +Definition at line <a class="el" href="a06350.html#l00354">354</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00384">_ClusterInfos</a>, <a class="el" href="a06351.html#l00395">_GlobalPos</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00338">getPointLightList()</a>, <a class="el" href="a06351.html#l00140">TInstanceArray</a>, and <a class="el" href="a05981.html#l00105">uint</a>. +<p> +Referenced by <a class="el" href="a05824.html#l00305">NL3D::CInstanceLighter::light()</a>. +<p> +<div class="fragment"><pre>00358 { +00359 <span class="comment">// Just copy infos. NB: light information order have change but is still valid</span> +00360 vGlobalPos= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo4">_GlobalPos</a>; +00361 array= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>; +00362 +00363 Portals= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>; +00364 Clusters= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>; +00365 <span class="comment">// Must reset links to all portals and clusters.</span> +00366 <a class="code" href="a04558.html#a15">uint</a> i; +00367 <span class="keywordflow">for</span>(i=0; i<Portals.size(); i++) +00368 Portals[i].resetClusterLinks(); +00369 <span class="keywordflow">for</span>(i=0; i<Clusters.size(); i++) +00370 Clusters[i].resetPortalLinks(); +00371 +00372 +00373 pointLightList= <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz844_3">getPointLightList</a>(); +00374 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa35" doxytag="NL3D::CInstanceGroup::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::CInstanceGroup::serial </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Serial the group. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00379">379</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00384">_ClusterInfos</a>, <a class="el" href="a06351.html#l00395">_GlobalPos</a>, <a class="el" href="a06351.html#l00413">_IGSurfaceLight</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00406">_PointLightArray</a>, <a class="el" href="a06351.html#l00403">_RealTimeSunContribution</a>, <a class="el" href="a06186.html#l00063">NL3D::CPointLightNamedArray::clear()</a>, <a class="el" href="a05806.html#l00090">NL3D::CIGSurfaceLight::clear()</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#l00520">NLMISC::IStream::serialCheck()</a>, <a class="el" href="a06462.html#l00324">NLMISC::IStream::serialCont()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00099">sint32</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00108">NL3D::CInstanceGroupUser::init()</a>, and <a class="el" href="a05457.html#l00377">NL3D::CAsyncFileManager3D::CIGLoad::run()</a>. +<p> +<div class="fragment"><pre>00380 { +00381 <span class="comment">// Serial a header</span> +00382 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_0">serialCheck</a> ((<a class="code" href="a04558.html#a11">uint32</a>)'TPRG'); +00383 +00384 <span class="comment">/*</span> +00385 <span class="comment"> Version 5:</span> +00386 <span class="comment"> _ _RealTimeSunContribution</span> +00387 <span class="comment"> Version 4:</span> +00388 <span class="comment"> _ IGSurfaceLight</span> +00389 <span class="comment"> Version 3:</span> +00390 <span class="comment"> - PointLights</span> +00391 <span class="comment"> */</span> +00392 <span class="comment">// Serial a version number</span> +00393 <a class="code" href="a04558.html#a14">sint</a> version=f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a> (5); +00394 +00395 +00396 <span class="comment">// _RealTimeSunContribution</span> +00397 <span class="keywordflow">if</span> (version >= 5) +00398 { +00399 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_RealTimeSunContribution); +00400 } +00401 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00402 { +00403 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_3">_RealTimeSunContribution</a>= <span class="keyword">true</span>; +00404 } +00405 +00406 +00407 <span class="comment">// Serial the IGSurfaceLight</span> +00408 <span class="keywordflow">if</span> (version >= 4) +00409 { +00410 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_IGSurfaceLight); +00411 } +00412 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00413 { +00414 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">_IGSurfaceLight</a>.clear(); +00415 } +00416 +00417 +00418 <span class="comment">// Serial the PointLights info</span> +00419 <span class="keywordflow">if</span> (version >= 3) +00420 { +00421 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_PointLightArray); +00422 } +00423 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00424 { +00425 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.clear(); +00426 } +00427 +00428 +00429 <span class="keywordflow">if</span> (version >= 2) +00430 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_GlobalPos); +00431 +00432 <span class="keywordflow">if</span> (version >= 1) +00433 { +00434 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (_ClusterInfos); +00435 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (_Portals); +00436 <span class="comment">// Links</span> +00437 <span class="keywordflow">if</span> (f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>()) +00438 { +00439 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00440 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>.size(); ++i) +00441 { +00442 <a class="code" href="a04558.html#a11">uint32</a> nNbPortals; +00443 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (nNbPortals); +00444 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._Portals.resize (nNbPortals); +00445 <span class="comment">// Recreate clusters to portals links</span> +00446 <span class="keywordflow">for</span> (j = 0; j < nNbPortals; ++j) +00447 { +00448 <a class="code" href="a04558.html#a10">sint32</a> nPortalNb; +00449 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (nPortalNb); +00450 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._Portals[j] = &<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[nPortalNb]; +00451 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[nPortalNb].setCluster (&_ClusterInfos[i]); +00452 } +00453 } +00454 } +00455 <span class="keywordflow">else</span> <span class="comment">// We are writing to the stream</span> +00456 { +00457 <a class="code" href="a04558.html#a11">uint32</a> i, j; +00458 <span class="keywordflow">for</span> (i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>.size(); ++i) +00459 { +00460 <a class="code" href="a04558.html#a11">uint32</a> nNbPortals = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo1">_ClusterInfos</a>[i]._Portals.size(); +00461 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (nNbPortals); +00462 <span class="keywordflow">for</span> (j = 0; j < nNbPortals; ++j) +00463 { +00464 <a class="code" href="a04558.html#a10">sint32</a> nPortalNb = (_ClusterInfos[i]._Portals[j] - &<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[0]); +00465 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a> (nPortalNb); +00466 } +00467 } +00468 } +00469 } +00470 +00471 <span class="comment">// Serial the array</span> +00472 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a> (_InstancesInfos); +00473 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa36" doxytag="NL3D::CInstanceGroup::setAddRemoveInstanceCallback" ></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::CInstanceGroup::setAddRemoveInstanceCallback </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03832.html">IAddRemoveInstance</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>callback</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set a callback to know when an instance has been added / removed. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00491">491</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00427">_AddRemoveInstance</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00150">NL3D::CInstanceGroupUser::setAddRemoveInstanceCallback()</a>. +<p> +<div class="fragment"><pre>00492 { +00493 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr0">_AddRemoveInstance</a> = callback; +00494 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa37" doxytag="NL3D::CInstanceGroup::setBlendShapeFactor" ></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::CInstanceGroup::setBlendShapeFactor </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const std::string & </td> + <td class="mdname" nowrap> <em>BlendShapeName</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>float </td> + <td class="mdname" nowrap> <em>rFactor</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the blendshape factor for the whole instance group (-100 -> 100). +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01037">1037</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05993.html#l00154">NL3D::CMeshBaseInstance::setBlendShapeFactor()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00354">NL3D::CInstanceGroupUser::setBlendShapeFactor()</a>. +<p> +<div class="fragment"><pre>01038 { +01039 <span class="keywordflow">for</span>( <a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); ++i ) +01040 { +01041 CMeshBaseInstance *pMI = dynamic_cast<CMeshBaseInstance*>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]); +01042 <span class="keywordflow">if</span>( pMI != NULL ) +01043 { +01044 pMI->setBlendShapeFactor( BlendShapeName, rFactor ); +01045 } +01046 } +01047 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa38" doxytag="NL3D::CInstanceGroup::setClusterSystemForInstances" ></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::CInstanceGroup::setClusterSystemForInstances </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02671.html">CInstanceGroup</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pIG</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the cluster system to test for instances that are not in a cluster of this IG. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01056">1056</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00391">_ClusterSystemForInstances</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00369">NL3D::CInstanceGroupUser::setClusterSystemForInstances()</a>, and <a class="el" href="a06352.html#l00919">NL3D::CSceneUser::setToGlobalInstanceGroup()</a>. +<p> +<div class="fragment"><pre>01057 { +01058 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo3">_ClusterSystemForInstances</a> = pIG; +01059 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); ++i) +01060 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i] && <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>[i].Clusters.size() == 0) +01061 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->setClusterSystem (_ClusterSystemForInstances); +01062 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa39" doxytag="NL3D::CInstanceGroup::setDynamicPortal" ></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::CInstanceGroup::setDynamicPortal </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">std::string & </td> + <td class="mdname" nowrap> <em>name</em>, </td> + </tr> + <tr> + <td class="md" nowrap align="right"></td> + <td></td> + <td class="md" nowrap>bool </td> + <td class="mdname" nowrap> <em>opened</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the state of a dynamic portal (true=opened, false=closed). +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01073">1073</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00396">NL3D::CInstanceGroupUser::setDynamicPortal()</a>. +<p> +<div class="fragment"><pre>01074 { +01075 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>.size(); ++i) +01076 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i].getName() == name) +01077 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo8">_Portals</a>[i].open (opened); +01078 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa40" doxytag="NL3D::CInstanceGroup::setIGAddBeginCallback" ></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::CInstanceGroup::setIGAddBeginCallback </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03856.html">IIGAddBegin</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>callback</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set a callback to know when an instance group is being created, and how many instances it contains. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00497">497</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00428">_IGAddBeginCallback</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00158">NL3D::CInstanceGroupUser::setIGAddBeginCallback()</a>. +<p> +<div class="fragment"><pre>00498 { +00499 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr1">_IGAddBeginCallback</a> = callback; +00500 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz844_7" doxytag="NL3D::CInstanceGroup::setPointLightFactor" ></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::CInstanceGroup::setPointLightFactor </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03348.html">CScene</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>scene</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +set the Light factor for all pointLights "lightGroupName". +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01205">1205</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00406">_PointLightArray</a>, and <a class="el" href="a06186.html#l00135">NL3D::CPointLightNamedArray::setPointLightFactor()</a>. +<p> +Referenced by <a class="el" href="a06348.html#l00710">NL3D::CScene::animate()</a>. +<p> +<div class="fragment"><pre>01206 { +01207 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">_PointLightArray</a>.setPointLightFactor(scene); +01208 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa41" doxytag="NL3D::CInstanceGroup::setPos" ></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::CInstanceGroup::setPos </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>pos</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the position of the IG. +<p> + +<p> +<dl compact><dt><b><a class="el" href="todo.html#_todo000024">Todo:</a></b></dt><dd>Make this work (precision): _Root->setPos (_GlobalPos+pos);</dd></dl> + +<p> +Definition at line <a class="el" href="a06350.html#l01090">1090</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06575.html#l00114">NL3D::ITransformable::setPos()</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00476">createRoot()</a>, and <a class="el" href="a05822.html#l00410">NL3D::CInstanceGroupUser::setPos()</a>. +<p> +<div class="fragment"><pre>01091 { +01092 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> != NULL) +01094 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->setPos (pos); +01095 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa42" doxytag="NL3D::CInstanceGroup::setRotQuat" ></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::CInstanceGroup::setRotQuat </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03296.html">CQuat</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>quat</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Set the rotation of the IG. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01098">1098</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06575.html#l00138">NL3D::ITransformable::setRotQuat()</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00417">NL3D::CInstanceGroupUser::setRotQuat()</a>. +<p> +<div class="fragment"><pre>01099 { +01100 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a> != NULL) +01101 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->setRotQuat (quat); +01102 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa43" doxytag="NL3D::CInstanceGroup::setTransformNameCallback" ></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::CInstanceGroup::setTransformNameCallback </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03882.html">ITransformName</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>pTN</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Setup the callback in charge of changing name at the addToScene moment. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00484">484</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00426">_TransformName</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00142">NL3D::CInstanceGroupUser::setTransformNameCallback()</a>. +<p> +<div class="fragment"><pre>00485 { +00486 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a> = pTN; +00487 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa44" doxytag="NL3D::CInstanceGroup::setUserInterface" ></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::CInstanceGroup::setUserInterface </td> + <td class="md" valign="top">( </td> + <td class="md" nowrap valign="top">class <a class="el" href="a02674.html">UInstanceGroup</a> * </td> + <td class="mdname1" valign="top" nowrap> <em>uig</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +User Interface related: yes it is ugly.... +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00250">250</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +References <a class="el" href="a06351.html#l00431">_UserIg</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00091">NL3D::CInstanceGroupUser::CInstanceGroupUser()</a>. +<p> +<div class="fragment"><pre>00250 {<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr3">_UserIg</a>= uig;} +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa45" doxytag="NL3D::CInstanceGroup::stopAddToSceneAsync" ></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::CInstanceGroup::stopAddToSceneAsync </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l00828">828</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a06351.html#l00419">_AddToSceneSignal</a>, <a class="el" href="a06351.html#l00380">_InstancesInfos</a>, <a class="el" href="a06351.html#l00426">_TransformName</a>, <a class="el" href="a06378.html#l00497">NL3D::CShapeBank::cancelLoadAsync()</a>, <a class="el" href="a06351.html#l00104">NL3D::CInstanceGroup::CInstance::DontAddToScene</a>, <a class="el" href="a06349.html#l00231">NL3D::CScene::getShapeBank()</a>, <a class="el" href="a06351.html#l00103">NL3D::CInstanceGroup::CInstance::InstanceName</a>, <a class="el" href="a06351.html#l00089">NL3D::CInstanceGroup::CInstance::Name</a>, <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>, <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5">StateNotAdded</a>, <a class="el" href="a05586.html#l00536">NLMISC::strlwr()</a>, <a class="el" href="a03882.html#NL3D_1_1ITransformNamea0">NL3D::ITransformName::transformName()</a>, and <a class="el" href="a05981.html#l00100">uint32</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00222">NL3D::CInstanceGroupUser::stopAddToSceneAsync()</a>. +<p> +<div class="fragment"><pre>00829 { +00830 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a> != <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw3">StateAdding</a>) +00831 <span class="keywordflow">return</span>; +00832 vector<CInstance>::iterator it = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.begin(); +00833 CAsyncFileManager::getInstance().cancelSignal (&_AddToSceneSignal); +00834 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a11">uint32</a> i = 0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo6">_InstancesInfos</a>.size(); ++i, ++it) +00835 { +00836 CInstance &rInstanceInfo = *it; +00837 <span class="keywordflow">if</span> (!rInstanceInfo.DontAddToScene) +00838 { +00839 string shapeName; +00840 +00841 +00842 <span class="keywordtype">bool</span> <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupa28">getShapeName</a> = <span class="keyword">true</span>; +00843 +00844 <span class="keywordflow">if</span> (<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a> != NULL && !rInstanceInfo.InstanceName.empty()) +00845 { +00846 shapeName = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupr2">_TransformName</a>->transformName (i, rInstanceInfo.InstanceName, rInstanceInfo.Name); +00847 <span class="keywordflow">if</span> (shapeName != rInstanceInfo.Name) +00848 getShapeName = <span class="keyword">false</span>; +00849 } +00850 +00851 +00852 <span class="keywordflow">if</span> (getShapeName) +00853 { +00854 <span class="keywordflow">if</span> (rInstanceInfo.Name.find(<span class="charliteral">'.'</span>) == std::string::npos) +00855 shapeName = rInstanceInfo.Name + <span class="stringliteral">".shape"</span>; +00856 <span class="keywordflow">else</span> <span class="comment">// extension has already been added</span> +00857 shapeName = rInstanceInfo.Name; +00858 } +00859 +00860 shapeName = <a class="code" href="a05378.html#a273">strlwr</a> (shapeName); +00861 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_3">_AddToSceneTempScene</a>->getShapeBank()->cancelLoadAsync (shapeName); +00862 } +00863 } +00864 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">_AddToSceneState</a> = <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupw7NL3D_1_1CInstanceGroupw5">StateNotAdded</a>; +00865 } +</pre></div> </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupa46" doxytag="NL3D::CInstanceGroup::unfreezeHRC" ></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::CInstanceGroup::unfreezeHRC </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +see <a class="el" href="a02316.html#NL3D_1_1CWaveMakerModela49">CTransform::unfreezeHRC()</a>. Do it for all instances (not clusters), and for the root of the IG. +<p> + +<p> +Definition at line <a class="el" href="a06350.html#l01146">1146</a> of file <a class="el" href="a06350.html">scene_group.cpp</a>. +<p> +References <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a06568.html#l00406">NL3D::CTransform::unfreezeHRC()</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00446">NL3D::CInstanceGroupUser::unfreezeHRC()</a>. +<p> +<div class="fragment"><pre>01147 { +01148 <span class="comment">// For all instances.</span> +01149 <span class="keywordflow">for</span> (<a class="code" href="a04558.html#a15">uint</a> i=0; i < <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>.size(); i++) +01150 { +01151 <span class="keywordflow">if</span>(<a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]) +01152 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo5">_Instances</a>[i]->unfreezeHRC(); +01153 } +01154 <span class="comment">// and for root.</span> +01155 <a class="code" href="a02671.html#NL3D_1_1CInstanceGroupo9">_Root</a>->unfreezeHRC(); +01156 } +</pre></div> </td> + </tr> +</table> +<hr><h2>Field Documentation</h2> +<a class="anchor" name="NL3D_1_1CInstanceGroupr0" doxytag="NL3D::CInstanceGroup::_AddRemoveInstance" ></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="a03832.html">IAddRemoveInstance</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr0">NL3D::CInstanceGroup::_AddRemoveInstance</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00427">427</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06350.html#l00935">removeFromScene()</a>, and <a class="el" href="a06350.html#l00491">setAddRemoveInstanceCallback()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz848_0" doxytag="NL3D::CInstanceGroup::_AddToSceneSignal" ></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"> bool <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_0">NL3D::CInstanceGroup::_AddToSceneSignal</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00419">419</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00766">addToSceneAsync()</a>, <a class="el" href="a06350.html#l00868">getAddToSceneState()</a>, and <a class="el" href="a06350.html#l00828">stopAddToSceneAsync()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz848_1" doxytag="NL3D::CInstanceGroup::_AddToSceneState" ></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="a02671.html#NL3D_1_1CInstanceGroupw7">TState</a> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_1">NL3D::CInstanceGroup::_AddToSceneState</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00420">420</a> of file <a class="el" href="a06351.html">scene_group.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz848_2" doxytag="NL3D::CInstanceGroup::_AddToSceneTempDriver" ></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="a02434.html">IDriver</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_2">NL3D::CInstanceGroup::_AddToSceneTempDriver</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00422">422</a> of file <a class="el" href="a06351.html">scene_group.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz848_3" doxytag="NL3D::CInstanceGroup::_AddToSceneTempScene" ></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="a03348.html">CScene</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_3">NL3D::CInstanceGroup::_AddToSceneTempScene</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00421">421</a> of file <a class="el" href="a06351.html">scene_group.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz848_4" doxytag="NL3D::CInstanceGroup::_AddToSceneTempSelectTexture" ></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="a04558.html#a15">uint</a> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz848_4">NL3D::CInstanceGroup::_AddToSceneTempSelectTexture</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00423">423</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00766">addToSceneAsync()</a>, and <a class="el" href="a06350.html#l00868">getAddToSceneState()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo0" doxytag="NL3D::CInstanceGroup::_ClipTrav" ></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="a02353.html">CClipTrav</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo0">NL3D::CInstanceGroup::_ClipTrav</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00389">389</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, and <a class="el" href="a05563.html#l00369">NL3D::CCluster::traverseHrc()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo1" doxytag="NL3D::CInstanceGroup::_ClusterInfos" ></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"> std::vector<<a class="el" href="a02362.html">CCluster</a>> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo1">NL3D::CInstanceGroup::_ClusterInfos</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00384">384</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06350.html#l00266">build()</a>, <a class="el" href="a06350.html#l00935">removeFromScene()</a>, <a class="el" href="a06350.html#l00354">retrieve()</a>, and <a class="el" href="a06350.html#l00379">serial()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo2" doxytag="NL3D::CInstanceGroup::_ClusterInstances" ></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"> std::vector<<a class="el" href="a02362.html">CCluster</a>*> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo2">NL3D::CInstanceGroup::_ClusterInstances</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00385">385</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l01050">addCluster()</a>, <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06350.html#l01224">displayDebugClusters()</a>, <a class="el" href="a05555.html#l00072">NL3D::CClipTrav::fullSearch()</a>, <a class="el" href="a06350.html#l00884">linkToParent()</a>, and <a class="el" href="a06350.html#l00935">removeFromScene()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo3" doxytag="NL3D::CInstanceGroup::_ClusterSystemForInstances" ></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="a02671.html">CInstanceGroup</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo3">NL3D::CInstanceGroup::_ClusterSystemForInstances</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00391">391</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, and <a class="el" href="a06350.html#l01056">setClusterSystemForInstances()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo4" doxytag="NL3D::CInstanceGroup::_GlobalPos" ></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">NLMISC::CVector</a> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo4">NL3D::CInstanceGroup::_GlobalPos</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00395">395</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00266">build()</a>, <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06351.html#l00175">getGlobalPos()</a>, <a class="el" href="a06350.html#l00354">retrieve()</a>, and <a class="el" href="a06350.html#l00379">serial()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupr1" doxytag="NL3D::CInstanceGroup::_IGAddBeginCallback" ></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="a03856.html">IIGAddBegin</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr1">NL3D::CInstanceGroup::_IGAddBeginCallback</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00428">428</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00503">addToScene()</a>, <a class="el" href="a06350.html#l00766">addToSceneAsync()</a>, <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, and <a class="el" href="a06350.html#l00497">setIGAddBeginCallback()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz846_1" doxytag="NL3D::CInstanceGroup::_IGSurfaceLight" ></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="a02654.html">CIGSurfaceLight</a> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_1">NL3D::CInstanceGroup::_IGSurfaceLight</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +The object used to light dynamic models in town and buildings. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00413">413</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00266">build()</a>, <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06351.html#l00361">getIGSurfaceLight()</a>, <a class="el" href="a06351.html#l00353">getStaticLightSetup()</a>, and <a class="el" href="a06350.html#l00379">serial()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo5" doxytag="NL3D::CInstanceGroup::_Instances" ></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"> std::vector<<a class="el" href="a02537.html">CTransformShape</a>*> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo5">NL3D::CInstanceGroup::_Instances</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00381">381</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a05822.html#l00186">NL3D::CInstanceGroupUser::addToScene()</a>, <a class="el" href="a05822.html#l00229">NL3D::CInstanceGroupUser::getAddToSceneState()</a>, <a class="el" href="a05822.html#l00502">NL3D::CInstanceGroupUser::getCoarseMeshDist()</a>, <a class="el" href="a05822.html#l00475">NL3D::CInstanceGroupUser::getDistMax()</a>, <a class="el" href="a05822.html#l00487">NL3D::CInstanceGroupUser::setCoarseMeshDist()</a>, and <a class="el" href="a05822.html#l00464">NL3D::CInstanceGroupUser::setDistMax()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo6" doxytag="NL3D::CInstanceGroup::_InstancesInfos" ></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="a02671.html#NL3D_1_1CInstanceGroupw6">TInstanceArray</a> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo6">NL3D::CInstanceGroup::_InstancesInfos</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00380">380</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00503">addToScene()</a>, <a class="el" href="a06350.html#l00766">addToSceneAsync()</a>, <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06350.html#l00266">build()</a>, <a class="el" href="a06350.html#l01165">buildPointLightList()</a>, <a class="el" href="a06350.html#l00225">getInstance()</a>, <a class="el" href="a06350.html#l00173">getInstanceName()</a>, <a class="el" href="a06350.html#l00217">getInstanceParent()</a>, <a class="el" href="a06350.html#l00181">getInstancePos()</a>, <a class="el" href="a06350.html#l00189">getInstanceRot()</a>, <a class="el" href="a06350.html#l00197">getInstanceScale()</a>, <a class="el" href="a06350.html#l00158">getNumInstance()</a>, <a class="el" href="a06350.html#l00165">getShapeName()</a>, <a class="el" href="a06350.html#l00354">retrieve()</a>, <a class="el" href="a06350.html#l00379">serial()</a>, <a class="el" href="a06350.html#l01056">setClusterSystemForInstances()</a>, and <a class="el" href="a06350.html#l00828">stopAddToSceneAsync()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo7" doxytag="NL3D::CInstanceGroup::_ParentClusterSystem" ></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="a02671.html">CInstanceGroup</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo7">NL3D::CInstanceGroup::_ParentClusterSystem</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00393">393</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06351.html#l00376">getParentClusterSystem()</a>, and <a class="el" href="a06350.html#l00884">linkToParent()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz846_2" doxytag="NL3D::CInstanceGroup::_PointLightArray" ></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="a03095.html">CPointLightNamedArray</a> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_2">NL3D::CInstanceGroup::_PointLightArray</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +Array of pointLights. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00406">406</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00503">addToScene()</a>, <a class="el" href="a06350.html#l00766">addToSceneAsync()</a>, <a class="el" href="a06350.html#l00571">addToSceneWhenAllShapesLoaded()</a>, <a class="el" href="a06350.html#l01165">buildPointLightList()</a>, <a class="el" href="a06351.html#l00341">getNumPointLights()</a>, <a class="el" href="a06351.html#l00338">getPointLightList()</a>, <a class="el" href="a06351.html#l00344">getPointLightNamed()</a>, <a class="el" href="a06350.html#l00935">removeFromScene()</a>, <a class="el" href="a06350.html#l00379">serial()</a>, and <a class="el" href="a06350.html#l01205">setPointLightFactor()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo8" doxytag="NL3D::CInstanceGroup::_Portals" ></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"> std::vector<<a class="el" href="a03103.html">CPortal</a>> <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo8">NL3D::CInstanceGroup::_Portals</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00383">383</a> of file <a class="el" href="a06351.html">scene_group.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupz846_3" doxytag="NL3D::CInstanceGroup::_RealTimeSunContribution" ></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"> bool <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupz846_3">NL3D::CInstanceGroup::_RealTimeSunContribution</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +RealTimeSunContribution. Used for ig_lighter and zone_ig_lighter. +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00403">403</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06350.html#l01212">enableRealTimeSunContribution()</a>, <a class="el" href="a06351.html#l00365">getRealTimeSunContribution()</a>, and <a class="el" href="a06350.html#l00379">serial()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupo9" doxytag="NL3D::CInstanceGroup::_Root" ></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="a02316.html">CTransform</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupo9">NL3D::CInstanceGroup::_Root</a> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00387">387</a> of file <a class="el" href="a06351.html">scene_group.h</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupr2" doxytag="NL3D::CInstanceGroup::_TransformName" ></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="a03882.html">ITransformName</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr2">NL3D::CInstanceGroup::_TransformName</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00426">426</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00766">addToSceneAsync()</a>, <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06350.html#l00552">getShapeName()</a>, <a class="el" href="a06350.html#l00484">setTransformNameCallback()</a>, and <a class="el" href="a06350.html#l00828">stopAddToSceneAsync()</a>. </td> + </tr> +</table> +<a class="anchor" name="NL3D_1_1CInstanceGroupr3" doxytag="NL3D::CInstanceGroup::_UserIg" ></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="a02674.html">UInstanceGroup</a>* <a class="el" href="a02671.html#NL3D_1_1CInstanceGroupr3">NL3D::CInstanceGroup::_UserIg</a><code> [private]</code> + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="a06351.html#l00431">431</a> of file <a class="el" href="a06351.html">scene_group.h</a>. +<p> +Referenced by <a class="el" href="a06350.html#l00245">CInstanceGroup()</a>, <a class="el" href="a06351.html#l00251">getUserInterface()</a>, and <a class="el" href="a06351.html#l00250">setUserInterface()</a>. </td> + </tr> +</table> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="a06351.html">scene_group.h</a><li><a class="el" href="a06350.html">scene_group.cpp</a></ul> +<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 06:47:22 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> |