## org.opengis.geometry.coordinate
Interface BSplineCurve

All Superinterfaces:
  CurveSegment, GenericCurve, SplineCurve

All Known Subinterfaces:
  Bezier

    @UML(identifier="GM_BSplineCurve",
         specification=ISO_19107)
    public interface BSplineCurve

extends SplineCurve

A piecewise parametric polynomial or rational curve described in terms of control points and basis functions. If the weights in the knots are equal then it is a polynomial spline. If not, then it is a rational function spline. If the boolean `isPolynomial()` is set to `true` then the weights shall all be set to 1. A B-spline curve is a piecewise Bézier curve if it is quasi-uniform except that the interior knots have multiplicity "degree" rather than having multiplicity one. In this subtype the knot spacing shall be 1.0, starting at 0.0. A piecewise Bézier curve that has only two knots, 0.0, and 1.0, each of multiplicity (degree+1), is equivalent to a simple Bézier curve.

Since:
  GeoAPI 2.0
Version:
  ISO 19107
See Also:
  `GeometryFactory.createBSplineCurve(int, org.opengis.geometry.coordinate.PointArray, java.util.List<org.opengis.geometry.coordinate.Knot>, org.opengis.geometry.coordinate.KnotType)`

Method Summary
`SplineCurveForm` `getCurveForm()` Identifies particular types of curve which this spline is being used to approximate.
`int` `getDegree()` The algebraic degree of the basis functions.
`KnotType` `getKnotSpec()` Gives the type of knot distribution used in defining this spline.
`boolean` `isPolynomial()` `true` if this is a polynomial spline.

Methods inherited from interface SplineCurve
`getControlPoints, getKnots`

Methods inherited from interface CurveSegment
`getBoundary, getCurve, getInterpolation, 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

### getDegree

    @UML(identifier="degree",
         obligation=MANDATORY,
         specification=ISO_19107)
    int getDegree()

  The algebraic degree of the basis functions.

  Specified by:
    `getDegree` in interface `SplineCurve`

### getCurveForm

    @UML(identifier="curveForm",
         obligation=OPTIONAL,
         specification=ISO_19107)
    SplineCurveForm getCurveForm()

  Identifies particular types of curve which this spline is being used to approximate. It is for information only, used to capture the original intention. If no such approximation is intended, then the value of this attribute is `null`.

### getKnotSpec

    @UML(identifier="knotSpec",
         obligation=OPTIONAL,
         specification=ISO_19107)
    KnotType getKnotSpec()

  Gives the type of knot distribution used in defining this spline. This is for information only and is set according to the different construction-functions.

### isPolynomial

    @UML(identifier="isPolynomial",
         obligation=MANDATORY,
         specification=ISO_19107)
    boolean isPolynomial()

  `true` if this is a polynomial spline.

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