22 #include <geos/export.h> 23 #include <geos/geom/Geometry.h> 24 #include <geos/geom/Envelope.h> 25 #include <geos/geom/Dimension.h> 35 class CoordinateArraySequence;
36 class CoordinateSequenceFilter;
57 typedef std::vector<std::unique_ptr<Geometry>>::const_iterator const_iterator;
59 typedef std::vector<std::unique_ptr<Geometry>>::iterator iterator;
61 const_iterator begin()
const 63 return geometries.begin();
66 const_iterator end()
const 68 return geometries.end();
77 std::unique_ptr<GeometryCollection>
clone()
const 79 return std::unique_ptr<GeometryCollection>(cloneImpl());
84 void setSRID(
int)
override;
99 std::unique_ptr<CoordinateSequence> getCoordinates()
const override;
101 bool isEmpty()
const override;
115 uint8_t getCoordinateDimension()
const override;
117 std::unique_ptr<Geometry> getBoundary()
const override;
124 int getBoundaryDimension()
const override;
126 std::size_t getNumPoints()
const override;
128 std::string getGeometryType()
const override;
132 bool equalsExact(
const Geometry* other,
133 double tolerance = 0)
const override;
151 void normalize()
override;
153 const Coordinate* getCoordinate()
const override;
156 double getArea()
const override;
159 double getLength()
const override;
162 std::size_t getNumGeometries()
const override;
165 const Geometry* getGeometryN(std::size_t n)
const override;
174 std::vector<std::unique_ptr<Geometry>> releaseGeometries();
183 std::unique_ptr<GeometryCollection>
reverse()
const {
return std::unique_ptr<GeometryCollection>(reverseImpl()); }
227 getSortIndex()
const override 229 return SORTINDEX_GEOMETRYCOLLECTION;
232 std::vector<std::unique_ptr<Geometry>> geometries;
234 Envelope::Ptr computeEnvelopeInternal()
const override;
236 int compareToSameClass(
const Geometry* gc)
const override;
Geometry classes support the concept of applying a Geometry filter to the Geometry.
Definition: GeometryFilter.h:45
std::unique_ptr< GeometryCollection > reverse() const
Definition: GeometryCollection.h:183
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
Interface for classes which provide operations that can be applied to the coordinates in a Coordinate...
Definition: CoordinateSequenceFilter.h:55
GeometryTypeId
Geometry types.
Definition: Geometry.h:73
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
GeometryCollection(std::vector< std::unique_ptr< T >> &&newGeoms, const GeometryFactory &newFactory)
Convenience constructor to build a GeometryCollection from vector of Geometry subclass pointers...
Definition: GeometryCollection.h:219
Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...
Definition: CoordinateFilter.h:41
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:66
Represents a collection of heterogeneous Geometry objects.
Definition: GeometryCollection.h:52
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25
std::unique_ptr< GeometryCollection > clone() const
Definition: GeometryCollection.h:77
GeometryCollection * cloneImpl() const override
Make a deep-copy of this Geometry.
Definition: GeometryCollection.h:222
DimensionType
Definition: Dimension.h:29
Definition: GeometryComponentFilter.h:41