20 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGON_H
21 #define GEOS_GEOM_PREP_PREPAREDPOLYGON_H
23 #include <geos/geom/prep/BasicPreparedGeometry.h>
24 #include <geos/noding/SegmentString.h>
30 class FastSegmentSetIntersectionFinder;
34 class PointOnGeometryLocator;
50 class PreparedPolygon :
public BasicPreparedGeometry {
53 mutable std::unique_ptr<noding::FastSegmentSetIntersectionFinder> segIntFinder;
54 mutable std::unique_ptr<algorithm::locate::PointOnGeometryLocator> ptOnGeomLoc;
55 mutable noding::SegmentString::ConstVect segStrings;
59 PreparedPolygon(
const geom::Geometry* geom);
60 ~PreparedPolygon()
override;
62 noding::FastSegmentSetIntersectionFinder* getIntersectionFinder()
const;
63 algorithm::locate::PointOnGeometryLocator* getPointLocator()
const;
65 bool contains(
const geom::Geometry* g)
const override;
67 bool covers(
const geom::Geometry* g)
const override;
68 bool intersects(
const geom::Geometry* g)
const override;
76 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGON_H