Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 5035839f674c88dea1f7928a86fbdc64 > files > 825

geos-devel-3.2.1-3.fc14.x86_64.rpm

<!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::geom::util::GeometryTransformer 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&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;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&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;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_1geom.html">geom</a>      </li>
      <li><a class="el" href="namespacegeos_1_1geom_1_1util.html">util</a>      </li>
      <li><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html">geos::geom::util::GeometryTransformer</a>      </li>
    </ul>
  </div>
</div>
<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>  </div>
  <div class="headertitle">
<h1>geos::geom::util::GeometryTransformer Class Reference</h1>  </div>
</div>
<div class="contents">
<!-- doxytag: class="geos::geom::util::GeometryTransformer" -->
<p>A framework for processes which transform an input <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> into an output <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a>, possibly changing its structure and type(s).  
<a href="#_details">More...</a></p>

<p><code>#include &lt;<a class="el" href="GeometryTransformer_8h_source.html">GeometryTransformer.h</a>&gt;</code></p>

<p><a href="classgeos_1_1geom_1_1util_1_1GeometryTransformer-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="a26603282e3b8ffec401e26c4b12cf86d"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transform" ref="a26603282e3b8ffec401e26c4b12cf86d" args="(const Geometry *nInputGeom)" -->
std::auto_ptr&lt; <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> &gt;&nbsp;</td><td class="memItemRight" valign="bottom"><b>transform</b> (const <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> *nInputGeom)</td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">CoordinateSequence::AutoPtr&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgeos_1_1geom_1_1util_1_1GeometryTransformer.html#aa963f4ad005bc89fe9942e34b99d7d6d">createCoordinateSequence</a> (std::auto_ptr&lt; std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt; &gt; coords)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a151eee137eb06a84423db9efd167a8b4"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformCoordinates" ref="a151eee137eb06a84423db9efd167a8b4" args="(const CoordinateSequence *coords, const Geometry *parent)" -->
virtual CoordinateSequence::AutoPtr&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformCoordinates</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac3a27cfa17912fb5a88a50fc23831db1"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformPoint" ref="ac3a27cfa17912fb5a88a50fc23831db1" args="(const Point *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformPoint</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad53fae4506f8118f0afe7b837e30e676"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformMultiPoint" ref="ad53fae4506f8118f0afe7b837e30e676" args="(const MultiPoint *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformMultiPoint</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a471396e633372d67076cfdd927e97e74"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformLinearRing" ref="a471396e633372d67076cfdd927e97e74" args="(const LinearRing *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformLinearRing</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a109fcf23834c08226d23248045e210b7"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformLineString" ref="a109fcf23834c08226d23248045e210b7" args="(const LineString *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformLineString</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad2684d865af6161c5cb64518a0d577c7"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformMultiLineString" ref="ad2684d865af6161c5cb64518a0d577c7" args="(const MultiLineString *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformMultiLineString</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a484717eca176faf5cb616317edadb4ec"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformPolygon" ref="a484717eca176faf5cb616317edadb4ec" args="(const Polygon *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformPolygon</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20979ee3c6b2ee7f4da75821bf289fa7"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformMultiPolygon" ref="a20979ee3c6b2ee7f4da75821bf289fa7" args="(const MultiPolygon *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformMultiPolygon</b> (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><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac70245377bf71c0d9a147933d7d1bfab"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::transformGeometryCollection" ref="ac70245377bf71c0d9a147933d7d1bfab" args="(const GeometryCollection *geom, const Geometry *parent)" -->
virtual <a class="el" href="classgeos_1_1geom_1_1Geometry.html#ad1556305e4785746bc203b0b87132784">Geometry::AutoPtr</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>transformGeometryCollection</b> (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><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="a98686e191020238127d76c044ad97617"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::factory" ref="a98686e191020238127d76c044ad97617" args="" -->
const <a class="el" href="classgeos_1_1geom_1_1GeometryFactory.html">GeometryFactory</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><b>factory</b></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>A framework for processes which transform an input <a class="el" href="classgeos_1_1geom_1_1Geometry.html">Geometry</a> into an output <a class="el" href="classgeos_1_1geom_1_1Geometry.html">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 <a class="el" href="">transformMultiPolygon</a> 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" title="Basic implementation of MultiPolygon.">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 <a class="el" href="">transform</a> method itself will always return a geometry object.</p>
<dl class="see"><dt><b>See also:</b></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>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="aa963f4ad005bc89fe9942e34b99d7d6d"></a><!-- doxytag: member="geos::geom::util::GeometryTransformer::createCoordinateSequence" ref="aa963f4ad005bc89fe9942e34b99d7d6d" args="(std::auto_ptr&lt; std::vector&lt; Coordinate &gt; &gt; coords)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">CoordinateSequence::AutoPtr geos::geom::util::GeometryTransformer::createCoordinateSequence </td>
          <td>(</td>
          <td class="paramtype">std::auto_ptr&lt; std::vector&lt; <a class="el" href="classgeos_1_1geom_1_1Coordinate.html">Coordinate</a> &gt; &gt;&nbsp;</td>
          <td class="paramname"> <em>coords</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></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">CoordinateSequence</a></p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>coords</em>&nbsp;</td><td>the coordinate array to copy </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a coordinate sequence for the array</dd></dl>
<p>[final] </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>
<hr class="footer"/><address class="footer"><small>Generated on Thu Jul 22 2010 for GEOS by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>