19 #ifndef GEOS_ALGORITHM_MINIMUMBOUNDINGCIRCLE_H
20 #define GEOS_ALGORITHM_MINIMUMBOUNDINGCIRCLE_H
22 #include <geos/export.h>
23 #include <geos/geom/Coordinate.h>
24 #include <geos/geom/CoordinateSequence.h>
25 #include <geos/geom/Geometry.h>
26 #include <geos/geom/Point.h>
27 #include <geos/geom/Triangle.h>
42 class GEOS_DLL MinimumBoundingCircle {
47 const geom::Geometry* input;
48 std::vector<geom::Coordinate> extremalPts;
49 geom::Coordinate centre;
54 void computeCirclePoints();
55 geom::Coordinate lowestPoint(std::vector<geom::Coordinate>& pts);
56 geom::Coordinate pointWitMinAngleWithX(std::vector<geom::Coordinate>& pts, geom::Coordinate& P);
57 geom::Coordinate pointWithMinAngleWithSegment(std::vector<geom::Coordinate>& pts,
58 geom::Coordinate& P, geom::Coordinate& Q);
59 std::vector<geom::Coordinate> farthestPoints(std::vector<geom::Coordinate>& pts);
64 MinimumBoundingCircle(
const geom::Geometry* geom):
72 ~MinimumBoundingCircle() {};
85 std::unique_ptr<geom::Geometry> getCircle();
97 std::unique_ptr<geom::Geometry> getMaximumDiameter();
107 std::unique_ptr<geom::Geometry> getDiameter();
117 std::vector<geom::Coordinate> getExtremalPoints();
125 geom::Coordinate getCentre();
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26