aboutsummaryrefslogtreecommitdiff
path: root/docs/doxygen/nel/a03333.html
diff options
context:
space:
mode:
authorneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
committerneodarz <neodarz@neodarz.net>2018-08-11 20:21:34 +0200
commit0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch)
tree2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a03333.html
downloadnevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz
nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip
Initial commit
Diffstat (limited to 'docs/doxygen/nel/a03333.html')
-rw-r--r--docs/doxygen/nel/a03333.html2676
1 files changed, 2676 insertions, 0 deletions
diff --git a/docs/doxygen/nel/a03333.html b/docs/doxygen/nel/a03333.html
new file mode 100644
index 00000000..f9d2d623
--- /dev/null
+++ b/docs/doxygen/nel/a03333.html
@@ -0,0 +1,2676 @@
+<!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: NLPACS::CRetrieverInstance class Reference</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.3.6 -->
+<div class="qindex"> <form class="search" action="search.php" method="get">
+<a class="qindex" href="main.html">Main&nbsp;Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="namespacemembers.html">Namespace&nbsp;Members</a> | <a class="qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <span class="search"><u>S</u>earch&nbsp;for&nbsp;<input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div>
+<h1>NLPACS::CRetrieverInstance Class Reference</h1><code>#include &lt;<a class="el" href="a06338.html">retriever_instance.h</a>&gt;</code>
+<p>
+<hr><a name="_details"></a><h2>Detailed Description</h2>
+An instance of a local retriever. It defines a physical/geographic zone of landscape. <dl compact><dt><b>Author:</b></dt><dd>Benjamin Legros <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="a06338.html#l00056">56</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.<table border=0 cellpadding=0 cellspacing=0>
+<tr><td></td></tr>
+<tr><td colspan=2><br><h2>Public Member Functions</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea0">CRetrieverInstance</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default constructor. <a href="#NLPACS_1_1CRetrieverInstancea0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea1">forceBorderChainLink</a> (<a class="el" href="a04558.html#a15">uint</a> <a class="el" href="a04223.html#a635">border</a>, <a class="el" href="a04558.html#a15">uint</a> frontInstance, <a class="el" href="a04558.html#a15">uint</a> frontBorder, <a class="el" href="a04558.html#a15">uint</a> frontChain, <a class="el" href="a04558.html#a15">uint</a> frontSurface)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Forces border chain link. <a href="#NLPACS_1_1CRetrieverInstancea1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const <a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea2">getBBox</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the bbox of the instance (using the translation and orientation of the retriever). <a href="#NLPACS_1_1CRetrieverInstancea2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03336.html">CLink</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea3">getBorderChainLink</a> (<a class="el" href="a04558.html#a15">uint</a> n) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the id of the nth neighbor chain on the given edge. <a href="#NLPACS_1_1CRetrieverInstancea3"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>const std::vector&lt; <a class="el" href="a03336.html">CLink</a> &gt; &amp;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea4">getBorderChainLinks</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the ids of the neighbor chains on the given edge. <a href="#NLPACS_1_1CRetrieverInstancea4"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03664.html">NLMISC::CVectorD</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea5">getDoubleGlobalPosition</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;localPosition) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes the position (as double) in the global axis from a local position (in the retriever axis). <a href="#NLPACS_1_1CRetrieverInstancea5"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea6">getGlobalPosition</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;localPosition) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes the position in the global axis from a local position (in the retriever axis). <a href="#NLPACS_1_1CRetrieverInstancea6"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea7">getInstanceEdge</a> (<a class="el" href="a04558.html#a7">uint8</a> retrieverEdge) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of the edge on the instance corresponding to the edge on the retriever. <a href="#NLPACS_1_1CRetrieverInstancea7"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea8">getInstanceId</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the id of this instance. <a href="#NLPACS_1_1CRetrieverInstancea8"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea9">getLocalPosition</a> (const <a class="el" href="a03664.html">NLMISC::CVectorD</a> &amp;globalPosition) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes the position in the local axis of the retriever from a global position. <a href="#NLPACS_1_1CRetrieverInstancea9"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea10">getLocalPosition</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;globalPosition) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Computes the position in the local axis of the retriever from a global position. <a href="#NLPACS_1_1CRetrieverInstancea10"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea11">getNeighbor</a> (<a class="el" href="a04558.html#a15">uint</a> n) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the id of the neighbor on the edge. <a href="#NLPACS_1_1CRetrieverInstancea11"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a04558.html#a10">sint32</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea12">getNeighbors</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the neighbors. <a href="#NLPACS_1_1CRetrieverInstancea12"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea13">getOrientation</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the orientation of the instance in relation to the retriever. <a href="#NLPACS_1_1CRetrieverInstancea13"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea14">getOrigin</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the origin translation of this instance. <a href="#NLPACS_1_1CRetrieverInstancea14"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea15">getRetrieverEdge</a> (<a class="el" href="a04558.html#a7">uint8</a> instanceEdge) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the number of the edge on the retriever corresponding to the edge on the instance. <a href="#NLPACS_1_1CRetrieverInstancea15"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea16">getRetrieverId</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the id of the retriever associated to this instance. <a href="#NLPACS_1_1CRetrieverInstancea16"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02787.html#NLPACS_1_1CLocalRetrieverw0">CLocalRetriever::EType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea17">getType</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the type of the instance. <a href="#NLPACS_1_1CRetrieverInstancea17"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea18">init</a> (const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;retriever)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Inits the instance (after a serial for instance.). <a href="#NLPACS_1_1CRetrieverInstancea18"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea19">initEdgeQuad</a> (<a class="el" href="a02588.html">CGlobalRetriever</a> &amp;gr)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea20">link</a> (<a class="el" href="a03333.html">CRetrieverInstance</a> &amp;neighbor, const std::vector&lt; <a class="el" href="a02787.html">CLocalRetriever</a> &gt; &amp;retrievers)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Links the instance to a given neighbor on the given edge. <a href="#NLPACS_1_1CRetrieverInstancea20"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea21">linkEdgeQuad</a> (<a class="el" href="a02588.html">CGlobalRetriever</a> &amp;gr)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">link the edge quad of the interior with the the landscape instances <a href="#NLPACS_1_1CRetrieverInstancea21"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea22">make</a> (<a class="el" href="a04558.html#a10">sint32</a> instanceId, <a class="el" href="a04558.html#a10">sint32</a> retrieverId, const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;retriever, <a class="el" href="a04558.html#a7">uint8</a> orientation, const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;origin)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Builds the instance. <a href="#NLPACS_1_1CRetrieverInstancea22"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea23">reset</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets the instance. This doesn't affect any neighboring instances... <a href="#NLPACS_1_1CRetrieverInstancea23"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea24">resetBorderChainLinks</a> (const std::vector&lt; <a class="el" href="a04558.html#a15">uint</a> &gt; &amp;links)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets border chains links. <a href="#NLPACS_1_1CRetrieverInstancea24"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea25">resetLinks</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets links of the instance. This doesn't affect any neighboring instances... <a href="#NLPACS_1_1CRetrieverInstancea25"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea26">resetLinks</a> (<a class="el" href="a04558.html#a11">uint32</a> <a class="el" href="a04223.html#a564">id</a>)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resets links to the given instance. This doesn't affect any neighbor. <a href="#NLPACS_1_1CRetrieverInstancea26"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea27">retrievePosition</a> (const <a class="el" href="a03664.html">NLMISC::CVectorD</a> &amp;estimated, const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;retriever, <a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &amp;cst, bool sortByDistance=true) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea28">retrievePosition</a> (const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;estimated, const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;retriever, <a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &amp;cst, bool sortByDistance=true) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea29">serial</a> (<a class="el" href="a02270.html">NLMISC::IStream</a> &amp;f)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Serialises this <a class="el" href="a03333.html">CRetrieverInstance</a>. <a href="#NLPACS_1_1CRetrieverInstancea29"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea30">snap</a> (<a class="el" href="a02793.html">ULocalPosition</a> &amp;position, const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;retriever) const </td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea31">snapToInteriorGround</a> (<a class="el" href="a02793.html">ULocalPosition</a> &amp;position, const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;retriever) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">For the interior instances, snaps the point to the ground. <a href="#NLPACS_1_1CRetrieverInstancea31"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea32">unlink</a> (std::vector&lt; <a class="el" href="a03333.html">CRetrieverInstance</a> &gt; &amp;instances)</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Unlinks the instance. The neighbor instance are AFFECTED. <a href="#NLPACS_1_1CRetrieverInstancea32"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Collision part</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1284_0">testExteriorCollision</a> (<a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &amp;cst, const <a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;bboxMoveLocal, const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &amp;transBase, const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;localRetriever) const </td></tr>
+
+<tr><td colspan=2><br><h2>Static Public Member Functions</h2></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Vector Snapping.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1282_0">snapVector</a> (<a class="el" href="a03660.html">CVector2f</a> &amp;<a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top>void&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1282_1">snapVector</a> (<a class="el" href="a03128.html">CVector</a> &amp;<a class="el" href="a04223.html#a576">v</a>)</td></tr>
+
+<tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The id of this instance. <a href="#NLPACS_1_1CRetrieverInstancep0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03335.html">CAStarNodeInfo</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep1">_NodesInformation</a></td></tr>
+
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The id of the retrievable surface pattern. <a href="#NLPACS_1_1CRetrieverInstancep2"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02787.html#NLPACS_1_1CLocalRetrieverw0">CLocalRetriever::EType</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The type of the instance (see <a class="el" href="a02787.html#NLPACS_1_1CLocalRetrieverp10">CLocalRetriever::_Type</a>). <a href="#NLPACS_1_1CRetrieverInstancep3"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Instance displacement.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02156.html">NLMISC::CAABBox</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The BBox of the instance. <a href="#NLPACS_1_1CRetrieverInstancez1276_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The BBox of the instance. <a href="#NLPACS_1_1CRetrieverInstancez1276_1"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a03128.html">NLMISC::CVector</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The BBox of the instance. <a href="#NLPACS_1_1CRetrieverInstancez1276_2"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Instance linkage.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a03336.html">CLink</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The neighbor chains on the border. <a href="#NLPACS_1_1CRetrieverInstancez1278_0"></a><br><br></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>std::vector&lt; <a class="el" href="a04558.html#a10">sint32</a> &gt;&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a></td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The instance ids of the neighbors. <a href="#NLPACS_1_1CRetrieverInstancez1278_1"></a><br><br></td></tr>
+<tr><td colspan="2"><div class="groupHeader">Interior instance coolision management.</div></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top><a class="el" href="a02450.html">CEdgeQuad</a>&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a></td></tr>
+
+<tr><td colspan=2><br><h2>Friends</h2></td></tr>
+<tr><td class="memItemLeft" nowrap align=right valign=top>class&nbsp;</td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancen0">CGlobalRetriever</a></td></tr>
+
+</table>
+<hr><h2>Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea0" doxytag="NLPACS::CRetrieverInstance::CRetrieverInstance" ></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"> NLPACS::CRetrieverInstance::CRetrieverInstance </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Default constructor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00036">36</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06337.html#l00072">reset()</a>.
+<p>
+<div class="fragment"><pre>00037 {
+00038 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea23">reset</a>();
+00039 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Member Function Documentation</h2>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea1" doxytag="NLPACS::CRetrieverInstance::forceBorderChainLink" ></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 NLPACS::CRetrieverInstance::forceBorderChainLink </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>border</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>frontInstance</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>frontBorder</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>frontChain</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>&nbsp;</td>
+ <td class="mdname" nowrap> <em>frontSurface</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"><code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Forces border chain link.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00192">192</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a05646.html#l01013">border</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00193 {
+00194 <span class="keywordflow">if</span> (<a class="code" href="a04223.html#a635">border</a> &gt;= <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.size())
+00195 {
+00196 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"forceBorderChainLink(): couldn't force border %d on instance %d, doesn't exist!"</span>, border, _InstanceId);
+00197 <span class="keywordflow">return</span>;
+00198 }
+00199
+00200 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].Instance != 0xffff ||
+00201 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].BorderChainId != 0xffff ||
+00202 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].ChainId != 0xffff ||
+00203 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].SurfaceId != 0xffff)
+00204 {
+00205 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"forceBorderChainLink(): forces border %d on instance %d whereas link is initialised yet, incoherences may appear!"</span>, border, _InstanceId);
+00206 }
+00207
+00208 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].Instance = frontInstance;
+00209 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].BorderChainId = frontBorder;
+00210 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].ChainId = frontChain;
+00211 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[<a class="code" href="a04223.html#a635">border</a>].SurfaceId = frontSurface;
+00212 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea2" doxytag="NLPACS::CRetrieverInstance::getBBox" ></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="a02156.html">NLMISC::CAABBox</a>&amp; NLPACS::CRetrieverInstance::getBBox </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the bbox of the instance (using the translation and orientation of the retriever).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00220">220</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, <a class="el" href="a05761.html#l00367">NLPACS::CGlobalRetriever::makeLinks()</a>, and <a class="el" href="a05762.html#l00305">NLPACS::CGlobalRetriever::testPosition()</a>.
+<p>
+<div class="fragment"><pre>00220 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea3" doxytag="NLPACS::CRetrieverInstance::getBorderChainLink" ></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="a03336.html">CLink</a> NLPACS::CRetrieverInstance::getBorderChainLink </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>n</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Gets the id of the nth neighbor chain on the given edge.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00188">188</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00153">NLPACS::CGlobalRetriever::check()</a>, <a class="el" href="a05761.html#l00855">NLPACS::CGlobalRetriever::findAStarPath()</a>, and <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>.
+<p>
+<div class="fragment"><pre>00188 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[n]; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea4" doxytag="NLPACS::CRetrieverInstance::getBorderChainLinks" ></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&lt;<a class="el" href="a03336.html">CLink</a>&gt;&amp; NLPACS::CRetrieverInstance::getBorderChainLinks </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Gets the ids of the neighbor chains on the given edge.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00186">186</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00153">NLPACS::CGlobalRetriever::check()</a>.
+<p>
+<div class="fragment"><pre>00186 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea5" doxytag="NLPACS::CRetrieverInstance::getDoubleGlobalPosition" ></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="a03664.html">CVectorD</a> NLPACS::CRetrieverInstance::getDoubleGlobalPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>localPosition</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Computes the position (as double) in the global axis from a local position (in the retriever axis).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00610">610</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00611 {
+00612 <span class="keywordflow">switch</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>)
+00613 {
+00614 <span class="keywordflow">default</span>:
+00615 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"in NLPACS::CRetrieverInstance::getLocalPosition()"</span>);
+00616 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"unexpected orientation value (%d)"</span>, _Orientation);
+00617 <span class="keywordflow">case</span> 0:
+00618 <span class="keywordflow">return</span> <a class="code" href="a03664.html">CVectorD</a>(+(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, +(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, (<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00619 <span class="keywordflow">break</span>;
+00620 <span class="keywordflow">case</span> 1:
+00621 <span class="keywordflow">return</span> <a class="code" href="a03664.html">CVectorD</a>(-(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, +(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, (<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00622 <span class="keywordflow">break</span>;
+00623 <span class="keywordflow">case</span> 2:
+00624 <span class="keywordflow">return</span> <a class="code" href="a03664.html">CVectorD</a>(-(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, -(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, (<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00625 <span class="keywordflow">break</span>;
+00626 <span class="keywordflow">case</span> 3:
+00627 <span class="keywordflow">return</span> <a class="code" href="a03664.html">CVectorD</a>(+(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, -(<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, (<span class="keywordtype">double</span>)localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+(<span class="keywordtype">double</span>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00628 <span class="keywordflow">break</span>;
+00629 }
+00630 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea6" doxytag="NLPACS::CRetrieverInstance::getGlobalPosition" ></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> NLPACS::CRetrieverInstance::getGlobalPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>localPosition</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Computes the position in the global axis from a local position (in the retriever axis).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00588">588</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00589 {
+00590 <span class="keywordflow">switch</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>)
+00591 {
+00592 <span class="keywordflow">default</span>:
+00593 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"in NLPACS::CRetrieverInstance::getLocalPosition()"</span>);
+00594 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"unexpected orientation value (%d)"</span>, _Orientation);
+00595 <span class="keywordflow">case</span> 0:
+00596 <span class="keywordflow">return</span> CVector(+localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, +localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00597 <span class="keywordflow">break</span>;
+00598 <span class="keywordflow">case</span> 1:
+00599 <span class="keywordflow">return</span> CVector(-localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, +localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00600 <span class="keywordflow">break</span>;
+00601 <span class="keywordflow">case</span> 2:
+00602 <span class="keywordflow">return</span> CVector(-localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, -localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00603 <span class="keywordflow">break</span>;
+00604 <span class="keywordflow">case</span> 3:
+00605 <span class="keywordflow">return</span> CVector(+localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, -localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, localPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> );
+00606 <span class="keywordflow">break</span>;
+00607 }
+00608 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea7" doxytag="NLPACS::CRetrieverInstance::getInstanceEdge" ></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#a7">uint8</a> NLPACS::CRetrieverInstance::getInstanceEdge </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>retrieverEdge</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of the edge on the instance corresponding to the edge on the retriever.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00215">215</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00215 { <span class="keywordflow">return</span> (retrieverEdge+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>)%4; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea8" doxytag="NLPACS::CRetrieverInstance::getInstanceId" ></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#a10">sint32</a> NLPACS::CRetrieverInstance::getInstanceId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the id of this instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00170">170</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00120">_InstanceId</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00766">NLPACS::CGlobalRetriever::buildInstance()</a>, <a class="el" href="a05761.html#l00153">NLPACS::CGlobalRetriever::check()</a>, <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, and <a class="el" href="a05761.html#l00367">NLPACS::CGlobalRetriever::makeLinks()</a>.
+<p>
+<div class="fragment"><pre>00170 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea9" doxytag="NLPACS::CRetrieverInstance::getLocalPosition" ></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> NLPACS::CRetrieverInstance::getLocalPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03664.html">NLMISC::CVectorD</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>globalPosition</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Computes the position in the local axis of the retriever from a global position.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00566">566</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06684.html#l00047">NLMISC::CVectorD::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, <a class="el" href="a06684.html#l00047">NLMISC::CVectorD::y</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>, and <a class="el" href="a06684.html#l00047">NLMISC::CVectorD::z</a>.
+<p>
+<div class="fragment"><pre>00567 {
+00568 <span class="keywordflow">switch</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>)
+00569 {
+00570 <span class="keywordflow">default</span>:
+00571 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"in NLPACS::CRetrieverInstance::getLocalPosition()"</span>);
+00572 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"unexpected orientation value (%d)"</span>, _Orientation);
+00573 <span class="keywordflow">case</span> 0:
+00574 <span class="keywordflow">return</span> CVector((<span class="keywordtype">float</span>)(+globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo0">x</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>), (<span class="keywordtype">float</span>)(+globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo1">y</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>), (<span class="keywordtype">float</span>)(globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>));
+00575 <span class="keywordflow">break</span>;
+00576 <span class="keywordflow">case</span> 1:
+00577 <span class="keywordflow">return</span> CVector((<span class="keywordtype">float</span>)(+globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo1">y</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>), (<span class="keywordtype">float</span>)(-globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>), (<span class="keywordtype">float</span>)(globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>));
+00578 <span class="keywordflow">break</span>;
+00579 <span class="keywordflow">case</span> 2:
+00580 <span class="keywordflow">return</span> CVector((<span class="keywordtype">float</span>)(-globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>), (<span class="keywordtype">float</span>)(-globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>), (<span class="keywordtype">float</span>)(globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>));
+00581 <span class="keywordflow">break</span>;
+00582 <span class="keywordflow">case</span> 3:
+00583 <span class="keywordflow">return</span> CVector((<span class="keywordtype">float</span>)(-globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>), (<span class="keywordtype">float</span>)(+globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo0">x</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>), (<span class="keywordtype">float</span>)(globalPosition.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>));
+00584 <span class="keywordflow">break</span>;
+00585 }
+00586 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea10" doxytag="NLPACS::CRetrieverInstance::getLocalPosition" ></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> NLPACS::CRetrieverInstance::getLocalPosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>globalPosition</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Computes the position in the local axis of the retriever from a global position.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00544">544</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00387">retrievePosition()</a>, and <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>.
+<p>
+<div class="fragment"><pre>00545 {
+00546 <span class="keywordflow">switch</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>)
+00547 {
+00548 <span class="keywordflow">default</span>:
+00549 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"in NLPACS::CRetrieverInstance::getLocalPosition()"</span>);
+00550 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"unexpected orientation value (%d)"</span>, _Orientation);
+00551 <span class="keywordflow">case</span> 0:
+00552 <span class="keywordflow">return</span> CVector(+globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, +globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>);
+00553 <span class="keywordflow">break</span>;
+00554 <span class="keywordflow">case</span> 1:
+00555 <span class="keywordflow">return</span> CVector(+globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, -globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>);
+00556 <span class="keywordflow">break</span>;
+00557 <span class="keywordflow">case</span> 2:
+00558 <span class="keywordflow">return</span> CVector(-globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, -globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>);
+00559 <span class="keywordflow">break</span>;
+00560 <span class="keywordflow">case</span> 3:
+00561 <span class="keywordflow">return</span> CVector(-globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro1">y</a>, +globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro0">x</a>, globalPosition.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a>);
+00562 <span class="keywordflow">break</span>;
+00563 }
+00564 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea11" doxytag="NLPACS::CRetrieverInstance::getNeighbor" ></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#a10">sint32</a> NLPACS::CRetrieverInstance::getNeighbor </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>n</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Gets the id of the neighbor on the edge.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00183">183</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00142">_Neighbors</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>00183 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>[n]; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea12" doxytag="NLPACS::CRetrieverInstance::getNeighbors" ></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&lt;<a class="el" href="a04558.html#a10">sint32</a>&gt; NLPACS::CRetrieverInstance::getNeighbors </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Gets the neighbors.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00181">181</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00142">_Neighbors</a>.
+<p>
+<div class="fragment"><pre>00181 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea13" doxytag="NLPACS::CRetrieverInstance::getOrientation" ></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#a7">uint8</a> NLPACS::CRetrieverInstance::getOrientation </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the orientation of the instance in relation to the retriever.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00174">174</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00174 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea14" doxytag="NLPACS::CRetrieverInstance::getOrigin" ></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> NLPACS::CRetrieverInstance::getOrigin </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the origin translation of this instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00176">176</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00131">_Origin</a>.
+<p>
+Referenced by <a class="el" href="a05666.html#l00130">NLPACS::CEdgeQuad::build()</a>, <a class="el" href="a05761.html#l02028">NLPACS::CGlobalRetriever::doMove()</a>, <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>, <a class="el" href="a05761.html#l00275">NLPACS::CGlobalRetriever::getBorders()</a>, <a class="el" href="a05761.html#l01937">NLPACS::CGlobalRetriever::testBBoxMove()</a>, <a class="el" href="a05761.html#l02236">NLPACS::CGlobalRetriever::testBBoxRot()</a>, <a class="el" href="a05761.html#l01392">NLPACS::CGlobalRetriever::testCollisionWithCollisionChains()</a>, <a class="el" href="a05761.html#l01864">NLPACS::CGlobalRetriever::testCylinderMove()</a>, <a class="el" href="a05761.html#l01649">NLPACS::CGlobalRetriever::testMovementWithCollisionChains()</a>, and <a class="el" href="a05762.html#l00305">NLPACS::CGlobalRetriever::testPosition()</a>.
+<p>
+<div class="fragment"><pre>00176 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea15" doxytag="NLPACS::CRetrieverInstance::getRetrieverEdge" ></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#a7">uint8</a> NLPACS::CRetrieverInstance::getRetrieverEdge </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>instanceEdge</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the number of the edge on the retriever corresponding to the edge on the instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00217">217</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00130">_Orientation</a>, and <a class="el" href="a05981.html#l00096">uint8</a>.
+<p>
+<div class="fragment"><pre>00217 { <span class="keywordflow">return</span> (instanceEdge+4-<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a>)%4; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea16" doxytag="NLPACS::CRetrieverInstance::getRetrieverId" ></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#a10">sint32</a> NLPACS::CRetrieverInstance::getRetrieverId </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the id of the retriever associated to this instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00172">172</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00123">_RetrieverId</a>, and <a class="el" href="a05981.html#l00099">sint32</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00766">NLPACS::CGlobalRetriever::buildInstance()</a>, <a class="el" href="a05761.html#l00153">NLPACS::CGlobalRetriever::check()</a>, <a class="el" href="a05761.html#l00855">NLPACS::CGlobalRetriever::findAStarPath()</a>, <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>, <a class="el" href="a05761.html#l00275">NLPACS::CGlobalRetriever::getBorders()</a>, <a class="el" href="a05762.html#l00224">NLPACS::CGlobalRetriever::getMaterial()</a>, <a class="el" href="a05761.html#l02421">NLPACS::CGlobalRetriever::getMeanHeight()</a>, <a class="el" href="a05761.html#l01159">NLPACS::CGlobalRetriever::getSurfaceById()</a>, <a class="el" href="a05762.html#l00248">NLPACS::CGlobalRetriever::isWaterPosition()</a>, <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>, <a class="el" href="a05761.html#l00367">NLPACS::CGlobalRetriever::makeLinks()</a>, <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>, <a class="el" href="a05761.html#l01392">NLPACS::CGlobalRetriever::testCollisionWithCollisionChains()</a>, <a class="el" href="a05761.html#l01649">NLPACS::CGlobalRetriever::testMovementWithCollisionChains()</a>, and <a class="el" href="a05762.html#l00305">NLPACS::CGlobalRetriever::testPosition()</a>.
+<p>
+<div class="fragment"><pre>00172 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea17" doxytag="NLPACS::CRetrieverInstance::getType" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02787.html#NLPACS_1_1CLocalRetrieverw0">CLocalRetriever::EType</a> NLPACS::CRetrieverInstance::getType </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">void&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap> const<code> [inline]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Returns the type of the instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00178">178</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00153">NLPACS::CGlobalRetriever::check()</a>, <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>, and <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>.
+<p>
+<div class="fragment"><pre>00178 { <span class="keywordflow">return</span> <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a>; }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea18" doxytag="NLPACS::CRetrieverInstance::init" ></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 NLPACS::CRetrieverInstance::init </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>retriever</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Inits the instance (after a serial for instance.).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00089">89</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a05930.html#l00394">NLPACS::CLocalRetriever::getBorderChains()</a>, <a class="el" href="a05930.html#l00404">NLPACS::CLocalRetriever::getType()</a>, and <a class="el" href="a05930.html#l00422">NLPACS::CLocalRetriever::isLoaded()</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00109">make()</a>.
+<p>
+<div class="fragment"><pre>00090 {
+00091 <span class="keywordflow">if</span> (!retriever.isLoaded())
+00092 <span class="keywordflow">return</span>;
+00093 <span class="comment">/*</span>
+00094 <span class="comment"> _NodesInformation.resize(retriever.getSurfaces().size());</span>
+00095 <span class="comment"> uint i;</span>
+00096 <span class="comment"></span>
+00097 <span class="comment"> // Resets _NodesInformation for later pathfinding graph annotation.</span>
+00098 <span class="comment"> for (i=0; i&lt;_NodesInformation.size(); ++i)</span>
+00099 <span class="comment"> {</span>
+00100 <span class="comment"> CVector pos = getGlobalPosition(retriever.getSurfaces()[i].getCenter());</span>
+00101 <span class="comment"> _NodesInformation[i].Position = CVector2f(pos.x, pos.y);</span>
+00102 <span class="comment"> }</span>
+00103 <span class="comment">*/</span>
+00104
+00105 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a> = retriever.getType();
+00106 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.resize(retriever.getBorderChains().size());
+00107 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea19" doxytag="NLPACS::CRetrieverInstance::initEdgeQuad" ></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 NLPACS::CRetrieverInstance::initEdgeQuad </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02588.html">CGlobalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>gr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Inits the edgequad (only for Interior instances, and only after all the landscape instances have been built.
+<p>
+Definition at line <a class="el" href="a06337.html#l00139">139</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00123">_RetrieverId</a>, <a class="el" href="a05666.html#l00130">NLPACS::CEdgeQuad::build()</a>, <a class="el" href="a05930.html#l00410">NLPACS::CLocalRetriever::getExteriorMesh()</a>, <a class="el" href="a05762.html#l00523">NLPACS::CGlobalRetriever::getInternalCST()</a>, <a class="el" href="a05762.html#l00220">NLPACS::CGlobalRetriever::getRetriever()</a>, <a class="el" href="a05930.html#l00404">NLPACS::CLocalRetriever::getType()</a>, and <a class="el" href="a05622.html#l00154">nlerror</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>.
+<p>
+<div class="fragment"><pre>00140 {
+00141 <span class="keyword">const</span> CLocalRetriever &amp;lr = gr.<a class="code" href="a02588.html#NLPACS_1_1CGlobalRetrieverz1237_4">getRetriever</a>(_RetrieverId);
+00142
+00143 <span class="keywordflow">if</span> (lr.getType() != CLocalRetriever::Interior)
+00144 {
+00145 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"Attempt to init the edgequad of instance %d whereas local retriever %d is not interior"</span>, _InstanceId, _RetrieverId);
+00146 }
+00147
+00148 <span class="comment">// build the edge quad</span>
+00149 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.build(lr.getExteriorMesh(), gr, gr.<a class="code" href="a02588.html#NLPACS_1_1CGlobalRetrieverb0">getInternalCST</a>(),<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a>);
+00150 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea20" doxytag="NLPACS::CRetrieverInstance::link" ></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 NLPACS::CRetrieverInstance::link </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03333.html">CRetrieverInstance</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>neighbor</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const std::vector&lt; <a class="el" href="a02787.html">CLocalRetriever</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>retrievers</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Links the instance to a given neighbor on the given edge.
+<p>
+
+<p>
+<dl compact><dt><b><a class="el" href="todo.html#_todo000012">Todo:</a></b></dt><dd>Compute real position using _Orientation</dd></dl>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00194">194</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00142">_Neighbors</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a06338.html#l00123">_RetrieverId</a>, <a class="el" href="a05930.html#l00394">NLPACS::CLocalRetriever::getBorderChains()</a>, <a class="el" href="a05930.html#l00389">NLPACS::CLocalRetriever::getChains()</a>, <a class="el" href="a05929.html#l00086">NLPACS::CLocalRetriever::getStartVector()</a>, <a class="el" href="a05929.html#l00092">NLPACS::CLocalRetriever::getStopVector()</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#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00367">NLPACS::CGlobalRetriever::makeLinks()</a>.
+<p>
+<div class="fragment"><pre>00196 {
+00197 <a class="code" href="a04558.html#a15">uint</a> i, j;
+00198 <span class="keywordflow">for</span> (i=0; i&lt;<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.size(); ++i)
+00199 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>[i] == neighbor._InstanceId)
+00200 <span class="keywordflow">return</span>;
+00201
+00202 <span class="keyword">const</span> CLocalRetriever &amp;retriever = retrievers[<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a>];
+00203 <span class="keyword">const</span> CLocalRetriever &amp;nRetriever = retrievers[neighbor._RetrieverId];
+00204
+00205 <span class="keyword">const</span> vector&lt;CChain&gt; &amp;chains = retriever.getChains(),
+00206 &amp;nChains = nRetriever.getChains();
+00207 <span class="keyword">const</span> vector&lt;uint16&gt; &amp;borderChains = retriever.getBorderChains(),
+00208 &amp;nBorderChains = nRetriever.getBorderChains();
+00209
+00210 vector&lt; pair&lt;CVector,CVector&gt; &gt; chainTips,
+00211 nChainTips;
+00212
+00213 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.resize(borderChains.size());
+00214 neighbor._BorderChainLinks.resize(nBorderChains.size());
+00215
+00216 <span class="comment">/*</span>
+00217 <span class="comment"> for (i=0; i&lt;borderChains.size(); ++i)</span>
+00218 <span class="comment"> chainTips.push_back(make_pair(retriever.getTip(chains[borderChains[i]].getStartTip()).Point,</span>
+00219 <span class="comment"> retriever.getTip(chains[borderChains[i]].getStopTip()).Point));</span>
+00220 <span class="comment">*/</span>
+00221 <span class="keywordflow">for</span> (i=0; i&lt;borderChains.size(); ++i)
+00222 chainTips.push_back(make_pair(retriever.getStartVector(borderChains[i]),
+00223 retriever.getStopVector(borderChains[i])));
+00224
+00226
+00227 CVector translation = neighbor._Origin - <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>;
+00228 <span class="comment">/*</span>
+00229 <span class="comment"> for (i=0; i&lt;nBorderChains.size(); ++i)</span>
+00230 <span class="comment"> nChainTips.push_back(make_pair(nRetriever.getTip(nChains[nBorderChains[i]].getStartTip()).Point+translation,</span>
+00231 <span class="comment"> nRetriever.getTip(nChains[nBorderChains[i]].getStopTip()).Point+translation));</span>
+00232 <span class="comment">*/</span>
+00233 <span class="keywordflow">for</span> (i=0; i&lt;nBorderChains.size(); ++i)
+00234 nChainTips.push_back(make_pair(nRetriever.getStartVector(nBorderChains[i])+translation,
+00235 nRetriever.getStopVector(nBorderChains[i])+translation));
+00236
+00237 <span class="keywordflow">for</span> (i=0; i&lt;borderChains.size(); ++i)
+00238 {
+00239 <span class="comment">// if the chain is already linked, just step</span>
+00240 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].Instance != 0xFFFF || <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].BorderChainId != 0xFFFF ||
+00241 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].ChainId != 0xFFFF || <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].SurfaceId != 0xFFFF)
+00242 <span class="keywordflow">continue</span>;
+00243
+00244 <span class="keywordtype">float</span> bestDist = 1.0f;
+00245 <a class="code" href="a04558.html#a14">sint</a> best = -1;
+00246
+00247 <span class="keywordflow">for</span> (j=0; j&lt;nBorderChains.size(); ++j)
+00248 {
+00249 <span class="keywordflow">if</span> (neighbor._BorderChainLinks[j].Instance != 0xFFFF || neighbor._BorderChainLinks[j].BorderChainId != 0xFFFF ||
+00250 neighbor._BorderChainLinks[j].ChainId != 0xFFFF || neighbor._BorderChainLinks[j].SurfaceId != 0xFFFF)
+00251 <span class="keywordflow">continue</span>;
+00252
+00253 <span class="keywordtype">float</span> d = (chainTips[i].first-nChainTips[j].second).norm()+(chainTips[i].second-nChainTips[j].first).norm();
+00254 <span class="keywordflow">if</span> (d &lt; bestDist)
+00255 {
+00256 bestDist = d;
+00257 best = j;
+00258 }
+00259 }
+00260
+00261 <span class="comment">// if no best match, just don't link</span>
+00262 <span class="keywordflow">if</span> (bestDist &gt; 1.0e-1f || best == -1)
+00263 <span class="keywordflow">continue</span>;
+00264
+00265 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].Instance = (<a class="code" href="a04558.html#a9">uint16</a>)neighbor._InstanceId;
+00266 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].BorderChainId = (<a class="code" href="a04558.html#a9">uint16</a>)best;
+00267 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].ChainId = nBorderChains[<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].BorderChainId];
+00268 _BorderChainLinks[i].SurfaceId = (<a class="code" href="a04558.html#a9">uint16</a>)nChains[_BorderChainLinks[i].ChainId].getLeft();
+00269
+00270 neighbor._BorderChainLinks[best].Instance = (<a class="code" href="a04558.html#a9">uint16</a>)<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a>;
+00271 neighbor._BorderChainLinks[best].BorderChainId = (<a class="code" href="a04558.html#a9">uint16</a>)i;
+00272 neighbor._BorderChainLinks[best].ChainId = borderChains[neighbor._BorderChainLinks[best].BorderChainId];
+00273 neighbor._BorderChainLinks[best].SurfaceId = (<a class="code" href="a04558.html#a9">uint16</a>)chains[neighbor._BorderChainLinks[best].ChainId].getLeft();
+00274 }
+00275
+00276 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.push_back(neighbor._InstanceId);
+00277 neighbor._Neighbors.push_back(_InstanceId);
+00278 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea21" doxytag="NLPACS::CRetrieverInstance::linkEdgeQuad" ></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 NLPACS::CRetrieverInstance::linkEdgeQuad </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02588.html">CGlobalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>gr</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+link the edge quad of the interior with the the landscape instances
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00152">152</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00123">_RetrieverId</a>, <a class="el" href="a06338.html#l00066">NLPACS::CRetrieverInstance::CLink::BorderChainId</a>, <a class="el" href="a05693.html#l00082">NLPACS::CExteriorMesh::CLink::BorderChainId</a>, <a class="el" href="a06338.html#l00067">NLPACS::CRetrieverInstance::CLink::ChainId</a>, <a class="el" href="a05693.html#l00083">NLPACS::CExteriorMesh::CLink::ChainId</a>, <a class="el" href="a05693.html#l00120">NLPACS::CExteriorMesh::getEdge()</a>, <a class="el" href="a05667.html#l00104">NLPACS::CEdgeQuad::getEdgeEntries()</a>, <a class="el" href="a05930.html#l00410">NLPACS::CLocalRetriever::getExteriorMesh()</a>, <a class="el" href="a05693.html#l00133">NLPACS::CExteriorMesh::getLink()</a>, <a class="el" href="a05762.html#l00220">NLPACS::CGlobalRetriever::getRetriever()</a>, <a class="el" href="a06338.html#l00065">NLPACS::CRetrieverInstance::CLink::Instance</a>, <a class="el" href="a05693.html#l00063">NLPACS::CExteriorMesh::CEdge::Link</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a06338.html#l00068">NLPACS::CRetrieverInstance::CLink::SurfaceId</a>, <a class="el" href="a05693.html#l00084">NLPACS::CExteriorMesh::CLink::SurfaceId</a>, <a class="el" href="a05981.html#l00105">uint</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00367">NLPACS::CGlobalRetriever::makeLinks()</a>.
+<p>
+<div class="fragment"><pre>00153 {
+00154 <span class="keyword">const</span> CLocalRetriever &amp;lr = gr.<a class="code" href="a02588.html#NLPACS_1_1CGlobalRetrieverz1237_4">getRetriever</a>(_RetrieverId);
+00155 <span class="keyword">const</span> CExteriorMesh &amp;em = lr.getExteriorMesh();
+00156
+00157 <span class="keyword">const</span> vector&lt;CExteriorEdgeEntry&gt; &amp;ee = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.getEdgeEntries();
+00158
+00159 <span class="comment">// here we fill (partially) the _BorderChainLinks table</span>
+00160 <a class="code" href="a04558.html#a15">uint</a> i;
+00161 <span class="keywordflow">for</span> (i=0; i&lt;ee.size(); ++i)
+00162 {
+00163 <span class="keyword">const</span> CExteriorMesh::CEdge &amp;edge = em.getEdge(ee[i].EdgeId);
+00164 <span class="keywordflow">if</span> (edge.Link != -1)
+00165 {
+00166 <span class="keyword">const</span> CExteriorMesh::CLink &amp;<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea20">link</a> = em.getLink(edge.Link);
+00167
+00168 <span class="keywordflow">if</span> (link.SurfaceId != 0xFFFF &amp;&amp; link.ChainId != 0xFFFF &amp;&amp; link.BorderChainId != 0xFFFF)
+00169 {
+00170 CRetrieverInstance::CLink &amp;borderLink = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[link.BorderChainId];
+00171 borderLink.ChainId = 0xFFFF; <span class="comment">// no opposite chain</span>
+00172 borderLink.BorderChainId = 0xFFFF; <span class="comment">// idem</span>
+00173 <span class="keywordflow">if</span> ((borderLink.Instance == 0xFFFF &amp;&amp; borderLink.SurfaceId == 0xFFFF) ||
+00174 (borderLink.Instance == (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.RetrieverInstanceId) &amp;&amp;
+00175 borderLink.SurfaceId == (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.SurfaceId) ))
+00176 {
+00177 borderLink.Instance = (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.RetrieverInstanceId);
+00178 borderLink.SurfaceId = (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.SurfaceId);
+00179 }
+00180 <span class="keywordflow">else</span>
+00181 {
+00182 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"Instance %d, borderLink %d: link already set to inst=%d, surf=%d, try to set to inst=%d, surf=%d"</span>,
+00183 _InstanceId, link.BorderChainId, borderLink.Instance, borderLink.SurfaceId,
+00184 (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.RetrieverInstanceId), (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.SurfaceId));
+00185 }
+00186 }
+00187 }
+00188 }
+00189 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea22" doxytag="NLPACS::CRetrieverInstance::make" ></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 NLPACS::CRetrieverInstance::make </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>instanceId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a10">sint32</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>retrieverId</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>retriever</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a04558.html#a7">uint8</a>&nbsp;</td>
+ <td class="mdname" nowrap> <em>orientation</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>origin</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Builds the instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00109">109</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a06338.html#l00123">_RetrieverId</a>, <a class="el" href="a05930.html#l00407">NLPACS::CLocalRetriever::getBBox()</a>, <a class="el" href="a05385.html#l00090">NLMISC::CAABBox::getCenter()</a>, <a class="el" href="a05385.html#l00091">NLMISC::CAABBox::getHalfSize()</a>, <a class="el" href="a06337.html#l00089">init()</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05385.html#l00066">NLMISC::CAABBox::setCenter()</a>, <a class="el" href="a05385.html#l00067">NLMISC::CAABBox::setHalfSize()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05981.html#l00096">uint8</a>, <a class="el" href="a06673.html#l00051">NLMISC::CVector::x</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::y</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00430">NLPACS::CGlobalRetriever::makeInstance()</a>.
+<p>
+<div class="fragment"><pre>00111 {
+00112 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a> != -1 || <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a> != -1)
+00113 {
+00114 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"in call to NLPACS::CRetrieverInstance::make"</span>);
+00115 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"_InstanceId=%d _RetrieverId=%d _Orientation=%d"</span>, _InstanceId, _RetrieverId, _Orientation);
+00116 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"instanceId=%d retrieverId=%d orientation=%d"</span>, instanceId, retrieverId, orientation);
+00117 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"Retriever instance %d has already been set"</span>, _InstanceId);
+00118 }
+00119
+00120 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a> = instanceId;
+00121 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a> = retrieverId;
+00122 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a> = (orientation%4);
+00123 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a> = origin;
+00124
+00125 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a> = retriever.getBBox();
+00126 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_1">setCenter</a>(<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_0">getCenter</a>()+<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a>);
+00127
+00128 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a> == 1 || <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a> == 3)
+00129 {
+00130 CVector hs = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1904_1">getHalfSize</a>();
+00131 std::swap(hs.x, hs.y);
+00132 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a>.<a class="code" href="a02156.html#NLMISC_1_1CAABBoxz1902_2">setHalfSize</a>(hs);
+00133 }
+00134
+00135 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea18">init</a>(retriever);
+00136 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea23" doxytag="NLPACS::CRetrieverInstance::reset" ></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 NLPACS::CRetrieverInstance::reset </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resets the instance. This doesn't affect any neighboring instances...
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00072">72</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00116">_NodesInformation</a>, <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a06338.html#l00123">_RetrieverId</a>, <a class="el" href="a05666.html#l00100">NLPACS::CEdgeQuad::clear()</a>, and <a class="el" href="a06337.html#l00042">resetLinks()</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00036">CRetrieverInstance()</a>.
+<p>
+<div class="fragment"><pre>00073 {
+00074 <span class="comment">// WARNING !!</span>
+00075 <span class="comment">// this is a HARD reset !</span>
+00076 <span class="comment">// only the instance i reset, no care about neighbors !!</span>
+00077 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep1">_NodesInformation</a>.clear();
+00078 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a> = -1;
+00079 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a> = -1;
+00080 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a> = 0;
+00081 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a> = CVector::Null;
+00082 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a> = CLocalRetriever::Landscape;
+00083 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.clear();
+00084 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.clear();
+00085
+00086 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea25">resetLinks</a>();
+00087 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea24" doxytag="NLPACS::CRetrieverInstance::resetBorderChainLinks" ></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 NLPACS::CRetrieverInstance::resetBorderChainLinks </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const std::vector&lt; <a class="el" href="a04558.html#a15">uint</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>links</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resets border chains links.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00772">772</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+<div class="fragment"><pre>00773 {
+00774 <a class="code" href="a04558.html#a15">uint</a> i;
+00775 <span class="keywordflow">for</span> (i=0; i&lt;links.size(); ++i)
+00776 {
+00777 <span class="keywordflow">if</span> (links[i] &gt;= <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.size())
+00778 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.resize(links[i]+1);
+00779
+00780 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[links[i]].reset();
+00781 }
+00782 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea25" doxytag="NLPACS::CRetrieverInstance::resetLinks" ></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 NLPACS::CRetrieverInstance::resetLinks </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resets links of the instance. This doesn't affect any neighboring instances...
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00042">42</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a06338.html#l00142">_Neighbors</a>, <a class="el" href="a05667.html#l00113">NLPACS::CEdgeQuad::removeLinks()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00072">reset()</a>, and <a class="el" href="a06337.html#l00281">unlink()</a>.
+<p>
+<div class="fragment"><pre>00043 {
+00044 <a class="code" href="a04558.html#a15">uint</a> i;
+00045 <span class="comment">// WARNING !!</span>
+00046 <span class="comment">// this is a HARD reset !</span>
+00047 <span class="comment">// only the instance i reset, no care about neighbors !!</span>
+00048 <span class="keywordflow">for</span> (i=0; i&lt;<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.size(); ++i)
+00049 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>[i] = -1;
+00050 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.clear();
+00051
+00052 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.removeLinks();
+00053 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea26" doxytag="NLPACS::CRetrieverInstance::resetLinks" ></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 NLPACS::CRetrieverInstance::resetLinks </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a>&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>id</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Resets links to the given instance. This doesn't affect any neighbor.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00055">55</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a06338.html#l00142">_Neighbors</a>, <a class="el" href="a05667.html#l00113">NLPACS::CEdgeQuad::removeLinks()</a>, <a class="el" href="a05981.html#l00099">sint32</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+<div class="fragment"><pre>00056 {
+00057 vector&lt;sint32&gt;::iterator rit;
+00058 <span class="keywordflow">for</span> (rit=<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.begin(); rit!=<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.end(); )
+00059 <span class="keywordflow">if</span> (*rit == (<a class="code" href="a04558.html#a10">sint32</a>)<span class="keywordtype">id</span>)
+00060 rit = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.erase(rit);
+00061 <span class="keywordflow">else</span>
+00062 ++rit;
+00063
+00064 <a class="code" href="a04558.html#a15">uint</a> i;
+00065 <span class="keywordflow">for</span> (i=0; i&lt;<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>.size(); ++i)
+00066 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].Instance == (<a class="code" href="a04558.html#a9">uint16</a>)<span class="keywordtype">id</span>)
+00067 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a>[i].reset();
+00068
+00069 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.removeLinks(<span class="keywordtype">id</span>);
+00070 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea27" doxytag="NLPACS::CRetrieverInstance::retrievePosition" ></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 NLPACS::CRetrieverInstance::retrievePosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03664.html">NLMISC::CVectorD</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>estimated</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>retriever</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>cst</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>sortByDistance</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieves the position in the instance from an estimated position (double instead.) WARNING: the estimated position is a GLOBAL position, and the returned position is a LOCAL position (to the retriever).
+<p>
+Definition at line <a class="el" href="a06337.html#l00387">387</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06605.html#l00051">NLPACS::ULocalPosition::Estimation</a>, <a class="el" href="a06337.html#l00544">getLocalPosition()</a>, <a class="el" href="a06334.html#l00174">NLPACS::CRetrievableSurface::getQuantHeight()</a>, <a class="el" href="a05930.html#l00401">NLPACS::CLocalRetriever::getSurface()</a>, <a class="el" href="a05622.html#l00154">nlerror</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05583.html#l00293">NLPACS::CCollisionSurfaceTemp::OutCounter</a>, <a class="el" href="a05583.html#l00294">NLPACS::CCollisionSurfaceTemp::PossibleSurfaces</a>, <a class="el" href="a05929.html#l01064">NLPACS::CLocalRetriever::retrievePosition()</a>, <a class="el" href="a05929.html#l01413">NLPACS::CLocalRetriever::snapToInteriorGround()</a>, <a class="el" href="a05583.html#l00295">NLPACS::CCollisionSurfaceTemp::SortedSurfaces</a>, <a class="el" href="a06605.html#l00048">NLPACS::ULocalPosition::Surface</a>, <a class="el" href="a05583.html#l00292">NLPACS::CCollisionSurfaceTemp::SurfaceLUT</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</a>, <a class="el" href="a06684.html#l00047">NLMISC::CVectorD::x</a>, <a class="el" href="a06684.html#l00047">NLMISC::CVectorD::y</a>, <a class="el" href="a06684.html#l00047">NLMISC::CVectorD::z</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+<div class="fragment"><pre>00388 {
+00389 CVector localEstimated;
+00390
+00391 <span class="comment">// nldebug("PACS: retrievePosition in instance %d (retriever %d)", _InstanceId, _RetrieverId);</span>
+00392
+00393 <span class="comment">// get local coordinates</span>
+00394 localEstimated = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea10">getLocalPosition</a>(estimated);
+00395 <span class="comment">// Yoyo: must snap vector.</span>
+00396 CRetrieverInstance::snapVector(localEstimated);
+00397
+00398 <span class="comment">// fills _RetrieveTable by retrievingPosition.</span>
+00399 retriever.retrievePosition(localEstimated, cst);
+00400
+00401 <a class="code" href="a04558.html#a15">uint</a> i, surf;
+00402 <span class="comment">/* sint bestSurf = -1;</span>
+00403 <span class="comment"> sint lastSurf = -1;</span>
+00404 <span class="comment"> float bestDistance = 1.0e10f;</span>
+00405 <span class="comment"> float bestHeight;*/</span>
+00406 <span class="keywordtype">bool</span> found = <span class="keyword">false</span>;
+00407
+00408 <span class="keywordflow">switch</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a>)
+00409 {
+00410 <span class="keywordflow">case</span> CLocalRetriever::Landscape:
+00411 <span class="comment">// for landscape</span>
+00412 <span class="keywordflow">for</span> (i=0; i&lt;cst.PossibleSurfaces.size(); ++i)
+00413 {
+00414 surf = cst.PossibleSurfaces[i];
+00415
+00416 <span class="comment">// nldebug("PACS: surface %d: count %d", surf, cst.SurfaceLUT[surf].Counter);</span>
+00417
+00418 <span class="comment">// if the surface contains the estimated position.</span>
+00419 <span class="keywordflow">if</span> (cst.SurfaceLUT[surf].Counter == 2)
+00420 {
+00421 <span class="keywordtype">float</span> meanHeight;
+00422 <span class="comment">/*</span>
+00423 <span class="comment"> const CQuadLeaf *leaf;</span>
+00424 <span class="comment"></span>
+00425 <span class="comment"> // search in the surface's quad tree for the actual height</span>
+00426 <span class="comment"> leaf = retriever.getSurfaces()[surf].getQuadTree().getLeaf(localEstimated);</span>
+00427 <span class="comment"> // if there is no acceptable leaf, just give up</span>
+00428 <span class="comment"> if (leaf != NULL)</span>
+00429 <span class="comment"> {</span>
+00430 <span class="comment"> meanHeight = leaf-&gt;getMaxHeight();</span>
+00431 <span class="comment"> //meanHeight = retriever.getSurfaces()[surf].getQuadTree().getInterpZ(localEstimated);</span>
+00432 <span class="comment"></span>
+00433 <span class="comment"> // if it is closer to the estimation than the previous remembered...</span>
+00434 <span class="comment"> found = true;</span>
+00435 <span class="comment"> float distance = (float)fabs(localEstimated.z-meanHeight);</span>
+00436 <span class="comment"> cst.SortedSurfaces.push_back(CCollisionSurfaceTemp::CDistanceSurface(distance, (uint16)surf, (uint16)_InstanceId, cst.SurfaceLUT[surf].FoundCloseEdge));</span>
+00437 <span class="comment"> }</span>
+00438 <span class="comment">*/</span>
+00439
+00440 meanHeight = retriever.getSurface(surf).getQuantHeight()*2.0f + 1.0f;
+00441
+00442 <span class="comment">// if it is closer to the estimation than the previous remembered...</span>
+00443 found = <span class="keyword">true</span>;
+00444 <span class="keywordtype">float</span> distance = sortByDistance ? (<span class="keywordtype">float</span>)fabs(localEstimated.z-meanHeight) : meanHeight;
+00445 cst.SortedSurfaces.push_back(CCollisionSurfaceTemp::CDistanceSurface(distance, (<a class="code" href="a04558.html#a9">uint16</a>)surf, (<a class="code" href="a04558.html#a9">uint16</a>)_InstanceId, cst.SurfaceLUT[surf].FoundCloseEdge));
+00446
+00447 }
+00448 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cst.SurfaceLUT[surf].Counter != 0)
+00449 {
+00450 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"PACS: unexpected surface (%d) count (%d) at instance %d (pos=(%f,%f,%f))"</span>, surf, cst.SurfaceLUT[surf].Counter, _InstanceId, estimated.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo0">x</a>, estimated.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo1">y</a>, estimated.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo2">z</a>);
+00451 }
+00452
+00453 cst.SurfaceLUT[surf].reset();
+00454 }
+00455
+00456 <span class="keywordflow">break</span>;
+00457
+00458 <span class="keywordflow">case</span> CLocalRetriever::Interior:
+00459 <span class="comment">// for interior</span>
+00460 <span class="keywordflow">for</span> (i=0; i&lt;cst.PossibleSurfaces.size(); ++i)
+00461 {
+00462 surf = cst.PossibleSurfaces[i];
+00463 <span class="comment">// if the surface contains the estimated position.</span>
+00464 <span class="keywordflow">if</span> (cst.SurfaceLUT[surf].Counter == 2)
+00465 {
+00466 ULocalPosition lp;
+00467 <span class="keywordtype">bool</span> lfound = <span class="keyword">false</span>;
+00468
+00469 <span class="comment">// get the exact position</span>
+00470 lp.Surface = surf;
+00471 lp.Estimation = localEstimated;
+00472 retriever.snapToInteriorGround(lp, lfound);
+00473 <span class="keywordflow">if</span> (lfound)
+00474 {
+00475 <span class="comment">// if it is closer to the estimation than the previous remembered...</span>
+00476 found = <span class="keyword">true</span>;
+00477 <span class="keywordtype">float</span> distance = sortByDistance ? (<span class="keywordtype">float</span>)fabs(localEstimated.z-lp.Estimation.z) : lp.Estimation.<a class="code" href="a04223.html#a574">z</a>;
+00478 cst.SortedSurfaces.push_back(CCollisionSurfaceTemp::CDistanceSurface(distance, (<a class="code" href="a04558.html#a9">uint16</a>)surf, (<a class="code" href="a04558.html#a9">uint16</a>)_InstanceId, cst.SurfaceLUT[surf].FoundCloseEdge));
+00479 }
+00480 }
+00481 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (cst.SurfaceLUT[surf].Counter != 0)
+00482 {
+00483 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"PACS: unexpected surface (%d) count (%d) at instance %d (pos=(%f,%f,%f))"</span>, surf, cst.SurfaceLUT[surf].Counter, _InstanceId, estimated.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo0">x</a>, estimated.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo1">y</a>, estimated.<a class="code" href="a03664.html#NLMISC_1_1CVectorDo2">z</a>);
+00484 }
+00485
+00486 cst.SurfaceLUT[surf].reset();
+00487 }
+00488 <span class="keywordflow">break</span>;
+00489
+00490 <span class="keywordflow">default</span>:
+00491 <a class="code" href="a04199.html#a3">nlerror</a>(<span class="stringliteral">"Unknown instance type %d !!"</span>, _Type);
+00492 <span class="keywordflow">break</span>;
+00493 }
+00494
+00495 cst.OutCounter = 0;
+00496 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea28" doxytag="NLPACS::CRetrieverInstance::retrievePosition" ></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 NLPACS::CRetrieverInstance::retrievePosition </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>estimated</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>retriever</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap><a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>cst</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>bool&nbsp;</td>
+ <td class="mdname" nowrap> <em>sortByDistance</em> = true</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Retrieves the position in the instance from an estimated position. WARNING: the estimated position is a GLOBAL position, and the returned position is a LOCAL position (to the retriever).
+<p>
+Definition at line <a class="el" href="a06337.html#l00294">294</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>.
+<p>
+<div class="fragment"><pre>00296 {
+00297 <span class="comment">/*</span>
+00298 <span class="comment"> CVector localEstimated;</span>
+00299 <span class="comment"> CLocalRetriever::CLocalPosition retrieved;</span>
+00300 <span class="comment"></span>
+00301 <span class="comment"> // get local coordinates</span>
+00302 <span class="comment"> localEstimated = getLocalPosition(estimated);</span>
+00303 <span class="comment"> // Yoyo: must snap vector.</span>
+00304 <span class="comment"> CRetrieverInstance::snapVector(localEstimated);</span>
+00305 <span class="comment"></span>
+00306 <span class="comment"> // fills _RetrieveTable by retrievingPosition.</span>
+00307 <span class="comment"> retriever.retrievePosition(localEstimated, cst);</span>
+00308 <span class="comment"></span>
+00309 <span class="comment"> uint i, surf;</span>
+00310 <span class="comment"> sint bestSurf = -1;</span>
+00311 <span class="comment"> sint lastSurf = -1;</span>
+00312 <span class="comment"> float bestDistance = 1.0e10f;</span>
+00313 <span class="comment"> float bestHeight;</span>
+00314 <span class="comment"> bool lfound;</span>
+00315 <span class="comment"></span>
+00316 <span class="comment"> // for each surface in the retriever</span>
+00317 <span class="comment"> for (i=0; i&lt;cst.PossibleSurfaces.size(); ++i)</span>
+00318 <span class="comment"> {</span>
+00319 <span class="comment"> surf = cst.PossibleSurfaces[i];</span>
+00320 <span class="comment"> cst.SurfaceLUT[surf].first = false;</span>
+00321 <span class="comment"> // if the surface contains the estimated position.</span>
+00322 <span class="comment"> if (cst.SurfaceLUT[surf].second != 0)</span>
+00323 <span class="comment"> {</span>
+00324 <span class="comment"> // at least remembers the last seen surface...</span>
+00325 <span class="comment"> cst.SurfaceLUT[surf].second = 0;</span>
+00326 <span class="comment"> float meanHeight;</span>
+00327 <span class="comment"> const CQuadLeaf *leaf;</span>
+00328 <span class="comment"> ULocalPosition lp;</span>
+00329 <span class="comment"> lfound = false;</span>
+00330 <span class="comment"></span>
+00331 <span class="comment"> switch (_Type)</span>
+00332 <span class="comment"> {</span>
+00333 <span class="comment"> case CLocalRetriever::Landscape:</span>
+00334 <span class="comment"> // for landscape</span>
+00335 <span class="comment"> // search in the surface's quad tree for the actual height</span>
+00336 <span class="comment"> leaf = retriever.getSurfaces()[surf].getQuadTree().getLeaf(localEstimated);</span>
+00337 <span class="comment"> // if there is no acceptable leaf, just give up</span>
+00338 <span class="comment"> if (leaf == NULL)</span>
+00339 <span class="comment"> continue;</span>
+00340 <span class="comment"> meanHeight = leaf-&gt;getMaxHeight();</span>
+00341 <span class="comment"> lfound = true;</span>
+00342 <span class="comment"> break;</span>
+00343 <span class="comment"> case CLocalRetriever::Interior:</span>
+00344 <span class="comment"> // for interior</span>
+00345 <span class="comment"> // get the exact position</span>
+00346 <span class="comment"> lp.Surface = surf;</span>
+00347 <span class="comment"> lp.Estimation = localEstimated;</span>
+00348 <span class="comment"> meanHeight = localEstimated.z;</span>
+00349 <span class="comment"> retriever.snapToInteriorGround(lp, lfound);</span>
+00350 <span class="comment"> if (lfound)</span>
+00351 <span class="comment"> meanHeight = lp.Estimation.z;</span>
+00352 <span class="comment"> break;</span>
+00353 <span class="comment"> default:</span>
+00354 <span class="comment"> // hu?</span>
+00355 <span class="comment"> continue;</span>
+00356 <span class="comment"> }</span>
+00357 <span class="comment"></span>
+00358 <span class="comment"> // if it is closer to the estimation than the previous remembered...</span>
+00359 <span class="comment"> float distance = (float)fabs(localEstimated.z-meanHeight);</span>
+00360 <span class="comment"> if (distance &lt; bestDistance &amp;&amp; lfound)</span>
+00361 <span class="comment"> {</span>
+00362 <span class="comment"> bestDistance = distance;</span>
+00363 <span class="comment"> bestHeight = meanHeight;</span>
+00364 <span class="comment"> bestSurf = surf;</span>
+00365 <span class="comment"> }</span>
+00366 <span class="comment"> }</span>
+00367 <span class="comment"> }</span>
+00368 <span class="comment"></span>
+00369 <span class="comment"> if (bestSurf != -1)</span>
+00370 <span class="comment"> {</span>
+00371 <span class="comment"> // if there is a best surface, returns it</span>
+00372 <span class="comment"> retrieved.Surface = bestSurf;</span>
+00373 <span class="comment"> retrieved.Estimation = CVector(localEstimated.x, localEstimated.y, bestHeight);</span>
+00374 <span class="comment"> }</span>
+00375 <span class="comment"> else</span>
+00376 <span class="comment"> {</span>
+00377 <span class="comment"> // else return the last remembered...</span>
+00378 <span class="comment"> retrieved.Surface = lastSurf;</span>
+00379 <span class="comment"> retrieved.Estimation = localEstimated;</span>
+00380 <span class="comment"> }</span>
+00381 <span class="comment"></span>
+00382 <span class="comment"> return retrieved;</span>
+00383 <span class="comment">*/</span>
+00384 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea28">retrievePosition</a>(<a class="code" href="a03664.html">CVectorD</a>(estimated), retriever, cst, sortByDistance);
+00385 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea29" doxytag="NLPACS::CRetrieverInstance::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 NLPACS::CRetrieverInstance::serial </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>f</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Serialises this <a class="el" href="a03333.html">CRetrieverInstance</a>.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00736">736</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00145">_BorderChainLinks</a>, <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00142">_Neighbors</a>, <a class="el" href="a06338.html#l00116">_NodesInformation</a>, <a class="el" href="a06338.html#l00130">_Orientation</a>, <a class="el" href="a06338.html#l00131">_Origin</a>, <a class="el" href="a06338.html#l00123">_RetrieverId</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#l00324">NLMISC::IStream::serialCont()</a>, <a class="el" href="a06462.html#l00261">NLMISC::IStream::serialEnum()</a>, <a class="el" href="a06461.html#l00266">NLMISC::IStream::serialVersion()</a>, <a class="el" href="a05981.html#l00104">sint</a>, and <a class="el" href="a05981.html#l00098">uint16</a>.
+<p>
+<div class="fragment"><pre>00737 {
+00738 <span class="comment">/*</span>
+00739 <span class="comment"> Version 0:</span>
+00740 <span class="comment"> - base version.</span>
+00741 <span class="comment"> Version 1:</span>
+00742 <span class="comment"> - added type and _EdgeQuad</span>
+00743 <span class="comment"> */</span>
+00744 <a class="code" href="a04558.html#a14">sint</a> ver= f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2035_8">serialVersion</a>(1);
+00745
+00746 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_InstanceId, _RetrieverId, _Orientation, _Origin);
+00747 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_Neighbors);
+00748 f.<a class="code" href="a02270.html#NLMISC_1_1IStreamz2033_9">serialCont</a>(_BorderChainLinks);
+00749 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_BBox);
+00750
+00751 <span class="comment">// serialises the number of nodes</span>
+00752 <a class="code" href="a04558.html#a9">uint16</a> totalNodes = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep1">_NodesInformation</a>.size();
+00753 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(totalNodes);
+00754 <span class="keywordflow">if</span> (f.<a class="code" href="a02270.html#NLMISC_1_1IStreama0">isReading</a>())
+00755 {
+00756 <span class="comment">// if the stream is reading, reinits the temps table...</span>
+00757 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep1">_NodesInformation</a>.resize(totalNodes);
+00758 }
+00759
+00760 <span class="keywordflow">if</span> (ver &gt;= 1)
+00761 {
+00762 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama7">serialEnum</a>(_Type);
+00763 f.<a class="code" href="a02270.html#NLMISC_1_1IStreama5">serial</a>(_ExteriorEdgeQuad);
+00764
+00765 <span class="comment">// a fix for old versions (with wrong _Type value)</span>
+00766 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a> != CLocalRetriever::Interior) <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a> = CLocalRetriever::Landscape;
+00767 }
+00768 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea30" doxytag="NLPACS::CRetrieverInstance::snap" ></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 NLPACS::CRetrieverInstance::snap </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02793.html">ULocalPosition</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>position</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>retriever</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00507">507</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06605.html#l00051">NLPACS::ULocalPosition::Estimation</a>, <a class="el" href="a05929.html#l01479">NLPACS::CLocalRetriever::getHeight()</a>, <a class="el" href="a05622.html#l00135">nlwarning</a>, <a class="el" href="a05929.html#l01413">NLPACS::CLocalRetriever::snapToInteriorGround()</a>, and <a class="el" href="a06673.html#l00051">NLMISC::CVector::z</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00493">NLPACS::CGlobalRetriever::retrievePosition()</a>.
+<p>
+<div class="fragment"><pre>00508 {
+00509 <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a> == CLocalRetriever::Landscape)
+00510 {
+00511 <span class="comment">// search in the surface's quad tree for the actual height</span>
+00512 <span class="comment">// position.Estimation.z = retriever.getSurfaces()[position.Surface].getQuadTree().getInterpZ(position.Estimation);</span>
+00513
+00514 position.<a class="code" href="a02793.html#NLPACS_1_1ULocalPositiono0">Estimation</a>.<a class="code" href="a03128.html#NLMISC_1_1CVectoro2">z</a> = retriever.getHeight(position);
+00515
+00516 <span class="comment">/*</span>
+00517 <span class="comment"> const CQuadLeaf *leaf = retriever.getSurfaces()[position.Surface].getQuadTree().getLeaf(position.Estimation);</span>
+00518 <span class="comment"> // if there is no acceptable leaf, just give up</span>
+00519 <span class="comment"> if (leaf != NULL)</span>
+00520 <span class="comment"> {</span>
+00521 <span class="comment"> position.Estimation.z = leaf-&gt;getMaxHeight();</span>
+00522 <span class="comment"> }</span>
+00523 <span class="comment"> else</span>
+00524 <span class="comment"> {</span>
+00525 <span class="comment"> nlwarning("PACS: couldn't snap position (%f,%f,%f) on surface %d instance %d", position.Estimation.x, position.Estimation.y, position.Estimation.z, position.Surface, _InstanceId);</span>
+00526 <span class="comment"> }</span>
+00527 <span class="comment">*/</span>
+00528 }
+00529 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a> == CLocalRetriever::Interior)
+00530 {
+00531 <span class="keywordtype">bool</span> lfound;
+00532 retriever.snapToInteriorGround(position, lfound);
+00533 }
+00534 <span class="keywordflow">else</span>
+00535 {
+00536 <a class="code" href="a04199.html#a2">nlwarning</a>(<span class="stringliteral">"PACS: unknown instance (%d) type %d"</span>, _InstanceId, _Type);
+00537 }
+00538 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea31" doxytag="NLPACS::CRetrieverInstance::snapToInteriorGround" ></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 NLPACS::CRetrieverInstance::snapToInteriorGround </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02793.html">ULocalPosition</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>position</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>retriever</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+For the interior instances, snaps the point to the ground.
+<p>
+Retrieves the position in the instance from an estimated position (double instead.) WARNING: the estimated position is a GLOBAL position, and the returned position is a LOCAL position (to the retriever).
+<p>
+Definition at line <a class="el" href="a06337.html#l00500">500</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a05929.html#l01413">NLPACS::CLocalRetriever::snapToInteriorGround()</a>.
+<p>
+<div class="fragment"><pre>00502 {
+00503 <span class="keywordtype">bool</span> lfound;
+00504 retriever.snapToInteriorGround(position, lfound);
+00505 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1282_0" doxytag="NLPACS::CRetrieverInstance::snapVector" ></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 NLPACS::CRetrieverInstance::snapVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03660.html">CVector2f</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Snap a vector at 1mm (1/1024). v must be a local position (ie range from -80 to +240). Doing this, we are sure we have precision of 9+10 bits, which is enough for 24 bits float precision.
+<p>
+Definition at line <a class="el" href="a06338.html#l00300">300</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00046">NLPACS::SnapPrecision</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+<div class="fragment"><pre>00301 {
+00302 <a class="code" href="a04223.html#a576">v</a>.x= (<span class="keywordtype">float</span>)floor(<a class="code" href="a04223.html#a576">v</a>.x*SnapPrecision)/<a class="code" href="a05380.html#a14">SnapPrecision</a>;
+00303 <a class="code" href="a04223.html#a576">v</a>.y= (<span class="keywordtype">float</span>)floor(<a class="code" href="a04223.html#a576">v</a>.y*SnapPrecision)/<a class="code" href="a05380.html#a14">SnapPrecision</a>;
+00304 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1282_1" doxytag="NLPACS::CRetrieverInstance::snapVector" ></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 NLPACS::CRetrieverInstance::snapVector </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>v</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap><code> [inline, static]</code></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Snap a vector at 1mm (1/1024). v must be a local position (ie range from -80 to +240). Doing this, we are sure we have precision of 9+10 bits, which is enough for 24 bits float precision. NB: z is not snapped.
+<p>
+Definition at line <a class="el" href="a06338.html#l00292">292</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+References <a class="el" href="a06338.html#l00046">NLPACS::SnapPrecision</a>, and <a class="el" href="a05646.html#l00237">v</a>.
+<p>
+Referenced by <a class="el" href="a05929.html#l00960">NLPACS::CLocalRetriever::insurePosition()</a>.
+<p>
+<div class="fragment"><pre>00293 {
+00294 <a class="code" href="a04223.html#a576">v</a>.x= (<span class="keywordtype">float</span>)floor(<a class="code" href="a04223.html#a576">v</a>.x*SnapPrecision)/<a class="code" href="a05380.html#a14">SnapPrecision</a>;
+00295 <a class="code" href="a04223.html#a576">v</a>.y= (<span class="keywordtype">float</span>)floor(<a class="code" href="a04223.html#a576">v</a>.y*SnapPrecision)/<a class="code" href="a05380.html#a14">SnapPrecision</a>;
+00296 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1284_0" doxytag="NLPACS::CRetrieverInstance::testExteriorCollision" ></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 NLPACS::CRetrieverInstance::testExteriorCollision </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top"><a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>cst</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02156.html">NLMISC::CAABBox</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>bboxMoveLocal</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>transBase</em>, </td>
+ </tr>
+ <tr>
+ <td class="md" nowrap align="right"></td>
+ <td></td>
+ <td class="md" nowrap>const <a class="el" href="a02787.html">CLocalRetriever</a> &amp;&nbsp;</td>
+ <td class="mdname" nowrap> <em>localRetriever</em></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td class="md">)&nbsp;</td>
+ <td class="md" colspan="2"> const</td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Test for collisions with the exterior mesh of an interior instance. This only works for interior instances !! see also testCollision() in <a class="el" href="a02787.html">CLocalRetriever</a>
+<p>
+Definition at line <a class="el" href="a06337.html#l00635">635</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00154">_ExteriorEdgeQuad</a>, <a class="el" href="a05930.html#l00324">NLPACS::CLocalRetriever::_ExteriorMesh</a>, <a class="el" href="a05582.html#l00068">NLPACS::CCollisionSurfaceTemp::allocEdgeCollideNode()</a>, <a class="el" href="a05583.html#l00299">NLPACS::CCollisionSurfaceTemp::CollisionChains</a>, <a class="el" href="a05583.html#l00143">NLPACS::CExteriorEdgeEntry::EdgeId</a>, <a class="el" href="a05583.html#l00147">NLPACS::CExteriorEdgeEntry::Exterior</a>, <a class="el" href="a05583.html#l00288">NLPACS::CCollisionSurfaceTemp::ExteriorEdgeIndexes</a>, <a class="el" href="a05583.html#l00070">NLPACS::CCollisionChain::FirstEdgeCollide</a>, <a class="el" href="a05693.html#l00120">NLPACS::CExteriorMesh::getEdge()</a>, <a class="el" href="a05582.html#l00075">NLPACS::CCollisionSurfaceTemp::getEdgeCollideNode()</a>, <a class="el" href="a05667.html#l00106">NLPACS::CEdgeQuad::getEdgeEntry()</a>, <a class="el" href="a05583.html#l00147">NLPACS::CExteriorEdgeEntry::Interior</a>, <a class="el" href="a05664.html#l00043">NLPACS::CEdgeCollide::make()</a>, <a class="el" href="a05583.html#l00049">NLPACS::CEdgeCollideNode::Next</a>, <a class="el" href="a05583.html#l00286">NLPACS::CCollisionSurfaceTemp::OChainLUT</a>, <a class="el" href="a05666.html#l00410">NLPACS::CEdgeQuad::selectEdges()</a>, <a class="el" href="a05981.html#l00104">sint</a>, <a class="el" href="a05981.html#l00105">uint</a>, <a class="el" href="a05981.html#l00098">uint16</a>, and <a class="el" href="a05981.html#l00100">uint32</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l01177">NLPACS::CGlobalRetriever::findCollisionChains()</a>.
+<p>
+<div class="fragment"><pre>00636 {
+00637 <a class="code" href="a04558.html#a14">sint</a> i;
+00638
+00639 <span class="comment">// 0. select ordered chains in the chainquad.</span>
+00640 <span class="comment">//=====================================</span>
+00641 <a class="code" href="a04558.html#a14">sint</a> nEei= <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.selectEdges(bboxMove, cst);
+00642 <span class="comment">// NB: cst.OChainLUT is assured to be full of 0xFFFF after this call (if was right before).</span>
+00643
+00644
+00645 <span class="comment">// 1. regroup them in chains. build cst.CollisionChains</span>
+00646 <span class="comment">//=====================================</span>
+00647 <span class="comment">// NB: use cst.OChainLUT to look if a Chain has been inserted before.</span>
+00648 <a class="code" href="a04558.html#a9">uint16</a> *edgeLUT= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo6">OChainLUT</a>;
+00649
+00650 <span class="comment">// bkup where we begin to add chains.</span>
+00651 <a class="code" href="a04558.html#a15">uint</a> firstChainAdded= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>.size();
+00652
+00653 <span class="comment">// For all exterioredge entry.</span>
+00654 <span class="keywordflow">for</span>(i=0;i&lt;nEei;i++)
+00655 {
+00656 <span class="comment">// get the edge entry and the edge</span>
+00657 <a class="code" href="a04558.html#a9">uint16</a> eei = cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo4">ExteriorEdgeIndexes</a>[i];
+00658 <span class="keyword">const</span> CExteriorEdgeEntry &amp;eee = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.getEdgeEntry(eei);
+00659
+00660 <span class="comment">// WELL ACTUALLY DO BOTHER ABOUT DOORS !!</span>
+00661 <span class="comment">/*</span>
+00662 <span class="comment"> // don't bother about doors</span>
+00663 <span class="comment"> if (eee.Interior.RetrieverInstanceId != -1)</span>
+00664 <span class="comment"> continue;</span>
+00665 <span class="comment">*/</span>
+00666
+00667 <span class="comment">// add/retrieve the id in cst.CollisionChains.</span>
+00668 <span class="comment">//=================================</span>
+00669 <a class="code" href="a04558.html#a15">uint</a> ccId;
+00670 <span class="comment">// if never added.</span>
+00671 <span class="keywordflow">if</span>(edgeLUT[eei]==0xFFFF)
+00672 {
+00673 <span class="comment">// add a new CCollisionChain.</span>
+00674 ccId= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>.size();
+00675 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>.push_back(CCollisionChain());
+00676 <span class="comment">// Fill it with default.</span>
+00677 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId].Tested= <span class="keyword">false</span>;
+00678 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId].ExteriorEdge = <span class="keyword">true</span>;
+00679 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId].FirstEdgeCollide= 0xFFFFFFFF;
+00680 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId].ChainId= eei;
+00681 <span class="comment">// Fill Left right info.</span>
+00682 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId].LeftSurface = eee.Interior;
+00683 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId].RightSurface = eee.Exterior;
+00684
+00685 <span class="comment">// store this Id in the LUT of chains.</span>
+00686 edgeLUT[eei]= ccId;
+00687 }
+00688 <span class="keywordflow">else</span>
+00689 {
+00690 <span class="comment">// get the id of this collision chain.</span>
+00691 ccId= edgeLUT[eei];
+00692
+00693 <span class="comment">// ACTUALLY, THIS SHOULD NEVER HAPPEN</span>
+00694 <span class="comment">// since ext edge are only 1 segment</span>
+00695 }
+00696
+00697 <span class="comment">// add edge collide to the list.</span>
+00698 <span class="comment">//=================================</span>
+00699 CCollisionChain &amp;colChain= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[ccId];
+00700
+00701 CVector2f p0 = CVector2f(retriever._ExteriorMesh.getEdge(eee.EdgeId).Start);
+00702 CVector2f p1 = CVector2f(retriever._ExteriorMesh.getEdge(eee.EdgeId+1).Start);
+00703
+00704 <span class="comment">// alloc a new edgeCollide.</span>
+00705 <a class="code" href="a04558.html#a11">uint32</a> ecnId= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempz1227_0">allocEdgeCollideNode</a>();
+00706 CEdgeCollideNode &amp;ecn= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempz1227_1">getEdgeCollideNode</a>(ecnId);
+00707
+00708 <span class="comment">// append to the front of the list.</span>
+00709 ecn.Next= colChain.FirstEdgeCollide;
+00710 colChain.FirstEdgeCollide= ecnId;
+00711
+00712 <span class="comment">// build this edge.</span>
+00713 p0+= transBase;
+00714 p1+= transBase;
+00715 ecn.make(p0, p1);
+00716 }
+00717
+00718
+00719
+00720 <span class="comment">// 2. Reset LUT to 0xFFFF.</span>
+00721 <span class="comment">//=====================================</span>
+00722
+00723 <span class="comment">// for all collisions chains inserted (starting from firstChainAdded), reset LUT.</span>
+00724 <span class="keywordflow">for</span>(i=firstChainAdded; i&lt;(<a class="code" href="a04558.html#a14">sint</a>)cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>.size(); i++)
+00725 {
+00726 <a class="code" href="a04558.html#a15">uint</a> ccId= cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[i].ChainId;
+00727 edgeLUT[ccId]= 0xFFFF;
+00728 cst.<a class="code" href="a02387.html#NLPACS_1_1CCollisionSurfaceTempo0">CollisionChains</a>[i].ChainId = <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">_ExteriorEdgeQuad</a>.getEdgeEntry(ccId).EdgeId;
+00729 }
+00730
+00731 }
+</pre></div> </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancea32" doxytag="NLPACS::CRetrieverInstance::unlink" ></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 NLPACS::CRetrieverInstance::unlink </td>
+ <td class="md" valign="top">(&nbsp;</td>
+ <td class="md" nowrap valign="top">std::vector&lt; <a class="el" href="a03333.html">CRetrieverInstance</a> &gt; &amp;&nbsp;</td>
+ <td class="mdname1" valign="top" nowrap> <em>instances</em> </td>
+ <td class="md" valign="top">&nbsp;)&nbsp;</td>
+ <td class="md" nowrap></td>
+ </tr>
+
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+Unlinks the instance. The neighbor instance are AFFECTED.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06337.html#l00281">281</a> of file <a class="el" href="a06337.html">retriever_instance.cpp</a>.
+<p>
+References <a class="el" href="a06338.html#l00120">_InstanceId</a>, <a class="el" href="a06338.html#l00142">_Neighbors</a>, <a class="el" href="a06337.html#l00042">resetLinks()</a>, and <a class="el" href="a05981.html#l00105">uint</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00794">NLPACS::CGlobalRetriever::removeInstance()</a>.
+<p>
+<div class="fragment"><pre>00282 {
+00283 <a class="code" href="a04558.html#a15">uint</a> i;
+00284
+00285 <span class="keywordflow">for</span> (i=0; i&lt;<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>.size(); ++i)
+00286 instances[<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a>[i]].resetLinks(_InstanceId);
+00287
+00288 <a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancea25">resetLinks</a>();
+00289 }
+</pre></div> </td>
+ </tr>
+</table>
+<hr><h2>Friends And Related Function Documentation</h2>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancen0" doxytag="NLPACS::CRetrieverInstance::CGlobalRetriever" ></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"> friend class <a class="el" href="a02588.html">CGlobalRetriever</a><code> [friend]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00076">76</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>. </td>
+ </tr>
+</table>
+<hr><h2>Field Documentation</h2>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1276_0" doxytag="NLPACS::CRetrieverInstance::_BBox" ></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="a02156.html">NLMISC::CAABBox</a> <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">NLPACS::CRetrieverInstance::_BBox</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The BBox of the instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00134">134</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1278_0" doxytag="NLPACS::CRetrieverInstance::_BorderChainLinks" ></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&lt;<a class="el" href="a03336.html">CLink</a>&gt; <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">NLPACS::CRetrieverInstance::_BorderChainLinks</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The neighbor chains on the border.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00145">145</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06338.html#l00192">forceBorderChainLink()</a>, <a class="el" href="a06338.html#l00188">getBorderChainLink()</a>, <a class="el" href="a06338.html#l00186">getBorderChainLinks()</a>, <a class="el" href="a06337.html#l00089">init()</a>, <a class="el" href="a06337.html#l00194">link()</a>, <a class="el" href="a06337.html#l00152">linkEdgeQuad()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, <a class="el" href="a06337.html#l00772">resetBorderChainLinks()</a>, <a class="el" href="a06337.html#l00042">resetLinks()</a>, and <a class="el" href="a06337.html#l00736">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1280_0" doxytag="NLPACS::CRetrieverInstance::_ExteriorEdgeQuad" ></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="a02450.html">CEdgeQuad</a> <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1280_0">NLPACS::CRetrieverInstance::_ExteriorEdgeQuad</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The edges of the exterior collision mesh, stored in a quad grid. The edges are stored in the instance rather than in the local retriever.
+<p>
+Definition at line <a class="el" href="a06338.html#l00154">154</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00139">initEdgeQuad()</a>, <a class="el" href="a06337.html#l00152">linkEdgeQuad()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, <a class="el" href="a06337.html#l00042">resetLinks()</a>, <a class="el" href="a06337.html#l00736">serial()</a>, and <a class="el" href="a06337.html#l00635">testExteriorCollision()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancep0" doxytag="NLPACS::CRetrieverInstance::_InstanceId" ></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#a10">sint32</a> <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">NLPACS::CRetrieverInstance::_InstanceId</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The id of this instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00120">120</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06338.html#l00192">forceBorderChainLink()</a>, <a class="el" href="a06338.html#l00170">getInstanceId()</a>, <a class="el" href="a06337.html#l00139">initEdgeQuad()</a>, <a class="el" href="a06337.html#l00194">link()</a>, <a class="el" href="a06337.html#l00152">linkEdgeQuad()</a>, <a class="el" href="a06337.html#l00109">make()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, <a class="el" href="a06337.html#l00387">retrievePosition()</a>, <a class="el" href="a06337.html#l00736">serial()</a>, <a class="el" href="a06337.html#l00507">snap()</a>, and <a class="el" href="a06337.html#l00281">unlink()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1278_1" doxytag="NLPACS::CRetrieverInstance::_Neighbors" ></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&lt;<a class="el" href="a04558.html#a10">sint32</a>&gt; <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">NLPACS::CRetrieverInstance::_Neighbors</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The instance ids of the neighbors.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00142">142</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06338.html#l00183">getNeighbor()</a>, <a class="el" href="a06338.html#l00181">getNeighbors()</a>, <a class="el" href="a06337.html#l00194">link()</a>, <a class="el" href="a06337.html#l00042">resetLinks()</a>, <a class="el" href="a06337.html#l00736">serial()</a>, and <a class="el" href="a06337.html#l00281">unlink()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancep1" doxytag="NLPACS::CRetrieverInstance::_NodesInformation" ></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&lt;<a class="el" href="a03335.html">CAStarNodeInfo</a>&gt; <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep1">NLPACS::CRetrieverInstance::_NodesInformation</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00116">116</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a05761.html#l00855">NLPACS::CGlobalRetriever::findAStarPath()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, and <a class="el" href="a06337.html#l00736">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1276_1" doxytag="NLPACS::CRetrieverInstance::_Orientation" ></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#a7">uint8</a> <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">NLPACS::CRetrieverInstance::_Orientation</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The BBox of the instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00130">130</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00610">getDoubleGlobalPosition()</a>, <a class="el" href="a06337.html#l00588">getGlobalPosition()</a>, <a class="el" href="a06338.html#l00215">getInstanceEdge()</a>, <a class="el" href="a06337.html#l00544">getLocalPosition()</a>, <a class="el" href="a06338.html#l00174">getOrientation()</a>, <a class="el" href="a06338.html#l00217">getRetrieverEdge()</a>, <a class="el" href="a06337.html#l00109">make()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, and <a class="el" href="a06337.html#l00736">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancez1276_2" doxytag="NLPACS::CRetrieverInstance::_Origin" ></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="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">NLPACS::CRetrieverInstance::_Origin</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The BBox of the instance.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00131">131</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06337.html#l00610">getDoubleGlobalPosition()</a>, <a class="el" href="a06337.html#l00588">getGlobalPosition()</a>, <a class="el" href="a06337.html#l00544">getLocalPosition()</a>, <a class="el" href="a06338.html#l00176">getOrigin()</a>, <a class="el" href="a06337.html#l00194">link()</a>, <a class="el" href="a06337.html#l00109">make()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, and <a class="el" href="a06337.html#l00736">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancep2" doxytag="NLPACS::CRetrieverInstance::_RetrieverId" ></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#a10">sint32</a> <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">NLPACS::CRetrieverInstance::_RetrieverId</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The id of the retrievable surface pattern.
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00123">123</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>.
+<p>
+Referenced by <a class="el" href="a06338.html#l00172">getRetrieverId()</a>, <a class="el" href="a06337.html#l00139">initEdgeQuad()</a>, <a class="el" href="a06337.html#l00194">link()</a>, <a class="el" href="a06337.html#l00152">linkEdgeQuad()</a>, <a class="el" href="a06337.html#l00109">make()</a>, <a class="el" href="a06337.html#l00072">reset()</a>, and <a class="el" href="a06337.html#l00736">serial()</a>. </td>
+ </tr>
+</table>
+<a class="anchor" name="NLPACS_1_1CRetrieverInstancep3" doxytag="NLPACS::CRetrieverInstance::_Type" ></a><p>
+<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
+ <tr>
+ <td class="mdRow">
+ <table cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td class="md" nowrap valign="top"> <a class="el" href="a02787.html#NLPACS_1_1CLocalRetrieverw0">CLocalRetriever::EType</a> <a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">NLPACS::CRetrieverInstance::_Type</a><code> [protected]</code>
+ </table>
+ </td>
+ </tr>
+</table>
+<table cellspacing=5 cellpadding=0 border=0>
+ <tr>
+ <td>
+ &nbsp;
+ </td>
+ <td>
+
+<p>
+The type of the instance (see <a class="el" href="a02787.html#NLPACS_1_1CLocalRetrieverp10">CLocalRetriever::_Type</a>).
+<p>
+
+<p>
+Definition at line <a class="el" href="a06338.html#l00126">126</a> of file <a class="el" href="a06338.html">retriever_instance.h</a>. </td>
+ </tr>
+</table>
+<hr>The documentation for this class was generated from the following files:<ul>
+<li><a class="el" href="a06338.html">retriever_instance.h</a><li><a class="el" href="a06337.html">retriever_instance.cpp</a></ul>
+<hr size="1"><address style="align: right;"><small>Generated on Tue Mar 16 14:23:55 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>