geos_390_docs/classgeos_1_1triangulate_1_...

1659 lines
105 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::triangulate::quadedge::QuadEdgeSubdivision 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_1triangulate.html">triangulate</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1triangulate_1_1quadedge.html">quadedge</a></li><li class="navelem"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html">QuadEdgeSubdivision</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="#pri-types">Private Types</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::triangulate::quadedge::QuadEdgeSubdivision Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A class that contains the <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdges</a> representing a planar subdivision that models a triangulation.
<a href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::triangulate::quadedge::QuadEdgeSubdivision:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision__coll__graph.svg" width="426" height="363"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:ab3686b147364ecd2941622aec4492108"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ab3686b147364ecd2941622aec4492108">QuadEdgeList</a></td></tr>
<tr class="separator:ab3686b147364ecd2941622aec4492108"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><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:a8db106ef91759f7a5d1e18a3a07bc608"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a8db106ef91759f7a5d1e18a3a07bc608">QuadEdgeSubdivision</a> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &amp;env, double <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#afcfc2ef20f197c3e176ab6332401ca80">tolerance</a>)</td></tr>
<tr class="memdesc:a8db106ef91759f7a5d1e18a3a07bc608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new instance of a quad-edge subdivision based on a frame triangle that encloses a supplied bounding box. A new super-bounding box that contains the triangle is computed and stored. <a href="#a8db106ef91759f7a5d1e18a3a07bc608">More...</a><br /></td></tr>
<tr class="separator:a8db106ef91759f7a5d1e18a3a07bc608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7e2177093a8bbcd8d54aed8b04b6e65"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#af7e2177093a8bbcd8d54aed8b04b6e65">~QuadEdgeSubdivision</a> ()=default</td></tr>
<tr class="separator:af7e2177093a8bbcd8d54aed8b04b6e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0234e3a63618e7c8acacd287f2f17f03"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a0234e3a63618e7c8acacd287f2f17f03">getTolerance</a> () const </td></tr>
<tr class="memdesc:a0234e3a63618e7c8acacd287f2f17f03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the vertex-equality tolerance value used in this subdivision. <a href="#a0234e3a63618e7c8acacd287f2f17f03">More...</a><br /></td></tr>
<tr class="separator:a0234e3a63618e7c8acacd287f2f17f03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f62ec4469accedf6c097479404ca686"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a6f62ec4469accedf6c097479404ca686">getEnvelope</a> () const </td></tr>
<tr class="memdesc:a6f62ec4469accedf6c097479404ca686"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the envelope of the Subdivision (including the frame). <a href="#a6f62ec4469accedf6c097479404ca686">More...</a><br /></td></tr>
<tr class="separator:a6f62ec4469accedf6c097479404ca686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8641058f4d31108f2bb4b1fa9b16069a"><td class="memItemLeft" align="right" valign="top">std::deque&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeQuartet.html">QuadEdgeQuartet</a> &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a8641058f4d31108f2bb4b1fa9b16069a">getEdges</a> ()</td></tr>
<tr class="memdesc:a8641058f4d31108f2bb4b1fa9b16069a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the collection of base <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>s (one for every pair of vertices which is connected). <a href="#a8641058f4d31108f2bb4b1fa9b16069a">More...</a><br /></td></tr>
<tr class="separator:a8641058f4d31108f2bb4b1fa9b16069a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af464fd5eadc1decf42f80f27c796251b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#af464fd5eadc1decf42f80f27c796251b">setLocator</a> (std::unique_ptr&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html">QuadEdgeLocator</a> &gt; p_locator)</td></tr>
<tr class="memdesc:af464fd5eadc1decf42f80f27c796251b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html" title="An interface for classes which locate an edge in a QuadEdgeSubdivision which either contains a given ...">QuadEdgeLocator</a> to use for locating containing triangles in this subdivision. <a href="#af464fd5eadc1decf42f80f27c796251b">More...</a><br /></td></tr>
<tr class="separator:af464fd5eadc1decf42f80f27c796251b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abbe9dc2f6e0d65c02afac883b16c8b33"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#abbe9dc2f6e0d65c02afac883b16c8b33">makeEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;o, const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;d)</td></tr>
<tr class="memdesc:abbe9dc2f6e0d65c02afac883b16c8b33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new quadedge, recording it in the edges list. <a href="#abbe9dc2f6e0d65c02afac883b16c8b33">More...</a><br /></td></tr>
<tr class="separator:abbe9dc2f6e0d65c02afac883b16c8b33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30cf3fc2df25f4ad937e30af3807f046"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a30cf3fc2df25f4ad937e30af3807f046">connect</a> (<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;a, <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;b)</td></tr>
<tr class="memdesc:a30cf3fc2df25f4ad937e30af3807f046"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> connecting the destination of a to the origin of b, in such a way that all three have the same left face after the connection is complete. The quadedge is recorded in the edges list. <a href="#a30cf3fc2df25f4ad937e30af3807f046">More...</a><br /></td></tr>
<tr class="separator:a30cf3fc2df25f4ad937e30af3807f046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a678b63bbb35f2be86e191a576e927565"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a678b63bbb35f2be86e191a576e927565">remove</a> (<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;e)</td></tr>
<tr class="memdesc:a678b63bbb35f2be86e191a576e927565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deletes a quadedge from the subdivision. Linked quadedges are updated to reflect the deletion. <a href="#a678b63bbb35f2be86e191a576e927565">More...</a><br /></td></tr>
<tr class="separator:a678b63bbb35f2be86e191a576e927565"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac56eb201160d9d8a8f5234485ab060de"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ac56eb201160d9d8a8f5234485ab060de">locateFromEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;v, const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;startEdge) const </td></tr>
<tr class="memdesc:ac56eb201160d9d8a8f5234485ab060de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locates an edge of a triangle which contains a location specified by a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html" title="Models a site (node) in a QuadEdgeSubdivision. ">Vertex</a> <code>v</code>. <a href="#ac56eb201160d9d8a8f5234485ab060de">More...</a><br /></td></tr>
<tr class="separator:ac56eb201160d9d8a8f5234485ab060de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a938917c6b2cc3e2bfc9ae3e027f13fc9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a938917c6b2cc3e2bfc9ae3e027f13fc9">locate</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;v) const </td></tr>
<tr class="memdesc:a938917c6b2cc3e2bfc9ae3e027f13fc9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a quadedge of a triangle containing a location specified by a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a>, if one exists. <a href="#a938917c6b2cc3e2bfc9ae3e027f13fc9">More...</a><br /></td></tr>
<tr class="separator:a938917c6b2cc3e2bfc9ae3e027f13fc9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22f51ebd403180cb9a53fad2beb0e326"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a22f51ebd403180cb9a53fad2beb0e326">locate</a> (const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p)</td></tr>
<tr class="memdesc:a22f51ebd403180cb9a53fad2beb0e326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds a quadedge of a triangle containing a location specified by a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html" title="Coordinate is the lightweight class used to store coordinates. ">geom::Coordinate</a>, if one exists. <a href="#a22f51ebd403180cb9a53fad2beb0e326">More...</a><br /></td></tr>
<tr class="separator:a22f51ebd403180cb9a53fad2beb0e326"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a2b26604badbeb08b6172ac2b15eac3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a5a2b26604badbeb08b6172ac2b15eac3">locate</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:a5a2b26604badbeb08b6172ac2b15eac3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Locates the edge between the given vertices, if it exists in the subdivision. <a href="#a5a2b26604badbeb08b6172ac2b15eac3">More...</a><br /></td></tr>
<tr class="separator:a5a2b26604badbeb08b6172ac2b15eac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae3986a1f7337c2b5b2fe88a30693b212"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ae3986a1f7337c2b5b2fe88a30693b212">insertSite</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;v)</td></tr>
<tr class="memdesc:ae3986a1f7337c2b5b2fe88a30693b212"><td class="mdescLeft">&#160;</td><td class="mdescRight">Inserts a new site into the Subdivision, connecting it to the vertices of the containing triangle (or quadrilateral, if the split point falls on an existing edge). <a href="#ae3986a1f7337c2b5b2fe88a30693b212">More...</a><br /></td></tr>
<tr class="separator:ae3986a1f7337c2b5b2fe88a30693b212"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afda4138ade38eadbb6229630ea471778"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#afda4138ade38eadbb6229630ea471778">isFrameEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;e) const </td></tr>
<tr class="memdesc:afda4138ade38eadbb6229630ea471778"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> is an edge incident on a frame triangle vertex. <a href="#afda4138ade38eadbb6229630ea471778">More...</a><br /></td></tr>
<tr class="separator:afda4138ade38eadbb6229630ea471778"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c351b9fa90bf374849d842b76ce3532"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a7c351b9fa90bf374849d842b76ce3532">isFrameBorderEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;e) const </td></tr>
<tr class="memdesc:a7c351b9fa90bf374849d842b76ce3532"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> is an edge on the border of the frame facets and the internal facets. E.g. an edge which does not itself touch a frame vertex, but which touches an edge which does. <a href="#a7c351b9fa90bf374849d842b76ce3532">More...</a><br /></td></tr>
<tr class="separator:a7c351b9fa90bf374849d842b76ce3532"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cdc79f3ce997085653af8b8d778b52f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a6cdc79f3ce997085653af8b8d778b52f">isFrameVertex</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;v) const </td></tr>
<tr class="memdesc:a6cdc79f3ce997085653af8b8d778b52f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether a vertex is a vertex of the outer triangle. <a href="#a6cdc79f3ce997085653af8b8d778b52f">More...</a><br /></td></tr>
<tr class="separator:a6cdc79f3ce997085653af8b8d778b52f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8a04258a39882f0c838f1e02d0ee1af"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ae8a04258a39882f0c838f1e02d0ee1af">isOnEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;e, const <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> &amp;p) const </td></tr>
<tr class="memdesc:ae8a04258a39882f0c838f1e02d0ee1af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> lies on a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>, up to a tolerance determined by the subdivision tolerance. <a href="#ae8a04258a39882f0c838f1e02d0ee1af">More...</a><br /></td></tr>
<tr class="separator:ae8a04258a39882f0c838f1e02d0ee1af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7cb2cd8bc09a1226e8c2f94cf9c3058"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#af7cb2cd8bc09a1226e8c2f94cf9c3058">isVertexOfEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;e, const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;v) const </td></tr>
<tr class="memdesc:af7cb2cd8bc09a1226e8c2f94cf9c3058"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html" title="Models a site (node) in a QuadEdgeSubdivision. ">Vertex</a> is the start or end vertex of a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>, up to the subdivision tolerance distance. <a href="#af7cb2cd8bc09a1226e8c2f94cf9c3058">More...</a><br /></td></tr>
<tr class="separator:af7cb2cd8bc09a1226e8c2f94cf9c3058"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d8dccb57d27b2cf96847be510ca8e53"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ab3686b147364ecd2941622aec4492108">QuadEdgeList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a9d8dccb57d27b2cf96847be510ca8e53">getPrimaryEdges</a> (bool includeFrame)</td></tr>
<tr class="memdesc:a9d8dccb57d27b2cf96847be510ca8e53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets all primary quadedges in the subdivision. <a href="#a9d8dccb57d27b2cf96847be510ca8e53">More...</a><br /></td></tr>
<tr class="separator:a9d8dccb57d27b2cf96847be510ca8e53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1fd9dc3c2fdb333773a8b55b2aa4bc6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#af1fd9dc3c2fdb333773a8b55b2aa4bc6">visitTriangles</a> (<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1TriangleVisitor.html">TriangleVisitor</a> *triVisitor, bool includeFrame)</td></tr>
<tr class="separator:af1fd9dc3c2fdb333773a8b55b2aa4bc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf7878391061567f667d3c483c66ac45"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">geom::MultiLineString</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#adf7878391061567f667d3c483c66ac45">getEdges</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:adf7878391061567f667d3c483c66ac45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the geometry for the edges in the subdivision as a <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">MultiLineString</a> containing 2-point lines. <a href="#adf7878391061567f667d3c483c66ac45">More...</a><br /></td></tr>
<tr class="separator:adf7878391061567f667d3c483c66ac45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1215661884f2da0a3028ed43a6dc568b"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a1215661884f2da0a3028ed43a6dc568b">getTriangles</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:a1215661884f2da0a3028ed43a6dc568b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the geometry for the triangles in a triangulated subdivision as a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> of triangular <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a>. <a href="#a1215661884f2da0a3028ed43a6dc568b">More...</a><br /></td></tr>
<tr class="separator:a1215661884f2da0a3028ed43a6dc568b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac903d8a67993aa16b61dccf9f5b4ce8a"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ac903d8a67993aa16b61dccf9f5b4ce8a">getVoronoiDiagram</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:ac903d8a67993aa16b61dccf9f5b4ce8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the cells in the Voronoi diagram for this triangulation. The cells are returned as a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> of <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a>. <a href="#ac903d8a67993aa16b61dccf9f5b4ce8a">More...</a><br /></td></tr>
<tr class="separator:ac903d8a67993aa16b61dccf9f5b4ce8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1930ac2fbcef34229205f574e6132ac"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">geom::MultiLineString</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ad1930ac2fbcef34229205f574e6132ac">getVoronoiDiagramEdges</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:ad1930ac2fbcef34229205f574e6132ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the cells in the Voronoi diagram for this triangulation. <a href="#ad1930ac2fbcef34229205f574e6132ac">More...</a><br /></td></tr>
<tr class="separator:ad1930ac2fbcef34229205f574e6132ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca96e1e44aa42c5d29bfc58ad2d27ab7"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#aca96e1e44aa42c5d29bfc58ad2d27ab7">getVoronoiCellPolygons</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:aca96e1e44aa42c5d29bfc58ad2d27ab7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a List of <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a> for the Voronoi cells of this triangulation. <a href="#aca96e1e44aa42c5d29bfc58ad2d27ab7">More...</a><br /></td></tr>
<tr class="separator:aca96e1e44aa42c5d29bfc58ad2d27ab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94fa9eec096a9ec7fd44f1cc494555f8"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a94fa9eec096a9ec7fd44f1cc494555f8">getVoronoiCellEdges</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:a94fa9eec096a9ec7fd44f1cc494555f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a List of <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineStrings</a> for the Voronoi cells of this triangulation. <a href="#a94fa9eec096a9ec7fd44f1cc494555f8">More...</a><br /></td></tr>
<tr class="separator:a94fa9eec096a9ec7fd44f1cc494555f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98fc3bf6b0b0322febb77e02ef6eddae"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ab3686b147364ecd2941622aec4492108">QuadEdgeSubdivision::QuadEdgeList</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a98fc3bf6b0b0322febb77e02ef6eddae">getVertexUniqueEdges</a> (bool includeFrame)</td></tr>
<tr class="memdesc:a98fc3bf6b0b0322febb77e02ef6eddae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a collection of <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdges</a> whose origin vertices are a unique set which includes all vertices in the subdivision. <a href="#a98fc3bf6b0b0322febb77e02ef6eddae">More...</a><br /></td></tr>
<tr class="separator:a98fc3bf6b0b0322febb77e02ef6eddae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f55a58455898b8d74a9075a582c184e"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a8f55a58455898b8d74a9075a582c184e">getVoronoiCellPolygon</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *qe, const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:a8f55a58455898b8d74a9075a582c184e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the Voronoi cell around a site specified by the origin of a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>. <a href="#a8f55a58455898b8d74a9075a582c184e">More...</a><br /></td></tr>
<tr class="separator:a8f55a58455898b8d74a9075a582c184e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33d2f315fe52d132d3d67920c7b209bf"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a33d2f315fe52d132d3d67920c7b209bf">getVoronoiCellEdge</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *qe, const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;geomFact)</td></tr>
<tr class="memdesc:a33d2f315fe52d132d3d67920c7b209bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the Voronoi cell edge around a site specified by the origin of a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>. <a href="#a33d2f315fe52d132d3d67920c7b209bf">More...</a><br /></td></tr>
<tr class="separator:a33d2f315fe52d132d3d67920c7b209bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a36d2a5a93b3959108c2cd36905143ec9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a36d2a5a93b3959108c2cd36905143ec9">getTriangleEdges</a> (const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;startQE, const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *triEdge[3])</td></tr>
<tr class="memdesc:a36d2a5a93b3959108c2cd36905143ec9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the edges for the triangle to the left of the given <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>. <a href="#a36d2a5a93b3959108c2cd36905143ec9">More...</a><br /></td></tr>
<tr class="separator:a36d2a5a93b3959108c2cd36905143ec9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr class="memitem:aeee5d168d20bb53346ad257e710bbcf8"><td class="memItemLeft" align="right" valign="top">typedef std::stack&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#aeee5d168d20bb53346ad257e710bbcf8">QuadEdgeStack</a></td></tr>
<tr class="separator:aeee5d168d20bb53346ad257e710bbcf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a909aed32857e35b7aced3be76d652777"><td class="memItemLeft" align="right" valign="top">typedef std::vector&lt; std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a909aed32857e35b7aced3be76d652777">TriList</a></td></tr>
<tr class="separator:a909aed32857e35b7aced3be76d652777"><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:a2ddb89f0995cb67eab16b7b89fd9f8c6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a2ddb89f0995cb67eab16b7b89fd9f8c6">createFrame</a> (const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &amp;env)</td></tr>
<tr class="separator:a2ddb89f0995cb67eab16b7b89fd9f8c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae779d7441e5b9915c1fe5102fcdeaf9b"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ae779d7441e5b9915c1fe5102fcdeaf9b">initSubdiv</a> ()</td></tr>
<tr class="separator:ae779d7441e5b9915c1fe5102fcdeaf9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a175e45d3de1dcd2ea12c187c10230c85"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a175e45d3de1dcd2ea12c187c10230c85">prepareVisit</a> ()</td></tr>
<tr class="memdesc:a175e45d3de1dcd2ea12c187c10230c85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the <code>visited</code> flag of each <code><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a></code> prior to iteration, if necessary. <a href="#a175e45d3de1dcd2ea12c187c10230c85">More...</a><br /></td></tr>
<tr class="separator:a175e45d3de1dcd2ea12c187c10230c85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5c96ea9071c93886c95f235dfbd9544"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ae5c96ea9071c93886c95f235dfbd9544">fetchTriangleToVisit</a> (<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *edge, <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#aeee5d168d20bb53346ad257e710bbcf8">QuadEdgeStack</a> &amp;edgeStack, bool includeFrame)</td></tr>
<tr class="memdesc:ae5c96ea9071c93886c95f235dfbd9544"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stores the edges for a visited triangle. Also pushes sym (neighbour) edges on stack to visit later. <a href="#ae5c96ea9071c93886c95f235dfbd9544">More...</a><br /></td></tr>
<tr class="separator:ae5c96ea9071c93886c95f235dfbd9544"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0099b9c981be86e9d59d0d359ddf4da1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a0099b9c981be86e9d59d0d359ddf4da1">getTriangleCoordinates</a> (<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a909aed32857e35b7aced3be76d652777">TriList</a> *triList, bool includeFrame)</td></tr>
<tr class="memdesc:a0099b9c981be86e9d59d0d359ddf4da1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the coordinates for each triangle in the subdivision as an array. <a href="#a0099b9c981be86e9d59d0d359ddf4da1">More...</a><br /></td></tr>
<tr class="separator:a0099b9c981be86e9d59d0d359ddf4da1"><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:a8844838c0e454f8b16b354f0d7f961d9"><td class="memItemLeft" align="right" valign="top">std::deque&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeQuartet.html">QuadEdgeQuartet</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a8844838c0e454f8b16b354f0d7f961d9">quadEdges</a></td></tr>
<tr class="separator:a8844838c0e454f8b16b354f0d7f961d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0df4589a6f8d57f6f866bdde4b6a381f"><td class="memItemLeft" align="right" valign="top">std::array&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a0df4589a6f8d57f6f866bdde4b6a381f">startingEdges</a></td></tr>
<tr class="separator:a0df4589a6f8d57f6f866bdde4b6a381f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcfc2ef20f197c3e176ab6332401ca80"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#afcfc2ef20f197c3e176ab6332401ca80">tolerance</a></td></tr>
<tr class="separator:afcfc2ef20f197c3e176ab6332401ca80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9577b3833efa7d0ee48f9fc703b4487"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ac9577b3833efa7d0ee48f9fc703b4487">edgeCoincidenceTolerance</a></td></tr>
<tr class="separator:ac9577b3833efa7d0ee48f9fc703b4487"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fe1e9c95fadc91be1b10a0baff1644e"><td class="memItemLeft" align="right" valign="top">std::array&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a>, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a1fe1e9c95fadc91be1b10a0baff1644e">frameVertex</a></td></tr>
<tr class="separator:a1fe1e9c95fadc91be1b10a0baff1644e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4d74fe7ee1a73c8b8d3fb2f0392c325"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ac4d74fe7ee1a73c8b8d3fb2f0392c325">frameEnv</a></td></tr>
<tr class="separator:ac4d74fe7ee1a73c8b8d3fb2f0392c325"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e0781e59fff04f6ef434404204ea133"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html">QuadEdgeLocator</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a1e0781e59fff04f6ef434404204ea133">locator</a></td></tr>
<tr class="separator:a1e0781e59fff04f6ef434404204ea133"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a337e7f851aad4c94dfbf8b6a44e6e412"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a337e7f851aad4c94dfbf8b6a44e6e412">visit_state_clean</a></td></tr>
<tr class="separator:a337e7f851aad4c94dfbf8b6a44e6e412"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac686c1d3166f6e90d880f37788071217"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ac686c1d3166f6e90d880f37788071217">triEdges</a> [3]</td></tr>
<tr class="memdesc:ac686c1d3166f6e90d880f37788071217"><td class="mdescLeft">&#160;</td><td class="mdescRight">The quadedges forming a single triangle. <a href="#ac686c1d3166f6e90d880f37788071217">More...</a><br /></td></tr>
<tr class="separator:ac686c1d3166f6e90d880f37788071217"><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>A class that contains the <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdges</a> representing a planar subdivision that models a triangulation. </p>
<p>The subdivision is constructed using the quadedge algebra defined in the class <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>.</p>
<p>All metric calculations are done in the <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html" title="Models a site (node) in a QuadEdgeSubdivision. ">Vertex</a> class. In addition to a triangulation, subdivisions support extraction of Voronoi diagrams. This is easily accomplished, since the Voronoi diagram is the dual of the Delaunay triangulation.</p>
<p>Subdivisions can be provided with a tolerance value. Inserted vertices which are closer than this value to vertices already in the subdivision will be ignored. Using a suitable tolerance value can prevent robustness failures from happening during Delaunay triangulation.</p>
<p>Subdivisions maintain a <b>frame</b> triangle around the client-created edges. The frame is used to provide a bounded "container" for all edges within a TIN. Normally the frame edges, frame connecting edges, and frame triangles are not included in client processing.</p>
<dl class="section author"><dt>Author</dt><dd>JTS: David Skea </dd>
<dd>
JTS: Martin Davis </dd>
<dd>
Benjamin Campbell </dd></dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00080">80</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="ab3686b147364ecd2941622aec4492108"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef std::vector&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>*&gt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ab3686b147364ecd2941622aec4492108">geos::triangulate::quadedge::QuadEdgeSubdivision::QuadEdgeList</a></td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00082">82</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="aeee5d168d20bb53346ad257e710bbcf8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef std::stack&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>*&gt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#aeee5d168d20bb53346ad257e710bbcf8">geos::triangulate::quadedge::QuadEdgeSubdivision::QuadEdgeStack</a></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="QuadEdgeSubdivision_8h_source.html#l00355">355</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a909aed32857e35b7aced3be76d652777"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">typedef std::vector&lt;std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">geom::CoordinateSequence</a>&gt; &gt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a909aed32857e35b7aced3be76d652777">geos::triangulate::quadedge::QuadEdgeSubdivision::TriList</a></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="QuadEdgeSubdivision_8h_source.html#l00356">356</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a8db106ef91759f7a5d1e18a3a07bc608"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::triangulate::quadedge::QuadEdgeSubdivision::QuadEdgeSubdivision </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &amp;&#160;</td>
<td class="paramname"><em>env</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">double&#160;</td>
<td class="paramname"><em>tolerance</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new instance of a quad-edge subdivision based on a frame triangle that encloses a supplied bounding box. A new super-bounding box that contains the triangle is computed and stored. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">env</td><td>the bouding box to surround </td></tr>
<tr><td class="paramname">tolerance</td><td>the tolerance value for determining if two sites are equal </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af7e2177093a8bbcd8d54aed8b04b6e65"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual geos::triangulate::quadedge::QuadEdgeSubdivision::~QuadEdgeSubdivision </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a30cf3fc2df25f4ad937e30af3807f046"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>&amp; geos::triangulate::quadedge::QuadEdgeSubdivision::connect </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>a</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>b</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> connecting the destination of a to the origin of b, in such a way that all three have the same left face after the connection is complete. The quadedge is recorded in the edges list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">a</td><td></td></tr>
<tr><td class="paramname">b</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a2ddb89f0995cb67eab16b7b89fd9f8c6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::triangulate::quadedge::QuadEdgeSubdivision::createFrame </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a> &amp;&#160;</td>
<td class="paramname"><em>env</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae5c96ea9071c93886c95f235dfbd9544"></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_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>** geos::triangulate::quadedge::QuadEdgeSubdivision::fetchTriangleToVisit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td>
<td class="paramname"><em>edge</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#aeee5d168d20bb53346ad257e710bbcf8">QuadEdgeStack</a> &amp;&#160;</td>
<td class="paramname"><em>edgeStack</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeFrame</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>Stores the edges for a visited triangle. Also pushes sym (neighbour) edges on stack to visit later. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">edge</td><td></td></tr>
<tr><td class="paramname">edgeStack</td><td></td></tr>
<tr><td class="paramname">includeFrame</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the visited triangle edges </dd>
<dd>
<code>null</code> if the triangle should not be visited (for instance, if it is outer) </dd></dl>
</div>
</div>
<a class="anchor" id="a8641058f4d31108f2bb4b1fa9b16069a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::deque&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeQuartet.html">QuadEdgeQuartet</a>&gt;&amp; geos::triangulate::quadedge::QuadEdgeSubdivision::getEdges </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>Gets the collection of base <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>s (one for every pair of vertices which is connected). </p>
<dl class="section return"><dt>Returns</dt><dd>a QuadEdgeList </dd></dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00157">157</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="adf7878391061567f667d3c483c66ac45"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">geom::MultiLineString</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getEdges </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the geometry for the edges in the subdivision as a <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">MultiLineString</a> containing 2-point lines. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomFact</td><td>the GeometryFactory to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a MultiLineString </dd></dl>
<dl class="section note"><dt>Note</dt><dd>The caller takes ownership of the returned object. </dd></dl>
</div>
</div>
<a class="anchor" id="a6f62ec4469accedf6c097479404ca686"></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_1Envelope.html">geom::Envelope</a>&amp; geos::triangulate::quadedge::QuadEdgeSubdivision::getEnvelope </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>Gets the envelope of the Subdivision (including the frame). </p>
<dl class="section return"><dt>Returns</dt><dd>the envelope </dd></dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00145">145</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a9d8dccb57d27b2cf96847be510ca8e53"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ab3686b147364ecd2941622aec4492108">QuadEdgeList</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getPrimaryEdges </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeFrame</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets all primary quadedges in the subdivision. </p>
<p>A primary edge is a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> which occupies the 0'th position in its array of associated quadedges. These provide the unique geometric edges of the triangulation.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">includeFrame</td><td><code>true</code> if the frame edges are to be included </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a List of QuadEdges. The caller takes ownership of the returned QuadEdgeList but not the items it contains. </dd></dl>
</div>
</div>
<a class="anchor" id="a0234e3a63618e7c8acacd287f2f17f03"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::triangulate::quadedge::QuadEdgeSubdivision::getTolerance </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>Gets the vertex-equality tolerance value used in this subdivision. </p>
<dl class="section return"><dt>Returns</dt><dd>the tolerance value </dd></dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00134">134</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0099b9c981be86e9d59d0d359ddf4da1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::triangulate::quadedge::QuadEdgeSubdivision::getTriangleCoordinates </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#a909aed32857e35b7aced3be76d652777">TriList</a> *&#160;</td>
<td class="paramname"><em>triList</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeFrame</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>Gets the coordinates for each triangle in the subdivision as an array. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">includeFrame</td><td>true if the frame triangles should be included </td></tr>
<tr><td class="paramname">triList</td><td>a list of Coordinate[4] representing each triangle </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a36d2a5a93b3959108c2cd36905143ec9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void geos::triangulate::quadedge::QuadEdgeSubdivision::getTriangleEdges </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>startQE</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td>
<td class="paramname"><em>triEdge</em>[3]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the edges for the triangle to the left of the given <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startQE</td><td></td></tr>
<tr><td class="paramname">triEdge</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">IllegalArgumentException</td><td>if the edges do not form a triangle </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a1215661884f2da0a3028ed43a6dc568b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getTriangles </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the geometry for the triangles in a triangulated subdivision as a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> of triangular <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomFact</td><td>the GeometryFactory to use </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a GeometryCollection of triangular polygons.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The caller takes ownership of the returned object. </dd></dl>
</div>
</div>
<a class="anchor" id="a98fc3bf6b0b0322febb77e02ef6eddae"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeSubdivision.html#ab3686b147364ecd2941622aec4492108">QuadEdgeSubdivision::QuadEdgeList</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVertexUniqueEdges </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeFrame</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a collection of <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdges</a> whose origin vertices are a unique set which includes all vertices in the subdivision. </p>
<p>The frame vertices can be included if required. This is useful for algorithms which require traversing the subdivision starting at all vertices. Returning a quadedge for each vertex is more efficient than the alternative of finding the actual vertices using <code>getVertices()</code> and then locating quadedges attached to them.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">includeFrame</td><td><code>true</code> if the frame vertices should be included </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a collection of <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> with the vertices of the subdivision as their origins </dd></dl>
</div>
</div>
<a class="anchor" id="a33d2f315fe52d132d3d67920c7b209bf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVoronoiCellEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td>
<td class="paramname"><em>qe</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the Voronoi cell edge around a site specified by the origin of a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>. </p>
<p>The userData of the LineString is set to be the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of the site. This allows attaching external data associated with the site to this cell polygon.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">qe</td><td>a quadedge originating at the cell site </td></tr>
<tr><td class="paramname">geomFact</td><td>a factory for building the polygon </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a polygon indicating the cell extent </dd></dl>
</div>
</div>
<a class="anchor" id="a94fa9eec096a9ec7fd44f1cc494555f8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; &gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVoronoiCellEdges </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a List of <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineStrings</a> for the Voronoi cells of this triangulation. </p>
<p>The userData of each LineString is set to be the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of the cell site. This allows easily associating external data associated with the sites to the cells.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomFact</td><td>a geometry factory </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a List of LineString </dd></dl>
</div>
</div>
<a class="anchor" id="a8f55a58455898b8d74a9075a582c184e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVoronoiCellPolygon </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> *&#160;</td>
<td class="paramname"><em>qe</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the Voronoi cell around a site specified by the origin of a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>. </p>
<p>The userData of the polygon is set to be the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of the site. This allows attaching external data associated with the site to this cell polygon.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">qe</td><td>a quadedge originating at the cell site </td></tr>
<tr><td class="paramname">geomFact</td><td>a factory for building the polygon </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a polygon indicating the cell extent </dd></dl>
</div>
</div>
<a class="anchor" id="aca96e1e44aa42c5d29bfc58ad2d27ab7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a>&gt; &gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVoronoiCellPolygons </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets a List of <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a> for the Voronoi cells of this triangulation. </p>
<p>The userData of each polygon is set to be the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of the cell site. This allows easily associating external data associated with the sites to the cells.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomFact</td><td>a geometry factory </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a List of Polygons </dd></dl>
</div>
</div>
<a class="anchor" id="ac903d8a67993aa16b61dccf9f5b4ce8a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">geom::GeometryCollection</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVoronoiDiagram </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the cells in the Voronoi diagram for this triangulation. The cells are returned as a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> of <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygons</a>. </p>
<p>The userData of each polygon is set to be the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of the cell site. This allows easily associating external data associated with the sites to the cells.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomFact</td><td>a geometry factory </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a GeometryCollection of Polygons </dd></dl>
</div>
</div>
<a class="anchor" id="ad1930ac2fbcef34229205f574e6132ac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">geom::MultiLineString</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::getVoronoiDiagramEdges </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">geom::GeometryFactory</a> &amp;&#160;</td>
<td class="paramname"><em>geomFact</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Gets the cells in the Voronoi diagram for this triangulation. </p>
<p>The cells are returned as a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> of <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineStrings</a>. The userData of each polygon is set to be the <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> of the cell site. This allows easily associating external data associated with the sites to the cells.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">geomFact</td><td>a geometry factory </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a MultiLineString </dd></dl>
</div>
</div>
<a class="anchor" id="ae779d7441e5b9915c1fe5102fcdeaf9b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void geos::triangulate::quadedge::QuadEdgeSubdivision::initSubdiv </td>
<td>(</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 class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae3986a1f7337c2b5b2fe88a30693b212"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>&amp; geos::triangulate::quadedge::QuadEdgeSubdivision::insertSite </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Inserts a new site into the Subdivision, connecting it to the vertices of the containing triangle (or quadrilateral, if the split point falls on an existing edge). </p>
<p>This method does NOT maintain the Delaunay condition. If desired, this must be checked and enforced by the caller.</p>
<p>This method does NOT check if the inserted vertex falls on an edge. This must be checked by the caller, since this situation may cause erroneous triangulation</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">v</td><td>the vertex to insert </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a new quad edge terminating in v </dd></dl>
</div>
</div>
<a class="anchor" id="a7c351b9fa90bf374849d842b76ce3532"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::triangulate::quadedge::QuadEdgeSubdivision::isFrameBorderEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>e</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> is an edge on the border of the frame facets and the internal facets. E.g. an edge which does not itself touch a frame vertex, but which touches an edge which does. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">e</td><td>the edge to test </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the edge is on the border of the frame </dd></dl>
</div>
</div>
<a class="anchor" id="afda4138ade38eadbb6229630ea471778"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::triangulate::quadedge::QuadEdgeSubdivision::isFrameEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>e</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> is an edge incident on a frame triangle vertex. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">e</td><td>the edge to test </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the edge is connected to the frame triangle </dd></dl>
</div>
</div>
<a class="anchor" id="a6cdc79f3ce997085653af8b8d778b52f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::triangulate::quadedge::QuadEdgeSubdivision::isFrameVertex </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>v</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether a vertex is a vertex of the outer triangle. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">v</td><td>the vertex to test </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the vertex is an outer triangle vertex </dd></dl>
</div>
</div>
<a class="anchor" id="ae8a04258a39882f0c838f1e02d0ee1af"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::triangulate::quadedge::QuadEdgeSubdivision::isOnEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>e</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>p</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> lies on a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>, up to a tolerance determined by the subdivision tolerance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">e</td><td>a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> </td></tr>
<tr><td class="paramname">p</td><td>a point </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the vertex lies on the edge </dd></dl>
</div>
</div>
<a class="anchor" id="af7cb2cd8bc09a1226e8c2f94cf9c3058"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool geos::triangulate::quadedge::QuadEdgeSubdivision::isVertexOfEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>e</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>v</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests whether a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html" title="Models a site (node) in a QuadEdgeSubdivision. ">Vertex</a> is the start or end vertex of a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a>, up to the subdivision tolerance distance. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">e</td><td></td></tr>
<tr><td class="paramname">v</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the vertex is a endpoint of the edge </dd></dl>
</div>
</div>
<a class="anchor" id="a938917c6b2cc3e2bfc9ae3e027f13fc9"></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_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>* geos::triangulate::quadedge::QuadEdgeSubdivision::locate </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>v</em></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>Finds a quadedge of a triangle containing a location specified by a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a>, if one exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">v</td><td>the vertex to locate </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> on the edge of a triangle which touches or contains the location </dd>
<dd>
<code>null</code> if no such triangle exists.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The returned pointer <b>should not</b> be freed be the caller. </dd></dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00237">237</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a22f51ebd403180cb9a53fad2beb0e326"></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_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>* geos::triangulate::quadedge::QuadEdgeSubdivision::locate </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><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>Finds a quadedge of a triangle containing a location specified by a <a class="el" href="classgeos_1_1geom_1_1Coordinate.html" title="Coordinate is the lightweight class used to store coordinates. ">geom::Coordinate</a>, if one exists. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p</td><td>the Coordinate to locate </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> on the edge of a triangle which touches or contains the location </dd>
<dd>
<code>null</code> if no such triangle exists.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The returned pointer <b>should not</b> be freed be the caller. </dd></dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00253">253</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a5a2b26604badbeb08b6172ac2b15eac3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>* geos::triangulate::quadedge::QuadEdgeSubdivision::locate </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>Locates the edge between the given vertices, if it exists in the subdivision. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p0</td><td>a coordinate </td></tr>
<tr><td class="paramname">p1</td><td>another coordinate </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the edge joining the coordinates, if present </dd>
<dd>
<code>null</code> if no such edge exists</dd></dl>
<dl class="section note"><dt>Note</dt><dd>the caller <b>should not</b> free the returned pointer </dd></dl>
</div>
</div>
<a class="anchor" id="ac56eb201160d9d8a8f5234485ab060de"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>* geos::triangulate::quadedge::QuadEdgeSubdivision::locateFromEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>v</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>startEdge</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Locates an edge of a triangle which contains a location specified by a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html" title="Models a site (node) in a QuadEdgeSubdivision. ">Vertex</a> <code>v</code>. </p>
<p>The edge returned has the property that either v is on e, or e is an edge of a triangle containing v. The search starts from startEdge and proceeds on the general direction of v.</p>
<p>This locate algorithm relies on the subdivision being Delaunay. For non-Delaunay subdivisions, this may loop for ever.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">v</td><td>the location to search for </td></tr>
<tr><td class="paramname">startEdge</td><td>an edge of the subdivision to start searching at </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> which contains v, or is on the edge of a triangle containing v </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1LocateFailureException.html">LocateFailureException</a></td><td>if the location algorithm fails to converge in a reasonable number of iterations.</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The returned pointer <b>should not</b> be freed be the caller. </dd></dl>
</div>
</div>
<a class="anchor" id="abbe9dc2f6e0d65c02afac883b16c8b33"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>&amp; geos::triangulate::quadedge::QuadEdgeSubdivision::makeEdge </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>o</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a> &amp;&#160;</td>
<td class="paramname"><em>d</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">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new quadedge, recording it in the edges list. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">o</td><td></td></tr>
<tr><td class="paramname">d</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a175e45d3de1dcd2ea12c187c10230c85"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::triangulate::quadedge::QuadEdgeSubdivision::prepareVisit </td>
<td>(</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">
<p>Resets the <code>visited</code> flag of each <code><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a></code> prior to iteration, if necessary. </p>
</div>
</div>
<a class="anchor" id="a678b63bbb35f2be86e191a576e927565"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::triangulate::quadedge::QuadEdgeSubdivision::remove </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a> &amp;&#160;</td>
<td class="paramname"><em>e</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deletes a quadedge from the subdivision. Linked quadedges are updated to reflect the deletion. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">e</td><td>the quadedge to delete </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af464fd5eadc1decf42f80f27c796251b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::triangulate::quadedge::QuadEdgeSubdivision::setLocator </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html">QuadEdgeLocator</a> &gt;&#160;</td>
<td class="paramname"><em>p_locator</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>Sets the <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html" title="An interface for classes which locate an edge in a QuadEdgeSubdivision which either contains a given ...">QuadEdgeLocator</a> to use for locating containing triangles in this subdivision. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">p_locator</td><td>a <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html" title="An interface for classes which locate an edge in a QuadEdgeSubdivision which either contains a given ...">QuadEdgeLocator</a> </td></tr>
</table>
</dd>
</dl>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00170">170</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="af1fd9dc3c2fdb333773a8b55b2aa4bc6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::triangulate::quadedge::QuadEdgeSubdivision::visitTriangles </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1TriangleVisitor.html">TriangleVisitor</a> *&#160;</td>
<td class="paramname"><em>triVisitor</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>includeFrame</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="ac9577b3833efa7d0ee48f9fc703b4487"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::triangulate::quadedge::QuadEdgeSubdivision::edgeCoincidenceTolerance</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="QuadEdgeSubdivision_8h_source.html#l00103">103</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac4d74fe7ee1a73c8b8d3fb2f0392c325"></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_1Envelope.html">geom::Envelope</a> geos::triangulate::quadedge::QuadEdgeSubdivision::frameEnv</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="QuadEdgeSubdivision_8h_source.html#l00105">105</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1fe1e9c95fadc91be1b10a0baff1644e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::array&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1Vertex.html">Vertex</a>, 3&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::frameVertex</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="QuadEdgeSubdivision_8h_source.html#l00104">104</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a1e0781e59fff04f6ef434404204ea133"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeLocator.html">QuadEdgeLocator</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::locator</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="QuadEdgeSubdivision_8h_source.html#l00106">106</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a8844838c0e454f8b16b354f0d7f961d9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::deque&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdgeQuartet.html">QuadEdgeQuartet</a>&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::quadEdges</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>Use a deque to ensure <a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html" title="A class that represents the edge data structure which implements the quadedge algebra. ">QuadEdge</a> pointers are stable. Note that it is NOT safe to erase entries from the deque. </p>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00100">100</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a0df4589a6f8d57f6f866bdde4b6a381f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::array&lt;<a class="el" href="classgeos_1_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>*, 3&gt; geos::triangulate::quadedge::QuadEdgeSubdivision::startingEdges</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="QuadEdgeSubdivision_8h_source.html#l00101">101</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="afcfc2ef20f197c3e176ab6332401ca80"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">double geos::triangulate::quadedge::QuadEdgeSubdivision::tolerance</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="QuadEdgeSubdivision_8h_source.html#l00102">102</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="ac686c1d3166f6e90d880f37788071217"></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_1triangulate_1_1quadedge_1_1QuadEdge.html">QuadEdge</a>* geos::triangulate::quadedge::QuadEdgeSubdivision::triEdges[3]</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 quadedges forming a single triangle. </p>
<p>Only one visitor is allowed to be active at a time, so this is safe. </p>
<p>Definition at line <a class="el" href="QuadEdgeSubdivision_8h_source.html#l00363">363</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<a class="anchor" id="a337e7f851aad4c94dfbf8b6a44e6e412"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::triangulate::quadedge::QuadEdgeSubdivision::visit_state_clean</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="QuadEdgeSubdivision_8h_source.html#l00107">107</a> of file <a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="QuadEdgeSubdivision_8h_source.html">QuadEdgeSubdivision.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>