GEOS  3.13.0dev
PrecisionReducer.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2020 Paul Ramsey <pramsey@cleverelephant.ca>
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 #pragma once
16 
17 #include <geos/export.h>
18 
19 #include <vector>
20 #include <memory>
21 #include <map>
22 
23 
24 // Forward declarations
25 namespace geos {
26 namespace geom {
27 class PrecisionModel;
28 class Geometry;
29 }
30 namespace operation {
31 }
32 }
33 
34 namespace geos { // geos.
35 namespace operation { // geos.operation
36 namespace overlayng { // geos.operation.overlayng
37 
38 using namespace geos::geom;
39 
52 class GEOS_DLL PrecisionReducer {
53 
54 private:
55 
56  // Members
57 
58  // Methods
59 
60 
61 public:
62 
63  PrecisionReducer() {};
64 
65  static std::unique_ptr<Geometry> reducePrecision(const Geometry* geom, const PrecisionModel* pm, bool replacePrecisionModel = false);
66 
67 
68 
69 };
70 
71 
72 } // namespace geos.operation.overlayng
73 } // namespace geos.operation
74 } // namespace geos
75 
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
Specifies the precision model of the Coordinate in a Geometry.
Definition: PrecisionModel.h:88
Definition: PrecisionReducer.h:52
Definition: Angle.h:26
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25