20 #ifndef GEOS_GEOS_GEOMETRYCOLLECTION_H 21 #define GEOS_GEOS_GEOMETRYCOLLECTION_H 23 #include <geos/export.h> 24 #include <geos/geom/Geometry.h> 25 #include <geos/geom/Envelope.h> 26 #include <geos/geom/Dimension.h> 28 #include <geos/inline.h> 38 class CoordinateArraySequence;
39 class CoordinateSequenceFilter;
60 typedef std::vector<std::unique_ptr<Geometry>>::const_iterator const_iterator;
62 typedef std::vector<std::unique_ptr<Geometry>>::iterator iterator;
64 const_iterator begin()
const;
66 const_iterator end()
const;
74 std::unique_ptr<GeometryCollection>
clone()
const 76 return std::unique_ptr<GeometryCollection>(cloneImpl());
81 void setSRID(
int)
override;
96 std::unique_ptr<CoordinateSequence> getCoordinates()
const override;
98 bool isEmpty()
const override;
112 uint8_t getCoordinateDimension()
const override;
114 std::unique_ptr<Geometry> getBoundary()
const override;
121 int getBoundaryDimension()
const override;
123 std::size_t getNumPoints()
const override;
125 std::string getGeometryType()
const override;
129 bool equalsExact(
const Geometry* other,
130 double tolerance = 0)
const override;
148 void normalize()
override;
150 const Coordinate* getCoordinate()
const override;
153 double getArea()
const override;
156 double getLength()
const override;
159 std::size_t getNumGeometries()
const override;
162 const Geometry* getGeometryN(std::size_t n)
const override;
171 std::vector<std::unique_ptr<Geometry>> releaseGeometries();
180 std::unique_ptr<GeometryCollection>
reverse()
const {
return std::unique_ptr<GeometryCollection>(reverseImpl()); }
224 getSortIndex()
const override 226 return SORTINDEX_GEOMETRYCOLLECTION;
229 std::vector<std::unique_ptr<Geometry>> geometries;
231 Envelope::Ptr computeEnvelopeInternal()
const override;
233 int compareToSameClass(
const Geometry* gc)
const override;
241 # include "geos/geom/GeometryCollection.inl" 244 #endif // ndef GEOS_GEOS_GEOMETRYCOLLECTION_H Geometry classes support the concept of applying a Geometry filter to the Geometry.
Definition: GeometryFilter.h:47
std::unique_ptr< GeometryCollection > reverse() const
Definition: GeometryCollection.h:180
Coordinate is the lightweight class used to store coordinates.
Definition: Coordinate.h:60
Interface for classes which provide operations that can be applied to the coordinates in a Coordinate...
Definition: CoordinateSequenceFilter.h:57
GeometryTypeId
Geometry types.
Definition: Geometry.h:75
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
Definition: Geometry.h:188
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:216
Geometry classes support the concept of applying a coordinate filter to every coordinate in the Geome...
Definition: CoordinateFilter.h:43
Supplies a set of utility methods for building Geometry objects from CoordinateSequence or other Geom...
Definition: GeometryFactory.h:68
Represents a collection of heterogeneous Geometry objects.
Definition: GeometryCollection.h:55
Basic namespace for all GEOS functionalities.
Definition: Angle.h:26
std::unique_ptr< GeometryCollection > clone() const
Definition: GeometryCollection.h:74
GeometryCollection * cloneImpl() const override
Make a deep-copy of this Geometry.
Definition: GeometryCollection.h:219
DimensionType
Definition: Dimension.h:31
Definition: GeometryComponentFilter.h:43