mirror of
https://github.com/recastnavigation/recastnavigation.git
synced 2026-07-21 05:29:05 +00:00
606 lines
32 KiB
HTML
606 lines
32 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" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.9.8"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>Recast Navigation: RecastRasterization.cpp File Reference</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 id="projectrow">
|
|
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
|
|
<td id="projectalign">
|
|
<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.8 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(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:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(document).ready(function(){initNavTree('RecastRasterization_8cpp.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">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle"><div class="title">RecastRasterization.cpp File Reference</div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="textblock"><code>#include <math.h></code><br />
|
|
<code>#include "<a class="el" href="Recast_8h_source.html">Recast.h</a>"</code><br />
|
|
<code>#include "<a class="el" href="RecastAlloc_8h_source.html">RecastAlloc.h</a>"</code><br />
|
|
<code>#include "<a class="el" href="RecastAssert_8h_source.html">RecastAssert.h</a>"</code><br />
|
|
</div><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:a62b583caa984b1e6c218932f3218789b" id="r_a62b583caa984b1e6c218932f3218789b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789b">rcAxis</a> { <a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789ba4f552701c96db6d643c5ae3741030fda">RC_AXIS_X</a> = 0
|
|
, <a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789ba505b172a6e189588ed8d8607e857f432">RC_AXIS_Y</a> = 1
|
|
, <a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789ba5b56c442d066db5cc6e612ae9bcadcf4">RC_AXIS_Z</a> = 2
|
|
}</td></tr>
|
|
<tr class="separator:a62b583caa984b1e6c218932f3218789b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:ad16e8ad5fc4ebec8d71d58217215ff60" id="r_ad16e8ad5fc4ebec8d71d58217215ff60"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#ad16e8ad5fc4ebec8d71d58217215ff60">overlapBounds</a> (const float *aMin, const float *aMax, const float *bMin, const float *bMax)</td></tr>
|
|
<tr class="memdesc:ad16e8ad5fc4ebec8d71d58217215ff60"><td class="mdescLeft"> </td><td class="mdescRight">Check whether two bounding boxes overlap. <br /></td></tr>
|
|
<tr class="separator:ad16e8ad5fc4ebec8d71d58217215ff60"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afe4a4f775822e89230ebda67d4046989" id="r_afe4a4f775822e89230ebda67d4046989"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="structrcSpan.html">rcSpan</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#afe4a4f775822e89230ebda67d4046989">allocSpan</a> (<a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield)</td></tr>
|
|
<tr class="memdesc:afe4a4f775822e89230ebda67d4046989"><td class="mdescLeft"> </td><td class="mdescRight">Allocates a new span in the heightfield. <br /></td></tr>
|
|
<tr class="separator:afe4a4f775822e89230ebda67d4046989"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a173b706a0029e34cb5ff8dd702918527" id="r_a173b706a0029e34cb5ff8dd702918527"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#a173b706a0029e34cb5ff8dd702918527">freeSpan</a> (<a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, <a class="el" href="structrcSpan.html">rcSpan</a> *span)</td></tr>
|
|
<tr class="memdesc:a173b706a0029e34cb5ff8dd702918527"><td class="mdescLeft"> </td><td class="mdescRight">Releases the memory used by the span back to the heightfield, so it can be re-used for new spans. <br /></td></tr>
|
|
<tr class="separator:a173b706a0029e34cb5ff8dd702918527"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa4ff34a2ddb3783399f347167e294fb3" id="r_aa4ff34a2ddb3783399f347167e294fb3"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#aa4ff34a2ddb3783399f347167e294fb3">addSpan</a> (<a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const int x, const int z, const unsigned short min, const unsigned short max, const unsigned char areaID, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:aa4ff34a2ddb3783399f347167e294fb3"><td class="mdescLeft"> </td><td class="mdescRight">Adds a span to the heightfield. <br /></td></tr>
|
|
<tr class="separator:aa4ff34a2ddb3783399f347167e294fb3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga86f63cef2e174a1f4cb050767090beeb" id="r_ga86f63cef2e174a1f4cb050767090beeb"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__recast.html#ga86f63cef2e174a1f4cb050767090beeb">rcAddSpan</a> (<a class="el" href="classrcContext.html">rcContext</a> *context, <a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const int x, const int z, const unsigned short spanMin, const unsigned short spanMax, const unsigned char areaID, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:ga86f63cef2e174a1f4cb050767090beeb"><td class="mdescLeft"> </td><td class="mdescRight">Adds a span to the specified heightfield. <br /></td></tr>
|
|
<tr class="separator:ga86f63cef2e174a1f4cb050767090beeb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:af54026b5ecdfeabb867b7147d8730303" id="r_af54026b5ecdfeabb867b7147d8730303"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#af54026b5ecdfeabb867b7147d8730303">dividePoly</a> (const float *inVerts, int inVertsCount, float *outVerts1, int *outVerts1Count, float *outVerts2, int *outVerts2Count, float axisOffset, <a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789b">rcAxis</a> axis)</td></tr>
|
|
<tr class="memdesc:af54026b5ecdfeabb867b7147d8730303"><td class="mdescLeft"> </td><td class="mdescRight">Divides a convex polygon of max 12 vertices into two convex polygons across a separating axis. <br /></td></tr>
|
|
<tr class="separator:af54026b5ecdfeabb867b7147d8730303"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a395fca228305f4ce5e001277d6e11ed7" id="r_a395fca228305f4ce5e001277d6e11ed7"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="RecastRasterization_8cpp.html#a395fca228305f4ce5e001277d6e11ed7">rasterizeTri</a> (const float *v0, const float *v1, const float *v2, const unsigned char areaID, <a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const float *heightfieldBBMin, const float *heightfieldBBMax, const float cellSize, const float inverseCellSize, const float inverseCellHeight, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:a395fca228305f4ce5e001277d6e11ed7"><td class="mdescLeft"> </td><td class="mdescRight">Rasterize a single triangle to the heightfield. <br /></td></tr>
|
|
<tr class="separator:a395fca228305f4ce5e001277d6e11ed7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga23a98560fac96a1d2eb9f01c6617e927" id="r_ga23a98560fac96a1d2eb9f01c6617e927"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__recast.html#ga23a98560fac96a1d2eb9f01c6617e927">rcRasterizeTriangle</a> (<a class="el" href="classrcContext.html">rcContext</a> *context, const float *v0, const float *v1, const float *v2, const unsigned char areaID, <a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:ga23a98560fac96a1d2eb9f01c6617e927"><td class="mdescLeft"> </td><td class="mdescRight">Rasterizes a single triangle into the specified heightfield. <br /></td></tr>
|
|
<tr class="separator:ga23a98560fac96a1d2eb9f01c6617e927"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gadac24191b69876017ed01d85e0a44645" id="r_gadac24191b69876017ed01d85e0a44645"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__recast.html#gadac24191b69876017ed01d85e0a44645">rcRasterizeTriangles</a> (<a class="el" href="classrcContext.html">rcContext</a> *context, const float *verts, const int, const int *tris, const unsigned char *triAreaIDs, const int numTris, <a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:gadac24191b69876017ed01d85e0a44645"><td class="mdescLeft"> </td><td class="mdescRight">Rasterizes an indexed triangle mesh into the specified heightfield. <br /></td></tr>
|
|
<tr class="separator:gadac24191b69876017ed01d85e0a44645"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ga40ce03082b89fd8d890fa65d9b3d64d9" id="r_ga40ce03082b89fd8d890fa65d9b3d64d9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__recast.html#ga40ce03082b89fd8d890fa65d9b3d64d9">rcRasterizeTriangles</a> (<a class="el" href="classrcContext.html">rcContext</a> *context, const float *verts, const int, const unsigned short *tris, const unsigned char *triAreaIDs, const int numTris, <a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:ga40ce03082b89fd8d890fa65d9b3d64d9"><td class="mdescLeft"> </td><td class="mdescRight">Rasterizes an indexed triangle mesh into the specified heightfield. <br /></td></tr>
|
|
<tr class="separator:ga40ce03082b89fd8d890fa65d9b3d64d9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:gaebc5f38893ede7ee5d107a9ad2dbd369" id="r_gaebc5f38893ede7ee5d107a9ad2dbd369"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="group__recast.html#gaebc5f38893ede7ee5d107a9ad2dbd369">rcRasterizeTriangles</a> (<a class="el" href="classrcContext.html">rcContext</a> *context, const float *verts, const unsigned char *triAreaIDs, const int numTris, <a class="el" href="structrcHeightfield.html">rcHeightfield</a> &heightfield, const int flagMergeThreshold)</td></tr>
|
|
<tr class="memdesc:gaebc5f38893ede7ee5d107a9ad2dbd369"><td class="mdescLeft"> </td><td class="mdescRight">Rasterizes a triangle list into the specified heightfield. <br /></td></tr>
|
|
<tr class="separator:gaebc5f38893ede7ee5d107a9ad2dbd369"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Enumeration Type Documentation</h2>
|
|
<a id="a62b583caa984b1e6c218932f3218789b" name="a62b583caa984b1e6c218932f3218789b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a62b583caa984b1e6c218932f3218789b">◆ </a></span>rcAxis</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">enum <a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789b">rcAxis</a></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
<table class="fieldtable">
|
|
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a62b583caa984b1e6c218932f3218789ba4f552701c96db6d643c5ae3741030fda" name="a62b583caa984b1e6c218932f3218789ba4f552701c96db6d643c5ae3741030fda"></a>RC_AXIS_X </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="a62b583caa984b1e6c218932f3218789ba505b172a6e189588ed8d8607e857f432" name="a62b583caa984b1e6c218932f3218789ba505b172a6e189588ed8d8607e857f432"></a>RC_AXIS_Y </td><td class="fielddoc"></td></tr>
|
|
<tr><td class="fieldname"><a id="a62b583caa984b1e6c218932f3218789ba5b56c442d066db5cc6e612ae9bcadcf4" name="a62b583caa984b1e6c218932f3218789ba5b56c442d066db5cc6e612ae9bcadcf4"></a>RC_AXIS_Z </td><td class="fielddoc"></td></tr>
|
|
</table>
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a id="aa4ff34a2ddb3783399f347167e294fb3" name="aa4ff34a2ddb3783399f347167e294fb3"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa4ff34a2ddb3783399f347167e294fb3">◆ </a></span>addSpan()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static bool addSpan </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structrcHeightfield.html">rcHeightfield</a> & </td>
|
|
<td class="paramname"><em>heightfield</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const int </td>
|
|
<td class="paramname"><em>x</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const int </td>
|
|
<td class="paramname"><em>z</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned short </td>
|
|
<td class="paramname"><em>min</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned short </td>
|
|
<td class="paramname"><em>max</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned char </td>
|
|
<td class="paramname"><em>areaID</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const int </td>
|
|
<td class="paramname"><em>flagMergeThreshold</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Adds a span to the heightfield. </p>
|
|
<p>If the new span overlaps existing spans, it will merge the new span with the existing ones.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">heightfield</td><td>Heightfield to add spans to </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">x</td><td>The new span's column cell x index </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">z</td><td>The new span's column cell z index </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The new span's minimum cell index </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The new span's maximum cell index </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">areaID</td><td>The new span's area type ID </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">flagMergeThreshold</td><td>How close two spans maximum extents need to be to merge area type IDs </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afe4a4f775822e89230ebda67d4046989" name="afe4a4f775822e89230ebda67d4046989"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afe4a4f775822e89230ebda67d4046989">◆ </a></span>allocSpan()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static <a class="el" href="structrcSpan.html">rcSpan</a> * allocSpan </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structrcHeightfield.html">rcHeightfield</a> & </td>
|
|
<td class="paramname"><em>heightfield</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Allocates a new span in the heightfield. </p>
|
|
<p>Use a memory pool and free list to minimize actual allocations.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">heightfield</td><td>The heightfield </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>A pointer to the allocated or re-used span memory. <br />
|
|
</dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="af54026b5ecdfeabb867b7147d8730303" name="af54026b5ecdfeabb867b7147d8730303"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#af54026b5ecdfeabb867b7147d8730303">◆ </a></span>dividePoly()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void dividePoly </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>inVerts</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>inVertsCount</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float * </td>
|
|
<td class="paramname"><em>outVerts1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"><em>outVerts1Count</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float * </td>
|
|
<td class="paramname"><em>outVerts2</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int * </td>
|
|
<td class="paramname"><em>outVerts2Count</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">float </td>
|
|
<td class="paramname"><em>axisOffset</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="RecastRasterization_8cpp.html#a62b583caa984b1e6c218932f3218789b">rcAxis</a> </td>
|
|
<td class="paramname"><em>axis</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Divides a convex polygon of max 12 vertices into two convex polygons across a separating axis. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">inVerts</td><td>The input polygon vertices </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">inVertsCount</td><td>The number of input polygon vertices </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">outVerts1</td><td>Resulting polygon 1's vertices </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">outVerts1Count</td><td>The number of resulting polygon 1 vertices </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">outVerts2</td><td>Resulting polygon 2's vertices </td></tr>
|
|
<tr><td class="paramdir">[out]</td><td class="paramname">outVerts2Count</td><td>The number of resulting polygon 2 vertices </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">axisOffset</td><td>THe offset along the specified axis </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">axis</td><td>The separating axis </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a173b706a0029e34cb5ff8dd702918527" name="a173b706a0029e34cb5ff8dd702918527"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a173b706a0029e34cb5ff8dd702918527">◆ </a></span>freeSpan()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static void freeSpan </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structrcHeightfield.html">rcHeightfield</a> & </td>
|
|
<td class="paramname"><em>heightfield</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structrcSpan.html">rcSpan</a> * </td>
|
|
<td class="paramname"><em>span</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Releases the memory used by the span back to the heightfield, so it can be re-used for new spans. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">heightfield</td><td>The heightfield. </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">span</td><td>A pointer to the span to free </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ad16e8ad5fc4ebec8d71d58217215ff60" name="ad16e8ad5fc4ebec8d71d58217215ff60"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ad16e8ad5fc4ebec8d71d58217215ff60">◆ </a></span>overlapBounds()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static bool overlapBounds </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>aMin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>aMax</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>bMin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>bMax</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Check whether two bounding boxes overlap. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">aMin</td><td>Min axis extents of bounding box A </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">aMax</td><td>Max axis extents of bounding box A </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">bMin</td><td>Min axis extents of bounding box B </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">bMax</td><td>Max axis extents of bounding box B </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if the two bounding boxes overlap. False otherwise. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a395fca228305f4ce5e001277d6e11ed7" name="a395fca228305f4ce5e001277d6e11ed7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a395fca228305f4ce5e001277d6e11ed7">◆ </a></span>rasterizeTri()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="mlabels">
|
|
<tr>
|
|
<td class="mlabels-left">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">static bool rasterizeTri </td>
|
|
<td>(</td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>v0</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>v1</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>v2</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const unsigned char </td>
|
|
<td class="paramname"><em>areaID</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"><a class="el" href="structrcHeightfield.html">rcHeightfield</a> & </td>
|
|
<td class="paramname"><em>heightfield</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>heightfieldBBMin</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float * </td>
|
|
<td class="paramname"><em>heightfieldBBMax</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float </td>
|
|
<td class="paramname"><em>cellSize</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float </td>
|
|
<td class="paramname"><em>inverseCellSize</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const float </td>
|
|
<td class="paramname"><em>inverseCellHeight</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const int </td>
|
|
<td class="paramname"><em>flagMergeThreshold</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
<td class="mlabels-right">
|
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Rasterize a single triangle to the heightfield. </p>
|
|
<p>This code is extremely hot, so much care should be given to maintaining maximum perf here.</p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">v0</td><td>Triangle vertex 0 </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">v1</td><td>Triangle vertex 1 </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">v2</td><td>Triangle vertex 2 </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">areaID</td><td>The area ID to assign to the rasterized spans </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">heightfield</td><td>Heightfield to rasterize into </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">heightfieldBBMin</td><td>The min extents of the heightfield bounding box </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">heightfieldBBMax</td><td>The max extents of the heightfield bounding box </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">cellSize</td><td>The x and z axis size of a voxel in the heightfield </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">inverseCellSize</td><td>1 / cellSize </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">inverseCellHeight</td><td>1 / cellHeight </td></tr>
|
|
<tr><td class="paramdir">[in]</td><td class="paramname">flagMergeThreshold</td><td>The threshold in which area flags will be merged </td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if the operation completes successfully. false if there was an error adding spans to the heightfield. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
</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_e6cf54c9d4d29ff4a28752d861cf44fa.html">Recast</a></li><li class="navelem"><a class="el" href="dir_fe7f4084ac0458032f1df717ceae8313.html">Source</a></li><li class="navelem"><a class="el" href="RecastRasterization_8cpp.html">RecastRasterization.cpp</a></li>
|
|
<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>
|