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();
139 #endif // GEOS_ALGORITHM_MINIMUMBOUNDINGCIRCLE_H Basic namespace for all GEOS functionalities.
Definition: Angle.h:26