com.mapinfo.midev.geometry

## Interface IMultiFeatureGeometry

All Superinterfaces:
  IFeatureGeometry, IGeometry, Iterable, Serializable

    public interface IMultiFeatureGeometry
    extends IFeatureGeometry, Iterable

An unordered collection of the `IFeatureGeometry` types `IPoint`, `IMultiPoint`, `IMultiCurve` and `IMultiPolygon`.

May not contain legacy geometry types (`GeometryType.ALL_LEGACY_GEOMETRY_TYPE`). May not contain another `IMultiFeatureGeometry`.

See Also:
  `GeometryType.MULTI_FEATURE_GEOMETRY_CONTENTS_TYPE`

### Method Summary

All Methods Instance Methods Abstract Methods
`IMultiCurve` `getAllCurves()` Returns all the `IMultiCurve`s within this `IMultiFeatureGeometry` aggregated into an `IMultiCurve`.
`IMultiPoint` `getAllPoints()` Returns all the points (i.e.
`IMultiPolygon` `getAllPolygons()` Returns all the `IMultiPolygon`s within this `IMultiFeatureGeometry` aggregated into an `IMultiPolygon`.
`IMultiFeatureGeometry` `getCopy()` Returns a non-transient copy of this `IFeatureGeometry` in this `IFeatureGeometry`'s coordinate system.
`IMultiFeatureGeometry` `getCopy(CoordSys crs)` Returns a non-transient copy of this `IFeatureGeometry` in the specified coordinate system.
`int` `getCount(GeometryType gtype)` Returns the number of `IFeatureGeometry`s of the specified type that this `IMultiFeatureGeometry` contains.
`int` `getFeatureGeometryCount()` Returns the number of `IFeatureGeometries` that this geometry contains.
`Iterator` `getMultiCurveIterator()` Returns an `Iterator<IMultiCurve>` that can be used to iterate over all of the `IMultiCurve`s in this `IMultiFeatureGeometry`.
`Iterator` `getMultiPointIterator()` Returns an `Iterator<IMultiPoint>` that can be used to iterate over all of the `IMultiPoint`s in this `IMultiFeatureGeometry`.
`Iterator` `getMultiPolygonIterator()` Returns an `Iterator<IMultiPolygon>` that can be used to iterate over all of the `IMultiPolygon`s in this `IMultiFeatureGeometry`.
`Iterator` `getPointIterator()` Returns an `Iterator<IPoint>` that can be used to iterate over all of the `IPoint`s in this `IMultiFeatureGeometry`.

### Methods inherited from interface com.mapinfo.midev.geometry.IFeatureGeometry

`getRepresentativePoint, initializeRepresentativePoint, setRepresentativePoint`

### Methods inherited from interface com.mapinfo.midev.geometry.IGeometry

`contains, getArea, getCoordSys, getDimension, getEnvelope, getPerimeter, getSpatialInfo, getType, isEmpty, isTransient, mAllSet, mSet, zAllSet, zSet`

### Methods inherited from interface java.lang.Iterable

`forEach, iterator, spliterator`

### Method Detail

#### getFeatureGeometryCount

    int getFeatureGeometryCount()

Returns the number of `IFeatureGeometries` that this geometry contains.

Returns:
  the number of `IFeatureGeometries` that this geometry contains.

#### getAllPoints

    IMultiPoint getAllPoints()

Returns all the points (i.e. `IPoint` and `IMultiPoint`) aggregated into an `IMultiPoint`.

Returns:
  all the points (i.e. `IPoint` and `IMultiPoint`) aggregated into an `IMultiPoint`.

#### getAllCurves

    IMultiCurve getAllCurves()

Returns all the `IMultiCurve`s within this `IMultiFeatureGeometry` aggregated into an `IMultiCurve`.

Returns:
  all the `IMultiCurve`s within this `IMultiFeatureGeometry` aggregated into an `IMultiCurve`.

#### getAllPolygons

    IMultiPolygon getAllPolygons()

Returns all the `IMultiPolygon`s within this `IMultiFeatureGeometry` aggregated into an `IMultiPolygon`.

Returns:
  all the `IMultiPolygon`s within this `IMultiFeatureGeometry` aggregated into an `IMultiPolygon`.

#### getCount

    int getCount(GeometryType gtype)

Returns the number of `IFeatureGeometry`s of the specified type that this `IMultiFeatureGeometry` contains.

Parameters:
  `gtype` - the `GeometryType.POINT`, `GeometryType.MULTI_POINT`, `GeometryType.MULTI_CURVE` or `GeometryType.MULTI_POLYGON` to count.
Returns:
  the number of `IFeatureGeometry`s of the specified type that this `IMultiFeatureGeometry` contains.
Throws:
  `InvalidComputationTypeException` - if gtype is not one of the allowed GeometryTypes.

#### getPointIterator

    Iterator getPointIterator()

Returns an `Iterator<IPoint>` that can be used to iterate over all of the `IPoint`s in this `IMultiFeatureGeometry`.

Returns:
  an `Iterator<IPoint>` that can be used to iterate over all of the `IPoint`s in this `IMultiFeatureGeometry`.

#### getMultiPointIterator

    Iterator getMultiPointIterator()

Returns an `Iterator<IMultiPoint>` that can be used to iterate over all of the `IMultiPoint`s in this `IMultiFeatureGeometry`.

Returns:
  an `Iterator<IMultiPoint>` that can be used to iterate over all of the `IMultiPoint`s in this `IMultiFeatureGeometry`.

#### getMultiCurveIterator

    Iterator getMultiCurveIterator()

Returns an `Iterator<IMultiCurve>` that can be used to iterate over all of the `IMultiCurve`s in this `IMultiFeatureGeometry`.

Returns:
  an `Iterator<IMultiCurve>` that can be used to iterate over all of the `IMultiCurve`s in this `IMultiFeatureGeometry`.

#### getMultiPolygonIterator

    Iterator getMultiPolygonIterator()

Returns an `Iterator<IMultiPolygon>` that can be used to iterate over all of the `IMultiPolygon`s in this `IMultiFeatureGeometry`.

Returns:
  an `Iterator<IMultiPolygon>` that can be used to iterate over all of the `IMultiPolygon`s in this `IMultiFeatureGeometry`.

#### getCopy

    IMultiFeatureGeometry getCopy(CoordSys crs)

Description copied from interface: `IFeatureGeometry`
Returns a non-transient copy of this `IFeatureGeometry` in the specified coordinate system.

Specified by:
  `getCopy` in interface `IFeatureGeometry`
Specified by:
  `getCopy` in interface `IGeometry`
Parameters:
  `crs` - coordinate system of the returned copy
Returns:
  a non-transient copy of this `IFeatureGeometry` in the specified coordinate system.
See Also:
  `IGeometry.isTransient()`

#### getCopy

    IMultiFeatureGeometry getCopy()

Description copied from interface: `IFeatureGeometry`
Returns a non-transient copy of this `IFeatureGeometry` in this `IFeatureGeometry`'s coordinate system.

Specified by:
  `getCopy` in interface `IFeatureGeometry`
Specified by:
  `getCopy` in interface `IGeometry`
Returns:
  a non-transient copy of this `IFeatureGeometry` in this `IFeatureGeometry`'s coordinate system.
See Also:
  `IFeatureGeometry.getCopy(com.mapinfo.midev.coordsys.CoordSys)`, `IGeometry.isTransient()`