<!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"/> <title>GEOS: geos::operation::polygonize::Polygonizer Class Reference</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related 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 class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div class="navpath"> <ul> <li><a class="el" href="namespacegeos.html">geos</a> </li> <li><a class="el" href="namespacegeos_1_1operation.html">operation</a> </li> <li><b>polygonize</b> </li> <li><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html">geos::operation::polygonize::Polygonizer</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#friends">Friends</a> </div> <div class="headertitle"> <h1>geos::operation::polygonize::Polygonizer Class Reference</h1> </div> </div> <div class="contents"> <!-- doxytag: class="geos::operation::polygonize::Polygonizer" --> <p>Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph. <a href="#_details">More...</a></p> <p><code>#include <<a class="el" href="Polygonizer_8h_source.html">Polygonizer.h</a>></code></p> <p><a href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab5151927d8308185c34571b2721e074f"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::Polygonizer" ref="ab5151927d8308185c34571b2721e074f" args="()" --> </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#ab5151927d8308185c34571b2721e074f">Polygonizer</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a polygonizer with the same GeometryFactory as the input Geometry. <br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#ad4faf520a6b996535440cf368878012f">add</a> (std::vector< <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * > *geomList)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a collection of geometries to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used. <a href="#ad4faf520a6b996535440cf368878012f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#a3d6eba30fe37c83c036fe7c25f0624fa">add</a> (std::vector< const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * > *geomList)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a collection of geometries to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used. <a href="#a3d6eba30fe37c83c036fe7c25f0624fa"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#a7b1fb0421e283c019beccb32bd9fa313">add</a> (<a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#a55c8d19b82467e50c7728103e0cf4fd3">add</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> *g)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#a4b113d194a8f27f6f9016277c774fb71">getPolygons</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the list of polygons formed by the polygonization. <a href="#a4b113d194a8f27f6f9016277c774fb71"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< const <br class="typebreak"/> <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#a75b7a30279755b922edf601e0ea61702">getDangles</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the list of dangling lines found during polygonization. <a href="#a75b7a30279755b922edf601e0ea61702"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< const <br class="typebreak"/> <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#ada80027114123983446c52d3e7b6f977">getCutEdges</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the list of cut edges found during polygonization. <a href="#ada80027114123983446c52d3e7b6f977"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">std::vector< <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * > * </td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html#a2a7cb69653beac55e155637866b3f52b">getInvalidRingLines</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the list of lines forming invalid rings found during polygonization. <a href="#a2a7cb69653beac55e155637866b3f52b"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8b9beb8e26c8b1a46248c34b41aa8921"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::graph" ref="a8b9beb8e26c8b1a46248c34b41aa8921" args="" --> <a class="el" href="classgeos_1_1operation_1_1polygonize_1_1PolygonizeGraph.html">PolygonizeGraph</a> * </td><td class="memItemRight" valign="bottom"><b>graph</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a12e55b4ea2b49ede7d5cfef1841fc000"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::dangles" ref="a12e55b4ea2b49ede7d5cfef1841fc000" args="" --> std::vector< const <br class="typebreak"/> <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * > * </td><td class="memItemRight" valign="bottom"><b>dangles</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9784b85f4ac57f12ca6d4625d9139fb2"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::cutEdges" ref="a9784b85f4ac57f12ca6d4625d9139fb2" args="" --> std::vector< const <br class="typebreak"/> <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * > * </td><td class="memItemRight" valign="bottom"><b>cutEdges</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae7e4b28361038167d1a0750b0d4882d1"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::invalidRingLines" ref="ae7e4b28361038167d1a0750b0d4882d1" args="" --> std::vector< <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a> * > * </td><td class="memItemRight" valign="bottom"><b>invalidRingLines</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a358799b4afff3554e9ba51760cd34a0c"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::holeList" ref="a358799b4afff3554e9ba51760cd34a0c" args="" --> std::vector< <a class="el" href="classgeos_1_1operation_1_1polygonize_1_1EdgeRing.html">EdgeRing</a> * > * </td><td class="memItemRight" valign="bottom"><b>holeList</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb7f17222843cb82bc507b1ffd91d431"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::shellList" ref="aeb7f17222843cb82bc507b1ffd91d431" args="" --> std::vector< <a class="el" href="classgeos_1_1operation_1_1polygonize_1_1EdgeRing.html">EdgeRing</a> * > * </td><td class="memItemRight" valign="bottom"><b>shellList</b></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af9494e2968cdac9c554306cbdac8cd74"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::polyList" ref="af9494e2968cdac9c554306cbdac8cd74" args="" --> std::vector< <a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a> * > * </td><td class="memItemRight" valign="bottom"><b>polyList</b></td></tr> <tr><td colspan="2"><h2><a name="friends"></a> Friends</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae56d25e6c5388d3e0eac5c7b4aaa72fb"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::Polygonizer::LineStringAdder" ref="ae56d25e6c5388d3e0eac5c7b4aaa72fb" args="" --> class </td><td class="memItemRight" valign="bottom"><b>Polygonizer::LineStringAdder</b></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph. </p> <p>Any dimension of Geometry is handled - the constituent linework is extracted to form the edges. The edges must be correctly noded; that is, they must only meet at their endpoints. The <a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html" title="Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph...">Polygonizer</a> will still run on incorrectly noded input but will not form polygons from incorrected noded edges.</p> <p>The <a class="el" href="classgeos_1_1operation_1_1polygonize_1_1Polygonizer.html" title="Polygonizes a set of Geometrys which contain linework that represents the edges of a planar graph...">Polygonizer</a> reports the follow kinds of errors:</p> <ul> <li><b>Dangles</b> - edges which have one or both ends which are not incident on another edge endpoint</li> <li><b>Cut Edges</b> - edges which are connected at both ends but which do not form part of polygon</li> <li><b>Invalid Ring Lines</b> - edges which form rings which are invalid (e.g. the component lines contain a self-intersection) </li> </ul> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="ad4faf520a6b996535440cf368878012f"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::add" ref="ad4faf520a6b996535440cf368878012f" args="(std::vector< geom::Geometry * > *geomList)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void geos::operation::polygonize::Polygonizer::add </td> <td>(</td> <td class="paramtype">std::vector< <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * > * </td> <td class="paramname"> <em>geomList</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a collection of geometries to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>geomList</em> </td><td>a list of Geometry with linework to be polygonized </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a3d6eba30fe37c83c036fe7c25f0624fa"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::add" ref="a3d6eba30fe37c83c036fe7c25f0624fa" args="(std::vector< const geom::Geometry * > *geomList)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void geos::operation::polygonize::Polygonizer::add </td> <td>(</td> <td class="paramtype">std::vector< const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * > * </td> <td class="paramname"> <em>geomList</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a collection of geometries to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>geomList</em> </td><td>a list of Geometry with linework to be polygonized </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a55c8d19b82467e50c7728103e0cf4fd3"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::add" ref="a55c8d19b82467e50c7728103e0cf4fd3" args="(const geom::Geometry *g)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void geos::operation::polygonize::Polygonizer::add </td> <td>(</td> <td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * </td> <td class="paramname"> <em>g</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a geometry to the linework to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>g</em> </td><td>a Geometry with linework to be polygonized </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="a7b1fb0421e283c019beccb32bd9fa313"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::add" ref="a7b1fb0421e283c019beccb32bd9fa313" args="(geom::Geometry *g)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void geos::operation::polygonize::Polygonizer::add </td> <td>(</td> <td class="paramtype"><a class="el" href="classgeos_1_1geom_1_1Geometry.html">geom::Geometry</a> * </td> <td class="paramname"> <em>g</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Add a geometry to the linework to be polygonized. May be called multiple times. Any dimension of Geometry may be added; the constituent linework will be extracted and used</p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>g</em> </td><td>a Geometry with linework to be polygonized </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ada80027114123983446c52d3e7b6f977"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::getCutEdges" ref="ada80027114123983446c52d3e7b6f977" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>*>* geos::operation::polygonize::Polygonizer::getCutEdges </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the list of cut edges found during polygonization. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a (possibly empty) reference to collection of the input LineStrings which are cut edges. Ownership retained by this object. </dd></dl> </div> </div> <a class="anchor" id="a75b7a30279755b922edf601e0ea61702"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::getDangles" ref="a75b7a30279755b922edf601e0ea61702" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<const <a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>*>* geos::operation::polygonize::Polygonizer::getDangles </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the list of dangling lines found during polygonization. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a collection of the input LineStrings which are dangles </dd></dl> </div> </div> <a class="anchor" id="a2a7cb69653beac55e155637866b3f52b"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::getInvalidRingLines" ref="a2a7cb69653beac55e155637866b3f52b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classgeos_1_1geom_1_1LineString.html">geom::LineString</a>*>* geos::operation::polygonize::Polygonizer::getInvalidRingLines </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Get the list of lines forming invalid rings found during polygonization. </p> <p>Ownership is tranferred to caller, second call will return NULL (unless polygonize is called again). </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a collection of LineStrings which form invalid rings </dd></dl> </div> </div> <a class="anchor" id="a4b113d194a8f27f6f9016277c774fb71"></a><!-- doxytag: member="geos::operation::polygonize::Polygonizer::getPolygons" ref="a4b113d194a8f27f6f9016277c774fb71" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">std::vector<<a class="el" href="classgeos_1_1geom_1_1Polygon.html">geom::Polygon</a>*>* geos::operation::polygonize::Polygonizer::getPolygons </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Gets the list of polygons formed by the polygonization. </p> <p>Ownership of vector is transferred to caller, subsequent calls will return NULL. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>a collection of Polygons </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="Polygonizer_8h_source.html">Polygonizer.h</a></li> </ul> </div> <hr class="footer"/><address class="footer"><small>Generated on Thu Jul 22 2010 for GEOS by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address> </body> </html>