<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.8.3.1"/>
<title>Chipmunk2D Pro API Reference: Misc</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="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.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 style="padding-left: 0.5em;">
<div id="projectname">Chipmunk2D Pro API Reference
 <span id="projectnumber">7.0.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Properties</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Pages</a></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="summary">
<a href="#define-members">Macros</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">Misc</div> </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga6d034fec4d7962b6f20f9e243527c560"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6d034fec4d7962b6f20f9e243527c560"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga6d034fec4d7962b6f20f9e243527c560">CP_BUFFER_BYTES</a>   (32*1024)</td></tr>
<tr class="memdesc:ga6d034fec4d7962b6f20f9e243527c560"><td class="mdescLeft"> </td><td class="mdescRight">Allocated size for various Chipmunk buffers. <br/></td></tr>
<tr class="separator:ga6d034fec4d7962b6f20f9e243527c560"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac88bab87ecc7db6cc222679bf6082e9b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gac88bab87ecc7db6cc222679bf6082e9b"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gac88bab87ecc7db6cc222679bf6082e9b">cpcalloc</a>   calloc</td></tr>
<tr class="memdesc:gac88bab87ecc7db6cc222679bf6082e9b"><td class="mdescLeft"> </td><td class="mdescRight">Chipmunk calloc() alias. <br/></td></tr>
<tr class="separator:gac88bab87ecc7db6cc222679bf6082e9b"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab3544b888840ed34e49bb0559d6849a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab3544b888840ed34e49bb0559d6849a8"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gab3544b888840ed34e49bb0559d6849a8">cprealloc</a>   realloc</td></tr>
<tr class="memdesc:gab3544b888840ed34e49bb0559d6849a8"><td class="mdescLeft"> </td><td class="mdescRight">Chipmunk realloc() alias. <br/></td></tr>
<tr class="separator:gab3544b888840ed34e49bb0559d6849a8"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga14627263deb67605201281bac734eb04"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga14627263deb67605201281bac734eb04"></a>
#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga14627263deb67605201281bac734eb04">cpfree</a>   free</td></tr>
<tr class="memdesc:ga14627263deb67605201281bac734eb04"><td class="mdescLeft"> </td><td class="mdescRight">Chipmunk free() alias. <br/></td></tr>
<tr class="separator:ga14627263deb67605201281bac734eb04"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9abe29a1fe6d1f2041e95f2fb2e2ce1c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9abe29a1fe6d1f2041e95f2fb2e2ce1c">CP_CONVEX_HULL</a>(__count__, __verts__, __count_var__, __verts_var__)</td></tr>
<tr class="memdesc:ga9abe29a1fe6d1f2041e95f2fb2e2ce1c"><td class="mdescLeft"> </td><td class="mdescRight">Convenience macro to work with cpConvexHull. <a href="#ga9abe29a1fe6d1f2041e95f2fb2e2ce1c">More...</a><br/></td></tr>
<tr class="separator:ga9abe29a1fe6d1f2041e95f2fb2e2ce1c"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaf1dfe63f43b3dd42e47f37f16ae2dfe4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaf1dfe63f43b3dd42e47f37f16ae2dfe4">cpMomentForCircle</a> (<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> m, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> r1, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> r2, <a class="el" href="structcp_vect.html">cpVect</a> offset)</td></tr>
<tr class="memdesc:gaf1dfe63f43b3dd42e47f37f16ae2dfe4"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the moment of inertia for a circle. <a href="#gaf1dfe63f43b3dd42e47f37f16ae2dfe4">More...</a><br/></td></tr>
<tr class="separator:gaf1dfe63f43b3dd42e47f37f16ae2dfe4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9293a100703445eed36e8673eefe42a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9293a100703445eed36e8673eefe42a1">cpAreaForCircle</a> (<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> r1, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> r2)</td></tr>
<tr class="memdesc:ga9293a100703445eed36e8673eefe42a1"><td class="mdescLeft"> </td><td class="mdescRight">Calculate area of a hollow circle. <a href="#ga9293a100703445eed36e8673eefe42a1">More...</a><br/></td></tr>
<tr class="separator:ga9293a100703445eed36e8673eefe42a1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga1df4d84f2b6ab3cb74d790b55e6a16d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga1df4d84f2b6ab3cb74d790b55e6a16d4">cpMomentForSegment</a> (<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> m, <a class="el" href="structcp_vect.html">cpVect</a> a, <a class="el" href="structcp_vect.html">cpVect</a> b, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> radius)</td></tr>
<tr class="memdesc:ga1df4d84f2b6ab3cb74d790b55e6a16d4"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the moment of inertia for a line segment. <a href="#ga1df4d84f2b6ab3cb74d790b55e6a16d4">More...</a><br/></td></tr>
<tr class="separator:ga1df4d84f2b6ab3cb74d790b55e6a16d4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5749ef4558e38005cea36d5eac560ca5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5749ef4558e38005cea36d5eac560ca5"></a>
<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga5749ef4558e38005cea36d5eac560ca5">cpAreaForSegment</a> (<a class="el" href="structcp_vect.html">cpVect</a> a, <a class="el" href="structcp_vect.html">cpVect</a> b, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> radius)</td></tr>
<tr class="memdesc:ga5749ef4558e38005cea36d5eac560ca5"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the area of a fattened (capsule shaped) line segment. <br/></td></tr>
<tr class="separator:ga5749ef4558e38005cea36d5eac560ca5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga07f110041cb818aa6c19e41623f5054e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga07f110041cb818aa6c19e41623f5054e"></a>
<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga07f110041cb818aa6c19e41623f5054e">cpMomentForPoly</a> (<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> m, int count, const <a class="el" href="structcp_vect.html">cpVect</a> *verts, <a class="el" href="structcp_vect.html">cpVect</a> offset, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> radius)</td></tr>
<tr class="memdesc:ga07f110041cb818aa6c19e41623f5054e"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the moment of inertia for a solid polygon shape assuming it's center of gravity is at it's centroid. The offset is added to each vertex. <br/></td></tr>
<tr class="separator:ga07f110041cb818aa6c19e41623f5054e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga916a74d85ac37e3f5577adddad05a0bc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga916a74d85ac37e3f5577adddad05a0bc">cpAreaForPoly</a> (const int count, const <a class="el" href="structcp_vect.html">cpVect</a> *verts, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> radius)</td></tr>
<tr class="memdesc:ga916a74d85ac37e3f5577adddad05a0bc"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the signed area of a polygon. <a href="#ga916a74d85ac37e3f5577adddad05a0bc">More...</a><br/></td></tr>
<tr class="separator:ga916a74d85ac37e3f5577adddad05a0bc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaaeaa99c27ff452c3bb957cf3d82d4f64"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaeaa99c27ff452c3bb957cf3d82d4f64"></a>
<a class="el" href="structcp_vect.html">cpVect</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaaeaa99c27ff452c3bb957cf3d82d4f64">cpCentroidForPoly</a> (const int count, const <a class="el" href="structcp_vect.html">cpVect</a> *verts)</td></tr>
<tr class="memdesc:gaaeaa99c27ff452c3bb957cf3d82d4f64"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the natural centroid of a polygon. <br/></td></tr>
<tr class="separator:gaaeaa99c27ff452c3bb957cf3d82d4f64"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf7b38a68ad64e02f7542eaab640e6743"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf7b38a68ad64e02f7542eaab640e6743"></a>
<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaf7b38a68ad64e02f7542eaab640e6743">cpMomentForBox</a> (<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> m, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> width, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> height)</td></tr>
<tr class="memdesc:gaf7b38a68ad64e02f7542eaab640e6743"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the moment of inertia for a solid box. <br/></td></tr>
<tr class="separator:gaf7b38a68ad64e02f7542eaab640e6743"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga435b78dde186a991f207df58d88e88d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga435b78dde186a991f207df58d88e88d2"></a>
<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga435b78dde186a991f207df58d88e88d2">cpMomentForBox2</a> (<a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> m, <a class="el" href="structcp_b_b.html">cpBB</a> box)</td></tr>
<tr class="memdesc:ga435b78dde186a991f207df58d88e88d2"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the moment of inertia for a solid box. <br/></td></tr>
<tr class="separator:ga435b78dde186a991f207df58d88e88d2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4468d521319fa699354b8d0e1d9532fe"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga4468d521319fa699354b8d0e1d9532fe">cpConvexHull</a> (int count, const <a class="el" href="structcp_vect.html">cpVect</a> *verts, <a class="el" href="structcp_vect.html">cpVect</a> *result, int *first, <a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> tol)</td></tr>
<tr class="memdesc:ga4468d521319fa699354b8d0e1d9532fe"><td class="mdescLeft"> </td><td class="mdescRight">Calculate the convex hull of a given set of points. <a href="#ga4468d521319fa699354b8d0e1d9532fe">More...</a><br/></td></tr>
<tr class="separator:ga4468d521319fa699354b8d0e1d9532fe"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9511599966ddc56c0fe81c3a943db25e"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga9511599966ddc56c0fe81c3a943db25e"></a>
static <a class="el" href="structcp_vect.html">cpVect</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9511599966ddc56c0fe81c3a943db25e">cpClosetPointOnSegment</a> (const <a class="el" href="structcp_vect.html">cpVect</a> p, const <a class="el" href="structcp_vect.html">cpVect</a> a, const <a class="el" href="structcp_vect.html">cpVect</a> b)</td></tr>
<tr class="memdesc:ga9511599966ddc56c0fe81c3a943db25e"><td class="mdescLeft"> </td><td class="mdescRight">Returns the closest point on the line segment ab, to the point p. <br/></td></tr>
<tr class="separator:ga9511599966ddc56c0fe81c3a943db25e"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:gacecd153caab362b7e2e33b4f37a0fe55"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gacecd153caab362b7e2e33b4f37a0fe55"></a>
const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gacecd153caab362b7e2e33b4f37a0fe55">cpVersionString</a></td></tr>
<tr class="memdesc:gacecd153caab362b7e2e33b4f37a0fe55"><td class="mdescLeft"> </td><td class="mdescRight">Version string. <br/></td></tr>
<tr class="separator:gacecd153caab362b7e2e33b4f37a0fe55"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga9abe29a1fe6d1f2041e95f2fb2e2ce1c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define CP_CONVEX_HULL</td>
<td>(</td>
<td class="paramtype"> </td>
<td class="paramname">__count__, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname">__verts__, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname">__count_var__, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname">__verts_var__ </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code" href="structcp_vect.html">cpVect</a> *__verts_var__ = (<a class="code" href="structcp_vect.html">cpVect</a> *)alloca(__count__*<span class="keyword">sizeof</span>(<a class="code" href="structcp_vect.html">cpVect</a>)); \</div>
<div class="line">int __count_var__ = <a class="code" href="group__misc.html#ga4468d521319fa699354b8d0e1d9532fe" title="Calculate the convex hull of a given set of points.">cpConvexHull</a>(__count__, __verts__, __verts_var__, NULL, 0.0); \</div>
</div><!-- fragment -->
<p>Convenience macro to work with cpConvexHull. </p>
<p><code>count</code> and <code>verts</code> is the input array passed to <a class="el" href="group__misc.html#ga4468d521319fa699354b8d0e1d9532fe" title="Calculate the convex hull of a given set of points.">cpConvexHull()</a>. <code>count_var</code> and <code>verts_var</code> are the names of the variables the macro creates to store the result. The output vertex array is allocated on the stack using alloca() so it will be freed automatically, but cannot be returned from the current scope. </p>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga9293a100703445eed36e8673eefe42a1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> cpAreaForCircle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>r1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>r2</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate area of a hollow circle. </p>
<p><code>r1</code> and <code>r2</code> are the inner and outer diameters. A solid circle has an inner diameter of 0. </p>
</div>
</div>
<a class="anchor" id="ga916a74d85ac37e3f5577adddad05a0bc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> cpAreaForPoly </td>
<td>(</td>
<td class="paramtype">const int </td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structcp_vect.html">cpVect</a> * </td>
<td class="paramname"><em>verts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>radius</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate the signed area of a polygon. </p>
<p>A Clockwise winding gives positive area. This is probably backwards from what you expect, but matches Chipmunk's the winding for poly shapes. </p>
</div>
</div>
<a class="anchor" id="ga4468d521319fa699354b8d0e1d9532fe"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int cpConvexHull </td>
<td>(</td>
<td class="paramtype">int </td>
<td class="paramname"><em>count</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structcp_vect.html">cpVect</a> * </td>
<td class="paramname"><em>verts</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structcp_vect.html">cpVect</a> * </td>
<td class="paramname"><em>result</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int * </td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>tol</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate the convex hull of a given set of points. </p>
<p>Returns the count of points in the hull. <code>result</code> must be a pointer to a <code><a class="el" href="structcp_vect.html">cpVect</a></code> array with at least <code>count</code> elements. If <code>verts</code> == <code>result</code>, then <code>verts</code> will be reduced inplace. <code>first</code> is an optional pointer to an integer to store where the first vertex in the hull came from (i.e. verts[first] == result[0]) <code>tol</code> is the allowed amount to shrink the hull when simplifying it. A tolerance of 0.0 creates an exact hull. </p>
</div>
</div>
<a class="anchor" id="gaf1dfe63f43b3dd42e47f37f16ae2dfe4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> cpMomentForCircle </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>r1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>r2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structcp_vect.html">cpVect</a> </td>
<td class="paramname"><em>offset</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate the moment of inertia for a circle. </p>
<p><code>r1</code> and <code>r2</code> are the inner and outer diameters. A solid circle has an inner diameter of 0. </p>
</div>
</div>
<a class="anchor" id="ga1df4d84f2b6ab3cb74d790b55e6a16d4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> cpMomentForSegment </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>m</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structcp_vect.html">cpVect</a> </td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structcp_vect.html">cpVect</a> </td>
<td class="paramname"><em>b</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="group__basic_types.html#gac1ed65573e035bf892505768c852d8d3">cpFloat</a> </td>
<td class="paramname"><em>radius</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calculate the moment of inertia for a line segment. </p>
<p>Beveling radius is not supported. </p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jul 2 2015 11:28:11 for Chipmunk2D Pro API Reference by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3.1
</small></address>
</body>
</html>