23 #include <geos/export.h> 26 #include <geos/geom/Geometry.h> 27 #include <geos/geom/Envelope.h> 28 #include <geos/geom/LinearRing.h> 29 #include <geos/geom/Dimension.h> 30 #include <geos/geom/SurfaceImpl.h> 38 class CoordinateSequenceFilter;
61 class GEOS_DLL
Polygon:
public SurfaceImpl<LinearRing> {
72 std::unique_ptr<CoordinateSequence>
73 getCoordinates()
const override;
81 std::unique_ptr<Polygon>
clone()
const 83 return std::unique_ptr<Polygon>(cloneImpl());
92 std::unique_ptr<Geometry> getBoundary()
const override;
94 std::string getGeometryType()
const override;
97 void normalize()
override;
99 std::unique_ptr<Polygon> reverse()
const {
return std::unique_ptr<Polygon>(reverseImpl()); }
101 double getArea()
const override;
103 bool isRectangle()
const override;
113 void orientRings(
bool exteriorCW);
117 using SurfaceImpl::SurfaceImpl;
121 Polygon* reverseImpl()
const override;
124 getSortIndex()
const override 126 return SORTINDEX_POLYGON;
132 void normalize(LinearRing* ring,
bool clockwise);
std::vector< const Polygon * > ConstVect
A vector of const Polygon pointers.
Definition: Polygon.h:68
std::unique_ptr< Polygon > clone() const
Definition: Polygon.h:81
GeometryTypeId
Geometry types.
Definition: Geometry.h:74
Represents a linear polygon, which may include holes.
Definition: Polygon.h:61
Polygon * cloneImpl() const override
Make a deep-copy of this Geometry.
Definition: Polygon.h:119
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:70
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25