diff options
author | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
---|---|---|
committer | neodarz <neodarz@neodarz.net> | 2018-08-11 20:21:34 +0200 |
commit | 0ea5fc66924303d1bf73ba283a383e2aadee02f2 (patch) | |
tree | 2568e71a7ccc44ec23b8bb3f0ff97fb6bf2ed709 /docs/doxygen/nel/a03333.html | |
download | nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.tar.xz nevrax-website-self-hostable-0ea5fc66924303d1bf73ba283a383e2aadee02f2.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | docs/doxygen/nel/a03333.html | 2676 |
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 Page</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="pages.html">Related Pages</a> | <span class="search"><u>S</u>earch for <input class="search" type="text" name="query" value="" size="20" accesskey="s"/></span></form></div> +<h1>NLPACS::CRetrieverInstance Class Reference</h1><code>#include <<a class="el" href="a06338.html">retriever_instance.h</a>></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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea0">CRetrieverInstance</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </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"> </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> & </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea2">getBBox</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </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"> </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< <a class="el" href="a03336.html">CLink</a> > & </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea4">getBorderChainLinks</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </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> &localPosition) const </td></tr> + +<tr><td class="mdescLeft"> </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> </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> &localPosition) const </td></tr> + +<tr><td class="mdescLeft"> </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> </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"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea8">getInstanceId</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </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> &globalPosition) const </td></tr> + +<tr><td class="mdescLeft"> </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> </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> &globalPosition) const </td></tr> + +<tr><td class="mdescLeft"> </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> </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"> </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< <a class="el" href="a04558.html#a10">sint32</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea12">getNeighbors</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea13">getOrientation</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea14">getOrigin</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </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"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea16">getRetrieverId</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea17">getType</a> () const </td></tr> + +<tr><td class="mdescLeft"> </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 </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> &retriever)</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &gr)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &neighbor, const std::vector< <a class="el" href="a02787.html">CLocalRetriever</a> > &retrievers)</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &gr)</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &retriever, <a class="el" href="a04558.html#a7">uint8</a> orientation, const <a class="el" href="a03128.html">NLMISC::CVector</a> &origin)</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea23">reset</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea24">resetBorderChainLinks</a> (const std::vector< <a class="el" href="a04558.html#a15">uint</a> > &links)</td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea25">resetLinks</a> ()</td></tr> + +<tr><td class="mdescLeft"> </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 </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"> </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 </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> &estimated, const <a class="el" href="a02787.html">CLocalRetriever</a> &retriever, <a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &cst, bool sortByDistance=true) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &estimated, const <a class="el" href="a02787.html">CLocalRetriever</a> &retriever, <a class="el" href="a02387.html">CCollisionSurfaceTemp</a> &cst, bool sortByDistance=true) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &f)</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &position, const <a class="el" href="a02787.html">CLocalRetriever</a> &retriever) const </td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &position, const <a class="el" href="a02787.html">CLocalRetriever</a> &retriever) const </td></tr> + +<tr><td class="mdescLeft"> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancea32">unlink</a> (std::vector< <a class="el" href="a03333.html">CRetrieverInstance</a> > &instances)</td></tr> + +<tr><td class="mdescLeft"> </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 </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> &cst, const <a class="el" href="a02156.html">NLMISC::CAABBox</a> &bboxMoveLocal, const <a class="el" href="a03660.html">NLMISC::CVector2f</a> &transBase, const <a class="el" href="a02787.html">CLocalRetriever</a> &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 </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> &<a class="el" href="a04223.html#a576">v</a>)</td></tr> + +<tr><td class="memItemLeft" nowrap align=right valign=top>void </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> &<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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep0">_InstanceId</a></td></tr> + +<tr><td class="mdescLeft"> </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< <a class="el" href="a03335.html">CAStarNodeInfo</a> > </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancep3">_Type</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_0">_BBox</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_1">_Orientation</a></td></tr> + +<tr><td class="mdescLeft"> </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> </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1276_2">_Origin</a></td></tr> + +<tr><td class="mdescLeft"> </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< <a class="el" href="a03336.html">CLink</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_0">_BorderChainLinks</a></td></tr> + +<tr><td class="mdescLeft"> </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< <a class="el" href="a04558.html#a10">sint32</a> > </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancez1278_1">_Neighbors</a></td></tr> + +<tr><td class="mdescLeft"> </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> </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 </td><td class="memItemRight" valign=bottom><a class="el" href="a03333.html#NLPACS_1_1CRetrieverInstancen0">CGlobalRetriever</a></td></tr> + +</table> +<hr><h2>Constructor & 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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </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> </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> </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> </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> </td> + <td class="mdname" nowrap> <em>frontSurface</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"><code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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> >= <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>& NLPACS::CRetrieverInstance::getBBox </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>n</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<<a class="el" href="a03336.html">CLink</a>>& NLPACS::CRetrieverInstance::getBorderChainLinks </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>localPosition</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>localPosition</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> </td> + <td class="mdname1" valign="top" nowrap> <em>retrieverEdge</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03664.html">NLMISC::CVectorD</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>globalPosition</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>globalPosition</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a15">uint</a> </td> + <td class="mdname1" valign="top" nowrap> <em>n</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<<a class="el" href="a04558.html#a10">sint32</a>> NLPACS::CRetrieverInstance::getNeighbors </td> + <td class="md" valign="top">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a7">uint8</a> </td> + <td class="mdname1" valign="top" nowrap> <em>instanceEdge</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">void </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap> const<code> [inline]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a02787.html">CLocalRetriever</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>retriever</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<_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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02588.html">CGlobalRetriever</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>gr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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 &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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03333.html">CRetrieverInstance</a> & </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< <a class="el" href="a02787.html">CLocalRetriever</a> > & </td> + <td class="mdname" nowrap> <em>retrievers</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<<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 &retriever = retrievers[<a class="code" href="a03333.html#NLPACS_1_1CRetrieverInstancep2">_RetrieverId</a>]; +00203 <span class="keyword">const</span> CLocalRetriever &nRetriever = retrievers[neighbor._RetrieverId]; +00204 +00205 <span class="keyword">const</span> vector<CChain> &chains = retriever.getChains(), +00206 &nChains = nRetriever.getChains(); +00207 <span class="keyword">const</span> vector<uint16> &borderChains = retriever.getBorderChains(), +00208 &nBorderChains = nRetriever.getBorderChains(); +00209 +00210 vector< pair<CVector,CVector> > 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<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<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<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<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<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<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 < 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 > 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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02588.html">CGlobalRetriever</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>gr</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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 &lr = gr.<a class="code" href="a02588.html#NLPACS_1_1CGlobalRetrieverz1237_4">getRetriever</a>(_RetrieverId); +00155 <span class="keyword">const</span> CExteriorMesh &em = lr.getExteriorMesh(); +00156 +00157 <span class="keyword">const</span> vector<CExteriorEdgeEntry> &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<ee.size(); ++i) +00162 { +00163 <span class="keyword">const</span> CExteriorMesh::CEdge &edge = em.getEdge(ee[i].EdgeId); +00164 <span class="keywordflow">if</span> (edge.Link != -1) +00165 { +00166 <span class="keyword">const</span> CExteriorMesh::CLink &<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 && link.ChainId != 0xFFFF && link.BorderChainId != 0xFFFF) +00169 { +00170 CRetrieverInstance::CLink &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 && borderLink.SurfaceId == 0xFFFF) || +00174 (borderLink.Instance == (<a class="code" href="a04558.html#a9">uint16</a>)(ee[i].Exterior.RetrieverInstanceId) && +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a10">sint32</a> </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> </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> & </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> </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> & </td> + <td class="mdname" nowrap> <em>origin</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top">const std::vector< <a class="el" href="a04558.html#a15">uint</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>links</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<links.size(); ++i) +00776 { +00777 <span class="keywordflow">if</span> (links[i] >= <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">( </td> + <td class="mdname1" valign="top" nowrap> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<<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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a04558.html#a11">uint32</a> </td> + <td class="mdname1" valign="top" nowrap> <em>id</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<sint32>::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<<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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03664.html">NLMISC::CVectorD</a> & </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> & </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> & </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 </td> + <td class="mdname" nowrap> <em>sortByDistance</em> = true</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<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->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<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">( </td> + <td class="md" nowrap valign="top">const <a class="el" href="a03128.html">NLMISC::CVector</a> & </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> & </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> & </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 </td> + <td class="mdname" nowrap> <em>sortByDistance</em> = true</td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<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->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 < bestDistance && 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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02270.html">NLMISC::IStream</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>f</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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 >= 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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02793.html">ULocalPosition</a> & </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> & </td> + <td class="mdname" nowrap> <em>retriever</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> + +<p> +Definition at line <a class="el" href="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->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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02793.html">ULocalPosition</a> & </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> & </td> + <td class="mdname" nowrap> <em>retriever</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03660.html">CVector2f</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>v</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a03128.html">CVector</a> & </td> + <td class="mdname1" valign="top" nowrap> <em>v</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap><code> [inline, static]</code></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </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">( </td> + <td class="md" nowrap valign="top"><a class="el" href="a02387.html">CCollisionSurfaceTemp</a> & </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> & </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> & </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> & </td> + <td class="mdname" nowrap> <em>localRetriever</em></td> + </tr> + <tr> + <td></td> + <td class="md">) </td> + <td class="md" colspan="2"> const</td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<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 &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 &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 &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<(<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">( </td> + <td class="md" nowrap valign="top">std::vector< <a class="el" href="a03333.html">CRetrieverInstance</a> > & </td> + <td class="mdname1" valign="top" nowrap> <em>instances</em> </td> + <td class="md" valign="top"> ) </td> + <td class="md" nowrap></td> + </tr> + + </table> + </td> + </tr> +</table> +<table cellspacing=5 cellpadding=0 border=0> + <tr> + <td> + + </td> + <td> + +<p> +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<<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> + + </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> + + </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<<a class="el" href="a03336.html">CLink</a>> <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> + + </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> + + </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> + + </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<<a class="el" href="a04558.html#a10">sint32</a>> <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> + + </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<<a class="el" href="a03335.html">CAStarNodeInfo</a>> <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> + + </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> + + </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> + + </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> + + </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> + + </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> |