Class CurveInterpolation

  • All Implemented Interfaces:
    Serializable, Comparable<CurveInterpolation>, ControlledVocabulary

    @UML(identifier="GM_CurveInterpolation",
         specification=ISO_19107)
    public final class CurveInterpolation
    extends CodeList<CurveInterpolation>
    List of codes that may be used to identify the interpolation mechanisms. As a code list, there is no intention of limiting the potential values of CurveInterpolation. Subtypes of CurveSegment can be spawned directly through subclassing, or indirectly by specifying an interpolation method and an associated control parameters record to support it.
    Since:
    GeoAPI 1.0
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class CodeList

        CodeList.Filter
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static CurveInterpolation CIRCULAR_ARC_2_POINTS_WITH_BULGE
      For each consecutive pair of control points, the interpolation mechanism shall return direct positions on a circular arc passing from the first control point to the second control point, such that the associated control parameter determines the offset of the center of the arc from the center point of the chord, positive for leftward and negative for rightward.
      static CurveInterpolation CIRCULAR_ARC_3_POINTS
      For each set of three consecutive control points, the middle one being an even offset from the beginning of the sequence of control points, the interpolation mechanism shall return direct positions on a circular arc passing from the first point through the middle point to the third point.
      static CurveInterpolation CLOTHOID
      Uses a Cornu's spiral or clothoid interpolation.
      static CurveInterpolation CONIC
      Same as elliptical arc but using 5 consecutive control points to determine a conic section.
      static CurveInterpolation CUBIC_SPLINE
      The control points are interpolated using initial tangents and cubic polynomials, a form of degree 3 polynomial spline.
      static CurveInterpolation ELLIPTICAL
      For each set of four consecutive control points, the interpolation mechanism shall return direct positions on an elliptical arc passing from the first control point through the middle control points in order to the fourth control point.
      static CurveInterpolation GEODESIC
      The interpolation mechanism shall return direct positions on a geodesic curve between each consecutive pair of control points.
      static CurveInterpolation LINEAR
      The interpolation mechanism shall return direct positions on a straight line between each consecutive pair of control points.
      static CurveInterpolation POLYNOMIAL_SPLINE
      The control points are ordered as in a line-string, but they are spanned by a polynomial spline function.
      static CurveInterpolation RATIONAL_SPLINE
      The control points are ordered as in a line string, but they are spanned by a rational (quotient of polynomials) spline function.
    • Field Detail

      • LINEAR

        @UML(identifier="linear",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation LINEAR
        The interpolation mechanism shall return direct positions on a straight line between each consecutive pair of control points.
      • GEODESIC

        @UML(identifier="geodesic",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation GEODESIC
        The interpolation mechanism shall return direct positions on a geodesic curve between each consecutive pair of control points. A geodesic curve is a curve of shortest length. The geodesic shall be determined in the coordinate reference system of the curve in which the curve segment is used.
      • CIRCULAR_ARC_3_POINTS

        @UML(identifier="circularArc3Points",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation CIRCULAR_ARC_3_POINTS
        For each set of three consecutive control points, the middle one being an even offset from the beginning of the sequence of control points, the interpolation mechanism shall return direct positions on a circular arc passing from the first point through the middle point to the third point. The sequence of control points shall have an odd number of elements. If the 3 points are co-linear, the circular arc becomes a straight line.
      • CIRCULAR_ARC_2_POINTS_WITH_BULGE

        @UML(identifier="circularArc2PointWithBulge",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation CIRCULAR_ARC_2_POINTS_WITH_BULGE
        For each consecutive pair of control points, the interpolation mechanism shall return direct positions on a circular arc passing from the first control point to the second control point, such that the associated control parameter determines the offset of the center of the arc from the center point of the chord, positive for leftward and negative for rightward. This form shall only be used in 2 dimensions because of the restricted nature of the definition technique.
      • ELLIPTICAL

        @UML(identifier="elliptical",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation ELLIPTICAL
        For each set of four consecutive control points, the interpolation mechanism shall return direct positions on an elliptical arc passing from the first control point through the middle control points in order to the fourth control point. If the 4 control points are co-linear, the arc becomes a straight line. If the 4 control points are on the same circle, the arc becomes a circular one.
      • CLOTHOID

        @UML(identifier="clothoid",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation CLOTHOID
        Uses a Cornu's spiral or clothoid interpolation.
      • CONIC

        @UML(identifier="conic",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation CONIC
        Same as elliptical arc but using 5 consecutive control points to determine a conic section.
      • POLYNOMIAL_SPLINE

        @UML(identifier="polynomialSpline",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation POLYNOMIAL_SPLINE
        The control points are ordered as in a line-string, but they are spanned by a polynomial spline function. Normally, the degree of continuity is determined by the degree of the polynomials chosen.
      • CUBIC_SPLINE

        @UML(identifier="cubicSpline",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation CUBIC_SPLINE
        The control points are interpolated using initial tangents and cubic polynomials, a form of degree 3 polynomial spline.
      • RATIONAL_SPLINE

        @UML(identifier="rationalSpline",
             obligation=CONDITIONAL,
             specification=ISO_19107)
        public static final CurveInterpolation RATIONAL_SPLINE
        The control points are ordered as in a line string, but they are spanned by a rational (quotient of polynomials) spline function. Normally, the degree of continuity is determined by the degree of the polynomials chosen.
    • Method Detail

      • values

        public static CurveInterpolation[] values()
        Returns the list of CurveInterpolations.
        Returns:
        the list of codes declared in the current JVM.
      • family

        public CurveInterpolation[] family()
        Returns the list of codes of the same kind than this code list element. Invoking this method is equivalent to invoking values(), except that this method can be invoked on an instance of the parent CodeList class.
        Specified by:
        family in interface ControlledVocabulary
        Specified by:
        family in class CodeList<CurveInterpolation>
        Returns:
        all code values for this code list.
      • valueOf

        public static CurveInterpolation valueOf​(String code)
        Returns the curve interpolation that matches the given string, or returns a new one if none match it. More specifically, this methods returns the first instance for which name().equals(code) returns true. If no existing instance is found, then a new one is created for the given name.
        Parameters:
        code - the name of the code to fetch or to create.
        Returns:
        a code matching the given name.