Interface Curve

 All Superinterfaces:
GenericCurve
,Geometry
,OrientableCurve
,OrientablePrimitive
,Primitive
,TransfiniteSet
@UML(identifier="GM_Curve", specification=ISO_19107) public interface Curve extends OrientableCurve, GenericCurve
Curve with a positive orientation.Curve
is a descendent subtype ofPrimitive
throughOrientablePrimitive
. It is the basis for 1dimensional geometry. A curve is a continuous image of an open interval and so could be written as a parameterized function such asc(t):(a, b) → E^{n}
where "t" is a real parameter and E^{n} is Euclidean space of dimension n (usually 2 or 3, as determined by the coordinate reference system). Any other parameterization that results in the same image curve, traced in the same direction, such as any linear shifts and positive scales such ase(t) = c(a + t(ba)):(0,1) → E^{n}
,is an equivalent representation of the same curve. For the sake of simplicity,
Curve
s should be parameterized by arc length, so that the parameterization operation inherited fromGenericCurve
will be valid for parameters between 0 and the length of the curve.Curves are continuous, connected, and have a measurable length in terms of the coordinate system. The orientation of the curve is determined by this parameterization, and is consistent with the tangent function, which approximates the derivative function of the parameterization and shall always point in the "forward" direction. The parameterization of the reversal of the curve defined by
c(t):(a, b) → E^{n}
would be defined by a function of the forms(t) = c(a + b  t):(a, b) → E^{n}
.A curve is composed of one or more curve segments. Each curve segment within a curve may be defined using a different interpolation method. The curve segments are connected to one another, with the end point of each segment except the last being the start point of the next segment in the segment list.
 Since:
 GeoAPI 1.0
 Author:
 Martin Desruisseaux (IRD)
 See Also:
PrimitiveFactory.createCurve(java.util.List<org.opengis.geometry.primitive.CurveSegment>)


Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description OrientableCurve[]
getProxy()
Returns the orientable curves associated with this curve.List<? extends CurveSegment>
getSegments()
Lists the components curve segments ofCurve
, each of which defines the direct position of points along a portion of the curve.
Methods inherited from interface GenericCurve
asLineString, forConstructiveParam, forParam, getEndConstructiveParam, getEndParam, getEndPoint, getParamForPoint, getStartConstructiveParam, getStartParam, getStartPoint, getTangent, length, length

Methods inherited from interface Geometry
clone, distance, getBuffer, getCentroid, getClosure, getConvexHull, getCoordinateDimension, getCoordinateReferenceSystem, getDimension, getEnvelope, getMaximalComplex, getMbRegion, getPrecision, getRepresentativePoint, isCycle, isMutable, isSimple, toImmutable, transform, transform

Methods inherited from interface OrientableCurve
getBoundary, getComposite, getPrimitive

Methods inherited from interface OrientablePrimitive
getOrientation

Methods inherited from interface Primitive
getComplexes, getContainedPrimitives, getContainingPrimitives

Methods inherited from interface TransfiniteSet
contains, contains, difference, equals, intersection, intersects, symmetricDifference, union




Method Detail

getSegments
@Association("Segmentation") @UML(identifier="segment", obligation=MANDATORY, specification=ISO_19107) List<? extends CurveSegment> getSegments()
Lists the components curve segments ofCurve
, each of which defines the direct position of points along a portion of the curve. The order of the curve segments is the order in which they are used to trace thisCurve
. For a particular parameter interval, theCurve
andCurveSegment
agree. Returns:
 The list of curve segments. Should never be
null
neither empty.  See Also:
CurveSegment.getCurve()
,Surface.getPatches()

getProxy
@Association("Oriented") @UML(identifier="proxy", obligation=MANDATORY, specification=ISO_19107) OrientableCurve[] getProxy()
Returns the orientable curves associated with this curve. Specified by:
getProxy
in interfacePrimitive
 Returns:
 The orientable curves as an array of length 2.
 See Also:
OrientableCurve.getPrimitive()

