geos_390_docs/classgeos_1_1operation_1_1b...

774 lines
40 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::operation::buffer::OffsetCurveSetBuilder 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_1operation.html">operation</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1operation_1_1buffer.html">buffer</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::buffer::OffsetCurveSetBuilder Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Creates all the raw offset curves for a buffer of a Geometry.
<a href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::buffer::OffsetCurveSetBuilder:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder__coll__graph.svg" width="100%" height="497"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</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:a662cac615c6dd98c5bca5c1b56f1ca7b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a662cac615c6dd98c5bca5c1b56f1ca7b">OffsetCurveSetBuilder</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;newInputGeom, double newDistance, <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveBuilder.html">OffsetCurveBuilder</a> &amp;newCurveBuilder)</td></tr>
<tr class="memdesc:a662cac615c6dd98c5bca5c1b56f1ca7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <a href="#a662cac615c6dd98c5bca5c1b56f1ca7b">More...</a><br /></td></tr>
<tr class="separator:a662cac615c6dd98c5bca5c1b56f1ca7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c12d6e2bd68226e0f2b0912d28aaedc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a7c12d6e2bd68226e0f2b0912d28aaedc">~OffsetCurveSetBuilder</a> ()</td></tr>
<tr class="memdesc:a7c12d6e2bd68226e0f2b0912d28aaedc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <a href="#a7c12d6e2bd68226e0f2b0912d28aaedc">More...</a><br /></td></tr>
<tr class="separator:a7c12d6e2bd68226e0f2b0912d28aaedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91fc89e243dbf23eedb8f67cdde91a64"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1noding_1_1SegmentString.html">noding::SegmentString</a> * &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a91fc89e243dbf23eedb8f67cdde91a64">getCurves</a> ()</td></tr>
<tr class="memdesc:a91fc89e243dbf23eedb8f67cdde91a64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the set of raw offset curves for the buffer. <a href="#a91fc89e243dbf23eedb8f67cdde91a64">More...</a><br /></td></tr>
<tr class="separator:a91fc89e243dbf23eedb8f67cdde91a64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7088770330e927a7736bb34e00965abd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a7088770330e927a7736bb34e00965abd">addCurves</a> (const std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> * &gt; &amp;lineList, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> leftLoc, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> rightLoc)</td></tr>
<tr class="memdesc:a7088770330e927a7736bb34e00965abd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add raw curves for a set of CoordinateSequences. <a href="#a7088770330e927a7736bb34e00965abd">More...</a><br /></td></tr>
<tr class="separator:a7088770330e927a7736bb34e00965abd"><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:a5a0b29dc414278d2ec8f1a475fa853bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a5a0b29dc414278d2ec8f1a475fa853bc">addCurve</a> (<a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *coord, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> leftLoc, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> rightLoc)</td></tr>
<tr class="separator:a5a0b29dc414278d2ec8f1a475fa853bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcf015dd682b6054acd593601fd3ec0a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#adcf015dd682b6054acd593601fd3ec0a">add</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;g)</td></tr>
<tr class="separator:adcf015dd682b6054acd593601fd3ec0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c927ec37127d02baccf579ea9177bfe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a7c927ec37127d02baccf579ea9177bfe">addCollection</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a> *gc)</td></tr>
<tr class="separator:a7c927ec37127d02baccf579ea9177bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af0564e04f74ac0833d278dee1781d636"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#af0564e04f74ac0833d278dee1781d636">addPoint</a> (const <a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a> *p)</td></tr>
<tr class="separator:af0564e04f74ac0833d278dee1781d636"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00df33a32eeba659eecafbb7e26a6511"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a00df33a32eeba659eecafbb7e26a6511">addLineString</a> (const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> *line)</td></tr>
<tr class="separator:a00df33a32eeba659eecafbb7e26a6511"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f1b7edc6e514d8e06b2c31f6079a5c8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a5f1b7edc6e514d8e06b2c31f6079a5c8">addPolygon</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *p)</td></tr>
<tr class="separator:a5f1b7edc6e514d8e06b2c31f6079a5c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a99d50d24a0a14df100e49d68ae7b637f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a99d50d24a0a14df100e49d68ae7b637f">addRingBothSides</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *coord, double p_distance)</td></tr>
<tr class="separator:a99d50d24a0a14df100e49d68ae7b637f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81642a67590d0b517d3a4caf40c5a705"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a81642a67590d0b517d3a4caf40c5a705">addRingSide</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *coord, double offsetDistance, int side, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> cwLeftLoc, <a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a> cwRightLoc)</td></tr>
<tr class="separator:a81642a67590d0b517d3a4caf40c5a705"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93950152c66891c4d1be7af462de690f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a93950152c66891c4d1be7af462de690f">isErodedCompletely</a> (const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *ringCoord, double bufferDistance)</td></tr>
<tr class="separator:a93950152c66891c4d1be7af462de690f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab01f4721b5a2a5d09d9ed2eb63fa5358"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#ab01f4721b5a2a5d09d9ed2eb63fa5358">isTriangleErodedCompletely</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *triCoords, double bufferDistance)</td></tr>
<tr class="separator:ab01f4721b5a2a5d09d9ed2eb63fa5358"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa78eb0d2f5e312eca29aed569e7289c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#aa78eb0d2f5e312eca29aed569e7289c8">OffsetCurveSetBuilder</a> (const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a> &amp;other)=delete</td></tr>
<tr class="separator:aa78eb0d2f5e312eca29aed569e7289c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aceaaf97a8a96306eea81d51ae6e97881"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#aceaaf97a8a96306eea81d51ae6e97881">operator=</a> (const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a> &amp;rhs)=delete</td></tr>
<tr class="separator:aceaaf97a8a96306eea81d51ae6e97881"><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:a3dae2213a32441b9c9ef5047f0c37813"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Label.html">geomgraph::Label</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a3dae2213a32441b9c9ef5047f0c37813">newLabels</a></td></tr>
<tr class="separator:a3dae2213a32441b9c9ef5047f0c37813"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f999d511dcaa21fe11bdc4ba948df08"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a1f999d511dcaa21fe11bdc4ba948df08">inputGeom</a></td></tr>
<tr class="separator:a1f999d511dcaa21fe11bdc4ba948df08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a29a47d1e47d2c7774116f990d4f3f4f9"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a29a47d1e47d2c7774116f990d4f3f4f9">distance</a></td></tr>
<tr class="separator:a29a47d1e47d2c7774116f990d4f3f4f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56022594f6e5c1839b3ac5307b84d16c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveBuilder.html">OffsetCurveBuilder</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a56022594f6e5c1839b3ac5307b84d16c">curveBuilder</a></td></tr>
<tr class="separator:a56022594f6e5c1839b3ac5307b84d16c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56f9c67d3392464ac1123d067c38a3a7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1noding_1_1SegmentString.html">noding::SegmentString</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html#a56f9c67d3392464ac1123d067c38a3a7">curveList</a></td></tr>
<tr class="separator:a56f9c67d3392464ac1123d067c38a3a7"><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>Creates all the raw offset curves for a buffer of a Geometry. </p>
<p>Raw curves need to be noded together and polygonized to form the final buffer area. </p>
<p>Definition at line <a class="el" href="OffsetCurveSetBuilder_8h_source.html#l00071">71</a> of file <a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="aa78eb0d2f5e312eca29aed569e7289c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::operation::buffer::OffsetCurveSetBuilder::OffsetCurveSetBuilder </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a662cac615c6dd98c5bca5c1b56f1ca7b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::buffer::OffsetCurveSetBuilder::OffsetCurveSetBuilder </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>newInputGeom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>newDistance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveBuilder.html">OffsetCurveBuilder</a> &amp;&#160;</td>
<td class="paramname"><em>newCurveBuilder</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Constructor. </p>
</div>
</div>
<a class="anchor" id="a7c12d6e2bd68226e0f2b0912d28aaedc"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::buffer::OffsetCurveSetBuilder::~OffsetCurveSetBuilder </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Destructor. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="adcf015dd682b6054acd593601fd3ec0a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::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>g</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="a7c927ec37127d02baccf579ea9177bfe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addCollection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a> *&#160;</td>
<td class="paramname"><em>gc</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="a5a0b29dc414278d2ec8f1a475fa853bc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addCurve </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>coord</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>leftLoc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>rightLoc</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">
<p>Creates a <a class="el" href="classgeos_1_1noding_1_1SegmentString.html" title="An interface for classes which represent a sequence of contiguous line segments. ">noding::SegmentString</a> for a coordinate list which is a raw offset curve, and adds it to the list of buffer curves. The <a class="el" href="classgeos_1_1noding_1_1SegmentString.html" title="An interface for classes which represent a sequence of contiguous line segments. ">noding::SegmentString</a> is tagged with a <a class="el" href="classgeos_1_1geomgraph_1_1Label.html" title="A Label indicates the topological relationship of a component of a topology graph to a given Geometry...">geomgraph::Label</a> giving the topology of the curve. The curve may be oriented in either direction. If the curve is oriented CW, the locations will be:</p><ul>
<li>Left: Location.EXTERIOR</li>
<li>Right: Location.INTERIOR</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">coord</td><td>is raw offset curve, ownership transferred here </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a7088770330e927a7736bb34e00965abd"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addCurves </td>
<td>(</td>
<td class="paramtype">const std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>lineList</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>leftLoc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>rightLoc</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add raw curves for a set of CoordinateSequences. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lineList</td><td>is a list of CoordinateSequence, ownership of which is transferred here </td></tr>
<tr><td class="paramname">leftLoc</td><td>left location </td></tr>
<tr><td class="paramname">rightLoc</td><td>right location </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a00df33a32eeba659eecafbb7e26a6511"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addLineString </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> *&#160;</td>
<td class="paramname"><em>line</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="af0564e04f74ac0833d278dee1781d636"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addPoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Point.html">geom::Point</a> *&#160;</td>
<td class="paramname"><em>p</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>Add a Point to the graph. </p>
</div>
</div>
<a class="anchor" id="a5f1b7edc6e514d8e06b2c31f6079a5c8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addPolygon </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> *&#160;</td>
<td class="paramname"><em>p</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="a99d50d24a0a14df100e49d68ae7b637f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addRingBothSides </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>coord</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>p_distance</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="a81642a67590d0b517d3a4caf40c5a705"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetCurveSetBuilder::addRingSide </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>coord</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>offsetDistance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>side</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>cwLeftLoc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="namespacegeos_1_1geom.html#ae55a225cd843a6b153a7b6ca5a4707c8">geom::Location</a>&#160;</td>
<td class="paramname"><em>cwRightLoc</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">
<p>Add an offset curve for a polygon ring. The side and left and right topological location arguments assume that the ring is oriented CW. If the ring is in the opposite orientation, the left and right locations must be interchanged and the side flipped.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">coord</td><td>the coordinates of the ring (must not contain repeated points) </td></tr>
<tr><td class="paramname">offsetDistance</td><td>the distance at which to create the buffer </td></tr>
<tr><td class="paramname">side</td><td>the side of the ring on which to construct the buffer line </td></tr>
<tr><td class="paramname">cwLeftLoc</td><td>the location on the L side of the ring (if it is CW) </td></tr>
<tr><td class="paramname">cwRightLoc</td><td>the location on the R side of the ring (if it is CW) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a91fc89e243dbf23eedb8f67cdde91a64"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1noding_1_1SegmentString.html">noding::SegmentString</a>*&gt;&amp; geos::operation::buffer::OffsetCurveSetBuilder::getCurves </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the set of raw offset curves for the buffer. </p>
<p>Each offset curve has an attached <a class="el" href="classgeos_1_1geomgraph_1_1Label.html">geomgraph::Label</a> indicating its left and right location.</p>
<dl class="section return"><dt>Returns</dt><dd>a Collection of SegmentStrings representing the raw buffer curves </dd></dl>
</div>
</div>
<a class="anchor" id="a93950152c66891c4d1be7af462de690f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::buffer::OffsetCurveSetBuilder::isErodedCompletely </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">geom::LinearRing</a> *&#160;</td>
<td class="paramname"><em>ringCoord</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>bufferDistance</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">
<p>The ringCoord is assumed to contain no repeated points. It may be degenerate (i.e. contain only 1, 2, or 3 points). In this case it has no area, and hence has a minimum diameter of 0.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">ringCoord</td><td></td></tr>
<tr><td class="paramname">bufferDistance</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="ab01f4721b5a2a5d09d9ed2eb63fa5358"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::buffer::OffsetCurveSetBuilder::isTriangleErodedCompletely </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>triCoords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>bufferDistance</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">
<p>Tests whether a triangular ring would be eroded completely by the given buffer distance. This is a precise test. It uses the fact that the inner buffer of a triangle converges on the inCentre of the triangle (the point equidistant from all sides). If the buffer distance is greater than the distance of the inCentre from a side, the triangle will be eroded completely.</p>
<p>This test is important, since it removes a problematic case where the buffer distance is slightly larger than the inCentre distance. In this case the triangle buffer curve "inverts" with incorrect topology, producing an incorrect hole in the buffer.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">triCoord</td><td></td></tr>
<tr><td class="paramname">bufferDistance</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="aceaaf97a8a96306eea81d51ae6e97881"></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_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a>&amp; geos::operation::buffer::OffsetCurveSetBuilder::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetCurveSetBuilder.html">OffsetCurveSetBuilder</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a56022594f6e5c1839b3ac5307b84d16c"></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_1operation_1_1buffer_1_1OffsetCurveBuilder.html">OffsetCurveBuilder</a>&amp; geos::operation::buffer::OffsetCurveSetBuilder::curveBuilder</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="OffsetCurveSetBuilder_8h_source.html#l00083">83</a> of file <a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a56f9c67d3392464ac1123d067c38a3a7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1noding_1_1SegmentString.html">noding::SegmentString</a>*&gt; geos::operation::buffer::OffsetCurveSetBuilder::curveList</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>The raw offset curves computed. This class holds ownership of std::vector elements. </p>
<p>Definition at line <a class="el" href="OffsetCurveSetBuilder_8h_source.html#l00088">88</a> of file <a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a29a47d1e47d2c7774116f990d4f3f4f9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::operation::buffer::OffsetCurveSetBuilder::distance</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="OffsetCurveSetBuilder_8h_source.html#l00081">81</a> of file <a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1f999d511dcaa21fe11bdc4ba948df08"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&amp; geos::operation::buffer::OffsetCurveSetBuilder::inputGeom</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="OffsetCurveSetBuilder_8h_source.html#l00079">79</a> of file <a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3dae2213a32441b9c9ef5047f0c37813"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1geomgraph_1_1Label.html">geomgraph::Label</a>*&gt; geos::operation::buffer::OffsetCurveSetBuilder::newLabels</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="OffsetCurveSetBuilder_8h_source.html#l00077">77</a> of file <a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="OffsetCurveSetBuilder_8h_source.html">OffsetCurveSetBuilder.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>