Package org.opengis.geometry.primitive
Interface CurveSegment

 All Superinterfaces:
GenericCurve
 All Known Subinterfaces:
Arc
,ArcByBulge
,ArcString
,ArcStringByBulge
,Bezier
,BSplineCurve
,Circle
,Clothoid
,Conic
,CubicSpline
,Geodesic
,GeodesicString
,LineSegment
,LineString
,OffsetCurve
,PolynomialSpline
,SplineCurve
@UML(identifier="GM_CurveSegment", specification=ISO_19107) public interface CurveSegment extends GenericCurve
 Since:
 GeoAPI 1.0
 Author:
 Martin Desruisseaux (IRD)


Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description CurveBoundary
getBoundary()
Returns an ordered pair of points, which are the start point and end point of the curve.Curve
getCurve()
Returns the curve which own this curve segment.CurveInterpolation
getInterpolation()
Specifies the curve interpolation mechanism used for this segment.int
getNumDerivativesAtEnd()
Specifies the type of continuity between this curve segment and its immediate neighbors.int
getNumDerivativesAtStart()
Specifies the type of continuity between this curve segment and its immediate neighbors.int
getNumDerivativesInterior()
Specifies the type of continuity that is guaranteed interior to the curve.PointArray
getSamplePoints()
Returns an ordered array of point values that lie on the curve segment.CurveSegment
reverse()
Reverses the orientation of the parameterizations of the segment.
Methods inherited from interface GenericCurve
asLineString, forConstructiveParam, forParam, getEndConstructiveParam, getEndParam, getEndPoint, getParamForPoint, getStartConstructiveParam, getStartParam, getStartPoint, getTangent, length, length




Method Detail

getCurve
@Association("Segmentation") @UML(identifier="curve", obligation=OPTIONAL, specification=ISO_19107) Curve getCurve()
Returns the curve which own this curve segment. This method is optional since the association in ISO 19107 is navigable only fromCurve
toCurveSegment
, not the other way.NOTE: In the specification, curve segments do not appear except in the context of a curve, and therefore this method should never returns
null
which would preclude the use of curve segments except in this manner. While this would not affect the specification, allowingnull
owner allows other standards based on ISO 19107 one to use curve segments in a more openended manner. Returns:
 The owner of this curve segment, or
null
if the association is not available or not implemented that way.  See Also:
Curve.getSegments()
,SurfacePatch.getSurface()

getInterpolation
@UML(identifier="interpolation", obligation=MANDATORY, specification=ISO_19107) CurveInterpolation getInterpolation()
Specifies the curve interpolation mechanism used for this segment. This mechanism uses the control points and control parameters to determine the position of thisCurveSegment
. Returns:
 The interpolation mechanism used for this segment.

getNumDerivativesAtStart
@UML(identifier="numDerivativesAtStart", obligation=MANDATORY, specification=ISO_19107) int getNumDerivativesAtStart()
Specifies the type of continuity between this curve segment and its immediate neighbors. If this is the first curve segment in the curve, this value is ignored.NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line strings and 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 type of continuity between this curve semgent and its immediate neighbors.
 See Also:
getNumDerivativesInterior()
,getNumDerivativesAtEnd()

getNumDerivativesInterior
@UML(identifier="numDerivativesInterior", obligation=MANDATORY, specification=ISO_19107) int getNumDerivativesInterior()
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. Returns:
 The type of continuity that is guaranteed interior to the curve.
 See Also:
getNumDerivativesAtStart()
,getNumDerivativesAtEnd()

getNumDerivativesAtEnd
@UML(identifier="numDerivativesAtEnd", obligation=MANDATORY, specification=ISO_19107) int getNumDerivativesAtEnd()
Specifies the type of continuity between this curve segment and its immediate neighbors. If this is the last curve segment in the curve, this value is ignored.NOTE: Use of these values is only appropriate when the basic curve definition is an underdetermined system. For example, line strings and 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 type of continuity between this curve semgent and its immediate neighbors.
 See Also:
getNumDerivativesAtStart()
,getNumDerivativesInterior()

getSamplePoints
@UML(identifier="samplePoint", obligation=MANDATORY, specification=ISO_19107) PointArray getSamplePoints()
Returns an ordered array of point values that lie on the curve segment. In most cases, these will be related to control points used in the construction of the segment. The control points of a curve segment are use to control its shape, and are not always on the curve segment itself. For example in a spline curve, the curve segment is given as a weighted vector sum of the control points. Each weight function will have a maximum within the constructive parameter interval, which will roughly correspond to the point on the curve where it passes closest that the corresponding control point. These points, the values of the curve at the maxima of the weight functions, will be the sample points for the curve segment. Returns:
 The control points.

getBoundary
@UML(identifier="boundary", obligation=MANDATORY, specification=ISO_19107) CurveBoundary getBoundary()
Returns an ordered pair of points, which are the start point and end point of the curve. This method operates with the same semantics as that on curve except that the end points of aCurveSegment
are not necessarily existing points and thus the boundary may contain transient points.NOTE: The above curve boundary will almost always be two distinct positions, but, like curves,
CurveSegment
s can be cycles in themselves. The most likely scenario is that all of the points used will be transients (constructed to support the return value), except for the start point and end point of the aggregated curve. These two positions, in the case where the curve is involved in a complex, will be represented as points in the same complex. Returns:
 The sets of positions on the boundary.

reverse
@UML(identifier="reverse", obligation=MANDATORY, specification=ISO_19107) CurveSegment reverse()
Reverses the orientation of the parameterizations of the segment. Returns:
 The reverse of this curve segment.

