org.opengis.geometry.coordinate
Interface ArcString

All Superinterfaces:
CurveSegment, GenericCurve
All Known Subinterfaces:
Arc, Circle

@UML(identifier="GM_ArcString",
     specification=ISO_19107)
public interface ArcString
extends CurveSegment

Similar to a line string except that the interpolation is by circular arcs. Since it requires 3 points to determine a circular arc, the control points are treated as a sequence of overlapping sets of 3 positions, the start of each arc, some point between the start and end, and the end of each arc. Since the end of each arc is the start of the next, this position is not repeated in the control points sequence.

Since:
GeoAPI 1.0
Author:
Martin Desruisseaux (IRD)
See Also:
GeometryFactory.createArcString(java.util.List), ArcStringByBulge.asArcString()

Method Summary
 List<Arc> asArcs()
          Constructs a sequence of arcs that is the geometric equivalent of this arc string.
 PointArray getControlPoints()
          Returns the sequence of points used to control the arcs in this string.
 CurveInterpolation getInterpolation()
          The interpolation for a ArcString is "circular arc by 3 points".
 int getNumArc()
          Returns the number of circular arcs in the string.
 
Methods inherited from interface CurveSegment
getBoundary, getCurve, 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

getNumArc

@UML(identifier="numArc",
     obligation=MANDATORY,
     specification=ISO_19107)
int getNumArc()
Returns the number of circular arcs in the string. Since the interpolation method requires overlapping sets of 3 positions, the number of arcs determines the number of control points:
numArc = (controlPoints.length - 1)/2

Returns:
The number of circular arcs.

getControlPoints

@UML(identifier="controlPoints",
     obligation=MANDATORY,
     specification=ISO_19107)
PointArray getControlPoints()
Returns the sequence of points used to control the arcs in this string. The first three positions in the sequence determines the first arc. Any three consecutive positions beginning with an odd offset, determine another arc in the string.

Returns:
The control points. The array size is 2*numArc +1.

getInterpolation

@UML(identifier="interpolation",
     obligation=MANDATORY,
     specification=ISO_19107)
CurveInterpolation getInterpolation()
The interpolation for a ArcString is "circular arc by 3 points".

Specified by:
getInterpolation in interface CurveSegment
Returns:
Always CurveInterpolation.CIRCULAR_ARC_3_POINTS.

asArcs

@UML(identifier="asGM_Arc",
     obligation=MANDATORY,
     specification=ISO_19107)
List<Arc> asArcs()
Constructs a sequence of arcs that is the geometric equivalent of this arc string.

Returns:
The sequence of arcs.


Copyright © 1996-2014 Geotools. All Rights Reserved.