53class GEOS_DLL ExactMaxInscribedCircle {
56 using CoordinateXY = geos::geom::CoordinateXY;
62 ExactMaxInscribedCircle();
73 static std::pair<CoordinateXY, CoordinateXY> computeRadius(
const Polygon* polygon);
78 static bool isTriangle(
const Polygon* polygon);
80 static bool isQuadrilateral(
const Polygon* polygon);
82 static std::pair<CoordinateXY, CoordinateXY> computeTriangle(
const CoordinateSequence* ring);
95 static std::pair<CoordinateXY, CoordinateXY> computeConvexQuadrilateral(
const CoordinateSequence* ring);
97 static std::array<LineSegment, 4> computeBisectors(
const CoordinateSequence* ptsCW,
100 static CoordinateXY nearestEdgePt(
const CoordinateSequence* ring,
101 const CoordinateXY& pt);
103 static LineSegment computeConvexBisector(
const CoordinateSequence* pts,
104 std::size_t
index,
double len);
106 static bool isConvex(
const Polygon* polygon);
108 static bool isConvex(
const CoordinateSequence* ring);
110 static bool isConcave(
const CoordinateXY& p0,
111 const CoordinateXY& p1,
112 const CoordinateXY& p2);
114 static bool isPointInConvexRing(
const CoordinateSequence* ringCW,
115 const CoordinateXY& p);