## org.opengis.coverage
Interface ValueCurve

All Superinterfaces:
  ValueObject

    @UML(identifier="CV_ValueCurve",
         specification=ISO_19123)
    public interface ValueCurve

extends ValueObject

Basis for interpolating within a segmented curve coverage. A value curve is composed of a curve with additional information that supports the determination of feature attribute values at any position on that curve. Value curves depend upon the arc-length parameterization operations defined for `Curve`.

Method Summary
`Set<PointValuePair>` `getControlValues()` Returns the set of point-value pairs that provide control values for the interpolation along the value curve.
`DomainObject` `getGeometry()` Returns the cruve that is the basis of this value curve.
`Set<ValueSegment>` `segment(DirectPosition p, Double tolerance)` Returns the set of value segments nearest to the specified direct position.

Methods inherited from interface ValueObject
`getInterpolationParameters, interpolate`

Method Detail

### getGeometry

    @UML(identifier="geometry",
         obligation=MANDATORY,
         specification=ISO_19123)
    DomainObject getGeometry()

  Returns the cruve that is the basis of this value curve.

  Specified by:
    `getGeometry` in interface `ValueObject`
  TODO:
    According ISO 19123, the return value should be `Curve`.

### getControlValues

    @UML(identifier="controlValue",
         obligation=MANDATORY,
         specification=ISO_19123)
    Set<PointValuePair> getControlValues()

  Returns the set of point-value pairs that provide control values for the interpolation along the value curve.

  Specified by:
    `getControlValues` in interface `ValueObject`

### segment

    @UML(identifier="segment",
         obligation=MANDATORY,
         specification=ISO_19123)
    Set<ValueSegment> segment(DirectPosition p,
                                                                                     Double tolerance)

  Returns the set of value segments nearest to the specified direct position. This method shall invoke the `GenericCurve.getParamForPoint(org.opengis.geometry.DirectPosition)` method to obtain the distance parameter corresponding to the input direct position. The method `getParamForPoint` returns the parameter value for the position on the curve closest to the input direct position.

  This method will normally return a single value segment. There are three cases for which it could return multiple value segments:

  - The `ValueCurve` is not simple. The position on the curve that is closest to the input direct position is a point of self-intersection. The method `getParamForPoint` returns two or more parameter values. In this case, the method `segment` shall raise an exception.
  - There are two or more positions on the `ValueCurve` that are at the same minimal distance from the input direct position. The method `getParamForPoint` returns two or more parameter values. In this case, the method `segment` shall raise an exception.
  - The position on the `ValueCurve` that is closest to the input direct position is at the end of one `ValueSegment` and the start of the next. In this case, the method shall return both value segments.

  TODO:
    I'm not sure to understand how the exception clause is related to the first sentence in the two first points?

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