GEOS  3.13.0dev
PointGeometryUnion.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2011 Sandro Santilli <strk@kbt.io
7  *
8  * This is free software; you can redistribute and/or modify it under
9  * the terms of the GNU Lesser General Public Licence as published
10  * by the Free Software Foundation.
11  * See the COPYING file for more information.
12  *
13  **********************************************************************
14  *
15  * Last port: operation/union/PointGeometryUnion.java r320 (JTS-1.12)
16  *
17  **********************************************************************/
18 
19 #pragma once
20 
21 #include <geos/export.h>
22 
23 #include <vector>
24 #include <algorithm>
25 
26 // Forward declarations
27 namespace geos {
28 namespace geom {
29 class GeometryFactory;
30 class Geometry;
31 }
32 }
33 
34 namespace geos {
35 namespace operation { // geos::operation
36 namespace geounion { // geos::operation::geounion
37 
46 class GEOS_DLL PointGeometryUnion {
47 public:
48 
49  static std::unique_ptr<geom::Geometry> Union(
50  const geom::Geometry& pointGeom,
51  const geom::Geometry& otherGeom);
52 
53 
54  PointGeometryUnion(const geom::Geometry& pointGeom,
55  const geom::Geometry& otherGeom);
56 
57  std::unique_ptr<geom::Geometry> Union() const;
58 
59 private:
60  const geom::Geometry& pointGeom;
61  const geom::Geometry& otherGeom;
62  const geom::GeometryFactory* geomFact;
63 
64  // Declared as non-copyable
66  PointGeometryUnion& operator=(const PointGeometryUnion& rhs);
67 };
68 
69 } // namespace geos::operation::union
70 } // namespace geos::operation
71 } // namespace geos
72 
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:65
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
Computes the union of a puntal geometry with another arbitrary Geometry.
Definition: PointGeometryUnion.h:46
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25