geos_390_docs/classgeos_1_1operation_1_1b...

735 lines
37 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>GEOS: geos::operation::buffer::BufferSubgraph Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">GEOS
&#160;<span id="projectnumber">3.9.1dev</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacegeos.html">geos</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1operation.html">operation</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1operation_1_1buffer.html">buffer</a></li><li class="navelem"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html">BufferSubgraph</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="#friends">Friends</a> &#124;
<a href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::operation::buffer::BufferSubgraph Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A connected subset of the graph of DirectedEdge and <a class="el" href="classgeos_1_1geomgraph_1_1Node.html" title="The node component of a geometry graph. ">geomgraph::Node</a>.
<a href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for geos::operation::buffer::BufferSubgraph:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph__coll__graph.svg" width="100%" height="600"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a752c6da9b8b121d887312310380143c1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a752c6da9b8b121d887312310380143c1">BufferSubgraph</a> ()</td></tr>
<tr class="separator:a752c6da9b8b121d887312310380143c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33bb2b0590085db64b3334775d62fd8c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a33bb2b0590085db64b3334775d62fd8c">~BufferSubgraph</a> ()</td></tr>
<tr class="separator:a33bb2b0590085db64b3334775d62fd8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a90183bfeff847ea53ee3c4ffc4247f92"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a90183bfeff847ea53ee3c4ffc4247f92">getDirectedEdges</a> ()</td></tr>
<tr class="separator:a90183bfeff847ea53ee3c4ffc4247f92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d25d22554122e82673e960f3ce09024"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt; *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a0d25d22554122e82673e960f3ce09024">getNodes</a> ()</td></tr>
<tr class="separator:a0d25d22554122e82673e960f3ce09024"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad538dc7d77bf1734154a72f1e5e70efd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#ad538dc7d77bf1734154a72f1e5e70efd">getRightmostCoordinate</a> ()</td></tr>
<tr class="memdesc:ad538dc7d77bf1734154a72f1e5e70efd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the rightmost coordinate in the edges of the subgraph. <a href="#ad538dc7d77bf1734154a72f1e5e70efd">More...</a><br /></td></tr>
<tr class="separator:ad538dc7d77bf1734154a72f1e5e70efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dc803819dd05363f4f07568f32d926b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a8dc803819dd05363f4f07568f32d926b">create</a> (<a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *node)</td></tr>
<tr class="memdesc:a8dc803819dd05363f4f07568f32d926b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the subgraph consisting of all edges reachable from this node. <a href="#a8dc803819dd05363f4f07568f32d926b">More...</a><br /></td></tr>
<tr class="separator:a8dc803819dd05363f4f07568f32d926b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3dca5aa4bbf59c76663a109226115674"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a3dca5aa4bbf59c76663a109226115674">computeDepth</a> (int outsideDepth)</td></tr>
<tr class="separator:a3dca5aa4bbf59c76663a109226115674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a675417cc0401769dc15885568ebcafa3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a675417cc0401769dc15885568ebcafa3">findResultEdges</a> ()</td></tr>
<tr class="memdesc:a675417cc0401769dc15885568ebcafa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find all edges whose depths indicates that they are in the result area(s). <a href="#a675417cc0401769dc15885568ebcafa3">More...</a><br /></td></tr>
<tr class="separator:a675417cc0401769dc15885568ebcafa3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a87da13f45282fca2f1974b7c3e8279b7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a87da13f45282fca2f1974b7c3e8279b7">compareTo</a> (<a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html">BufferSubgraph</a> *)</td></tr>
<tr class="memdesc:a87da13f45282fca2f1974b7c3e8279b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">BufferSubgraphs are compared on the x-value of their rightmost Coordinate. <a href="#a87da13f45282fca2f1974b7c3e8279b7">More...</a><br /></td></tr>
<tr class="separator:a87da13f45282fca2f1974b7c3e8279b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac70a77fe64bdc345a1a104255a23e9e0"><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_1operation_1_1buffer_1_1BufferSubgraph.html#ac70a77fe64bdc345a1a104255a23e9e0">getEnvelope</a> ()</td></tr>
<tr class="memdesc:ac70a77fe64bdc345a1a104255a23e9e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the envelope of the edges in the subgraph. The envelope is cached after being computed. <a href="#ac70a77fe64bdc345a1a104255a23e9e0">More...</a><br /></td></tr>
<tr class="separator:ac70a77fe64bdc345a1a104255a23e9e0"><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:a6826f18b20b1e4937c096923c016cf56"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a6826f18b20b1e4937c096923c016cf56">addReachable</a> (<a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *startNode)</td></tr>
<tr class="memdesc:a6826f18b20b1e4937c096923c016cf56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds all nodes and edges reachable from this node to the subgraph. <a href="#a6826f18b20b1e4937c096923c016cf56">More...</a><br /></td></tr>
<tr class="separator:a6826f18b20b1e4937c096923c016cf56"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2ac4269992098c1b7f8e16d5798ac55"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#af2ac4269992098c1b7f8e16d5798ac55">add</a> (<a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *node, std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt; *nodeStack)</td></tr>
<tr class="separator:af2ac4269992098c1b7f8e16d5798ac55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad37737b429bf5af0d33d09179ad3e9aa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#ad37737b429bf5af0d33d09179ad3e9aa">clearVisitedEdges</a> ()</td></tr>
<tr class="separator:ad37737b429bf5af0d33d09179ad3e9aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e671984e3a6d2a50e4cd340e87ed4b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a7e671984e3a6d2a50e4cd340e87ed4b9">computeDepths</a> (<a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> *startEdge)</td></tr>
<tr class="memdesc:a7e671984e3a6d2a50e4cd340e87ed4b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute depths for all dirEdges via breadth-first traversal of nodes in graph. <a href="#a7e671984e3a6d2a50e4cd340e87ed4b9">More...</a><br /></td></tr>
<tr class="separator:a7e671984e3a6d2a50e4cd340e87ed4b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa10613dc8ce6419a7e86c5d12e969ac6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#aa10613dc8ce6419a7e86c5d12e969ac6">computeNodeDepth</a> (<a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *n)</td></tr>
<tr class="separator:aa10613dc8ce6419a7e86c5d12e969ac6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ccaec7195128090201d9e7ce10cac4e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a5ccaec7195128090201d9e7ce10cac4e">copySymDepths</a> (<a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> *de)</td></tr>
<tr class="separator:a5ccaec7195128090201d9e7ce10cac4e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac07c646a55a2d5dc140c7a962c87f948"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#ac07c646a55a2d5dc140c7a962c87f948">contains</a> (std::set&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt; &amp;<a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a24c54533ba3edb54fd130f78bc68c818">nodes</a>, <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *node)</td></tr>
<tr class="separator:ac07c646a55a2d5dc140c7a962c87f948"><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:aa1e64b398a3fe2de98690d74dc803b9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1RightmostEdgeFinder.html">RightmostEdgeFinder</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#aa1e64b398a3fe2de98690d74dc803b9f">finder</a></td></tr>
<tr class="separator:aa1e64b398a3fe2de98690d74dc803b9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05886a18011c3be599318a0dae42eb09"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a05886a18011c3be599318a0dae42eb09">dirEdgeList</a></td></tr>
<tr class="separator:a05886a18011c3be599318a0dae42eb09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a24c54533ba3edb54fd130f78bc68c818"><td class="memItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a24c54533ba3edb54fd130f78bc68c818">nodes</a></td></tr>
<tr class="separator:a24c54533ba3edb54fd130f78bc68c818"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65a898a19b448ea6e88a2faa1902ee00"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a65a898a19b448ea6e88a2faa1902ee00">rightMostCoord</a></td></tr>
<tr class="separator:a65a898a19b448ea6e88a2faa1902ee00"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82a546a659aa9c697f76341649b1e999"><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_1operation_1_1buffer_1_1BufferSubgraph.html#a82a546a659aa9c697f76341649b1e999">env</a></td></tr>
<tr class="separator:a82a546a659aa9c697f76341649b1e999"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
Friends</h2></td></tr>
<tr class="memitem:a186c99f44e12e0053c44f9539dfe21a3"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html#a186c99f44e12e0053c44f9539dfe21a3">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html">BufferSubgraph</a> &amp;bs)</td></tr>
<tr class="separator:a186c99f44e12e0053c44f9539dfe21a3"><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 connected subset of the graph of DirectedEdge and <a class="el" href="classgeos_1_1geomgraph_1_1Node.html" title="The node component of a geometry graph. ">geomgraph::Node</a>. </p>
<p>Its edges will generate either</p><ul>
<li>a single polygon in the complete buffer, with zero or more holes, or</li>
<li>ne or more connected holes </li>
</ul>
<p>Definition at line <a class="el" href="BufferSubgraph_8h_source.html#l00061">61</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a752c6da9b8b121d887312310380143c1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::buffer::BufferSubgraph::BufferSubgraph </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a33bb2b0590085db64b3334775d62fd8c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::operation::buffer::BufferSubgraph::~BufferSubgraph </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="af2ac4269992098c1b7f8e16d5798ac55"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::add </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *&#160;</td>
<td class="paramname"><em>node</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt; *&#160;</td>
<td class="paramname"><em>nodeStack</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds the argument node and all its out edges to the subgraph</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">node</td><td>the node to add </td></tr>
<tr><td class="paramname">nodeStack</td><td>the current set of nodes being traversed </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a6826f18b20b1e4937c096923c016cf56"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::addReachable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *&#160;</td>
<td class="paramname"><em>startNode</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Adds all nodes and edges reachable from this node to the subgraph. </p>
<p>Uses an explicit stack to avoid a large depth of recursion.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startNode</td><td>a node known to be in the subgraph </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ad37737b429bf5af0d33d09179ad3e9aa"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::clearVisitedEdges </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">
</div>
</div>
<a class="anchor" id="a87da13f45282fca2f1974b7c3e8279b7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int geos::operation::buffer::BufferSubgraph::compareTo </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html">BufferSubgraph</a> *&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>BufferSubgraphs are compared on the x-value of their rightmost Coordinate. </p>
<p>This defines a partial ordering on the graphs such that:</p>
<p>g1 &gt;= g2 &lt;==&gt; Ring(g2) does not contain Ring(g1)</p>
<p>where Polygon(g) is the buffer polygon that is built from g.</p>
<p>This relationship is used to sort the BufferSubgraphs so that shells are guaranteed to be built before holes. </p>
</div>
</div>
<a class="anchor" id="a3dca5aa4bbf59c76663a109226115674"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::computeDepth </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>outsideDepth</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7e671984e3a6d2a50e4cd340e87ed4b9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::computeDepths </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> *&#160;</td>
<td class="paramname"><em>startEdge</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Compute depths for all dirEdges via breadth-first traversal of nodes in graph. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">startEdge</td><td>edge to start processing with </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa10613dc8ce6419a7e86c5d12e969ac6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::computeNodeDepth </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *&#160;</td>
<td class="paramname"><em>n</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ac07c646a55a2d5dc140c7a962c87f948"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::operation::buffer::BufferSubgraph::contains </td>
<td>(</td>
<td class="paramtype">std::set&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt; &amp;&#160;</td>
<td class="paramname"><em>nodes</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *&#160;</td>
<td class="paramname"><em>node</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5ccaec7195128090201d9e7ce10cac4e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::copySymDepths </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> *&#160;</td>
<td class="paramname"><em>de</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8dc803819dd05363f4f07568f32d926b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::create </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> *&#160;</td>
<td class="paramname"><em>node</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates the subgraph consisting of all edges reachable from this node. </p>
<p>Finds the edges in the graph and the rightmost coordinate.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">node</td><td>a node to start the graph traversal from </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a675417cc0401769dc15885568ebcafa3"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::operation::buffer::BufferSubgraph::findResultEdges </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Find all edges whose depths indicates that they are in the result area(s). </p>
<p>Since we want polygon shells to be oriented CW, choose dirEdges with the interior of the result on the RHS. Mark them as being in the result. Interior Area edges are the result of dimensional collapses. They do not form part of the result area boundary. </p>
</div>
</div>
<a class="anchor" id="a90183bfeff847ea53ee3c4ffc4247f92"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a> * &gt; * geos::operation::buffer::BufferSubgraph::getDirectedEdges </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="BufferSubgraph_8h_source.html#l00189">189</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
<p>References <a class="el" href="namespacegeos_1_1operation_1_1buffer.html#acfc9f4a1803ee1d5f2127b1d18dc06bf">geos::operation::buffer::BufferSubgraphGT()</a>.</p>
<p><div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph_a90183bfeff847ea53ee3c4ffc4247f92_cgraph.svg" width="480" height="55"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>
</p>
</div>
</div>
<a class="anchor" id="ac70a77fe64bdc345a1a104255a23e9e0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Envelope.html">geom::Envelope</a>* geos::operation::buffer::BufferSubgraph::getEnvelope </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Computes the envelope of the edges in the subgraph. The envelope is cached after being computed. </p>
<dl class="section return"><dt>Returns</dt><dd>the envelope of the graph. </dd></dl>
</div>
</div>
<a class="anchor" id="a0d25d22554122e82673e960f3ce09024"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; <a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a> * &gt; * geos::operation::buffer::BufferSubgraph::getNodes </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="BufferSubgraph_8h_source.html#l00183">183</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<a class="anchor" id="ad538dc7d77bf1734154a72f1e5e70efd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a> * geos::operation::buffer::BufferSubgraph::getRightmostCoordinate </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 rightmost coordinate in the edges of the subgraph. </p>
<p>Definition at line <a class="el" href="BufferSubgraph_8h_source.html#l00177">177</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a class="anchor" id="a186c99f44e12e0053c44f9539dfe21a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::ostream&amp; operator&lt;&lt; </td>
<td>(</td>
<td class="paramtype">std::ostream &amp;&#160;</td>
<td class="paramname"><em>os</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1operation_1_1buffer_1_1BufferSubgraph.html">BufferSubgraph</a> &amp;&#160;</td>
<td class="paramname"><em>bs</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">friend</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a05886a18011c3be599318a0dae42eb09"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1geomgraph_1_1DirectedEdge.html">geomgraph::DirectedEdge</a>*&gt; geos::operation::buffer::BufferSubgraph::dirEdgeList</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="BufferSubgraph_8h_source.html#l00065">65</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<a class="anchor" id="a82a546a659aa9c697f76341649b1e999"></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::operation::buffer::BufferSubgraph::env</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="BufferSubgraph_8h_source.html#l00071">71</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa1e64b398a3fe2de98690d74dc803b9f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1operation_1_1buffer_1_1RightmostEdgeFinder.html">RightmostEdgeFinder</a> geos::operation::buffer::BufferSubgraph::finder</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="BufferSubgraph_8h_source.html#l00063">63</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<a class="anchor" id="a24c54533ba3edb54fd130f78bc68c818"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::vector&lt;<a class="el" href="classgeos_1_1geomgraph_1_1Node.html">geomgraph::Node</a>*&gt; geos::operation::buffer::BufferSubgraph::nodes</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="BufferSubgraph_8h_source.html#l00067">67</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<a class="anchor" id="a65a898a19b448ea6e88a2faa1902ee00"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classgeos_1_1geom_1_1Coordinate.html">geom::Coordinate</a>* geos::operation::buffer::BufferSubgraph::rightMostCoord</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="BufferSubgraph_8h_source.html#l00069">69</a> of file <a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="BufferSubgraph_8h_source.html">BufferSubgraph.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>