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;
62 static const unsigned int MINIMUM_VALID_SIZE = 4;
85 std::unique_ptr<Geometry>
88 return std::unique_ptr<Geometry>(
new LinearRing(*
this));
101 bool isClosed()
const override;
109 std::unique_ptr<Geometry>
reverse()
const override;
114 getSortIndex()
const override
116 return SORTINDEX_LINEARRING;
122 void validateConstruction();
The internal representation of a list of coordinates inside a Geometry.
Definition: CoordinateSequence.h:58
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
Definition: LineString.h:68
Models an OGC SFS LinearRing. A LinearRing is a LineString which is both closed and simple.
Definition: LinearRing.h:54
int getBoundaryDimension() const override
Returns Dimension.FALSE, since by definition LinearRings do not have a boundary.
std::unique_ptr< Geometry > clone() const override
Make a deep-copy of this Geometry.
Definition: LinearRing.h:86
LinearRing(CoordinateSequence::Ptr &&points, const GeometryFactory &newFactory)
Hopefully cleaner version of the above.
std::string getGeometryType() const override
Return a string representation of this Geometry type.
std::unique_ptr< Geometry > reverse() const override
Computes a new geometry which has all component coordinate sequences in reverse order (opposite orien...
GeometryTypeId getGeometryTypeId() const override
Return an integer representation of this Geometry type.
LinearRing(CoordinateSequence *points, const GeometryFactory *newFactory)
Constructs a LinearRing with the given points.
GeometryTypeId
Geometry types.
Definition: Geometry.h:75
Basic namespace for all GEOS functionalities.
Definition: IndexedNestedRingTester.h:26