com.mapinfo.midev.geometry

## Interface ILineString

All Superinterfaces:
  ICurveSegment, IGeometry, Serializable

    public interface ILineString
    extends ICurveSegment

An `ILineString` is an `ICurveSegment` where the control points are connected with straight lines (i.e., linear interpolation between the control points).

### Method Summary

All Methods Instance Methods Abstract Methods
`ILineString` `asLineString()` Returns an `ILineString` that approximates this `ICurveSegment`.
`ILineString` `asLineString(Length maxSpacing, Length maxOffset)` Returns an `ILineString` that approximates this `ICurveSegment`.
`ILineString` `getCopy()` Get a (permanent) copy of this `IGeometry`.
`ILineString` `getCopy(CoordSys crs)` Get a (permanent) copy of this `IGeometry` transformed to the given coordinate system.
`ILineString` `reverse()` Returns an `ICurveSegment` that has the opposite orientation as this `ICurveSegment`.

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

`getControlPoint, getControlPointCount, getControlPointIterator, getControlPoints, getEndDistance, getEndPosition, getInterpolationType, getLength, getPointForDistance, getStartDistance, getStartPosition, isClosed, isLinear`

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

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

### Method Detail

#### getCopy

    ILineString getCopy()

Description copied from interface: `IGeometry`
Get a (permanent) copy of this `IGeometry`.

Specified by:
  `getCopy` in interface `ICurveSegment`
Specified by:
  `getCopy` in interface `IGeometry`
Returns:
  permanent copy of this `IGeometry`.
See Also:
  `IGeometry.getCopy(CoordSys)`, `IGeometry.isTransient()`

#### getCopy

    ILineString getCopy(CoordSys crs)

Description copied from interface: `IGeometry`
Get a (permanent) copy of this `IGeometry` transformed to the given coordinate system.

Specified by:
  `getCopy` in interface `ICurveSegment`
Specified by:
  `getCopy` in interface `IGeometry`
Parameters:
  `crs` - coordinate system of the returned copy
Returns:
  copy of this `IGeometry` in the given coordinate system
See Also:
  `IGeometry.isTransient()`

#### reverse

    ILineString reverse()

Description copied from interface: `ICurveSegment`
Returns an `ICurveSegment` that has the opposite orientation as this `ICurveSegment`.

Specified by:
  `reverse` in interface `ICurveSegment`
Returns:
  an `ICurveSegment` that has the opposite orientation as this `ICurveSegment`.

#### asLineString

    ILineString asLineString()

Description copied from interface: `ICurveSegment`
Returns an `ILineString` that approximates this `ICurveSegment`.

Specified by:
  `asLineString` in interface `ICurveSegment`
Returns:
  an `ILineString` that approximates this `ICurveSegment`.

#### asLineString

    ILineString asLineString(Length maxSpacing,
                             Length maxOffset)

Description copied from interface: `ICurveSegment`
Returns an `ILineString` that approximates this `ICurveSegment`.

Approximates the `ICurveSegment` as a single `ILineString`. The first position of the second and subsequent segments of this curve are omitted because they would be x/y equal to the end position of the previous segment.

Regardless of parameters, the control points of all the curve segments are always included (except the first position of all but the first segment, as explained above). If both parameters are zero, then only the control points are returned.

Specified by:
  `asLineString` in interface `ICurveSegment`
Parameters:
  `maxSpacing` - the maximum distance between points in the constructed `ILineString`. A maxSpacing of zero means "no limit".
  `maxOffset` - the maximum deviation of the constructed `ILineString` from this curve. A maxOffset of zero means "no limit".
Returns:
  an `ILineString` that approximates this `ICurveSegment`.