GEOS  3.14.0dev
InteriorPointPoint.h
1 /**********************************************************************
2  *
3  * GEOS - Geometry Engine Open Source
4  * http://geos.osgeo.org
5  *
6  * Copyright (C) 2005-2006 Refractions Research Inc.
7  * Copyright (C) 2001-2002 Vivid Solutions Inc.
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 // Forward declarations
22 namespace geos {
23 namespace geom {
24 class Geometry;
25 }
26 }
27 
28 namespace geos {
29 namespace algorithm { // geos::algorithm
30 
40 class GEOS_DLL InteriorPointPoint {
41 private:
42 
43  bool hasInterior;
44 
45  geom::CoordinateXY centroid;
46 
47  double minDistance;
48 
49  geom::Coordinate interiorPoint;
50 
56  void add(const geom::Geometry* geom);
57 
58  void add(const geom::CoordinateXY* point);
59 
60 public:
61 
63 
64  ~InteriorPointPoint() {}
65 
66  bool getInteriorPoint(geom::CoordinateXY& ret) const;
67 
68 };
69 
70 } // namespace geos::algorithm
71 } // namespace geos
72 
73 
Computes a point in the interior of an point geometry.
Definition: InteriorPointPoint.h:40
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:217
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:197
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25