20 #ifndef GEOS_GEOS_LINEARRING_H
21 #define GEOS_GEOS_LINEARRING_H
23 #include <geos/export.h>
26 #include <geos/geom/LineString.h>
28 #include <geos/inline.h>
34 class CoordinateArraySequence;
54 class GEOS_DLL LinearRing :
public LineString {
62 static const unsigned int MINIMUM_VALID_SIZE = 4;
64 LinearRing(
const LinearRing& lr);
78 LinearRing(CoordinateSequence* points,
79 const GeometryFactory* newFactory);
82 LinearRing(CoordinateSequence::Ptr && points,
83 const GeometryFactory& newFactory);
85 std::unique_ptr<Geometry>
86 clone()
const override
88 return std::unique_ptr<Geometry>(
new LinearRing(*
this));
99 int getBoundaryDimension()
const override;
101 bool isClosed()
const override;
103 std::string getGeometryType()
const override;
109 std::unique_ptr<Geometry> reverse()
const override;
114 getSortIndex()
const override
116 return SORTINDEX_LINEARRING;
122 void validateConstruction();
129 #endif // ndef GEOS_GEOS_LINEARRING_H