GEOS  3.14.0dev
RepeatedPointRemover.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2019 Daniel Baston <dbaston@gmail.com>
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/geom/CoordinateSequence.h>
18 #include <geos/geom/Geometry.h>
19 
20 
21 namespace geos {
22 namespace operation {
23 namespace valid {
24 
28  class GEOS_DLL RepeatedPointRemover {
29 
30  public:
31 
41  static std::unique_ptr<geom::CoordinateSequence>
43  const geom::CoordinateSequence* seq,
44  double tolerance = 0.0);
45 
46  static std::unique_ptr<geom::CoordinateSequence>
47  removeRepeatedAndInvalidPoints(
48  const geom::CoordinateSequence* seq,
49  double tolerance = 0.0);
50 
51  static std::unique_ptr<geom::Geometry>
52  removeRepeatedPoints(
53  const geom::Geometry* geom,
54  double tolerance = 0.0);
55  };
56 
57 }
58 }
59 }
60 
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:56
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
Definition: RepeatedPointRemover.h:28
static std::unique_ptr< geom::CoordinateSequence > removeRepeatedPoints(const geom::CoordinateSequence *seq, double tolerance=0.0)
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25