com.mapinfo.midev.geometry

## Interface IMultiCurve

All Superinterfaces:
  IFeatureGeometry, IGeometry, Iterable, Serializable

    public interface IMultiCurve
    extends IFeatureGeometry, Iterable

An unordered container of zero or more `ICurve`s.

### Method Summary

All Methods Instance Methods Abstract Methods
`IMultiCurve` `getCopy()` Returns a non-transient copy of this `IFeatureGeometry` in this `IFeatureGeometry`'s coordinate system.
`IMultiCurve` `getCopy(CoordSys crs)` Returns a non-transient copy of this `IFeatureGeometry` in the specified coordinate system.
`int` `getCurveCount()` Returns the number of `ICurve`s in this `IMultiCurve`.
`Length` `getLength(ComputationType ct)` Computes the total length of this `IMultiCurve` using the given `ComputationType`.

### 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

#### getCurveCount

    int getCurveCount()

Returns the number of `ICurve`s in this `IMultiCurve`.

Returns:
  the number of `ICurve`s in this `IMultiCurve`.

#### getCopy

    IMultiCurve 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

    IMultiCurve 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()`

#### getLength

    Length getLength(ComputationType ct)

Computes the total length of this `IMultiCurve` using the given `ComputationType`.

The total length is the sum of the lengths of all the constituent parts of the geometry. It is possible for the total length to be zero if the geometry is degenerate and all its points are co-incident.

The length of an empty geometry is 0.

Parameters:
  `ct` - the preferred computation type.
Returns:
  total length of the geometry. Never null.
Throws:
  `InvalidComputationTypeException` - if the given computation type is incompatible with the coordinate system of this geometry.