|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
@UML(identifier="GM_CurveSegment", specification=ISO_19107) public interface CurveSegment
Defines a homogeneous segment of a curve.
Each CurveSegment
shall be in, at most, one curve.
Method Summary | |
---|---|
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 |
---|
@Association(value="Segmentation") @UML(identifier="curve", obligation=OPTIONAL, specification=ISO_19107) Curve getCurve()
Curve
to CurveSegment
,
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 returnsnull
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 open-ended manner.
null
if the association is
not available or not implemented that way.Curve.getSegments()
,
SurfacePatch.getSurface()
@UML(identifier="interpolation", obligation=MANDATORY, specification=ISO_19107) CurveInterpolation getInterpolation()
CurveSegment
.
@UML(identifier="numDerivativesAtStart", obligation=MANDATORY, specification=ISO_19107) int getNumDerivativesAtStart()
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 C0, 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 C1 or higher continuity.
getNumDerivativesInterior()
,
getNumDerivativesAtEnd()
@UML(identifier="numDerivativesInterior", obligation=MANDATORY, specification=ISO_19107) int getNumDerivativesInterior()
getNumDerivativesAtStart()
,
getNumDerivativesAtEnd()
@UML(identifier="numDerivativesAtEnd", obligation=MANDATORY, specification=ISO_19107) int getNumDerivativesAtEnd()
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 C0, 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 C1 or higher continuity.
getNumDerivativesAtStart()
,
getNumDerivativesInterior()
@UML(identifier="samplePoint", obligation=MANDATORY, specification=ISO_19107) PointArray getSamplePoints()
@UML(identifier="boundary", obligation=MANDATORY, specification=ISO_19107) CurveBoundary getBoundary()
CurveSegment
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.
@UML(identifier="reverse", obligation=MANDATORY, specification=ISO_19107) CurveSegment reverse()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |