geos_390_docs/classgeos_1_1geom_1_1util_1...

766 lines
43 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::geom::util::GeometryTransformer 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_1geom.html">geom</a></li><li class="navelem"><a class="el" href="namespacegeos_1_1geom_1_1util.html">util</a></li><li class="navelem"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">GeometryTransformer</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="#pri-methods">Private Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a> &#124;
<a href="classgeos_1_1geom_1_1util_1_1GeometryTransformer-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">geos::geom::util::GeometryTransformer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A framework for processes which transform an input <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> into an output <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, possibly changing its structure and type(s).
<a href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for geos::geom::util::GeometryTransformer:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1util_1_1GeometryTransformer__inherit__graph.svg" width="206" height="147"><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>
<div class="dynheader">
Collaboration diagram for geos::geom::util::GeometryTransformer:</div>
<div class="dyncontent">
<div class="center"><div class="zoom"><iframe scrolling="no" frameborder="0" src="classgeos_1_1geom_1_1util_1_1GeometryTransformer__coll__graph.svg" width="100%" height="436"><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:a068a30d4bfec9e1cb612126378945573"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a068a30d4bfec9e1cb612126378945573">GeometryTransformer</a> ()</td></tr>
<tr class="separator:a068a30d4bfec9e1cb612126378945573"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab46bac65f7658c6f35024a36f73e87ce"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#ab46bac65f7658c6f35024a36f73e87ce">~GeometryTransformer</a> ()=default</td></tr>
<tr class="separator:ab46bac65f7658c6f35024a36f73e87ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b8568148ed1dde8d90633b78528545e"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a8b8568148ed1dde8d90633b78528545e">transform</a> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *nInputGeom)</td></tr>
<tr class="separator:a8b8568148ed1dde8d90633b78528545e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada2f375416a5281601da809b9fb471df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#ada2f375416a5281601da809b9fb471df">setSkipTransformedInvalidInteriorRings</a> (bool b)</td></tr>
<tr class="separator:ada2f375416a5281601da809b9fb471df"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a964e87b4694f7c6273ee0fbf627adf6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html#aca329cbbec92629bbc708360109949e1">CoordinateSequence::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a964e87b4694f7c6273ee0fbf627adf6a">createCoordinateSequence</a> (std::unique_ptr&lt; std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt; &gt; coords)</td></tr>
<tr class="memdesc:a964e87b4694f7c6273ee0fbf627adf6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convenience method which provides standard way of creating a <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html" title="The internal representation of a list of coordinates inside a Geometry. ">CoordinateSequence</a>. <a href="#a964e87b4694f7c6273ee0fbf627adf6a">More...</a><br /></td></tr>
<tr class="separator:a964e87b4694f7c6273ee0fbf627adf6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dcbbefc24b49ebe21d0e2e7f9fc64bc"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html#aca329cbbec92629bbc708360109949e1">CoordinateSequence::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a4dcbbefc24b49ebe21d0e2e7f9fc64bc">transformCoordinates</a> (const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a> *coords, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:a4dcbbefc24b49ebe21d0e2e7f9fc64bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4922db44c5613a41d492f918f2b54596"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a4922db44c5613a41d492f918f2b54596">transformPoint</a> (const <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:a4922db44c5613a41d492f918f2b54596"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a9ec892e6bbac4e10818e8ee392a0b8"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a2a9ec892e6bbac4e10818e8ee392a0b8">transformMultiPoint</a> (const <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html">MultiPoint</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:a2a9ec892e6bbac4e10818e8ee392a0b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f894b2e2168ba3e757f385156cce560"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a5f894b2e2168ba3e757f385156cce560">transformLinearRing</a> (const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">LinearRing</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:a5f894b2e2168ba3e757f385156cce560"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacbcaf1052c48af214fa92bf023f9a5c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#aacbcaf1052c48af214fa92bf023f9a5c">transformLineString</a> (const <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:aacbcaf1052c48af214fa92bf023f9a5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af044753e836c6e3606a3e08da95abd14"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#af044753e836c6e3606a3e08da95abd14">transformMultiLineString</a> (const <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">MultiLineString</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:af044753e836c6e3606a3e08da95abd14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a441054de8c2ea034fbecb838608b4f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a7a441054de8c2ea034fbecb838608b4f">transformPolygon</a> (const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygon</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:a7a441054de8c2ea034fbecb838608b4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadf6299c96c889d88d1fff9a4cfa50bb"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#aadf6299c96c889d88d1fff9a4cfa50bb">transformMultiPolygon</a> (const <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">MultiPolygon</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:aadf6299c96c889d88d1fff9a4cfa50bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69abd780faf935dcf6a351c51e2d170c"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a69abd780faf935dcf6a351c51e2d170c">transformGeometryCollection</a> (const <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> *geom, const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *parent)</td></tr>
<tr class="separator:a69abd780faf935dcf6a351c51e2d170c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a98686e191020238127d76c044ad97617"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a98686e191020238127d76c044ad97617">factory</a></td></tr>
<tr class="separator:a98686e191020238127d76c044ad97617"><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:a872dd23c4efc74913abcdc18e78aeefd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a872dd23c4efc74913abcdc18e78aeefd">GeometryTransformer</a> (const <a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">GeometryTransformer</a> &amp;other)=delete</td></tr>
<tr class="separator:a872dd23c4efc74913abcdc18e78aeefd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1e67fd8975576db5ebc66bbc74d6b13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">GeometryTransformer</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#ae1e67fd8975576db5ebc66bbc74d6b13">operator=</a> (const <a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">GeometryTransformer</a> &amp;rhs)=delete</td></tr>
<tr class="separator:ae1e67fd8975576db5ebc66bbc74d6b13"><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:ae5b15bf9a6d02890d3423eecb48a7364"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#ae5b15bf9a6d02890d3423eecb48a7364">inputGeom</a></td></tr>
<tr class="separator:ae5b15bf9a6d02890d3423eecb48a7364"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76dfed4482c19d4c6bc0d64abc2715fb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a76dfed4482c19d4c6bc0d64abc2715fb">pruneEmptyGeometry</a></td></tr>
<tr class="separator:a76dfed4482c19d4c6bc0d64abc2715fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8635297e71d199be595ad3590871c34"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#aa8635297e71d199be595ad3590871c34">preserveGeometryCollectionType</a></td></tr>
<tr class="separator:aa8635297e71d199be595ad3590871c34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae17ca660cfc00c3874e675b35f3f5d90"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#ae17ca660cfc00c3874e675b35f3f5d90">preserveType</a></td></tr>
<tr class="separator:ae17ca660cfc00c3874e675b35f3f5d90"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcfd64826a2d4e6a149fb2d9e56587c4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#abcfd64826a2d4e6a149fb2d9e56587c4">skipTransformedInvalidInteriorRings</a></td></tr>
<tr class="separator:abcfd64826a2d4e6a149fb2d9e56587c4"><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 framework for processes which transform an input <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> into an output <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a>, possibly changing its structure and type(s). </p>
<p>This class is a framework for implementing subclasses which perform transformations on various different <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> subclasses. It provides an easy way of applying specific transformations to given geometry types, while allowing unhandled types to be simply copied. Also, the framework ensures that if subcomponents change type the parent geometries types change appropriately to maintain valid structure. Subclasses will override whichever <code>transformX</code> methods they need to to handle particular <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> types.</p>
<p>A typically usage would be a transformation that may transform Polygons into Polygons, LineStrings or Points. This class would likely need to override the <code><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#aadf6299c96c889d88d1fff9a4cfa50bb">GeometryTransformer::transformMultiPolygon</a>(const MultiPolygon* geom, const Geometry* parent)</code> method to ensure that if input Polygons change type the result is a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a>, not a <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">MultiPolygon</a></p>
<p>The default behaviour of this class is to simply recursively transform each <a class="el" href="classgeos_1_1geom_1_1Geometry.html" title="Basic implementation of Geometry, constructed and destructed by GeometryFactory. ">Geometry</a> component into an identical object by copying.</p>
<p>Note that all <code>transformX</code> methods may return <code>null</code>, to avoid creating empty geometry objects. This will be handled correctly by the transformer. The <code><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#a8b8568148ed1dde8d90633b78528545e">GeometryTransformer::transform(const Geometry* nInputGeom)</a></code> method itself will always return a geometry object.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryEditor.html">GeometryEditor</a></dd></dl>
<p>Possible extensions: getParent() method to return immediate parent e.g. of LinearRings in Polygons </p>
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00089">89</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a068a30d4bfec9e1cb612126378945573"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">geos::geom::util::GeometryTransformer::GeometryTransformer </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ab46bac65f7658c6f35024a36f73e87ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual geos::geom::util::GeometryTransformer::~GeometryTransformer </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>
<a class="anchor" id="a872dd23c4efc74913abcdc18e78aeefd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">geos::geom::util::GeometryTransformer::GeometryTransformer </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">GeometryTransformer</a> &amp;&#160;</td>
<td class="paramname"><em>other</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a964e87b4694f7c6273ee0fbf627adf6a"></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_1CoordinateSequence.html#aca329cbbec92629bbc708360109949e1">CoordinateSequence::Ptr</a> geos::geom::util::GeometryTransformer::createCoordinateSequence </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt; &gt;&#160;</td>
<td class="paramname"><em>coords</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Convenience method which provides standard way of creating a <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html" title="The internal representation of a list of coordinates inside a Geometry. ">CoordinateSequence</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">coords</td><td>the coordinate array to copy </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a coordinate sequence for the array</dd></dl>
<p>[final] </p>
</div>
</div>
<a class="anchor" id="ae1e67fd8975576db5ebc66bbc74d6b13"></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_1util_1_1GeometryTransformer.html">GeometryTransformer</a>&amp; geos::geom::util::GeometryTransformer::operator= </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">GeometryTransformer</a> &amp;&#160;</td>
<td class="paramname"><em>rhs</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span><span class="mlabel">delete</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ada2f375416a5281601da809b9fb471df"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void geos::geom::util::GeometryTransformer::setSkipTransformedInvalidInteriorRings </td>
<td>(</td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>b</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8b8568148ed1dde8d90633b78528545e"></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">Geometry</a>&gt; geos::geom::util::GeometryTransformer::transform </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>nInputGeom</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a4dcbbefc24b49ebe21d0e2e7f9fc64bc"></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_1geom_1_1CoordinateSequence.html#aca329cbbec92629bbc708360109949e1">CoordinateSequence::Ptr</a> geos::geom::util::GeometryTransformer::transformCoordinates </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1CoordinateSequence.html">CoordinateSequence</a> *&#160;</td>
<td class="paramname"><em>coords</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1util_1_1Densifier_1_1DensifyTransformer.html#a0da73543df327611732bad128d8e37f0">geos::geom::util::Densifier::DensifyTransformer</a>.</p>
</div>
</div>
<a class="anchor" id="a69abd780faf935dcf6a351c51e2d170c"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformGeometryCollection </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5f894b2e2168ba3e757f385156cce560"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformLinearRing </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LinearRing.html">LinearRing</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aacbcaf1052c48af214fa92bf023f9a5c"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformLineString </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1LineString.html">LineString</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af044753e836c6e3606a3e08da95abd14"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformMultiLineString </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1MultiLineString.html">MultiLineString</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a2a9ec892e6bbac4e10818e8ee392a0b8"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformMultiPoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1MultiPoint.html">MultiPoint</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aadf6299c96c889d88d1fff9a4cfa50bb"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformMultiPolygon </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1MultiPolygon.html">MultiPolygon</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1util_1_1Densifier_1_1DensifyTransformer.html#af2305dd317398d72eda79afcdbc69d9c">geos::geom::util::Densifier::DensifyTransformer</a>.</p>
</div>
</div>
<a class="anchor" id="a4922db44c5613a41d492f918f2b54596"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformPoint </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Point.html">Point</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a7a441054de8c2ea034fbecb838608b4f"></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_1geom_1_1Geometry.html#a57c6acd6bb0a8371356897f40247ed33">Geometry::Ptr</a> geos::geom::util::GeometryTransformer::transformPolygon </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Polygon.html">Polygon</a> *&#160;</td>
<td class="paramname"><em>geom</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *&#160;</td>
<td class="paramname"><em>parent</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">protected</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Reimplemented in <a class="el" href="classgeos_1_1geom_1_1util_1_1Densifier_1_1DensifyTransformer.html#a6ea0b14643ea7d70636a797564c70fe8">geos::geom::util::Densifier::DensifyTransformer</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a98686e191020238127d76c044ad97617"></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_1GeometryFactory.html">GeometryFactory</a>* geos::geom::util::GeometryTransformer::factory</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00103">103</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae5b15bf9a6d02890d3423eecb48a7364"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>* geos::geom::util::GeometryTransformer::inputGeom</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">private</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00155">155</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div>
</div>
<a class="anchor" id="aa8635297e71d199be595ad3590871c34"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::util::GeometryTransformer::preserveGeometryCollectionType</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><code>true</code> if a homogenous collection result from a <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html">GeometryCollection</a> should still be a general <a class="el" href="classgeos_1_1geom_1_1GeometryCollection.html" title="Represents a collection of heterogeneous Geometry objects. ">GeometryCollection</a> </p>
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00168">168</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div>
</div>
<a class="anchor" id="ae17ca660cfc00c3874e675b35f3f5d90"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::util::GeometryTransformer::preserveType</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><code>true</code> if the output from a collection argument should still be a collection <code>true</code> if the type of the input should be preserved </p>
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00178">178</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div>
</div>
<a class="anchor" id="a76dfed4482c19d4c6bc0d64abc2715fb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::util::GeometryTransformer::pruneEmptyGeometry</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><code>true</code> if empty geometries should not be included in the result </p>
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00161">161</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div>
</div>
<a class="anchor" id="abcfd64826a2d4e6a149fb2d9e56587c4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool geos::geom::util::GeometryTransformer::skipTransformedInvalidInteriorRings</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><code>true</code> if transformed invalid interior rings should be skipped </p>
<p>Definition at line <a class="el" href="GeometryTransformer_8h_source.html#l00183">183</a> of file <a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.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>