mirror of
https://github.com/recastnavigation/recastnavigation.git
synced 2026-08-30 23:18:40 +00:00
526 lines
36 KiB
HTML
526 lines
36 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: rcPolyMesh Struct 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('structrcPolyMesh.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="#pub-methods">Public Member Functions</a> |
|
|
<a href="#pub-attribs">Public Attributes</a> |
|
|
<a href="structrcPolyMesh-members.html">List of all members</a> </div>
|
|
<div class="headertitle"><div class="title">rcPolyMesh Struct Reference<div class="ingroups"><a class="el" href="group__recast.html">Recast</a></div></div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
|
|
<p>Represents a polygon mesh suitable for use in building a navigation mesh.
|
|
<a href="structrcPolyMesh.html#details">More...</a></p>
|
|
|
|
<p><code>#include <<a class="el" href="Recast_8h_source.html">Recast.h</a>></code></p>
|
|
<table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
|
|
Public Member Functions</h2></td></tr>
|
|
<tr class="memitem:a219af1d7c18ebc7cea0d845c76166123" id="r_a219af1d7c18ebc7cea0d845c76166123"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a219af1d7c18ebc7cea0d845c76166123">rcPolyMesh</a> ()</td></tr>
|
|
<tr class="separator:a219af1d7c18ebc7cea0d845c76166123"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a414a3bc052e13abf77d731da160823d4" id="r_a414a3bc052e13abf77d731da160823d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a414a3bc052e13abf77d731da160823d4">~rcPolyMesh</a> ()</td></tr>
|
|
<tr class="separator:a414a3bc052e13abf77d731da160823d4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
|
|
Public Attributes</h2></td></tr>
|
|
<tr class="memitem:ac8cdf528edb57061e975eae22d45c4b7" id="r_ac8cdf528edb57061e975eae22d45c4b7"><td class="memItemLeft" align="right" valign="top">unsigned short * </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#ac8cdf528edb57061e975eae22d45c4b7">verts</a></td></tr>
|
|
<tr class="memdesc:ac8cdf528edb57061e975eae22d45c4b7"><td class="mdescLeft"> </td><td class="mdescRight">The mesh vertices. [Form: (x, y, z) * <a class="el" href="structrcPolyMesh.html#ac9c762a21343c45649638e02332e53eb" title="The number of vertices.">nverts</a>]. <br /></td></tr>
|
|
<tr class="separator:ac8cdf528edb57061e975eae22d45c4b7"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a74e59a4854036ac66dfac9761b9f59b2" id="r_a74e59a4854036ac66dfac9761b9f59b2"><td class="memItemLeft" align="right" valign="top">unsigned short * </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a74e59a4854036ac66dfac9761b9f59b2">polys</a></td></tr>
|
|
<tr class="memdesc:a74e59a4854036ac66dfac9761b9f59b2"><td class="mdescLeft"> </td><td class="mdescRight">Polygon and neighbor data. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a> * 2 * <a class="el" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a" title="The maximum number of vertices per polygon.">nvp</a>]. <br /></td></tr>
|
|
<tr class="separator:a74e59a4854036ac66dfac9761b9f59b2"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9ae584e99de152fb89d957d43b7becd8" id="r_a9ae584e99de152fb89d957d43b7becd8"><td class="memItemLeft" align="right" valign="top">unsigned short * </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a9ae584e99de152fb89d957d43b7becd8">regs</a></td></tr>
|
|
<tr class="memdesc:a9ae584e99de152fb89d957d43b7becd8"><td class="mdescLeft"> </td><td class="mdescRight">The region id assigned to each polygon. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a>]. <br /></td></tr>
|
|
<tr class="separator:a9ae584e99de152fb89d957d43b7becd8"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab91ec949432297f7d0341a6ba9c88288" id="r_ab91ec949432297f7d0341a6ba9c88288"><td class="memItemLeft" align="right" valign="top">unsigned short * </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#ab91ec949432297f7d0341a6ba9c88288">flags</a></td></tr>
|
|
<tr class="memdesc:ab91ec949432297f7d0341a6ba9c88288"><td class="mdescLeft"> </td><td class="mdescRight">The user defined flags for each polygon. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a>]. <br /></td></tr>
|
|
<tr class="separator:ab91ec949432297f7d0341a6ba9c88288"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa08d7da4e0c97f57151f93d9a7d46bde" id="r_aa08d7da4e0c97f57151f93d9a7d46bde"><td class="memItemLeft" align="right" valign="top">unsigned char * </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#aa08d7da4e0c97f57151f93d9a7d46bde">areas</a></td></tr>
|
|
<tr class="memdesc:aa08d7da4e0c97f57151f93d9a7d46bde"><td class="mdescLeft"> </td><td class="mdescRight">The area id assigned to each polygon. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a>]. <br /></td></tr>
|
|
<tr class="separator:aa08d7da4e0c97f57151f93d9a7d46bde"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ac9c762a21343c45649638e02332e53eb" id="r_ac9c762a21343c45649638e02332e53eb"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#ac9c762a21343c45649638e02332e53eb">nverts</a></td></tr>
|
|
<tr class="memdesc:ac9c762a21343c45649638e02332e53eb"><td class="mdescLeft"> </td><td class="mdescRight">The number of vertices. <br /></td></tr>
|
|
<tr class="separator:ac9c762a21343c45649638e02332e53eb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:abd3e50c1eb0aba7157aa3e2902ae019e" id="r_abd3e50c1eb0aba7157aa3e2902ae019e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#abd3e50c1eb0aba7157aa3e2902ae019e">npolys</a></td></tr>
|
|
<tr class="memdesc:abd3e50c1eb0aba7157aa3e2902ae019e"><td class="mdescLeft"> </td><td class="mdescRight">The number of polygons. <br /></td></tr>
|
|
<tr class="separator:abd3e50c1eb0aba7157aa3e2902ae019e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:afc6261e7cee3e3ff2a83b6ee8baf14a9" id="r_afc6261e7cee3e3ff2a83b6ee8baf14a9"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9">maxpolys</a></td></tr>
|
|
<tr class="memdesc:afc6261e7cee3e3ff2a83b6ee8baf14a9"><td class="mdescLeft"> </td><td class="mdescRight">The number of allocated polygons. <br /></td></tr>
|
|
<tr class="separator:afc6261e7cee3e3ff2a83b6ee8baf14a9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab0c55272b556ffc9db9e643b463cb66a" id="r_ab0c55272b556ffc9db9e643b463cb66a"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a">nvp</a></td></tr>
|
|
<tr class="memdesc:ab0c55272b556ffc9db9e643b463cb66a"><td class="mdescLeft"> </td><td class="mdescRight">The maximum number of vertices per polygon. <br /></td></tr>
|
|
<tr class="separator:ab0c55272b556ffc9db9e643b463cb66a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a63625dd55ca66c97ca29a87a5455cc27" id="r_a63625dd55ca66c97ca29a87a5455cc27"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a63625dd55ca66c97ca29a87a5455cc27">bmin</a> [3]</td></tr>
|
|
<tr class="memdesc:a63625dd55ca66c97ca29a87a5455cc27"><td class="mdescLeft"> </td><td class="mdescRight">The minimum bounds in world space. [(x, y, z)]. <br /></td></tr>
|
|
<tr class="separator:a63625dd55ca66c97ca29a87a5455cc27"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aabdf91f888b1c2dacd077a339a6df3a4" id="r_aabdf91f888b1c2dacd077a339a6df3a4"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#aabdf91f888b1c2dacd077a339a6df3a4">bmax</a> [3]</td></tr>
|
|
<tr class="memdesc:aabdf91f888b1c2dacd077a339a6df3a4"><td class="mdescLeft"> </td><td class="mdescRight">The maximum bounds in world space. [(x, y, z)]. <br /></td></tr>
|
|
<tr class="separator:aabdf91f888b1c2dacd077a339a6df3a4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4c3ca520c55f96037cffcf6a92809563" id="r_a4c3ca520c55f96037cffcf6a92809563"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">cs</a></td></tr>
|
|
<tr class="memdesc:a4c3ca520c55f96037cffcf6a92809563"><td class="mdescLeft"> </td><td class="mdescRight">The size of each cell. (On the xz-plane.) <br /></td></tr>
|
|
<tr class="separator:a4c3ca520c55f96037cffcf6a92809563"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa1ba795ddbb893da041b2a5273716ac5" id="r_aa1ba795ddbb893da041b2a5273716ac5"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5">ch</a></td></tr>
|
|
<tr class="memdesc:aa1ba795ddbb893da041b2a5273716ac5"><td class="mdescLeft"> </td><td class="mdescRight">The height of each cell. (The minimum increment along the y-axis.) <br /></td></tr>
|
|
<tr class="separator:aa1ba795ddbb893da041b2a5273716ac5"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a9f367a88b878ce8029b9709fb27b878b" id="r_a9f367a88b878ce8029b9709fb27b878b"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#a9f367a88b878ce8029b9709fb27b878b">borderSize</a></td></tr>
|
|
<tr class="memdesc:a9f367a88b878ce8029b9709fb27b878b"><td class="mdescLeft"> </td><td class="mdescRight">The AABB border size used to generate the source data from which the mesh was derived. <br /></td></tr>
|
|
<tr class="separator:a9f367a88b878ce8029b9709fb27b878b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab26e9ea24492a2c45b1a2d71ccdb091d" id="r_ab26e9ea24492a2c45b1a2d71ccdb091d"><td class="memItemLeft" align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="structrcPolyMesh.html#ab26e9ea24492a2c45b1a2d71ccdb091d">maxEdgeError</a></td></tr>
|
|
<tr class="memdesc:ab26e9ea24492a2c45b1a2d71ccdb091d"><td class="mdescLeft"> </td><td class="mdescRight">The max error of the polygon edges in the mesh. <br /></td></tr>
|
|
<tr class="separator:ab26e9ea24492a2c45b1a2d71ccdb091d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
|
|
<div class="textblock"><p>Represents a polygon mesh suitable for use in building a navigation mesh. </p>
|
|
<dl class="section user"><dt></dt><dd></dd></dl>
|
|
<p>A mesh of potentially overlapping convex polygons of between three and <a class="el" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a" title="The maximum number of vertices per polygon.">nvp</a> vertices. The mesh exists within the context of an axis-aligned bounding box (AABB) with vertices laid out in an evenly spaced grid, based on the values of <a class="el" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563" title="The size of each cell. (On the xz-plane.)">cs</a> and <a class="el" href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5" title="The height of each cell. (The minimum increment along the y-axis.)">ch</a>.</p>
|
|
<p>The standard process for building a contour set is to allocate it using <a class="el" href="group__recast.html#ga91d620803d27e630a313645045f61a76" title="Allocates a polygon mesh object using the Recast allocator.">rcAllocPolyMesh</a>, the initialize it using <a class="el" href="group__recast.html#ga8688f9cb5dab904bbbe43c362a69e769" title="Builds a polygon mesh from the provided contours.">rcBuildPolyMesh</a></p>
|
|
<p>Example of iterating the polygons:</p>
|
|
<div class="fragment"><div class="line"><span class="comment">// Where mesh is a reference to a rcPolyMesh object.</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a">nvp</a> = mesh.nvp;</div>
|
|
<div class="line"><span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">cs</a> = mesh.cs;</div>
|
|
<div class="line"><span class="keyword">const</span> <span class="keywordtype">float</span> <a class="code hl_variable" href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5">ch</a> = mesh.ch;</div>
|
|
<div class="line"><span class="keyword">const</span> <span class="keywordtype">float</span>* orig = mesh.bmin;</div>
|
|
<div class="line"> </div>
|
|
<div class="line"><span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i < mesh.npolys; ++i)</div>
|
|
<div class="line">{</div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* p = &mesh.polys[i*<a class="code hl_variable" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a">nvp</a>*2];</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">// Iterate the vertices.</span></div>
|
|
<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> vi[3]; <span class="comment">// The vertex indices.</span></div>
|
|
<div class="line"> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j = 0; j < <a class="code hl_variable" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a">nvp</a>; ++j)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="keywordflow">if</span> (p[j] == <a class="code hl_variable" href="Recast_8h.html#a66e1b0e59a450182b5551eb12e68fcfe">RC_MESH_NULL_IDX</a>) </div>
|
|
<div class="line"> <span class="keywordflow">break</span>; <span class="comment">// End of vertices.</span></div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="keywordflow">if</span> (p[j + <a class="code hl_variable" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a">nvp</a>] == <a class="code hl_variable" href="Recast_8h.html#a66e1b0e59a450182b5551eb12e68fcfe">RC_MESH_NULL_IDX</a>)</div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="comment">// The edge beginning with this vertex is a solid border.</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> <span class="keywordflow">else</span></div>
|
|
<div class="line"> {</div>
|
|
<div class="line"> <span class="comment">// The edge beginning with this vertex connects to </span></div>
|
|
<div class="line"> <span class="comment">// polygon p[j + nvp].</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line"> </div>
|
|
<div class="line"> <span class="comment">// Convert to world space.</span></div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* v = &mesh.verts[p[j]*3];</div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keywordtype">float</span> x = orig[0] + v[0]*<a class="code hl_variable" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">cs</a>;</div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keywordtype">float</span> y = orig[1] + v[1]*<a class="code hl_variable" href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5">ch</a>;</div>
|
|
<div class="line"> <span class="keyword">const</span> <span class="keywordtype">float</span> z = orig[2] + v[2]*<a class="code hl_variable" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">cs</a>;</div>
|
|
<div class="line"> <span class="comment">// Do something with the vertices.</span></div>
|
|
<div class="line"> }</div>
|
|
<div class="line">}</div>
|
|
<div class="ttc" id="aRecast_8h_html_a66e1b0e59a450182b5551eb12e68fcfe"><div class="ttname"><a href="Recast_8h.html#a66e1b0e59a450182b5551eb12e68fcfe">RC_MESH_NULL_IDX</a></div><div class="ttdeci">static const unsigned short RC_MESH_NULL_IDX</div><div class="ttdoc">An value which indicates an invalid index within a mesh.</div><div class="ttdef"><b>Definition</b> Recast.h:630</div></div>
|
|
<div class="ttc" id="astructrcPolyMesh_html_a4c3ca520c55f96037cffcf6a92809563"><div class="ttname"><a href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">rcPolyMesh::cs</a></div><div class="ttdeci">float cs</div><div class="ttdoc">The size of each cell. (On the xz-plane.)</div><div class="ttdef"><b>Definition</b> Recast.h:472</div></div>
|
|
<div class="ttc" id="astructrcPolyMesh_html_aa1ba795ddbb893da041b2a5273716ac5"><div class="ttname"><a href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5">rcPolyMesh::ch</a></div><div class="ttdeci">float ch</div><div class="ttdoc">The height of each cell. (The minimum increment along the y-axis.)</div><div class="ttdef"><b>Definition</b> Recast.h:473</div></div>
|
|
<div class="ttc" id="astructrcPolyMesh_html_ab0c55272b556ffc9db9e643b463cb66a"><div class="ttname"><a href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a">rcPolyMesh::nvp</a></div><div class="ttdeci">int nvp</div><div class="ttdoc">The maximum number of vertices per polygon.</div><div class="ttdef"><b>Definition</b> Recast.h:469</div></div>
|
|
</div><!-- fragment --><dl class="section see"><dt>See also</dt><dd><a class="el" href="group__recast.html#ga91d620803d27e630a313645045f61a76" title="Allocates a polygon mesh object using the Recast allocator.">rcAllocPolyMesh</a>, <a class="el" href="group__recast.html#ga34925f90f2e5da1f84c383bfb0ff8e9f" title="Frees the specified polygon mesh using the Recast allocator.">rcFreePolyMesh</a>, <a class="el" href="group__recast.html#ga8688f9cb5dab904bbbe43c362a69e769" title="Builds a polygon mesh from the provided contours.">rcBuildPolyMesh</a> </dd></dl>
|
|
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
|
|
<a id="a219af1d7c18ebc7cea0d845c76166123" name="a219af1d7c18ebc7cea0d845c76166123"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a219af1d7c18ebc7cea0d845c76166123">◆ </a></span>rcPolyMesh()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rcPolyMesh::rcPolyMesh </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a414a3bc052e13abf77d731da160823d4" name="a414a3bc052e13abf77d731da160823d4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a414a3bc052e13abf77d731da160823d4">◆ </a></span>~rcPolyMesh()</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rcPolyMesh::~rcPolyMesh </td>
|
|
<td>(</td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
</div>
|
|
</div>
|
|
<h2 class="groupheader">Member Data Documentation</h2>
|
|
<a id="aa08d7da4e0c97f57151f93d9a7d46bde" name="aa08d7da4e0c97f57151f93d9a7d46bde"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa08d7da4e0c97f57151f93d9a7d46bde">◆ </a></span>areas</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rcPolyMesh::areas</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The area id assigned to each polygon. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a>]. </p>
|
|
<dl class="section user"><dt></dt><dd></dd></dl>
|
|
<p>The standard build process assigns the value of <a class="el" href="Recast_8h.html#a55c878bf81a2811829c8c5e491be41cb" title="The default area id used to indicate a walkable polygon.">RC_WALKABLE_AREA</a> to all walkable polygons. This value can then be changed to meet user requirements. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aabdf91f888b1c2dacd077a339a6df3a4" name="aabdf91f888b1c2dacd077a339a6df3a4"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aabdf91f888b1c2dacd077a339a6df3a4">◆ </a></span>bmax</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rcPolyMesh::bmax[3]</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The maximum bounds in world space. [(x, y, z)]. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a63625dd55ca66c97ca29a87a5455cc27" name="a63625dd55ca66c97ca29a87a5455cc27"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a63625dd55ca66c97ca29a87a5455cc27">◆ </a></span>bmin</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rcPolyMesh::bmin[3]</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The minimum bounds in world space. [(x, y, z)]. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a9f367a88b878ce8029b9709fb27b878b" name="a9f367a88b878ce8029b9709fb27b878b"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9f367a88b878ce8029b9709fb27b878b">◆ </a></span>borderSize</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rcPolyMesh::borderSize</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The AABB border size used to generate the source data from which the mesh was derived. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="aa1ba795ddbb893da041b2a5273716ac5" name="aa1ba795ddbb893da041b2a5273716ac5"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#aa1ba795ddbb893da041b2a5273716ac5">◆ </a></span>ch</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rcPolyMesh::ch</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The height of each cell. (The minimum increment along the y-axis.) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a4c3ca520c55f96037cffcf6a92809563" name="a4c3ca520c55f96037cffcf6a92809563"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a4c3ca520c55f96037cffcf6a92809563">◆ </a></span>cs</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rcPolyMesh::cs</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The size of each cell. (On the xz-plane.) </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab91ec949432297f7d0341a6ba9c88288" name="ab91ec949432297f7d0341a6ba9c88288"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab91ec949432297f7d0341a6ba9c88288">◆ </a></span>flags</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned short* rcPolyMesh::flags</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The user defined flags for each polygon. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a>]. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab26e9ea24492a2c45b1a2d71ccdb091d" name="ab26e9ea24492a2c45b1a2d71ccdb091d"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab26e9ea24492a2c45b1a2d71ccdb091d">◆ </a></span>maxEdgeError</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">float rcPolyMesh::maxEdgeError</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The max error of the polygon edges in the mesh. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="afc6261e7cee3e3ff2a83b6ee8baf14a9" name="afc6261e7cee3e3ff2a83b6ee8baf14a9"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#afc6261e7cee3e3ff2a83b6ee8baf14a9">◆ </a></span>maxpolys</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rcPolyMesh::maxpolys</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The number of allocated polygons. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="abd3e50c1eb0aba7157aa3e2902ae019e" name="abd3e50c1eb0aba7157aa3e2902ae019e"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#abd3e50c1eb0aba7157aa3e2902ae019e">◆ </a></span>npolys</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rcPolyMesh::npolys</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The number of polygons. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac9c762a21343c45649638e02332e53eb" name="ac9c762a21343c45649638e02332e53eb"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac9c762a21343c45649638e02332e53eb">◆ </a></span>nverts</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rcPolyMesh::nverts</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The number of vertices. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ab0c55272b556ffc9db9e643b463cb66a" name="ab0c55272b556ffc9db9e643b463cb66a"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ab0c55272b556ffc9db9e643b463cb66a">◆ </a></span>nvp</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int rcPolyMesh::nvp</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The maximum number of vertices per polygon. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="a74e59a4854036ac66dfac9761b9f59b2" name="a74e59a4854036ac66dfac9761b9f59b2"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a74e59a4854036ac66dfac9761b9f59b2">◆ </a></span>polys</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rcPolyMesh::polys</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Polygon and neighbor data. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a> * 2 * <a class="el" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a" title="The maximum number of vertices per polygon.">nvp</a>]. </p>
|
|
<dl class="section user"><dt></dt><dd></dd></dl>
|
|
<p>Each entry is <code>2 * <a class="el" href="structrcPolyMesh.html#ab0c55272b556ffc9db9e643b463cb66a" title="The maximum number of vertices per polygon.">nvp</a></code> in length. The first half of the entry contains the indices of the polygon. The first instance of <a class="el" href="Recast_8h.html#a66e1b0e59a450182b5551eb12e68fcfe" title="An value which indicates an invalid index within a mesh.">RC_MESH_NULL_IDX</a> indicates the end of the indices for the entry. The second half contains indices to neighbor polygons. A value of <a class="el" href="Recast_8h.html#a66e1b0e59a450182b5551eb12e68fcfe" title="An value which indicates an invalid index within a mesh.">RC_MESH_NULL_IDX</a> indicates no connection for the associated edge. (I.e. The edge is a solid border.)</p>
|
|
<p>For example: </p><pre>
|
|
nvp = 6
|
|
For the entry: (1, 3, 4, 8, RC_MESH_NULL_IDX, RC_MESH_NULL_IDX,
|
|
18, RC_MESH_NULL_IDX , 21, RC_MESH_NULL_IDX, RC_MESH_NULL_IDX, RC_MESH_NULL_IDX)
|
|
|
|
(1, 3, 4, 8) defines a polygon with 4 vertices.
|
|
Edge 1->3 is shared with polygon 18.
|
|
Edge 4->8 is shared with polygon 21.
|
|
Edges 3->4 and 4->8 are border edges not shared with any other polygon.
|
|
</pre>
|
|
</div>
|
|
</div>
|
|
<a id="a9ae584e99de152fb89d957d43b7becd8" name="a9ae584e99de152fb89d957d43b7becd8"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#a9ae584e99de152fb89d957d43b7becd8">◆ </a></span>regs</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">unsigned short* rcPolyMesh::regs</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The region id assigned to each polygon. [Length: <a class="el" href="structrcPolyMesh.html#afc6261e7cee3e3ff2a83b6ee8baf14a9" title="The number of allocated polygons.">maxpolys</a>]. </p>
|
|
|
|
</div>
|
|
</div>
|
|
<a id="ac8cdf528edb57061e975eae22d45c4b7" name="ac8cdf528edb57061e975eae22d45c4b7"></a>
|
|
<h2 class="memtitle"><span class="permalink"><a href="#ac8cdf528edb57061e975eae22d45c4b7">◆ </a></span>verts</h2>
|
|
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">rcPolyMesh::verts</td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>The mesh vertices. [Form: (x, y, z) * <a class="el" href="structrcPolyMesh.html#ac9c762a21343c45649638e02332e53eb" title="The number of vertices.">nverts</a>]. </p>
|
|
<dl class="section user"><dt></dt><dd></dd></dl>
|
|
<p>The values of <a class="el" href="structrcPolyMesh.html#a63625dd55ca66c97ca29a87a5455cc27" title="The minimum bounds in world space. [(x, y, z)].">bmin</a> ,<a class="el" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563" title="The size of each cell. (On the xz-plane.)">cs</a>, and <a class="el" href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5" title="The height of each cell. (The minimum increment along the y-axis.)">ch</a> are used to convert vertex coordinates to world space as follows:</p>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">float</span> worldX = <a class="code hl_variable" href="structrcPolyMesh.html#a63625dd55ca66c97ca29a87a5455cc27">bmin</a>[0] + <a class="code hl_variable" href="structrcPolyMesh.html#ac8cdf528edb57061e975eae22d45c4b7">verts</a>[i*3+0] * <a class="code hl_variable" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">cs</a></div>
|
|
<div class="line"><span class="keywordtype">float</span> worldY = <a class="code hl_variable" href="structrcPolyMesh.html#a63625dd55ca66c97ca29a87a5455cc27">bmin</a>[1] + <a class="code hl_variable" href="structrcPolyMesh.html#ac8cdf528edb57061e975eae22d45c4b7">verts</a>[i*3+1] * <a class="code hl_variable" href="structrcPolyMesh.html#aa1ba795ddbb893da041b2a5273716ac5">ch</a></div>
|
|
<div class="line"><span class="keywordtype">float</span> worldZ = <a class="code hl_variable" href="structrcPolyMesh.html#a63625dd55ca66c97ca29a87a5455cc27">bmin</a>[2] + <a class="code hl_variable" href="structrcPolyMesh.html#ac8cdf528edb57061e975eae22d45c4b7">verts</a>[i*3+2] * <a class="code hl_variable" href="structrcPolyMesh.html#a4c3ca520c55f96037cffcf6a92809563">cs</a></div>
|
|
<div class="ttc" id="astructrcPolyMesh_html_a63625dd55ca66c97ca29a87a5455cc27"><div class="ttname"><a href="structrcPolyMesh.html#a63625dd55ca66c97ca29a87a5455cc27">rcPolyMesh::bmin</a></div><div class="ttdeci">float bmin[3]</div><div class="ttdoc">The minimum bounds in world space. [(x, y, z)].</div><div class="ttdef"><b>Definition</b> Recast.h:470</div></div>
|
|
<div class="ttc" id="astructrcPolyMesh_html_ac8cdf528edb57061e975eae22d45c4b7"><div class="ttname"><a href="structrcPolyMesh.html#ac8cdf528edb57061e975eae22d45c4b7">rcPolyMesh::verts</a></div><div class="ttdeci">unsigned short * verts</div><div class="ttdoc">The mesh vertices. [Form: (x, y, z) * nverts].</div><div class="ttdef"><b>Definition</b> Recast.h:461</div></div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<hr/>The documentation for this struct was generated from the following files:<ul>
|
|
<li><a class="el" href="Recast_8h_source.html">Recast.h</a></li>
|
|
<li><a class="el" href="Recast__api_8txt.html">Recast_api.txt</a></li>
|
|
<li><a class="el" href="Recast_8cpp.html">Recast.cpp</a></li>
|
|
</ul>
|
|
</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="structrcPolyMesh.html">rcPolyMesh</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>
|