geos_390_docs/classgeos_1_1operation_1_1b...

1614 lines
81 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::OffsetSegmentGenerator 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_1OffsetSegmentGenerator.html">OffsetSegmentGenerator</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="#pri-static-attribs">Static Private Attributes</a> &#124;
<a href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::buffer::OffsetSegmentGenerator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;<a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::buffer::OffsetSegmentGenerator:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator__coll__graph.svg" width="100%" height="600"><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:ac82885f17a10306207ea8d5ae7ae1f70"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ac82885f17a10306207ea8d5ae7ae1f70">OffsetSegmentGenerator</a> (const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> *newPrecisionModel, const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferParameters.html">BufferParameters</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a0d23b25e4c795fc658cc689fea7f8921">bufParams</a>, double <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a>)</td></tr>
<tr class="separator:ac82885f17a10306207ea8d5ae7ae1f70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3297d3c15e2edcce008f16824b5fa55"><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_1OffsetSegmentGenerator.html#aa3297d3c15e2edcce008f16824b5fa55">hasNarrowConcaveAngle</a> () const </td></tr>
<tr class="separator:aa3297d3c15e2edcce008f16824b5fa55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fde5e044037592f700bde84d2020e2d"><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_1OffsetSegmentGenerator.html#a6fde5e044037592f700bde84d2020e2d">initSideSegments</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;nS1, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;nS2, int nSide)</td></tr>
<tr class="separator:a6fde5e044037592f700bde84d2020e2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcb706e7c4790b73bb68557e314a38ca"><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_1OffsetSegmentGenerator.html#adcb706e7c4790b73bb68557e314a38ca">getCoordinates</a> (std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> * &gt; &amp;to)</td></tr>
<tr class="separator:adcb706e7c4790b73bb68557e314a38ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6d2201a973de2210ba828e176d5a083"><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_1OffsetSegmentGenerator.html#ae6d2201a973de2210ba828e176d5a083">closeRing</a> ()</td></tr>
<tr class="separator:ae6d2201a973de2210ba828e176d5a083"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7535d5639d68bc8821c23040f502d4d"><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_1OffsetSegmentGenerator.html#ad7535d5639d68bc8821c23040f502d4d">createCircle</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p, double <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a>)</td></tr>
<tr class="memdesc:ad7535d5639d68bc8821c23040f502d4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a CW circle around a point. <a href="#ad7535d5639d68bc8821c23040f502d4d">More...</a><br /></td></tr>
<tr class="separator:ad7535d5639d68bc8821c23040f502d4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97cba22afe73b6b6af37f22053c4aa51"><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_1OffsetSegmentGenerator.html#a97cba22afe73b6b6af37f22053c4aa51">createSquare</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p, double <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a>)</td></tr>
<tr class="memdesc:a97cba22afe73b6b6af37f22053c4aa51"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a CW square around a point. <a href="#a97cba22afe73b6b6af37f22053c4aa51">More...</a><br /></td></tr>
<tr class="separator:a97cba22afe73b6b6af37f22053c4aa51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a01ea69a2d48b9156dd1f81e18c9c05f0"><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_1OffsetSegmentGenerator.html#a01ea69a2d48b9156dd1f81e18c9c05f0">addFirstSegment</a> ()</td></tr>
<tr class="memdesc:a01ea69a2d48b9156dd1f81e18c9c05f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add first offset point. <a href="#a01ea69a2d48b9156dd1f81e18c9c05f0">More...</a><br /></td></tr>
<tr class="separator:a01ea69a2d48b9156dd1f81e18c9c05f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3835105899291f68f717b5d306f3f66a"><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_1OffsetSegmentGenerator.html#a3835105899291f68f717b5d306f3f66a">addLastSegment</a> ()</td></tr>
<tr class="memdesc:a3835105899291f68f717b5d306f3f66a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add last offset point. <a href="#a3835105899291f68f717b5d306f3f66a">More...</a><br /></td></tr>
<tr class="separator:a3835105899291f68f717b5d306f3f66a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ec0b81e3c5ec0b407d138d205f6c568"><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_1OffsetSegmentGenerator.html#a0ec0b81e3c5ec0b407d138d205f6c568">addNextSegment</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p, bool addStartPoint)</td></tr>
<tr class="separator:a0ec0b81e3c5ec0b407d138d205f6c568"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92ce04e3921923e381b58cf7e06b2bb4"><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_1OffsetSegmentGenerator.html#a92ce04e3921923e381b58cf7e06b2bb4">addLineEndCap</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)</td></tr>
<tr class="memdesc:a92ce04e3921923e381b58cf7e06b2bb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an end cap around point p1, terminating a line segment coming from p0. <a href="#a92ce04e3921923e381b58cf7e06b2bb4">More...</a><br /></td></tr>
<tr class="separator:a92ce04e3921923e381b58cf7e06b2bb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf8dec51d9b77e04103bce7859717461"><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_1OffsetSegmentGenerator.html#abf8dec51d9b77e04103bce7859717461">addSegments</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &amp;pts, bool isForward)</td></tr>
<tr class="separator:abf8dec51d9b77e04103bce7859717461"><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:a79668685c2d9dd7d231148eef2624ead"><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_1OffsetSegmentGenerator.html#a79668685c2d9dd7d231148eef2624ead">addCollinear</a> (bool addStartPoint)</td></tr>
<tr class="separator:a79668685c2d9dd7d231148eef2624ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4355a8e9ab45be2fb1a82bcdb0a36c1b"><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_1OffsetSegmentGenerator.html#a4355a8e9ab45be2fb1a82bcdb0a36c1b">addMitreJoin</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p, const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ad3a40f9a0645a25be849ae039de88c99">offset0</a>, const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ac7016537f42aeb43ff100d8b2856c195">offset1</a>, double <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a>)</td></tr>
<tr class="separator:a4355a8e9ab45be2fb1a82bcdb0a36c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae66505a7d00e80cf7d12bc04424e5bee"><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_1OffsetSegmentGenerator.html#ae66505a7d00e80cf7d12bc04424e5bee">addLimitedMitreJoin</a> (const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ad3a40f9a0645a25be849ae039de88c99">offset0</a>, const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ac7016537f42aeb43ff100d8b2856c195">offset1</a>, double <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a>, double mitreLimit)</td></tr>
<tr class="separator:ae66505a7d00e80cf7d12bc04424e5bee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad0f668f600a2b04778b89847da038cdd"><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_1OffsetSegmentGenerator.html#ad0f668f600a2b04778b89847da038cdd">addBevelJoin</a> (const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ad3a40f9a0645a25be849ae039de88c99">offset0</a>, const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ac7016537f42aeb43ff100d8b2856c195">offset1</a>)</td></tr>
<tr class="memdesc:ad0f668f600a2b04778b89847da038cdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a bevel join connecting the two offset segments around a reflex corner. <a href="#ad0f668f600a2b04778b89847da038cdd">More...</a><br /></td></tr>
<tr class="separator:ad0f668f600a2b04778b89847da038cdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34579178d8c871167b0c5ee58dcf1e9c"><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_1OffsetSegmentGenerator.html#a34579178d8c871167b0c5ee58dcf1e9c">init</a> (double newDistance)</td></tr>
<tr class="separator:a34579178d8c871167b0c5ee58dcf1e9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3d4e69bf212bc989f56e14b33b74c3c"><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_1OffsetSegmentGenerator.html#ae3d4e69bf212bc989f56e14b33b74c3c">addOutsideTurn</a> (int orientation, bool addStartPoint)</td></tr>
<tr class="separator:ae3d4e69bf212bc989f56e14b33b74c3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acff7028060fd0d0120fd368023f56ba0"><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_1OffsetSegmentGenerator.html#acff7028060fd0d0120fd368023f56ba0">addInsideTurn</a> (int orientation, bool addStartPoint)</td></tr>
<tr class="separator:acff7028060fd0d0120fd368023f56ba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae46a20e7294ccaf251b12f455e9b2437"><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_1OffsetSegmentGenerator.html#ae46a20e7294ccaf251b12f455e9b2437">computeOffsetSegment</a> (const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;seg, int <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a7f13d6464d44ec141b052ab14bf10cae">side</a>, double <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a>, <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;offset)</td></tr>
<tr class="memdesc:ae46a20e7294ccaf251b12f455e9b2437"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute an offset segment for an input segment on a given side and at a given distance. <a href="#ae46a20e7294ccaf251b12f455e9b2437">More...</a><br /></td></tr>
<tr class="separator:ae46a20e7294ccaf251b12f455e9b2437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac83483c97d798baec8683e292a63abce"><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_1OffsetSegmentGenerator.html#ac83483c97d798baec8683e292a63abce">addDirectedFillet</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p, 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, int direction, double radius)</td></tr>
<tr class="separator:ac83483c97d798baec8683e292a63abce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a467967bdc8d09e4a087aa7656113a031"><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_1OffsetSegmentGenerator.html#a467967bdc8d09e4a087aa7656113a031">addDirectedFillet</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p, double startAngle, double endAngle, int direction, double radius)</td></tr>
<tr class="separator:a467967bdc8d09e4a087aa7656113a031"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46b572bb02d801622c5e171431f9887c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a46b572bb02d801622c5e171431f9887c">OffsetSegmentGenerator</a> (const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html">OffsetSegmentGenerator</a> &amp;)</td></tr>
<tr class="separator:a46b572bb02d801622c5e171431f9887c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b66ef591105e130e679adaf363f28d1"><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_1OffsetSegmentGenerator.html#a5b66ef591105e130e679adaf363f28d1">operator=</a> (const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html">OffsetSegmentGenerator</a> &amp;)</td></tr>
<tr class="separator:a5b66ef591105e130e679adaf363f28d1"><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:aec3bf503edac750c53c733e905d953ad"><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_1OffsetSegmentGenerator.html#aec3bf503edac750c53c733e905d953ad">maxCurveSegmentError</a></td></tr>
<tr class="memdesc:aec3bf503edac750c53c733e905d953ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">the max error of approximation (distance) between a quad segment and the true fillet curve <a href="#aec3bf503edac750c53c733e905d953ad">More...</a><br /></td></tr>
<tr class="separator:aec3bf503edac750c53c733e905d953ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbd11d10abc7ac86d6024ac02d2408ae"><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_1OffsetSegmentGenerator.html#adbd11d10abc7ac86d6024ac02d2408ae">filletAngleQuantum</a></td></tr>
<tr class="memdesc:adbd11d10abc7ac86d6024ac02d2408ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">The angle quantum with which to approximate a fillet curve (based on the input # of quadrant segments) <a href="#adbd11d10abc7ac86d6024ac02d2408ae">More...</a><br /></td></tr>
<tr class="separator:adbd11d10abc7ac86d6024ac02d2408ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a5a85eb2873a3dd9cd3710801294a34"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a7a5a85eb2873a3dd9cd3710801294a34">closingSegLengthFactor</a></td></tr>
<tr class="separator:a7a5a85eb2873a3dd9cd3710801294a34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f5e43f3b2ee6ec6c477e4a689284941"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentString.html">OffsetSegmentString</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a0f5e43f3b2ee6ec6c477e4a689284941">segList</a></td></tr>
<tr class="separator:a0f5e43f3b2ee6ec6c477e4a689284941"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c96a12f9cd340dda528b76d674e93f4"><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_1OffsetSegmentGenerator.html#a4c96a12f9cd340dda528b76d674e93f4">distance</a></td></tr>
<tr class="separator:a4c96a12f9cd340dda528b76d674e93f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acca9bfc4a8d4a8370a8106327f1a3504"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#acca9bfc4a8d4a8370a8106327f1a3504">precisionModel</a></td></tr>
<tr class="separator:acca9bfc4a8d4a8370a8106327f1a3504"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d23b25e4c795fc658cc689fea7f8921"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferParameters.html">BufferParameters</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a0d23b25e4c795fc658cc689fea7f8921">bufParams</a></td></tr>
<tr class="separator:a0d23b25e4c795fc658cc689fea7f8921"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9749cf9aadcd0f9b53789468f4abc056"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1algorithm_1_1LineIntersector.html">algorithm::LineIntersector</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a9749cf9aadcd0f9b53789468f4abc056">li</a></td></tr>
<tr class="separator:a9749cf9aadcd0f9b53789468f4abc056"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c40ac86a97b1b0cf9ac0d2f5b9108fe"><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_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a8c40ac86a97b1b0cf9ac0d2f5b9108fe">s0</a></td></tr>
<tr class="separator:a8c40ac86a97b1b0cf9ac0d2f5b9108fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e8ae0c9b90142712bfcd0dc9ac47b14"><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_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a8e8ae0c9b90142712bfcd0dc9ac47b14">s1</a></td></tr>
<tr class="separator:a8e8ae0c9b90142712bfcd0dc9ac47b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58c913f29f9b7ea6a017aaf8a4dd148c"><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_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a58c913f29f9b7ea6a017aaf8a4dd148c">s2</a></td></tr>
<tr class="separator:a58c913f29f9b7ea6a017aaf8a4dd148c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930ba9fa7d641c19308f97c0b602c5a9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a930ba9fa7d641c19308f97c0b602c5a9">seg0</a></td></tr>
<tr class="separator:a930ba9fa7d641c19308f97c0b602c5a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae61401d69cb5285f2d171b2b51bd4630"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ae61401d69cb5285f2d171b2b51bd4630">seg1</a></td></tr>
<tr class="separator:ae61401d69cb5285f2d171b2b51bd4630"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3a40f9a0645a25be849ae039de88c99"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ad3a40f9a0645a25be849ae039de88c99">offset0</a></td></tr>
<tr class="separator:ad3a40f9a0645a25be849ae039de88c99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac7016537f42aeb43ff100d8b2856c195"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ac7016537f42aeb43ff100d8b2856c195">offset1</a></td></tr>
<tr class="separator:ac7016537f42aeb43ff100d8b2856c195"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f13d6464d44ec141b052ab14bf10cae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a7f13d6464d44ec141b052ab14bf10cae">side</a></td></tr>
<tr class="separator:a7f13d6464d44ec141b052ab14bf10cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af875d7cd991b451070deade728ba3c16"><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_1OffsetSegmentGenerator.html#af875d7cd991b451070deade728ba3c16">_hasNarrowConcaveAngle</a></td></tr>
<tr class="separator:af875d7cd991b451070deade728ba3c16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bc03586e16601be38db3c52453afcc8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a3bc03586e16601be38db3c52453afcc8">endCapIndex</a></td></tr>
<tr class="separator:a3bc03586e16601be38db3c52453afcc8"><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-attribs"></a>
Static Private Attributes</h2></td></tr>
<tr class="memitem:a6937334aaeead6a6d2cdd00f2575c07e"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a6937334aaeead6a6d2cdd00f2575c07e">OFFSET_SEGMENT_SEPARATION_FACTOR</a></td></tr>
<tr class="separator:a6937334aaeead6a6d2cdd00f2575c07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a797561af6a0390e0ab03605d14f890"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a6a797561af6a0390e0ab03605d14f890">INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR</a></td></tr>
<tr class="separator:a6a797561af6a0390e0ab03605d14f890"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c9eed3603410a907605e4b0409885d"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ac0c9eed3603410a907605e4b0409885d">CURVE_VERTEX_SNAP_DISTANCE_FACTOR</a></td></tr>
<tr class="separator:ac0c9eed3603410a907605e4b0409885d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9891f07c3d7546a3c8edf7237a729fcd"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a9891f07c3d7546a3c8edf7237a729fcd">MAX_CLOSING_SEG_LEN_FACTOR</a> = 80</td></tr>
<tr class="separator:a9891f07c3d7546a3c8edf7237a729fcd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d7f5d6d2eabeff60e528e6d48401361"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#a5d7f5d6d2eabeff60e528e6d48401361">PI</a></td></tr>
<tr class="separator:a5d7f5d6d2eabeff60e528e6d48401361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8c6b295bff1558515afcaae8acb1bd1"><td class="memItemLeft" align="right" valign="top">static const double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html#ad8c6b295bff1558515afcaae8acb1bd1">SIMPLIFY_FACTOR</a></td></tr>
<tr class="separator:ad8c6b295bff1558515afcaae8acb1bd1"><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>Generates segments which form an offset curve. Supports all end cap and join options provided for buffering. Implements various heuristics to produce smoother, simpler curves which are still within a reasonable tolerance of the true curve.</p>
<dl class="section author"><dt>Author</dt><dd>Martin Davis </dd></dl>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00061">61</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ac82885f17a10306207ea8d5ae7ae1f70"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::buffer::OffsetSegmentGenerator::OffsetSegmentGenerator </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1PrecisionModel.html">geom::PrecisionModel</a> *&#160;</td>
<td class="paramname"><em>newPrecisionModel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferParameters.html">BufferParameters</a> &amp;&#160;</td>
<td class="paramname"><em>bufParams</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a46b572bb02d801622c5e171431f9887c"></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::OffsetSegmentGenerator::OffsetSegmentGenerator </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html">OffsetSegmentGenerator</a> &amp;&#160;</td>
<td class="paramname"></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 Function Documentation</h2>
<a class="anchor" id="ad0f668f600a2b04778b89847da038cdd"></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::OffsetSegmentGenerator::addBevelJoin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset1</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>Adds a bevel join connecting the two offset segments around a reflex corner. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">offset0</td><td>the first offset segment </td></tr>
<tr><td class="paramname">offset1</td><td>the second offset segment </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a79668685c2d9dd7d231148eef2624ead"></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::OffsetSegmentGenerator::addCollinear </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>addStartPoint</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="ac83483c97d798baec8683e292a63abce"></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::OffsetSegmentGenerator::addDirectedFillet </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>p</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>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">int&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>radius</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>Adds points for a circular fillet around a reflex corner.</p>
<p>Adds the start and end points</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>base point of curve </td></tr>
<tr><td class="paramname">p0</td><td>start point of fillet curve </td></tr>
<tr><td class="paramname">p1</td><td>endpoint of fillet curve </td></tr>
<tr><td class="paramname">direction</td><td>the orientation of the fillet </td></tr>
<tr><td class="paramname">radius</td><td>the radius of the fillet </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a467967bdc8d09e4a087aa7656113a031"></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::OffsetSegmentGenerator::addDirectedFillet </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>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>startAngle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>endAngle</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>direction</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>radius</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>Adds points for a circular fillet arc between two specified angles.</p>
<p>The start and end point for the fillet are not added - the caller must add them if required.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">direction</td><td>is -1 for a CW angle, 1 for a CCW angle </td></tr>
<tr><td class="paramname">radius</td><td>the radius of the fillet </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a01ea69a2d48b9156dd1f81e18c9c05f0"></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::OffsetSegmentGenerator::addFirstSegment </td>
<td>(</td>
<td class="paramname"></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>Add first offset point. </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00124">124</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="acff7028060fd0d0120fd368023f56ba0"></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::OffsetSegmentGenerator::addInsideTurn </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>orientation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>addStartPoint</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>Adds the offset points for an inside (concave) turn</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">orientation</td><td></td></tr>
<tr><td class="paramname">addStartPoint</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a3835105899291f68f717b5d306f3f66a"></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::OffsetSegmentGenerator::addLastSegment </td>
<td>(</td>
<td class="paramname"></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>Add last offset point. </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00131">131</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae66505a7d00e80cf7d12bc04424e5bee"></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::OffsetSegmentGenerator::addLimitedMitreJoin </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>mitreLimit</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>Adds a limited mitre join connecting the two reflex offset segments.</p>
<p>A limited mitre is a mitre which is beveled at the distance determined by the mitre ratio limit.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">offset0</td><td>the first offset segment </td></tr>
<tr><td class="paramname">offset1</td><td>the second offset segment </td></tr>
<tr><td class="paramname">distance</td><td>the offset distance </td></tr>
<tr><td class="paramname">mitreLimit</td><td>the mitre limit ratio </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a92ce04e3921923e381b58cf7e06b2bb4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetSegmentGenerator::addLineEndCap </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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Add an end cap around point p1, terminating a line segment coming from p0. </p>
</div>
</div>
<a class="anchor" id="a4355a8e9ab45be2fb1a82bcdb0a36c1b"></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::OffsetSegmentGenerator::addMitreJoin </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>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset0</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>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">
<p>The mitre will be beveled if it exceeds the mitre ratio limit.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">offset0</td><td>the first offset segment </td></tr>
<tr><td class="paramname">offset1</td><td>the second offset segment </td></tr>
<tr><td class="paramname">distance</td><td>the offset distance </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a0ec0b81e3c5ec0b407d138d205f6c568"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetSegmentGenerator::addNextSegment </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>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>addStartPoint</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae3d4e69bf212bc989f56e14b33b74c3c"></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::OffsetSegmentGenerator::addOutsideTurn </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>orientation</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>addStartPoint</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>Adds the offset points for an outside (convex) turn</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">orientation</td><td></td></tr>
<tr><td class="paramname">addStartPoint</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="abf8dec51d9b77e04103bce7859717461"></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::OffsetSegmentGenerator::addSegments </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>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>isForward</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">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00145">145</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae6d2201a973de2210ba828e176d5a083"></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::OffsetSegmentGenerator::closeRing </td>
<td>(</td>
<td class="paramname"></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>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00111">111</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae46a20e7294ccaf251b12f455e9b2437"></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::OffsetSegmentGenerator::computeOffsetSegment </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>seg</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">double&#160;</td>
<td class="paramname"><em>distance</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1LineSegment.html">geom::LineSegment</a> &amp;&#160;</td>
<td class="paramname"><em>offset</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>Compute an offset segment for an input segment on a given side and at a given distance. </p>
<p>The offset points are computed in full double precision, for accuracy.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">seg</td><td>the segment to offset </td></tr>
<tr><td class="paramname">side</td><td>the side of the segment the offset lies on </td></tr>
<tr><td class="paramname">distance</td><td>the offset distance </td></tr>
<tr><td class="paramname">offset</td><td>the points computed for the offset segment </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ad7535d5639d68bc8821c23040f502d4d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetSegmentGenerator::createCircle </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>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a CW circle around a point. </p>
</div>
</div>
<a class="anchor" id="a97cba22afe73b6b6af37f22053c4aa51"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetSegmentGenerator::createSquare </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>p</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>distance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds a CW square around a point. </p>
</div>
</div>
<a class="anchor" id="adcb706e7c4790b73bb68557e314a38ca"></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::OffsetSegmentGenerator::getCoordinates </td>
<td>(</td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>to</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>Get coordinates by taking ownership of them</p>
<p>After this call, the coordinates reference in this object are dropped. Calling twice will segfault...</p>
<p>FIXME: refactor memory management of this </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00105">105</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa3297d3c15e2edcce008f16824b5fa55"></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::OffsetSegmentGenerator::hasNarrowConcaveAngle </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</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>Tests whether the input has a narrow concave angle (relative to the offset distance). In this case the generated offset curve will contain self-intersections and heuristic closing segments. This is expected behaviour in the case of buffer curves. For pure offset curves, the output needs to be further treated before it can be used.</p>
<dl class="section return"><dt>Returns</dt><dd>true if the input has a narrow concave angle </dd></dl>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00088">88</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a34579178d8c871167b0c5ee58dcf1e9c"></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::OffsetSegmentGenerator::init </td>
<td>(</td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>newDistance</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="a6fde5e044037592f700bde84d2020e2d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::OffsetSegmentGenerator::initSideSegments </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>nS1</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>nS2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>nSide</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5b66ef591105e130e679adaf363f28d1"></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::OffsetSegmentGenerator::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1OffsetSegmentGenerator.html">OffsetSegmentGenerator</a> &amp;&#160;</td>
<td class="paramname"></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="af875d7cd991b451070deade728ba3c16"></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::OffsetSegmentGenerator::_hasNarrowConcaveAngle</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="OffsetSegmentGenerator_8h_source.html#l00235">235</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0d23b25e4c795fc658cc689fea7f8921"></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_1operation_1_1buffer_1_1BufferParameters.html">BufferParameters</a>&amp; geos::operation::buffer::OffsetSegmentGenerator::bufParams</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="OffsetSegmentGenerator_8h_source.html#l00219">219</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7a5a85eb2873a3dd9cd3710801294a34"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::operation::buffer::OffsetSegmentGenerator::closingSegLengthFactor</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 Closing Segment Factor controls how long "closing
segments" are. Closing segments are added at the middle of inside corners to ensure a smoother boundary for the buffer offset curve. In some cases (particularly for round joins with default-or-better quantization) the closing segments can be made quite short. This substantially improves performance (due to fewer intersections being created).</p>
<p>A closingSegFactor of 0 results in lines to the corner vertex. A closingSegFactor of 1 results in lines halfway to the corner vertex. A closingSegFactor of 80 results in lines 1/81 of the way to the corner vertex (this option is reasonable for the very common default situation of round joins and quadrantSegs &gt;= 8).</p>
<p>The default is 1. </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00203">203</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac0c9eed3603410a907605e4b0409885d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double geos::operation::buffer::OffsetSegmentGenerator::CURVE_VERTEX_SNAP_DISTANCE_FACTOR</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>Factor which controls how close curve vertices can be to be snapped </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00167">167</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a4c96a12f9cd340dda528b76d674e93f4"></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::OffsetSegmentGenerator::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="OffsetSegmentGenerator_8h_source.html#l00215">215</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a3bc03586e16601be38db3c52453afcc8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::operation::buffer::OffsetSegmentGenerator::endCapIndex</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="OffsetSegmentGenerator_8h_source.html#l00278">278</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="adbd11d10abc7ac86d6024ac02d2408ae"></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::OffsetSegmentGenerator::filletAngleQuantum</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 angle quantum with which to approximate a fillet curve (based on the input # of quadrant segments) </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00184">184</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6a797561af6a0390e0ab03605d14f890"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double geos::operation::buffer::OffsetSegmentGenerator::INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR</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>Factor which controls how close curve vertices on inside turns can be to be snapped </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00162">162</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9749cf9aadcd0f9b53789468f4abc056"></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_1algorithm_1_1LineIntersector.html">algorithm::LineIntersector</a> geos::operation::buffer::OffsetSegmentGenerator::li</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="OffsetSegmentGenerator_8h_source.html#l00221">221</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9891f07c3d7546a3c8edf7237a729fcd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const int geos::operation::buffer::OffsetSegmentGenerator::MAX_CLOSING_SEG_LEN_FACTOR = 80</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>Factor which determines how short closing segs can be for round buffers </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00172">172</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="aec3bf503edac750c53c733e905d953ad"></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::OffsetSegmentGenerator::maxCurveSegmentError</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 max error of approximation (distance) between a quad segment and the true fillet curve </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00178">178</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad3a40f9a0645a25be849ae039de88c99"></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_1LineSegment.html">geom::LineSegment</a> geos::operation::buffer::OffsetSegmentGenerator::offset0</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="OffsetSegmentGenerator_8h_source.html#l00229">229</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac7016537f42aeb43ff100d8b2856c195"></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_1LineSegment.html">geom::LineSegment</a> geos::operation::buffer::OffsetSegmentGenerator::offset1</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="OffsetSegmentGenerator_8h_source.html#l00231">231</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a6937334aaeead6a6d2cdd00f2575c07e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double geos::operation::buffer::OffsetSegmentGenerator::OFFSET_SEGMENT_SEPARATION_FACTOR</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>Factor which controls how close offset segments can be to skip adding a filler or mitre. </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00156">156</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5d7f5d6d2eabeff60e528e6d48401361"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double geos::operation::buffer::OffsetSegmentGenerator::PI</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>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00275">275</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="acca9bfc4a8d4a8370a8106327f1a3504"></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_1PrecisionModel.html">geom::PrecisionModel</a>* geos::operation::buffer::OffsetSegmentGenerator::precisionModel</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="OffsetSegmentGenerator_8h_source.html#l00217">217</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8c40ac86a97b1b0cf9ac0d2f5b9108fe"></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::operation::buffer::OffsetSegmentGenerator::s0</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="OffsetSegmentGenerator_8h_source.html#l00223">223</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8e8ae0c9b90142712bfcd0dc9ac47b14"></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::operation::buffer::OffsetSegmentGenerator::s1</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="OffsetSegmentGenerator_8h_source.html#l00223">223</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a58c913f29f9b7ea6a017aaf8a4dd148c"></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::operation::buffer::OffsetSegmentGenerator::s2</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="OffsetSegmentGenerator_8h_source.html#l00223">223</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a930ba9fa7d641c19308f97c0b602c5a9"></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_1LineSegment.html">geom::LineSegment</a> geos::operation::buffer::OffsetSegmentGenerator::seg0</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="OffsetSegmentGenerator_8h_source.html#l00225">225</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae61401d69cb5285f2d171b2b51bd4630"></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_1LineSegment.html">geom::LineSegment</a> geos::operation::buffer::OffsetSegmentGenerator::seg1</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="OffsetSegmentGenerator_8h_source.html#l00227">227</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0f5e43f3b2ee6ec6c477e4a689284941"></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_1OffsetSegmentString.html">OffsetSegmentString</a> geos::operation::buffer::OffsetSegmentGenerator::segList</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>Owned by this object, destroyed by dtor</p>
<p>This actually gets created multiple times and each of the old versions is pushed to the ptLists std::vector to ensure all created CoordinateSequences are properly destroyed. </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00213">213</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="a7f13d6464d44ec141b052ab14bf10cae"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int geos::operation::buffer::OffsetSegmentGenerator::side</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="OffsetSegmentGenerator_8h_source.html#l00233">233</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad8c6b295bff1558515afcaae8acb1bd1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const double geos::operation::buffer::OffsetSegmentGenerator::SIMPLIFY_FACTOR</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>Use a value which results in a potential distance error which is significantly less than the error due to the quadrant segment discretization. For QS = 8 a value of 100 is reasonable. This should produce a maximum of 1% distance error. </p>
<p>Definition at line <a class="el" href="OffsetSegmentGenerator_8h_source.html#l00289">289</a> of file <a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="OffsetSegmentGenerator_8h_source.html">OffsetSegmentGenerator.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>