GEOS  3.14.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 #include <memory>
26 
27 // Forward declarations
28 namespace geos {
29 namespace geom {
30 class GeometryFactory;
31 class Geometry;
32 }
33 }
34 
35 namespace geos {
36 namespace operation { // geos::operation
37 namespace geounion { // geos::operation::geounion
38 
47 class GEOS_DLL PointGeometryUnion {
48 public:
49 
50  static std::unique_ptr<geom::Geometry> Union(
51  const geom::Geometry& pointGeom,
52  const geom::Geometry& otherGeom);
53 
54 
55  PointGeometryUnion(const geom::Geometry& pointGeom,
56  const geom::Geometry& otherGeom);
57 
58  std::unique_ptr<geom::Geometry> Union() const;
59 
60 private:
61  const geom::Geometry& pointGeom;
62  const geom::Geometry& otherGeom;
63  const geom::GeometryFactory* geomFact;
64 
65  // Declared as non-copyable
67  PointGeometryUnion& operator=(const PointGeometryUnion& rhs);
68 };
69 
70 } // namespace geos::operation::union
71 } // namespace geos::operation
72 } // namespace geos
73 
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:70
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
Computes the union of a puntal geometry with another arbitrary Geometry.
Definition: PointGeometryUnion.h:47
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25