Class TLcdGML31CubicSpline

All Implemented Interfaces:
ILcdDataObject, ILcdBounded, ILcdCurve, ILcdShape, ILcdCloneable, ILcdDeepCloneable, ILcdFeatured, ILcdSelfDescribedFeatured, Serializable, Cloneable

public class TLcdGML31CubicSpline extends TLcdGML31AbstractCurveSegment
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. The function describing the curve must be C2, that is, have a continuous 1st and 2nd derivative at all points, and pass through the controlPoints 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[1] and controlPoint[n] where n = controlPoint.count. Note: only the direction of the vectors is relevant, not their length.
Since:
10.0
See Also:
  • Field Details

    • DEGREE_PROPERTY

      public static final TLcdDataProperty DEGREE_PROPERTY
      Data property that maps to the degree attribute. The possible values for this property are instances of Long.
    • INTERPOLATION_ATTR_PROPERTY

      public static final TLcdDataProperty INTERPOLATION_ATTR_PROPERTY
      Data property that maps to the interpolation attribute. The possible values for this property are instances of ELcdGML31CurveInterpolation.
    • POS_GROUP_PROPERTY

      public static final TLcdDataProperty POS_GROUP_PROPERTY
      Data property that maps to the choice between the pos and pointProperty and pointRep and posList and coordinates elements. The possible values for this property are instances of
    • VECTOR_AT_START_PROPERTY

      public static final TLcdDataProperty VECTOR_AT_START_PROPERTY
      Data property that maps to the vectorAtStart element. The possible values for this property are instances of TLcdGML31Vector.
    • VECTOR_AT_END_PROPERTY

      public static final TLcdDataProperty VECTOR_AT_END_PROPERTY
      Data property that maps to the vectorAtEnd element. The possible values for this property are instances of TLcdGML31Vector.
    • NUM_DERIVATIVE_INTERIOR_PROPERTY

      public static final TLcdDataProperty NUM_DERIVATIVE_INTERIOR_PROPERTY
      Data property that maps to the numDerivativeInterior attribute. The possible values for this property are instances of long.
    • NUM_DERIVATIVES_AT_END_PROPERTY

      public static final TLcdDataProperty NUM_DERIVATIVES_AT_END_PROPERTY
      Data property that maps to the numDerivativesAtEnd attribute. The possible values for this property are instances of long.
    • NUM_DERIVATIVES_AT_START_PROPERTY

      public static final TLcdDataProperty NUM_DERIVATIVES_AT_START_PROPERTY
      Data property that maps to the numDerivativesAtStart attribute. The possible values for this property are instances of long.
  • Constructor Details

    • TLcdGML31CubicSpline

      public TLcdGML31CubicSpline()
    • TLcdGML31CubicSpline

      public TLcdGML31CubicSpline(TLcdDataType aType)
  • Method Details

    • getDegree

      public Long getDegree()
      Returns the value of the property that maps to the degree attribute.

      The degree for a cubic spline is "3".

      Returns:
      the value of the DEGREE_PROPERTY property.
    • setDegree

      public void setDegree(Long aValue)
      Sets the value of the property that maps to the degree attribute.

      The degree for a cubic spline is "3".

      Parameters:
      aValue - the value to set for the DEGREE_PROPERTY property.
    • getInterpolationAttr

      public ELcdGML31CurveInterpolation getInterpolationAttr()
      Returns the value of the property that maps to the interpolation attribute.

      The attribute "interpolation" specifies the curve interpolation mechanism used for this segment. This mechanism uses the control points and control parameters to determine the position of this curve segment. For a CubicSpline the interpolation is fixed as "cubicSpline".

      Returns:
      the value of the INTERPOLATION_ATTR_PROPERTY property.
    • setInterpolationAttr

      public void setInterpolationAttr(ELcdGML31CurveInterpolation aValue)
      Sets the value of the property that maps to the interpolation attribute.

      The attribute "interpolation" specifies the curve interpolation mechanism used for this segment. This mechanism uses the control points and control parameters to determine the position of this curve segment. For a CubicSpline the interpolation is fixed as "cubicSpline".

      Parameters:
      aValue - the value to set for the INTERPOLATION_ATTR_PROPERTY property.
    • getPosGroup

      public Object getPosGroup()
      Returns the value of the property that maps to the choice between the pos and pointProperty and pointRep and posList and coordinates elements.

      The possible values for this property are instances of

      Returns:
      the value of the POS_GROUP_PROPERTY property.
    • setPosGroup

      public void setPosGroup(Object aValue)
      Sets the value of the property that maps to the choice between the pos and pointProperty and pointRep and posList and coordinates elements.

      The possible values for this property are instances of

      Parameters:
      aValue - the value to set for the POS_GROUP_PROPERTY property.
    • getVectorAtStart

      public TLcdGML31Vector getVectorAtStart()
      Returns the value of the property that maps to the vectorAtStart element.

      "vectorAtStart" is the unit tangent vector at the start point of the spline.

      Returns:
      the value of the VECTOR_AT_START_PROPERTY property.
    • setVectorAtStart

      public void setVectorAtStart(TLcdGML31Vector aValue)
      Sets the value of the property that maps to the vectorAtStart element.

      "vectorAtStart" is the unit tangent vector at the start point of the spline.

      Parameters:
      aValue - the value to set for the VECTOR_AT_START_PROPERTY property.
    • getVectorAtEnd

      public TLcdGML31Vector getVectorAtEnd()
      Returns the value of the property that maps to the vectorAtEnd element.

      "vectorAtEnd" is the unit tangent vector at the end point of the spline.

      Returns:
      the value of the VECTOR_AT_END_PROPERTY property.
    • setVectorAtEnd

      public void setVectorAtEnd(TLcdGML31Vector aValue)
      Sets the value of the property that maps to the vectorAtEnd element.

      "vectorAtEnd" is the unit tangent vector at the end point of the spline.

      Parameters:
      aValue - the value to set for the VECTOR_AT_END_PROPERTY property.
    • getNumDerivativeInterior

      public long getNumDerivativeInterior()
      Returns the value of the property that maps to the numDerivativeInterior attribute.

      The attribute "numDerivativesInterior" specifies the type of continuity that is guaranteed interior to the curve. The default value of "0" means simple continuity, which is a mandatory minimum level of continuity. This level is referred to as "C 0 " in mathematical texts. A value of 1 means that the function and its first derivative are continuous at the appropriate end point: "C 1 " continuity. A value of "n" for any integer means the function and its first n derivatives are continuous: "C n " continuity. NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line string segments cannot support continuity above C 0 , since there is no spare control parameter to adjust the incoming angle at the end points of the segment. Spline functions on the other hand often have extra degrees of freedom on end segments that allow them to adjust the values of the derivatives to support C 1 or higher continuity.

      Returns:
      the value of the NUM_DERIVATIVE_INTERIOR_PROPERTY property.
    • setNumDerivativeInterior

      public void setNumDerivativeInterior(long aValue)
      Sets the value of the property that maps to the numDerivativeInterior attribute.

      The attribute "numDerivativesInterior" specifies the type of continuity that is guaranteed interior to the curve. The default value of "0" means simple continuity, which is a mandatory minimum level of continuity. This level is referred to as "C 0 " in mathematical texts. A value of 1 means that the function and its first derivative are continuous at the appropriate end point: "C 1 " continuity. A value of "n" for any integer means the function and its first n derivatives are continuous: "C n " continuity. NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line string segments cannot support continuity above C 0 , since there is no spare control parameter to adjust the incoming angle at the end points of the segment. Spline functions on the other hand often have extra degrees of freedom on end segments that allow them to adjust the values of the derivatives to support C 1 or higher continuity.

      Parameters:
      aValue - the value to set for the NUM_DERIVATIVE_INTERIOR_PROPERTY property.
    • getNumDerivativesAtEnd

      public long getNumDerivativesAtEnd()
      Returns the value of the property that maps to the numDerivativesAtEnd attribute.

      The attribute "numDerivativesAtEnd" specifies the type of continuity between this curve segment and its successor. If this is the last curve segment in the curve, one of these values, as appropriate, is ignored. The default value of "0" means simple continuity, which is a mandatory minimum level of continuity. This level is referred to as "C 0 " in mathematical texts. A value of 1 means that the function and its first derivative are continuous at the appropriate end point: "C 1 " continuity. A value of "n" for any integer means the function and its first n derivatives are continuous: "C n " continuity. NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line string segments cannot support continuity above C 0 , since there is no spare control parameter to adjust the incoming angle at the end points of the segment. Spline functions on the other hand often have extra degrees of freedom on end segments that allow them to adjust the values of the derivatives to support C 1 or higher continuity.

      Returns:
      the value of the NUM_DERIVATIVES_AT_END_PROPERTY property.
    • setNumDerivativesAtEnd

      public void setNumDerivativesAtEnd(long aValue)
      Sets the value of the property that maps to the numDerivativesAtEnd attribute.

      The attribute "numDerivativesAtEnd" specifies the type of continuity between this curve segment and its successor. If this is the last curve segment in the curve, one of these values, as appropriate, is ignored. The default value of "0" means simple continuity, which is a mandatory minimum level of continuity. This level is referred to as "C 0 " in mathematical texts. A value of 1 means that the function and its first derivative are continuous at the appropriate end point: "C 1 " continuity. A value of "n" for any integer means the function and its first n derivatives are continuous: "C n " continuity. NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line string segments cannot support continuity above C 0 , since there is no spare control parameter to adjust the incoming angle at the end points of the segment. Spline functions on the other hand often have extra degrees of freedom on end segments that allow them to adjust the values of the derivatives to support C 1 or higher continuity.

      Parameters:
      aValue - the value to set for the NUM_DERIVATIVES_AT_END_PROPERTY property.
    • getNumDerivativesAtStart

      public long getNumDerivativesAtStart()
      Returns the value of the property that maps to the numDerivativesAtStart attribute.

      The attribute "numDerivativesAtStart" specifies the type of continuity between this curve segment and its predecessor. If this is the first curve segment in the curve, one of these values, as appropriate, is ignored. The default value of "0" means simple continuity, which is a mandatory minimum level of continuity. This level is referred to as "C 0 " in mathematical texts. A value of 1 means that the function and its first derivative are continuous at the appropriate end point: "C 1 " continuity. A value of "n" for any integer means the function and its first n derivatives are continuous: "C n " continuity. NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line string segments cannot support continuity above C 0 , since there is no spare control parameter to adjust the incoming angle at the end points of the segment. Spline functions on the other hand often have extra degrees of freedom on end segments that allow them to adjust the values of the derivatives to support C 1 or higher continuity.

      Returns:
      the value of the NUM_DERIVATIVES_AT_START_PROPERTY property.
    • setNumDerivativesAtStart

      public void setNumDerivativesAtStart(long aValue)
      Sets the value of the property that maps to the numDerivativesAtStart attribute.

      The attribute "numDerivativesAtStart" specifies the type of continuity between this curve segment and its predecessor. If this is the first curve segment in the curve, one of these values, as appropriate, is ignored. The default value of "0" means simple continuity, which is a mandatory minimum level of continuity. This level is referred to as "C 0 " in mathematical texts. A value of 1 means that the function and its first derivative are continuous at the appropriate end point: "C 1 " continuity. A value of "n" for any integer means the function and its first n derivatives are continuous: "C n " continuity. NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line string segments cannot support continuity above C 0 , since there is no spare control parameter to adjust the incoming angle at the end points of the segment. Spline functions on the other hand often have extra degrees of freedom on end segments that allow them to adjust the values of the derivatives to support C 1 or higher continuity.

      Parameters:
      aValue - the value to set for the NUM_DERIVATIVES_AT_START_PROPERTY property.