## org.opengis.geometry.coordinate
Interface CubicSpline

All Superinterfaces:
  CurveSegment, GenericCurve, PolynomialSpline, SplineCurve

    @UML(identifier="GM_CubicSpline",
         specification=ISO_19107)
    public interface CubicSpline

extends PolynomialSpline

Cubic splines. Cubic splines are similar to line strings in that they are a sequence of segments each with its own defining function. A cubic spline uses the control points and a set of derivative parameters to define a piecewise 3rd degree polynomial interpolation. Unlike line-strings, the parameterization by arc length is not necessarily still a polynomial. Splines have two parameterizations that are used in this specification, the defining one (constructive parameter) and the one that has been reparameterized by arc length to satisfy the requirements in `GenericCurve`.

The function describing the curve must be C2, that is, have a continuous 1st and 2nd derivative at all points, and pass through the control points in the order given. Between the control points, the curve segment is defined by a cubic polynomial. At each control point, the polynomial changes in such a manner that the 1st and 2nd derivative vectors are the same from either side. The control parameters record must contain `vectorAtStart`, and `vectorAtEnd` which are the unit tangent vectors at `controlPoint[0]` and `controlPoint[n]</coded> where n = `controlPoint.length-1`.`

Since:
  GeoAPI 2.0
Version:
  ISO 19107

Method Summary
`CurveInterpolation` `getInterpolation()` The interpolation mechanism for a `CubicSpline` is `CUBIC_SPLINE`.
`List` `getVectorAtEnd()` The values used for the final derivative.
`List` `getVectorAtStart()` The values used for the initial derivative.

Methods inherited from interface SplineCurve
`getControlPoints, getDegree, getKnots`

Methods inherited from interface CurveSegment
`getBoundary, getCurve, getNumDerivativesAtEnd, getNumDerivativesAtStart, getNumDerivativesInterior, getSamplePoints, reverse`

Methods inherited from interface GenericCurve
`asLineString, forConstructiveParam, forParam, getEndConstructiveParam, getEndParam, getEndPoint, getParamForPoint, getStartConstructiveParam, getStartParam, getStartPoint, getTangent, length, length`

Method Detail

### getInterpolation

    @UML(identifier="interpolation",
         obligation=MANDATORY,
         specification=ISO_19107)
    CurveInterpolation getInterpolation()

  The interpolation mechanism for a `CubicSpline` is `CUBIC_SPLINE`.

  Specified by:
    `getInterpolation` in interface `CurveSegment`
  Specified by:
    `getInterpolation` in interface `PolynomialSpline`
  Returns:
    The interpolation mechanism used for this segment.

### getVectorAtStart

    @UML(identifier="vectorAtStart",
         obligation=MANDATORY,
         specification=ISO_19107)
    List getVectorAtStart()

  The values used for the initial derivative. The restriction on `vectorAtStart` and `vectorAtEnd` reduce these sequences to a single tangent vector each. Consequently, the size of the returned list is 1.

  Specified by:
    `getVectorAtStart` in interface `PolynomialSpline`

### getVectorAtEnd

    @UML(identifier="vectorAtEnd",
         obligation=MANDATORY,
         specification=ISO_19107)
    List getVectorAtEnd()

  The values used for the final derivative. The restriction on `vectorAtStart` and `vectorAtEnd` reduce these sequences to a single tangent vector each. Consequently, the size of the returned list is 1.

  Specified by:
    `getVectorAtEnd` in interface `PolynomialSpline`

Copyright © 1994-2008 Open Geospatial Consortium. All Rights Reserved.