GEOS  3.3.3
PointGeometryUnion.h
1 /**********************************************************************
2  * $Id$
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2011 Sandro Santilli <strk@keybit.net
8  *
9  * This is free software; you can redistribute and/or modify it under
10  * the terms of the GNU Lesser General Public Licence as published
11  * by the Free Software Foundation.
12  * See the COPYING file for more information.
13  *
14  **********************************************************************
15  *
16  * Last port: operation/union/PointGeometryUnion.java r320 (JTS-1.12)
17  *
18  **********************************************************************/
19 
20 #ifndef GEOS_OP_UNION_POINTGEOMETRYUNION_H
21 #define GEOS_OP_UNION_POINTGEOMETRYUNION_H
22 #include <geos/export.h>
23 
24 #include <vector>
25 #include <algorithm>
26 
27 // Forward declarations
28 namespace geos {
29  namespace geom {
30  class GeometryFactory;
31  class Geometry;
32  class Puntal;
33  }
34 }
35 
36 namespace geos {
37 namespace operation { // geos::operation
38 namespace geounion { // geos::operation::geounion
39 
48 class GEOS_DLL PointGeometryUnion
49 {
50 public:
51 
52  static std::auto_ptr<geom::Geometry> Union(
53  const geom::Puntal& pointGeom,
54  const geom::Geometry& otherGeom);
55 
56 
57  PointGeometryUnion(const geom::Puntal& pointGeom,
58  const geom::Geometry& otherGeom);
59 
60  std::auto_ptr<geom::Geometry> Union() const;
61 
62 private:
63  const geom::Geometry& pointGeom;
64  const geom::Geometry& otherGeom;
65  const geom::GeometryFactory* geomFact;
66 
67  // Declared as non-copyable
69  PointGeometryUnion& operator=(const PointGeometryUnion& rhs);
70 };
71 
72 } // namespace geos::operation::union
73 } // namespace geos::operation
74 } // namespace geos
75 
76 #endif