GEOS  3.13.0dev
PolygonRingTouch.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2021 Paul Ramsey <pramsey@cleverelephant.ca>
7  * Copyright (C) 2021 Martin Davis
8  *
9  * This is free software; you can redistribute and/or modify it under
10  * the terms of the GNU Lesser General Public Licence as published
11  * by the Free Software Foundation.
12  * See the COPYING file for more information.
13  *
14  **********************************************************************/
15 
16 #pragma once
17 
18 #include <geos/export.h>
19 #include <geos/geom/Coordinate.h>
20 
21 
22 #include <memory>
23 
24 // Forward declarations
25 namespace geos {
26 namespace operation {
27 namespace valid {
28 class PolygonRing;
29 }
30 }
31 }
32 
33 namespace geos { // geos.
34 namespace operation { // geos.operation
35 namespace valid { // geos.operation.valid
36 
37 using geos::geom::CoordinateXY;
38 
39 class GEOS_DLL PolygonRingTouch {
40 
41 private:
42 
43  PolygonRing* ring;
44  CoordinateXY touchPt;
45 
46 
47 public:
48 
49  PolygonRingTouch(PolygonRing* p_ring, const CoordinateXY& p_pt)
50  : ring(p_ring)
51  , touchPt(p_pt)
52  {};
53 
54  const CoordinateXY* getCoordinate() const;
55 
56  PolygonRing* getRing() const;
57 
58  bool isAtLocation(const CoordinateXY& pt) const;
59 
60 };
61 
62 } // namespace geos.operation.valid
63 } // namespace geos.operation
64 } // namespace geos
65 
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25