GEOS 3.13.1
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
25namespace geos {
26namespace operation {
27namespace valid {
28class PolygonRing;
29}
30}
31}
32
33namespace geos { // geos.
34namespace operation { // geos.operation
35namespace valid { // geos.operation.valid
36
37using geos::geom::CoordinateXY;
38
39class GEOS_DLL PolygonRingTouch {
40
41private:
42
43 PolygonRing* ring;
44 CoordinateXY touchPt;
45
46
47public:
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 geos.h:39