Files
recastnavigation/DetourObstacleAvoidance_8h_source.html

321 lines
61 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Recast Navigation: DetourObstacleAvoidance.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Recast Navigation
</div>
<div id="projectbrief">Navigation-mesh Toolset for Games</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('DetourObstacleAvoidance_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">DetourObstacleAvoidance.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="DetourObstacleAvoidance_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment">// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// This software is provided &#39;as-is&#39;, without any express or implied</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment">// warranty. In no event will the authors be held liable for any damages</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment">// arising from the use of this software.</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment">// Permission is granted to anyone to use this software for any purpose,</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment">// including commercial applications, and to alter it and redistribute it</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment">// freely, subject to the following restrictions:</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// 1. The origin of this software must not be misrepresented; you must not</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// claim that you wrote the original software. If you use this software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">// in a product, an acknowledgment in the product documentation would be</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">// appreciated but is not required.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment">// 2. Altered source versions must be plainly marked as such, and must not be</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// misrepresented as being the original software.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment">// 3. This notice may not be removed or altered from any source distribution.</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment">//</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifndef DETOUROBSTACLEAVOIDANCE_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define DETOUROBSTACLEAVOIDANCE_H</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="structdtObstacleCircle.html"> 22</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structdtObstacleCircle.html">dtObstacleCircle</a></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="structdtObstacleCircle.html#a28678b711bbd24d62df014d53b091c68"> 24</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleCircle.html#a28678b711bbd24d62df014d53b091c68">p</a>[3]; </div>
<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="structdtObstacleCircle.html#a8b044ab90c679b65dc7c326eda19c1e8"> 25</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleCircle.html#a8b044ab90c679b65dc7c326eda19c1e8">vel</a>[3]; </div>
<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structdtObstacleCircle.html#a4eeaea216bbc81bf865c19d000589195"> 26</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleCircle.html#a4eeaea216bbc81bf865c19d000589195">dvel</a>[3]; </div>
<div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="structdtObstacleCircle.html#ae666389d33d7316c1e4e303b13871adc"> 27</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleCircle.html#ae666389d33d7316c1e4e303b13871adc">rad</a>; </div>
<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="structdtObstacleCircle.html#a14169be1b546aeaf06fb19406f523a08"> 28</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleCircle.html#a14169be1b546aeaf06fb19406f523a08">dp</a>[3], <a class="code" href="structdtObstacleCircle.html#a04d72360e079c808469b6650fa4e3566">np</a>[3]; </div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;};</div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="structdtObstacleSegment.html"> 31</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structdtObstacleSegment.html">dtObstacleSegment</a></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div>
<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="structdtObstacleSegment.html#aac975238e1614b0652643f973f32dc78"> 33</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleSegment.html#aac975238e1614b0652643f973f32dc78">p</a>[3], <a class="code" href="structdtObstacleSegment.html#a3282730543d772664692b32c15576ee9">q</a>[3]; </div>
<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structdtObstacleSegment.html#a26ef06bc8db4ec6ceac546dd4d34da83"> 34</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structdtObstacleSegment.html#a26ef06bc8db4ec6ceac546dd4d34da83">touch</a>;</div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div>
<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html"> 38</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html#ae6e3e2e17696666996e3971c02989400">dtObstacleAvoidanceDebugData</a>();</div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html#ad8b6bd04b9c0a8798a75d83671f74859">~dtObstacleAvoidanceDebugData</a>();</div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a49f4c177709ecccc77331e1b43ae893c">init</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> maxSamples);</div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a2e7d802ea941ad37d5244af91c47f0c9">reset</a>();</div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a54b01ec0a47c6efd95ebde459791b788">addSample</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>* vel, <span class="keyword">const</span> <span class="keywordtype">float</span> ssize, <span class="keyword">const</span> <span class="keywordtype">float</span> pen,</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> vpen, <span class="keyword">const</span> <span class="keywordtype">float</span> vcpen, <span class="keyword">const</span> <span class="keywordtype">float</span> spen, <span class="keyword">const</span> <span class="keywordtype">float</span> tpen);</div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#aae878af7168a5683cf05cd6f3f9b4cfe">normalizeSamples</a>();</div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; </div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#a48f21bd0b2d2f591290e127b00953ec2"> 51</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a48f21bd0b2d2f591290e127b00953ec2">getSampleCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_nsamples; }</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#a682696e8fc9185544690fe3391c9b613"> 52</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="classdtObstacleAvoidanceDebugData.html#a682696e8fc9185544690fe3391c9b613">getSampleVelocity</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> &amp;m_vel[i*3]; }</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#a87816c09e68ea4d93a01b54b2b5025b1"> 53</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a87816c09e68ea4d93a01b54b2b5025b1">getSampleSize</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ssize[i]; }</div>
<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#a3bde3898f9ed1ada5e487010e502e4fd"> 54</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a3bde3898f9ed1ada5e487010e502e4fd">getSamplePenalty</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_pen[i]; }</div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#aa18a04d3c916740d7ddbd8d747de4e0f"> 55</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#aa18a04d3c916740d7ddbd8d747de4e0f">getSampleDesiredVelocityPenalty</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_vpen[i]; }</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#ae6bce4f174195e5b114a79c13fc46c02"> 56</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#ae6bce4f174195e5b114a79c13fc46c02">getSampleCurrentVelocityPenalty</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_vcpen[i]; }</div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#a54805fdf39b6fb3d294c0610f051b1a0"> 57</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a54805fdf39b6fb3d294c0610f051b1a0">getSamplePreferredSidePenalty</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_spen[i]; }</div>
<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceDebugData.html#a57737b7b4d07179326e69c70032a9f71"> 58</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">float</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html#a57737b7b4d07179326e69c70032a9f71">getSampleCollisionTimePenalty</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_tpen[i]; }</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Explicitly disabled copy constructor and copy assignment operator.</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html#ae6e3e2e17696666996e3971c02989400">dtObstacleAvoidanceDebugData</a>(<span class="keyword">const</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>&amp;);</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>&amp;);</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; </div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">int</span> m_nsamples;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">int</span> m_maxSamples;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">float</span>* m_vel;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">float</span>* m_ssize;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">float</span>* m_pen;</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">float</span>* m_vpen;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">float</span>* m_vcpen;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">float</span>* m_spen;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">float</span>* m_tpen;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;};</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>* <a class="code" href="DetourObstacleAvoidance_8h.html#a73b364d644159af0553fb750f43749bb">dtAllocObstacleAvoidanceDebugData</a>();</div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">void</span> <a class="code" href="DetourObstacleAvoidance_8h.html#adc41dc4522eeb508fad47cfa044e7e1b">dtFreeObstacleAvoidanceDebugData</a>(<a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>* ptr);</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="DetourObstacleAvoidance_8h.html#ac8451df4322c140ea80ad2a0f51f1ba3"> 80</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="DetourObstacleAvoidance_8h.html#ac8451df4322c140ea80ad2a0f51f1ba3">DT_MAX_PATTERN_DIVS</a> = 32; </div>
<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="DetourObstacleAvoidance_8h.html#afed135d1762d837d2a633452d40cf956"> 81</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="DetourObstacleAvoidance_8h.html#afed135d1762d837d2a633452d40cf956">DT_MAX_PATTERN_RINGS</a> = 4; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html"> 83</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structdtObstacleAvoidanceParams.html">dtObstacleAvoidanceParams</a></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#aa0f2c37d4f28a77a68df51efa53f10c8"> 85</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleAvoidanceParams.html#aa0f2c37d4f28a77a68df51efa53f10c8">velBias</a>;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a5d409ac4b0ab128139caf586f130d079"> 86</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a5d409ac4b0ab128139caf586f130d079">weightDesVel</a>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#af7ec3edc6cae60dd41cc8df169b3ae63"> 87</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleAvoidanceParams.html#af7ec3edc6cae60dd41cc8df169b3ae63">weightCurVel</a>;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a310499f03a1697ab7c32db9565bf8329"> 88</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a310499f03a1697ab7c32db9565bf8329">weightSide</a>;</div>
<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a7cfb9d5a8b8a3358e95755bd81811c26"> 89</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a7cfb9d5a8b8a3358e95755bd81811c26">weightToi</a>;</div>
<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a20bba3a481f4478eb32fce9a7f61c436"> 90</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a20bba3a481f4478eb32fce9a7f61c436">horizTime</a>;</div>
<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a38655cab9f879095f3f0906fdf535f3c"> 91</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a38655cab9f879095f3f0906fdf535f3c">gridSize</a>; </div>
<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a8725d0bb382f789d2dec1d9a0f28187f"> 92</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a8725d0bb382f789d2dec1d9a0f28187f">adaptiveDivs</a>; </div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#ae463a1999935511e7a0467ccedcaff6d"> 93</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structdtObstacleAvoidanceParams.html#ae463a1999935511e7a0467ccedcaff6d">adaptiveRings</a>; </div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structdtObstacleAvoidanceParams.html#a673b877b64fb47f5bb30f44eae61e5b2"> 94</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structdtObstacleAvoidanceParams.html#a673b877b64fb47f5bb30f44eae61e5b2">adaptiveDepth</a>; </div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceQuery.html"> 97</a></span>&#160;<span class="keyword">class </span><a class="code" href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a></div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword">public</span>:</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="classdtObstacleAvoidanceQuery.html#a353d5b1f7b8feb1e5867528255924968">dtObstacleAvoidanceQuery</a>();</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="classdtObstacleAvoidanceQuery.html#a56a81340e58ae836f32c802ab3531772">~dtObstacleAvoidanceQuery</a>();</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#a9f927e4f09b35473853be3bf7f28129a">init</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> maxCircles, <span class="keyword">const</span> <span class="keywordtype">int</span> maxSegments);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; </div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#a993c62548ead013ac1cb622c43c175ad">reset</a>();</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; </div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#aca861fb3e13b8785124b655b8313de45">addCircle</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>* pos, <span class="keyword">const</span> <span class="keywordtype">float</span> rad,</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* vel, <span class="keyword">const</span> <span class="keywordtype">float</span>* dvel);</div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; </div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#ab0abab88b2cba7747e6ed38470ca6eff">addSegment</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>* p, <span class="keyword">const</span> <span class="keywordtype">float</span>* q);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; </div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#a5209e8625a0618fd9c96ba2d0374d90f">sampleVelocityGrid</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>* pos, <span class="keyword">const</span> <span class="keywordtype">float</span> rad, <span class="keyword">const</span> <span class="keywordtype">float</span> vmax,</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* vel, <span class="keyword">const</span> <span class="keywordtype">float</span>* dvel, <span class="keywordtype">float</span>* nvel,</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">const</span> <a class="code" href="structdtObstacleAvoidanceParams.html">dtObstacleAvoidanceParams</a>* params,</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>* debug = 0);</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">int</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#aecf2d1d53bc0c74997ff3aac1587c242">sampleVelocityAdaptive</a>(<span class="keyword">const</span> <span class="keywordtype">float</span>* pos, <span class="keyword">const</span> <span class="keywordtype">float</span> rad, <span class="keyword">const</span> <span class="keywordtype">float</span> vmax,</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* vel, <span class="keyword">const</span> <span class="keywordtype">float</span>* dvel, <span class="keywordtype">float</span>* nvel,</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">const</span> <a class="code" href="structdtObstacleAvoidanceParams.html">dtObstacleAvoidanceParams</a>* params, </div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>* debug = 0);</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; </div>
<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceQuery.html#ae520788c1150ae9c0efa15ddee6b44a6"> 122</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#ae520788c1150ae9c0efa15ddee6b44a6">getObstacleCircleCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ncircles; }</div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceQuery.html#a2de5b7639831faa59a708b2ed3cd6f15"> 123</a></span>&#160; <span class="keyword">const</span> <a class="code" href="structdtObstacleCircle.html">dtObstacleCircle</a>* <a class="code" href="classdtObstacleAvoidanceQuery.html#a2de5b7639831faa59a708b2ed3cd6f15">getObstacleCircle</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i) { <span class="keywordflow">return</span> &amp;m_circles[i]; }</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceQuery.html#a38c5fdba38e19e6c7481b75d089e45b6"> 125</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classdtObstacleAvoidanceQuery.html#a38c5fdba38e19e6c7481b75d089e45b6">getObstacleSegmentCount</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_nsegments; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classdtObstacleAvoidanceQuery.html#a60779b0d519def7ae2101ad153266cd2"> 126</a></span>&#160; <span class="keyword">const</span> <a class="code" href="structdtObstacleSegment.html">dtObstacleSegment</a>* <a class="code" href="classdtObstacleAvoidanceQuery.html#a60779b0d519def7ae2101ad153266cd2">getObstacleSegment</a>(<span class="keyword">const</span> <span class="keywordtype">int</span> i) { <span class="keywordflow">return</span> &amp;m_segments[i]; }</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; </div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;<span class="keyword">private</span>:</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Explicitly disabled copy constructor and copy assignment operator.</span></div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="classdtObstacleAvoidanceQuery.html#a353d5b1f7b8feb1e5867528255924968">dtObstacleAvoidanceQuery</a>(<span class="keyword">const</span> <a class="code" href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a>&amp;);</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a>&amp;);</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; </div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> prepare(<span class="keyword">const</span> <span class="keywordtype">float</span>* pos, <span class="keyword">const</span> <span class="keywordtype">float</span>* dvel);</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">float</span> processSample(<span class="keyword">const</span> <span class="keywordtype">float</span>* vcand, <span class="keyword">const</span> <span class="keywordtype">float</span> cs,</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* pos, <span class="keyword">const</span> <span class="keywordtype">float</span> rad,</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span>* vel, <span class="keyword">const</span> <span class="keywordtype">float</span>* dvel,</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">const</span> <span class="keywordtype">float</span> minPenalty,</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a>* debug);</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="structdtObstacleAvoidanceParams.html">dtObstacleAvoidanceParams</a> m_params;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">float</span> m_invHorizTime;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">float</span> m_vmax;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">float</span> m_invVmax;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">int</span> m_maxCircles;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="structdtObstacleCircle.html">dtObstacleCircle</a>* m_circles;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">int</span> m_ncircles;</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; </div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">int</span> m_maxSegments;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <a class="code" href="structdtObstacleSegment.html">dtObstacleSegment</a>* m_segments;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">int</span> m_nsegments;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<a class="code" href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a>* <a class="code" href="DetourObstacleAvoidance_8h.html#affb10f1420abfa15837a5fb1cdfd9d6e">dtAllocObstacleAvoidanceQuery</a>();</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keywordtype">void</span> <a class="code" href="DetourObstacleAvoidance_8h.html#aef93bd8686c7ffe189f66a3ac387fe22">dtFreeObstacleAvoidanceQuery</a>(<a class="code" href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a>* ptr);</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#endif </span><span class="comment">// DETOUROBSTACLEAVOIDANCE_H</span></div>
<div class="ttc" id="aDetourObstacleAvoidance_8h_html_a73b364d644159af0553fb750f43749bb"><div class="ttname"><a href="DetourObstacleAvoidance_8h.html#a73b364d644159af0553fb750f43749bb">dtAllocObstacleAvoidanceDebugData</a></div><div class="ttdeci">dtObstacleAvoidanceDebugData * dtAllocObstacleAvoidanceDebugData()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:72</div></div>
<div class="ttc" id="aDetourObstacleAvoidance_8h_html_ac8451df4322c140ea80ad2a0f51f1ba3"><div class="ttname"><a href="DetourObstacleAvoidance_8h.html#ac8451df4322c140ea80ad2a0f51f1ba3">DT_MAX_PATTERN_DIVS</a></div><div class="ttdeci">static const int DT_MAX_PATTERN_DIVS</div><div class="ttdoc">Max numver of adaptive divs.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:80</div></div>
<div class="ttc" id="aDetourObstacleAvoidance_8h_html_adc41dc4522eeb508fad47cfa044e7e1b"><div class="ttname"><a href="DetourObstacleAvoidance_8h.html#adc41dc4522eeb508fad47cfa044e7e1b">dtFreeObstacleAvoidanceDebugData</a></div><div class="ttdeci">void dtFreeObstacleAvoidanceDebugData(dtObstacleAvoidanceDebugData *ptr)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:79</div></div>
<div class="ttc" id="aDetourObstacleAvoidance_8h_html_aef93bd8686c7ffe189f66a3ac387fe22"><div class="ttname"><a href="DetourObstacleAvoidance_8h.html#aef93bd8686c7ffe189f66a3ac387fe22">dtFreeObstacleAvoidanceQuery</a></div><div class="ttdeci">void dtFreeObstacleAvoidanceQuery(dtObstacleAvoidanceQuery *ptr)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:201</div></div>
<div class="ttc" id="aDetourObstacleAvoidance_8h_html_afed135d1762d837d2a633452d40cf956"><div class="ttname"><a href="DetourObstacleAvoidance_8h.html#afed135d1762d837d2a633452d40cf956">DT_MAX_PATTERN_RINGS</a></div><div class="ttdeci">static const int DT_MAX_PATTERN_RINGS</div><div class="ttdoc">Max number of adaptive rings.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:81</div></div>
<div class="ttc" id="aDetourObstacleAvoidance_8h_html_affb10f1420abfa15837a5fb1cdfd9d6e"><div class="ttname"><a href="DetourObstacleAvoidance_8h.html#affb10f1420abfa15837a5fb1cdfd9d6e">dtAllocObstacleAvoidanceQuery</a></div><div class="ttdeci">dtObstacleAvoidanceQuery * dtAllocObstacleAvoidanceQuery()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:194</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html">dtObstacleAvoidanceDebugData</a></div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:39</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a2e7d802ea941ad37d5244af91c47f0c9"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a2e7d802ea941ad37d5244af91c47f0c9">dtObstacleAvoidanceDebugData::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:141</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a3bde3898f9ed1ada5e487010e502e4fd"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a3bde3898f9ed1ada5e487010e502e4fd">dtObstacleAvoidanceDebugData::getSamplePenalty</a></div><div class="ttdeci">float getSamplePenalty(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:54</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a48f21bd0b2d2f591290e127b00953ec2"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a48f21bd0b2d2f591290e127b00953ec2">dtObstacleAvoidanceDebugData::getSampleCount</a></div><div class="ttdeci">int getSampleCount() const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:51</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a49f4c177709ecccc77331e1b43ae893c"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a49f4c177709ecccc77331e1b43ae893c">dtObstacleAvoidanceDebugData::init</a></div><div class="ttdeci">bool init(const int maxSamples)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:111</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a54805fdf39b6fb3d294c0610f051b1a0"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a54805fdf39b6fb3d294c0610f051b1a0">dtObstacleAvoidanceDebugData::getSamplePreferredSidePenalty</a></div><div class="ttdeci">float getSamplePreferredSidePenalty(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:57</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a54b01ec0a47c6efd95ebde459791b788"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a54b01ec0a47c6efd95ebde459791b788">dtObstacleAvoidanceDebugData::addSample</a></div><div class="ttdeci">void addSample(const float *vel, const float ssize, const float pen, const float vpen, const float vcpen, const float spen, const float tpen)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:146</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a57737b7b4d07179326e69c70032a9f71"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a57737b7b4d07179326e69c70032a9f71">dtObstacleAvoidanceDebugData::getSampleCollisionTimePenalty</a></div><div class="ttdeci">float getSampleCollisionTimePenalty(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:58</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a682696e8fc9185544690fe3391c9b613"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a682696e8fc9185544690fe3391c9b613">dtObstacleAvoidanceDebugData::getSampleVelocity</a></div><div class="ttdeci">const float * getSampleVelocity(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:52</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_a87816c09e68ea4d93a01b54b2b5025b1"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#a87816c09e68ea4d93a01b54b2b5025b1">dtObstacleAvoidanceDebugData::getSampleSize</a></div><div class="ttdeci">float getSampleSize(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:53</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_aa18a04d3c916740d7ddbd8d747de4e0f"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#aa18a04d3c916740d7ddbd8d747de4e0f">dtObstacleAvoidanceDebugData::getSampleDesiredVelocityPenalty</a></div><div class="ttdeci">float getSampleDesiredVelocityPenalty(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:55</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_aae878af7168a5683cf05cd6f3f9b4cfe"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#aae878af7168a5683cf05cd6f3f9b4cfe">dtObstacleAvoidanceDebugData::normalizeSamples</a></div><div class="ttdeci">void normalizeSamples()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:184</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_ad8b6bd04b9c0a8798a75d83671f74859"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#ad8b6bd04b9c0a8798a75d83671f74859">dtObstacleAvoidanceDebugData::~dtObstacleAvoidanceDebugData</a></div><div class="ttdeci">~dtObstacleAvoidanceDebugData()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:100</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_ae6bce4f174195e5b114a79c13fc46c02"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#ae6bce4f174195e5b114a79c13fc46c02">dtObstacleAvoidanceDebugData::getSampleCurrentVelocityPenalty</a></div><div class="ttdeci">float getSampleCurrentVelocityPenalty(const int i) const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:56</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceDebugData_html_ae6e3e2e17696666996e3971c02989400"><div class="ttname"><a href="classdtObstacleAvoidanceDebugData.html#ae6e3e2e17696666996e3971c02989400">dtObstacleAvoidanceDebugData::dtObstacleAvoidanceDebugData</a></div><div class="ttdeci">dtObstacleAvoidanceDebugData()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:87</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html">dtObstacleAvoidanceQuery</a></div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:98</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a2de5b7639831faa59a708b2ed3cd6f15"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a2de5b7639831faa59a708b2ed3cd6f15">dtObstacleAvoidanceQuery::getObstacleCircle</a></div><div class="ttdeci">const dtObstacleCircle * getObstacleCircle(const int i)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:123</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a353d5b1f7b8feb1e5867528255924968"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a353d5b1f7b8feb1e5867528255924968">dtObstacleAvoidanceQuery::dtObstacleAvoidanceQuery</a></div><div class="ttdeci">dtObstacleAvoidanceQuery()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:209</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a38c5fdba38e19e6c7481b75d089e45b6"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a38c5fdba38e19e6c7481b75d089e45b6">dtObstacleAvoidanceQuery::getObstacleSegmentCount</a></div><div class="ttdeci">int getObstacleSegmentCount() const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:125</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a5209e8625a0618fd9c96ba2d0374d90f"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a5209e8625a0618fd9c96ba2d0374d90f">dtObstacleAvoidanceQuery::sampleVelocityGrid</a></div><div class="ttdeci">int sampleVelocityGrid(const float *pos, const float rad, const float vmax, const float *vel, const float *dvel, float *nvel, const dtObstacleAvoidanceParams *params, dtObstacleAvoidanceDebugData *debug=0)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:435</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a56a81340e58ae836f32c802ab3531772"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a56a81340e58ae836f32c802ab3531772">dtObstacleAvoidanceQuery::~dtObstacleAvoidanceQuery</a></div><div class="ttdeci">~dtObstacleAvoidanceQuery()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:222</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a60779b0d519def7ae2101ad153266cd2"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a60779b0d519def7ae2101ad153266cd2">dtObstacleAvoidanceQuery::getObstacleSegment</a></div><div class="ttdeci">const dtObstacleSegment * getObstacleSegment(const int i)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:126</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a993c62548ead013ac1cb622c43c175ad"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a993c62548ead013ac1cb622c43c175ad">dtObstacleAvoidanceQuery::reset</a></div><div class="ttdeci">void reset()</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:247</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_a9f927e4f09b35473853be3bf7f28129a"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#a9f927e4f09b35473853be3bf7f28129a">dtObstacleAvoidanceQuery::init</a></div><div class="ttdeci">bool init(const int maxCircles, const int maxSegments)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:228</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_ab0abab88b2cba7747e6ed38470ca6eff"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#ab0abab88b2cba7747e6ed38470ca6eff">dtObstacleAvoidanceQuery::addSegment</a></div><div class="ttdeci">void addSegment(const float *p, const float *q)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:266</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_aca861fb3e13b8785124b655b8313de45"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#aca861fb3e13b8785124b655b8313de45">dtObstacleAvoidanceQuery::addCircle</a></div><div class="ttdeci">void addCircle(const float *pos, const float rad, const float *vel, const float *dvel)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:253</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_ae520788c1150ae9c0efa15ddee6b44a6"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#ae520788c1150ae9c0efa15ddee6b44a6">dtObstacleAvoidanceQuery::getObstacleCircleCount</a></div><div class="ttdeci">int getObstacleCircleCount() const</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:122</div></div>
<div class="ttc" id="aclassdtObstacleAvoidanceQuery_html_aecf2d1d53bc0c74997ff3aac1587c242"><div class="ttname"><a href="classdtObstacleAvoidanceQuery.html#aecf2d1d53bc0c74997ff3aac1587c242">dtObstacleAvoidanceQuery::sampleVelocityAdaptive</a></div><div class="ttdeci">int sampleVelocityAdaptive(const float *pos, const float rad, const float vmax, const float *vel, const float *dvel, float *nvel, const dtObstacleAvoidanceParams *params, dtObstacleAvoidanceDebugData *debug=0)</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.cpp:507</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html">dtObstacleAvoidanceParams</a></div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:84</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a20bba3a481f4478eb32fce9a7f61c436"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a20bba3a481f4478eb32fce9a7f61c436">dtObstacleAvoidanceParams::horizTime</a></div><div class="ttdeci">float horizTime</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:90</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a310499f03a1697ab7c32db9565bf8329"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a310499f03a1697ab7c32db9565bf8329">dtObstacleAvoidanceParams::weightSide</a></div><div class="ttdeci">float weightSide</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:88</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a38655cab9f879095f3f0906fdf535f3c"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a38655cab9f879095f3f0906fdf535f3c">dtObstacleAvoidanceParams::gridSize</a></div><div class="ttdeci">unsigned char gridSize</div><div class="ttdoc">grid</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:91</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a5d409ac4b0ab128139caf586f130d079"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a5d409ac4b0ab128139caf586f130d079">dtObstacleAvoidanceParams::weightDesVel</a></div><div class="ttdeci">float weightDesVel</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:86</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a673b877b64fb47f5bb30f44eae61e5b2"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a673b877b64fb47f5bb30f44eae61e5b2">dtObstacleAvoidanceParams::adaptiveDepth</a></div><div class="ttdeci">unsigned char adaptiveDepth</div><div class="ttdoc">adaptive</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:94</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a7cfb9d5a8b8a3358e95755bd81811c26"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a7cfb9d5a8b8a3358e95755bd81811c26">dtObstacleAvoidanceParams::weightToi</a></div><div class="ttdeci">float weightToi</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:89</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_a8725d0bb382f789d2dec1d9a0f28187f"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#a8725d0bb382f789d2dec1d9a0f28187f">dtObstacleAvoidanceParams::adaptiveDivs</a></div><div class="ttdeci">unsigned char adaptiveDivs</div><div class="ttdoc">adaptive</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:92</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_aa0f2c37d4f28a77a68df51efa53f10c8"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#aa0f2c37d4f28a77a68df51efa53f10c8">dtObstacleAvoidanceParams::velBias</a></div><div class="ttdeci">float velBias</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:85</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_ae463a1999935511e7a0467ccedcaff6d"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#ae463a1999935511e7a0467ccedcaff6d">dtObstacleAvoidanceParams::adaptiveRings</a></div><div class="ttdeci">unsigned char adaptiveRings</div><div class="ttdoc">adaptive</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:93</div></div>
<div class="ttc" id="astructdtObstacleAvoidanceParams_html_af7ec3edc6cae60dd41cc8df169b3ae63"><div class="ttname"><a href="structdtObstacleAvoidanceParams.html#af7ec3edc6cae60dd41cc8df169b3ae63">dtObstacleAvoidanceParams::weightCurVel</a></div><div class="ttdeci">float weightCurVel</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:87</div></div>
<div class="ttc" id="astructdtObstacleCircle_html"><div class="ttname"><a href="structdtObstacleCircle.html">dtObstacleCircle</a></div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:23</div></div>
<div class="ttc" id="astructdtObstacleCircle_html_a04d72360e079c808469b6650fa4e3566"><div class="ttname"><a href="structdtObstacleCircle.html#a04d72360e079c808469b6650fa4e3566">dtObstacleCircle::np</a></div><div class="ttdeci">float np[3]</div><div class="ttdoc">Use for side selection during sampling.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:28</div></div>
<div class="ttc" id="astructdtObstacleCircle_html_a14169be1b546aeaf06fb19406f523a08"><div class="ttname"><a href="structdtObstacleCircle.html#a14169be1b546aeaf06fb19406f523a08">dtObstacleCircle::dp</a></div><div class="ttdeci">float dp[3]</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:28</div></div>
<div class="ttc" id="astructdtObstacleCircle_html_a28678b711bbd24d62df014d53b091c68"><div class="ttname"><a href="structdtObstacleCircle.html#a28678b711bbd24d62df014d53b091c68">dtObstacleCircle::p</a></div><div class="ttdeci">float p[3]</div><div class="ttdoc">Position of the obstacle.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:24</div></div>
<div class="ttc" id="astructdtObstacleCircle_html_a4eeaea216bbc81bf865c19d000589195"><div class="ttname"><a href="structdtObstacleCircle.html#a4eeaea216bbc81bf865c19d000589195">dtObstacleCircle::dvel</a></div><div class="ttdeci">float dvel[3]</div><div class="ttdoc">Velocity of the obstacle.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:26</div></div>
<div class="ttc" id="astructdtObstacleCircle_html_a8b044ab90c679b65dc7c326eda19c1e8"><div class="ttname"><a href="structdtObstacleCircle.html#a8b044ab90c679b65dc7c326eda19c1e8">dtObstacleCircle::vel</a></div><div class="ttdeci">float vel[3]</div><div class="ttdoc">Velocity of the obstacle.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:25</div></div>
<div class="ttc" id="astructdtObstacleCircle_html_ae666389d33d7316c1e4e303b13871adc"><div class="ttname"><a href="structdtObstacleCircle.html#ae666389d33d7316c1e4e303b13871adc">dtObstacleCircle::rad</a></div><div class="ttdeci">float rad</div><div class="ttdoc">Radius of the obstacle.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:27</div></div>
<div class="ttc" id="astructdtObstacleSegment_html"><div class="ttname"><a href="structdtObstacleSegment.html">dtObstacleSegment</a></div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:32</div></div>
<div class="ttc" id="astructdtObstacleSegment_html_a26ef06bc8db4ec6ceac546dd4d34da83"><div class="ttname"><a href="structdtObstacleSegment.html#a26ef06bc8db4ec6ceac546dd4d34da83">dtObstacleSegment::touch</a></div><div class="ttdeci">bool touch</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:34</div></div>
<div class="ttc" id="astructdtObstacleSegment_html_a3282730543d772664692b32c15576ee9"><div class="ttname"><a href="structdtObstacleSegment.html#a3282730543d772664692b32c15576ee9">dtObstacleSegment::q</a></div><div class="ttdeci">float q[3]</div><div class="ttdoc">End points of the obstacle segment.</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:33</div></div>
<div class="ttc" id="astructdtObstacleSegment_html_aac975238e1614b0652643f973f32dc78"><div class="ttname"><a href="structdtObstacleSegment.html#aac975238e1614b0652643f973f32dc78">dtObstacleSegment::p</a></div><div class="ttdeci">float p[3]</div><div class="ttdef"><b>Definition:</b> DetourObstacleAvoidance.h:33</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_d8b7533bea1f5af90996fa478721a9c1.html">DetourCrowd</a></li><li class="navelem"><a class="el" href="dir_1af0f37a6235e05524039a045fae72b6.html">Include</a></li><li class="navelem"><a class="el" href="DetourObstacleAvoidance_8h.html">DetourObstacleAvoidance.h</a></li>
&nbsp;&nbsp;<a href="https://github.com/recastnavigation/recastnavigation">Project Home</a>
| <a href="./License.txt">Licence (ZLib)</a>
| Copyright 2009 Mikko Mononen
</ul>
</div>
</body>
</html>