GEOS: geos::geom::GeometryCollection Class Reference

Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends

# geos::geom::GeometryCollection Class Reference

Represents a collection of heterogeneous Geometry objects. More...

`#include <geos.h>`

Inheritance diagram for geos::geom::GeometryCollection:

List of all members.

## Public Types
typedef std::vector< Geometry * > ::const_iterator | const_iterator
typedef std::vector< Geometry * > ::iterator | iterator
## Public Member Functions
const_iterator | begin () const
const_iterator | end () const
virtual Geometry * | clone () const
virtual CoordinateSequence * | getCoordinates () const
| Collects all coordinates of all subgeometries into a CoordinateSequence.
virtual bool | isEmpty () const
| Returns whether or not the set of points in this Geometry is empty.
virtual Dimension::DimensionType | getDimension () const
| Returns the maximum dimension of geometries in this collection (0=point, 1=line, 2=surface)
virtual int | getCoordinateDimension () const
| Returns coordinate dimension.
virtual Geometry * | getBoundary () const
| Returns the boundary, or an empty geometry of appropriate dimension if this `Geometry` is empty.
virtual int | getBoundaryDimension () const
| Returns the maximum boundary dimension of geometries in this collection.
virtual std::size_t | getNumPoints () const
| Returns the count of this Geometrys vertices.
virtual std::string | getGeometryType () const
| Return a string representation of this Geometry type.
virtual GeometryTypeId | getGeometryTypeId () const
| Return an integer representation of this Geometry type.
virtual bool | equalsExact (const Geometry *other, double tolerance=0) const
| Returns true if the two Geometrys are exactly equal, up to a specified tolerance.
virtual void | apply_ro (CoordinateFilter *filter) const
virtual void | apply_rw (const CoordinateFilter *filter)
virtual void | apply_ro (GeometryFilter *filter) const
virtual void | apply_rw (GeometryFilter *filter)
virtual void | apply_ro (GeometryComponentFilter *filter) const
virtual void | apply_rw (GeometryComponentFilter *filter)
virtual void | apply_rw (CoordinateSequenceFilter &filter)
virtual void | apply_ro (CoordinateSequenceFilter &filter) const
virtual void | normalize ()
| Converts this Geometry to normal form (or canonical form).
virtual const Coordinate * | getCoordinate () const
| Returns a vertex of this Geometry, or NULL if this is the empty geometry.
virtual double | getArea () const
| Returns the total area of this collection.
virtual double | getLength () const
| Returns the total length of this collection.
virtual std::size_t | getNumGeometries () const
| Returns the number of geometries in this collection.
virtual const Geometry * | getGeometryN (std::size_t n) const
| Returns a pointer to the nth Geometry int this collection.
## Protected Member Functions
| GeometryCollection (const GeometryCollection &gc)
| GeometryCollection (std::vector< Geometry * > *newGeoms, const GeometryFactory *newFactory)
| Construct a GeometryCollection with the given GeometryFactory. Will keep a reference to the factory, so don't delete it until al Geometry objects referring to it are deleted. Will take ownership of the Geometry vector.
virtual Envelope::AutoPtr | computeEnvelopeInternal () const
virtual int | compareToSameClass (const Geometry *gc) const
## Protected Attributes
std::vector< Geometry * > * | geometries
## Friends
class | GeometryFactory

## Detailed Description

Represents a collection of heterogeneous Geometry objects.

Collections of Geometry of the same type are represented by GeometryCollection subclasses MultiPoint, MultiLineString, MultiPolygon.

## Constructor & Destructor Documentation

geos::geom::GeometryCollection::GeometryCollection | ( | std::vector< Geometry * > * | newGeoms,
|  | const GeometryFactory * | newFactory
| ) |  | `[protected]`

Construct a GeometryCollection with the given GeometryFactory. Will keep a reference to the factory, so don't delete it until al Geometry objects referring to it are deleted. Will take ownership of the Geometry vector.

Parameters:

  newGeoms | The `Geometry`s for this `GeometryCollection`, or `null` or an empty array to create the empty geometry. Elements may be empty `Geometry`s, but not `null`s.

If construction succeed the created object will take ownership of newGeoms vector and elements.

If construction fails "IllegalArgumentException *" is thrown and it is your responsibility to delete newGeoms vector and content.

Parameters:

  newFactory | the GeometryFactory used to create this geometry

## Member Function Documentation

virtual void geos::geom::GeometryCollection::apply_ro | ( | CoordinateSequenceFilter & | filter ) | const`[virtual]`

Performs a read-only operation on the coordinates in this Geometry's CoordinateSequences.

Parameters:

  filter | the filter to apply

Implements geos::geom::Geometry.

virtual void geos::geom::GeometryCollection::apply_rw | ( | CoordinateSequenceFilter & | filter ) | `[virtual]`

Performs an operation on the coordinates in this Geometry's CoordinateSequences.s If the filter reports that a coordinate value has been changed, geometryChanged will be called automatically.

Parameters:

  filter | the filter to apply

Implements geos::geom::Geometry.

virtual Geometry* geos::geom::GeometryCollection::clone | ( | ) | const`[inline, virtual]`

Creates and returns a full copy of this GeometryCollection object. (including all coordinates contained by it).

Returns:
  a clone of this instance

Implements geos::geom::Geometry.

Reimplemented in geos::geom::MultiLineString, geos::geom::MultiPoint, and geos::geom::MultiPolygon.

virtual Geometry* geos::geom::GeometryCollection::getBoundary | ( | ) | const`[virtual]`

Returns the boundary, or an empty geometry of appropriate dimension if this `Geometry` is empty.

(In the case of zero-dimensional geometries, an empty GeometryCollection is returned.) For a discussion of this function, see the OpenGIS Simple Features Specification. As stated in SFS Section 2.1.13.1, "the boundary of a Geometry is a set of Geometries of the next lower dimension."

Returns:
  the closure of the combinatorial boundary of this `Geometry`. Ownershipof the returned object transferred to caller.

Implements geos::geom::Geometry.

Reimplemented in geos::geom::MultiLineString, geos::geom::MultiPoint, and geos::geom::MultiPolygon.

virtual CoordinateSequence* geos::geom::GeometryCollection::getCoordinates | ( | ) | const`[virtual]`

Collects all coordinates of all subgeometries into a CoordinateSequence.

Note that the returned coordinates are copies, so you want be able to use them to modify the geometries in place. Also you'll need to delete the CoordinateSequence when finished using it.

Returns:
  the collected coordinates

Implements geos::geom::Geometry.

virtual Dimension::DimensionType geos::geom::GeometryCollection::getDimension | ( | ) | const`[virtual]`

Returns the maximum dimension of geometries in this collection (0=point, 1=line, 2=surface)

See also:
  Dimension::DimensionType

Implements geos::geom::Geometry.

Reimplemented in geos::geom::MultiLineString, geos::geom::MultiPoint, and geos::geom::MultiPolygon.

The documentation for this class was generated from the following file:

- GeometryCollection.h