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());
133 double tolerance = 0)
const override;
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 coordinate filter to every coordinate in the Geome...
Definition: CoordinateFilter.h:41
Interface for classes which provide operations that can be applied to the coordinates in a Coordinate...
Definition: CoordinateSequenceFilter.h:55
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:58
DimensionType
Definition: Dimension.h:29
Represents a collection of heterogeneous Geometry objects.
Definition: GeometryCollection.h:52
GeometryCollection * cloneImpl() const override
Make a deep-copy of this Geometry.
Definition: GeometryCollection.h:222
void setSRID(int) override
Sets the ID of the Spatial Reference System used by the Geometry.
bool isDimensionStrict(Dimension::DimensionType d) const override
Checks whether this Geometry consists only of components having dimension d.
std::string getGeometryType() const override
Return a string representation of this Geometry type.
GeometryCollection * reverseImpl() const override
Make a geometry with coordinates in reverse order.
std::unique_ptr< GeometryCollection > clone() const
Definition: GeometryCollection.h:77
std::vector< std::unique_ptr< Geometry > > releaseGeometries()
Take ownership of the sub-geometries managed by this GeometryCollection. After releasing the sub-geom...
uint8_t getCoordinateDimension() const override
Returns coordinate dimension.
GeometryCollection(std::vector< Geometry * > *newGeoms, const GeometryFactory *newFactory)
Construct a GeometryCollection with the given GeometryFactory. Will keep a reference to the factory,...
void apply_ro(CoordinateSequenceFilter &filter) const override
GeometryTypeId getGeometryTypeId() const override
Return an integer representation of this Geometry type.
std::unique_ptr< GeometryCollection > reverse() const
Definition: GeometryCollection.h:183
double getArea() const override
Returns the total area of this collection.
std::size_t getNumPoints() const override
Returns the count of this Geometrys vertices.
const Geometry * getGeometryN(std::size_t n) const override
Returns a pointer to the nth Geometry in this collection.
std::unique_ptr< Geometry > getBoundary() const override
Returns the boundary, or an empty geometry of appropriate dimension if this Geometry is empty.
bool isEmpty() const override
Returns whether or not the set of points in this Geometry is empty.
Dimension::DimensionType getDimension() const override
Returns the maximum dimension of geometries in this collection (0=point, 1=line, 2=surface)
int getBoundaryDimension() const override
Returns the maximum boundary dimension of geometries in this collection.
const Coordinate * getCoordinate() const override
Returns a vertex of this Geometry, or NULL if this is the empty geometry.
double getLength() const override
Returns the total length of this collection.
bool equalsExact(const Geometry *other, double tolerance=0) const override
Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are...
std::size_t getNumGeometries() const override
Returns the number of geometries in this collection.
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
std::unique_ptr< CoordinateSequence > getCoordinates() const override
Collects all coordinates of all subgeometries into a CoordinateSequence.
void normalize() override
void apply_rw(CoordinateSequenceFilter &filter) override
Definition: GeometryComponentFilter.h:41
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:66
Geometry classes support the concept of applying a Geometry filter to the Geometry.
Definition: GeometryFilter.h:45
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:186
GeometryTypeId
Geometry types.
Definition: Geometry.h:73
Basic namespace for all GEOS functionalities.
Definition: Angle.h:25