GEOS  3.13.0dev
EnhancedPrecisionOp.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2005-2006 Refractions Research Inc.
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: precision/EnhancedPrecisionOp.java rev. 1.9 (JTS-1.7)
16  *
17  **********************************************************************/
18 
19 #pragma once
20 
21 #include <geos/export.h>
22 #include <geos/constants.h> // for int64
23 #include <geos/geom/Geometry.h>
24 
25 #include <memory>
26 
27 namespace geos {
28 namespace precision { // geos.precision
29 
35 class GEOS_DLL EnhancedPrecisionOp {
36 
37 public:
38 
48  static std::unique_ptr<geom::Geometry> intersection(
49  const geom::Geometry* geom0,
50  const geom::Geometry* geom1);
51 
60  static std::unique_ptr<geom::Geometry> Union(
61  const geom::Geometry* geom0,
62  const geom::Geometry* geom1);
63 
72  static std::unique_ptr<geom::Geometry> difference(
73  const geom::Geometry* geom0,
74  const geom::Geometry* geom1);
75 
84  static std::unique_ptr<geom::Geometry> symDifference(
85  const geom::Geometry* geom0,
86  const geom::Geometry* geom1);
87 
97  static std::unique_ptr<geom::Geometry> buffer(
98  const geom::Geometry* geom,
99  double distance);
100 };
101 
102 
103 } // namespace geos.precision
104 } // namespace geos
105 
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
Provides versions of Geometry spatial functions which use enhanced precision techniques to reduce the...
Definition: EnhancedPrecisionOp.h:35
static std::unique_ptr< geom::Geometry > symDifference(const geom::Geometry *geom0, const geom::Geometry *geom1)
static std::unique_ptr< geom::Geometry > intersection(const geom::Geometry *geom0, const geom::Geometry *geom1)
Computes the set-theoretic intersection of two Geometrys, using enhanced precision.
static std::unique_ptr< geom::Geometry > buffer(const geom::Geometry *geom, double distance)
static std::unique_ptr< geom::Geometry > Union(const geom::Geometry *geom0, const geom::Geometry *geom1)
static std::unique_ptr< geom::Geometry > difference(const geom::Geometry *geom0, const geom::Geometry *geom1)
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25