geos_390_docs/classgeos_1_1algorithm_1_1C...

757 lines
36 KiB
HTML

<!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.11"/>
<title>GEOS: geos::algorithm::Centroid Class 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="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 id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GEOS
&#160;<span id="projectnumber">3.9.1dev</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacegeos.html">geos</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1algorithm.html">algorithm</a></li><li class="navelem"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html">Centroid</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-static-methods">Static Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1algorithm_1_1Centroid-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::algorithm::Centroid Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Computes the centroid of a <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> of any dimension.
<a href="classgeos_1_1algorithm_1_1Centroid.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="Centroid_8h_source.html">Centroid.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::algorithm::Centroid:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1algorithm_1_1Centroid__coll__graph.svg" width="290" height="179"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a004060aaa21454f3dfc50cd859e78b16"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a004060aaa21454f3dfc50cd859e78b16">Centroid</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="memdesc:a004060aaa21454f3dfc50cd859e78b16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new instance for computing the centroid of a geometry. <a href="#a004060aaa21454f3dfc50cd859e78b16">More...</a><br /></td></tr>
<tr class="separator:a004060aaa21454f3dfc50cd859e78b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5fbc3111811a4de330abb141f4972d3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#aa5fbc3111811a4de330abb141f4972d3">getCentroid</a> (<a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;cent) const </td></tr>
<tr class="memdesc:aa5fbc3111811a4de330abb141f4972d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the computed centroid. <a href="#aa5fbc3111811a4de330abb141f4972d3">More...</a><br /></td></tr>
<tr class="separator:aa5fbc3111811a4de330abb141f4972d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a98fc3729507b19fd5b6617f3ca8a5f8e"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a98fc3729507b19fd5b6617f3ca8a5f8e">getCentroid</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom, <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;cent)</td></tr>
<tr class="memdesc:a98fc3729507b19fd5b6617f3ca8a5f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the centroid point of a geometry. <a href="#a98fc3729507b19fd5b6617f3ca8a5f8e">More...</a><br /></td></tr>
<tr class="separator:a98fc3729507b19fd5b6617f3ca8a5f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private Member Functions</h2></td></tr>
<tr class="memitem:a984f4fd002ed21bf4e82b8d907a9ead8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a984f4fd002ed21bf4e82b8d907a9ead8">add</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;geom)</td></tr>
<tr class="separator:a984f4fd002ed21bf4e82b8d907a9ead8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa19510be15158bee8f93619336dd3da"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#afa19510be15158bee8f93619336dd3da">setAreaBasePoint</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;basePt)</td></tr>
<tr class="separator:afa19510be15158bee8f93619336dd3da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aabb4af85e80a970529caf7cbd654c8e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#aabb4af85e80a970529caf7cbd654c8e4">add</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> &amp;poly)</td></tr>
<tr class="separator:aabb4af85e80a970529caf7cbd654c8e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96d215b1749f345c716d22d0e9f46ac7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a96d215b1749f345c716d22d0e9f46ac7">addShell</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;pts)</td></tr>
<tr class="separator:a96d215b1749f345c716d22d0e9f46ac7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8c1b0bbb0b04dce8e83d2d8ffcac35b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#af8c1b0bbb0b04dce8e83d2d8ffcac35b">addHole</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;pts)</td></tr>
<tr class="separator:af8c1b0bbb0b04dce8e83d2d8ffcac35b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c30e22bb35f53de7e63b3b8d666261e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a5c30e22bb35f53de7e63b3b8d666261e">addTriangle</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p0, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p2, bool isPositiveArea)</td></tr>
<tr class="separator:a5c30e22bb35f53de7e63b3b8d666261e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40b58e18a7672ea2cd6d93f02c4f26a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a40b58e18a7672ea2cd6d93f02c4f26a5">addLineSegments</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;pts)</td></tr>
<tr class="separator:a40b58e18a7672ea2cd6d93f02c4f26a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51d463fce0fce5196b545ef171f3e3b0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a51d463fce0fce5196b545ef171f3e3b0">addPoint</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;pt)</td></tr>
<tr class="separator:a51d463fce0fce5196b545ef171f3e3b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-methods"></a>
Static Private Member Functions</h2></td></tr>
<tr class="memitem:a00e93348b39d426e18dd0b9b37505155"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a00e93348b39d426e18dd0b9b37505155">centroid3</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p2, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p3, <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;c)</td></tr>
<tr class="separator:a00e93348b39d426e18dd0b9b37505155"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73844e978ef37954f0e126fe5739e05a"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a73844e978ef37954f0e126fe5739e05a">area2</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p2, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p3)</td></tr>
<tr class="separator:a73844e978ef37954f0e126fe5739e05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr class="memitem:a288c5d7a0daf8e599b9f95fbcfc9fce5"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a288c5d7a0daf8e599b9f95fbcfc9fce5">areaBasePt</a></td></tr>
<tr class="separator:a288c5d7a0daf8e599b9f95fbcfc9fce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2af51982d521a3775f3ca9c2b263eaea"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a2af51982d521a3775f3ca9c2b263eaea">triangleCent3</a></td></tr>
<tr class="separator:a2af51982d521a3775f3ca9c2b263eaea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef256a4f2184a44809db3d8ddb3f79de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#aef256a4f2184a44809db3d8ddb3f79de">cg3</a></td></tr>
<tr class="separator:aef256a4f2184a44809db3d8ddb3f79de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16af303b7f76b2f732e09eb3cbb80152"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a16af303b7f76b2f732e09eb3cbb80152">lineCentSum</a></td></tr>
<tr class="separator:a16af303b7f76b2f732e09eb3cbb80152"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f98b633fdda1e829ab5f2b8316a7339"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a4f98b633fdda1e829ab5f2b8316a7339">ptCentSum</a></td></tr>
<tr class="separator:a4f98b633fdda1e829ab5f2b8316a7339"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e8ba6c730aed0b4fd88e97857046ebc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a4e8ba6c730aed0b4fd88e97857046ebc">areasum2</a></td></tr>
<tr class="separator:a4e8ba6c730aed0b4fd88e97857046ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d6ed4f752f5061eab08ffd94448c36"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#a33d6ed4f752f5061eab08ffd94448c36">totalLength</a></td></tr>
<tr class="separator:a33d6ed4f752f5061eab08ffd94448c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1341dc956f040facb809ca89e73a74"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1algorithm_1_1Centroid.html#ada1341dc956f040facb809ca89e73a74">ptCount</a></td></tr>
<tr class="separator:ada1341dc956f040facb809ca89e73a74"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Computes the centroid of a <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> of any dimension. </p>
<p>If the geometry is nomimally of higher dimension, but contains only components having a lower effective dimension (i.e. zero length or area), the centroid will be computed appropriately.</p>
<h3>Algorithm</h3>
<ul>
<li><b>Dimension = 2</b> - Based on the usual algorithm for calculating the centroid as a weighted sum of the centroids of a decomposition of the area into (possibly overlapping) triangles. The algorithm has been extended to handle holes and multi-polygons. See <a href="http://www.faqs.org/faqs/graphics/algorithms-faq/">http://www.faqs.org/faqs/graphics/algorithms-faq/</a> for further details of the basic approach.</li>
<li><b>Dimension = 1</b> - Computes the average of the midpoints of all line segments weighted by the segment length.</li>
<li><b>Dimension = 0</b> - Compute the average coordinate over all points.</li>
</ul>
<p>If the input geometries are empty, a <code>null</code> Coordinate is returned. </p>
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00061">61</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a004060aaa21454f3dfc50cd859e78b16"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::algorithm::Centroid::Centroid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>geom</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new instance for computing the centroid of a geometry. </p>
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00079">79</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a984f4fd002ed21bf4e82b8d907a9ead8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::add </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>geom</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a Geometry to the centroid total.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the geometry to add </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aabb4af85e80a970529caf7cbd654c8e4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::add </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> &amp;&#160;</td>
<td class="paramname"><em>poly</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af8c1b0bbb0b04dce8e83d2d8ffcac35b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::addHole </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;&#160;</td>
<td class="paramname"><em>pts</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a40b58e18a7672ea2cd6d93f02c4f26a5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::addLineSegments </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;&#160;</td>
<td class="paramname"><em>pts</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds the line segments defined by an array of coordinates to the linear centroid accumulators.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pts</td><td>an array of <a class="el" href="">Coordinate</a>s </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a51d463fce0fce5196b545ef171f3e3b0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::addPoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>pt</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a point to the point centroid accumulator. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">pt</td><td>a <a class="el" href="">Coordinate</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a96d215b1749f345c716d22d0e9f46ac7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::addShell </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;&#160;</td>
<td class="paramname"><em>pts</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5c30e22bb35f53de7e63b3b8d666261e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::addTriangle </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>isPositiveArea</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a73844e978ef37954f0e126fe5739e05a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static double geos::algorithm::Centroid::area2 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p3</em>&#160;</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 class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns twice the signed area of the triangle p1-p2-p3. The area is positive if the triangle is oriented CCW, and negative if CW. </p>
</div>
</div>
<a class="anchor" id="a00e93348b39d426e18dd0b9b37505155"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void geos::algorithm::Centroid::centroid3 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>p3</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>c</em>&#160;</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 class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes three times the centroid of the triangle p1-p2-p3. The factor of 3 is left in to permit division to be avoided until later. </p>
</div>
</div>
<a class="anchor" id="a98fc3729507b19fd5b6617f3ca8a5f8e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool geos::algorithm::Centroid::getCentroid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>cent</em>&#160;</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>Computes the centroid point of a geometry. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geom</td><td>the geometry to use </td></tr>
<tr><td class="paramname">cent</td><td>will be set to the centroid point, if any</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a centroid could be computed, <code>false</code> otherwise (empty geom) </dd></dl>
</div>
</div>
<a class="anchor" id="aa5fbc3111811a4de330abb141f4972d3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::algorithm::Centroid::getCentroid </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>cent</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the computed centroid. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cent</td><td>will be set to the centroid point, if any</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if a centroid could be computed, <code>false</code> otherwise (empty geom) </dd></dl>
</div>
</div>
<a class="anchor" id="afa19510be15158bee8f93619336dd3da"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::algorithm::Centroid::setAreaBasePoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;&#160;</td>
<td class="paramname"><em>basePt</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a288c5d7a0daf8e599b9f95fbcfc9fce5"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>&gt; geos::algorithm::Centroid::areaBasePt</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00100">100</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="a4e8ba6c730aed0b4fd88e97857046ebc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::algorithm::Centroid::areasum2</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00105">105</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="aef256a4f2184a44809db3d8ddb3f79de"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::algorithm::Centroid::cg3</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00102">102</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="a16af303b7f76b2f732e09eb3cbb80152"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::algorithm::Centroid::lineCentSum</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00103">103</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="a4f98b633fdda1e829ab5f2b8316a7339"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::algorithm::Centroid::ptCentSum</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00104">104</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="ada1341dc956f040facb809ca89e73a74"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::algorithm::Centroid::ptCount</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00107">107</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="a33d6ed4f752f5061eab08ffd94448c36"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::algorithm::Centroid::totalLength</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00106">106</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<a class="anchor" id="a2af51982d521a3775f3ca9c2b263eaea"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> geos::algorithm::Centroid::triangleCent3</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="Centroid_8h_source.html#l00101">101</a> of file <a class="el" href="Centroid_8h_source.html">Centroid.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="Centroid_8h_source.html">Centroid.h</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>