Interface ILcdCurve
- All Superinterfaces:
Cloneable
,ILcdBounded
,ILcdCloneable
,ILcdShape
,Serializable
- All Known Subinterfaces:
ILcd2DEditableCircleBy3Points
,ILcd2DEditableCircularArcBy3Points
,ILcd2DEditableCircularArcByBulge
,ILcd2DEditableCircularArcByCenterPoint
,ILcdAirspace
,ILcdAirspaceCorridor
,ILcdCircleBy3Points
,ILcdCircularArc
,ILcdCircularArcBy3Points
,ILcdCircularArcByBulge
,ILcdCircularArcByCenterPoint
,ILcdCompositeCurve
,ILcdEditableAirspace
,ILcdEditableAirspaceCorridor
,ILcdEditableCompositeCurve
,ILcdEditableHelipad
,ILcdEditableParachuteJumpArea
,ILcdEditableRefuelingAirspace
,ILcdHelipad
,ILcdParachuteJumpArea
,ILcdRefuelingAirspace
,ILcdRing
- All Known Implementing Classes:
ALcdDiscretizedGeoPath
,TLcdAirspace
,TLcdAirspaceCorridor
,TLcdAISPolygon
,TLcdAISPolyline
,TLcdAIXM51Curve
,TLcdAIXM51ElevatedCurve
,TLcdAreaMinimumAltitude
,TLcdASTERIXTrajectory
,TLcdCGMArc
,TLcdCGMCircle
,TLcdCGMEllipse
,TLcdCGMPolygon
,TLcdCGMPolyline
,TLcdCompositeCurve
,TLcdDGNArc2D
,TLcdDGNCurve2D
,TLcdDGNDimension
,TLcdDGNEllipse2D
,TLcdDGNFloatCurve2D
,TLcdDGNFloatCurve3D
,TLcdDGNFloatLine2D
,TLcdDGNFloatLine3D
,TLcdDGNFloatLineString2D
,TLcdDGNFloatLineString3D
,TLcdDGNFloatShape2D
,TLcdDGNFloatShape3D
,TLcdDGNLine2D
,TLcdDGNLineString2D
,TLcdDGNShape2D
,TLcdDiscretizedLonLatGeoPath
,TLcdDWGArc
,TLcdDWGCircle
,TLcdDWGCompositeCurve
,TLcdDWGCompositeRing
,TLcdDWGEllipse
,TLcdDWGFace3D
,TLcdDWGLine
,TLcdDWGPolyline2D
,TLcdDWGSolid
,TLcdEditableAPP6AObject
,TLcdEditableMS2525bObject
,TLcdFeaturedAirspace
,TLcdFeaturedAirspaceCorridor
,TLcdFeaturedAreaMinimumAltitude
,TLcdFeaturedFinalApproachPath
,TLcdFeaturedGeoborder
,TLcdFeaturedHelipad
,TLcdFeaturedOrtca
,TLcdFeaturedParachuteJumpArea
,TLcdFeaturedRefuelingAirspace
,TLcdFeaturedRefuelingTrack
,TLcdFeaturedRunway
,TLcdFeaturedVFROffsetRoute
,TLcdFeaturedVFRRoute
,TLcdFinalApproachPath
,TLcdGeoborder
,TLcdGML2LinearRing
,TLcdGML2LineString
,TLcdGML31AbstractCurve
,TLcdGML31AbstractCurveSegment
,TLcdGML31AbstractRing
,TLcdGML31Arc
,TLcdGML31ArcByBulge
,TLcdGML31ArcByCenterPoint
,TLcdGML31ArcString
,TLcdGML31ArcStringByBulge
,TLcdGML31Bezier
,TLcdGML31BSpline
,TLcdGML31Circle
,TLcdGML31CircleByCenterPoint
,TLcdGML31Clothoid
,TLcdGML31CompositeCurve
,TLcdGML31CubicSpline
,TLcdGML31Curve
,TLcdGML31Geodesic
,TLcdGML31GeodesicString
,TLcdGML31LinearRing
,TLcdGML31LineString
,TLcdGML31LineStringSegment
,TLcdGML31OffsetCurve
,TLcdGML31OrientableCurve
,TLcdGML31Ring
,TLcdGML31Triangle
,TLcdGML32AbstractCurve
,TLcdGML32AbstractCurveSegment
,TLcdGML32AbstractRing
,TLcdGML32Arc
,TLcdGML32ArcByBulge
,TLcdGML32ArcByCenterPoint
,TLcdGML32ArcString
,TLcdGML32ArcStringByBulge
,TLcdGML32Bezier
,TLcdGML32BSpline
,TLcdGML32Circle
,TLcdGML32CircleByCenterPoint
,TLcdGML32Clothoid
,TLcdGML32CompositeCurve
,TLcdGML32CubicSpline
,TLcdGML32Curve
,TLcdGML32Geodesic
,TLcdGML32GeodesicString
,TLcdGML32LinearRing
,TLcdGML32LineString
,TLcdGML32LineStringSegment
,TLcdGML32OffsetCurve
,TLcdGML32OrientableCurve
,TLcdGML32Ring
,TLcdGML32Triangle
,TLcdHelipad
,TLcdKML22LinearRing
,TLcdKML22LineString
,TLcdLonLatArc
,TLcdLonLatCircle
,TLcdLonLatCircleBy3Points
,TLcdLonLatCircularArcBy3Points
,TLcdLonLatCircularArcByBulge
,TLcdLonLatCircularArcByCenterPoint
,TLcdLonLatCompositeRing
,TLcdLonLatEllipse
,TLcdLonLatFloatPolygon
,TLcdLonLatFloatPolygonCache
,TLcdLonLatFloatPolyline
,TLcdLonLatFloatPolylineCache
,TLcdLonLatHeightLine
,TLcdLonLatHeightMPolygon
,TLcdLonLatHeightMPolyline
,TLcdLonLatHeightPolygon
,TLcdLonLatHeightPolyline
,TLcdLonLatLine
,TLcdLonLatMPolygon
,TLcdLonLatMPolyline
,TLcdLonLatPolygon
,TLcdLonLatPolyline
,TLcdLonLatRhumbPolygon
,TLcdLonLatRhumbPolyline
,TLcdMeasureXYPolygon
,TLcdMeasureXYPolyline
,TLcdMeasureXYZPolygon
,TLcdMeasureXYZPolyline
,TLcdNVG15Arc
,TLcdNVG15ArcBand
,TLcdNVG15Arrow
,TLcdNVG15Circle
,TLcdNVG15Corridor
,TLcdNVG15Ellipse
,TLcdNVG15Polygon
,TLcdNVG15Polyline
,TLcdNVG20Arc
,TLcdNVG20ArcBandRing
,TLcdNVG20CircularRing
,TLcdNVG20EllipticRing
,TLcdNVG20LinearRing
,TLcdNVG20Polyline
,TLcdNVG20RectangularRing
,TLcdOrtca
,TLcdParachuteJumpArea
,TLcdProcedureTrajectory
,TLcdRefuelingAirspace
,TLcdRefuelingTrack
,TLcdRoundedPolygon
,TLcdRoundedPolyline
,TLcdRunway
,TLcdS57Edge
,TLcdS57Face
,TLcdS57Line
,TLcdSHPPolygonZ
,TLcdSHPPolylineZ
,TLcdVFROffsetRoute
,TLcdVFRRoute
,TLcdXYArc
,TLcdXYCircle
,TLcdXYCircleBy3Points
,TLcdXYCircularArcBy3Points
,TLcdXYCircularArcByBulge
,TLcdXYCircularArcByCenterPoint
,TLcdXYCompositeRing
,TLcdXYEllipse
,TLcdXYFloatLine
,TLcdXYFloatPolygon
,TLcdXYFloatPolygonCache
,TLcdXYFloatPolyline
,TLcdXYFloatPolylineCache
,TLcdXYLine
,TLcdXYMPolygon
,TLcdXYMPolyline
,TLcdXYPolygon
,TLcdXYPolyline
,TLcdXYZFloatLine
,TLcdXYZFloatPolygon
,TLcdXYZFloatPolyline
,TLcdXYZLine
,TLcdXYZMPolygon
,TLcdXYZMPolyline
,TLcdXYZPolygon
,TLcdXYZPolyline
Examples of curves are lines, arcs, or any connected combination thereof.
Note that this interface does not enforce continuity. Rather, this is the responsibility of
the instance (e.g. ILcdGXYEditor
) that creates or manipulates the curves.
You can retrieve points along the curve using computePointSFCT(double, com.luciad.shape.shape3D.ILcd3DEditablePoint)
, for a parameter between
0 and 1, where 0 is the start of the curve and 1 is the end.
You can retrieve the tangent at points along the curve using getTangent2D(double)
using the same parameter.
A curve should have the following invariants:
- Since:
- 9.0
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
Curve interpolation type: circle by 3 points.static final String
Curve interpolation type: circle by center point and radius.static final String
Curve interpolation type: circular arc by 3 points.static final String
Curve interpolation type: circular arc by 2 points and bulge.static final String
Curve interpolation type: circular arc by center point and radius.static final String
Curve interpolation type: elliptical.static final String
Curve interpolation type: geodesic.static final String
Curve interpolation type: linear.static final String
Curve interpolation type: mixed.static final String
Curve interpolation type: rhumb. -
Method Summary
Modifier and TypeMethodDescriptionvoid
computePointSFCT
(double aParam, ILcd3DEditablePoint aPointSFCT) Computes a point of the curve, defined by the given parameter.Retrieves the end point of the curve.double
Returns the angle of the curve's tangent at the end point, in degrees counterclockwise from the direction at 3 o'clock.Returns the interpolation method used by this curve.double
getLength2D
(double aParam1, double aParam2) Returns the length between two points of the curve, defined by the given parameters.int
Returns the number of intersections between this curve and a line segment defined by the two specified points.Retrieves the start point of the curve.double
Returns the angle of the curve's tangent at the start point, in degrees counterclockwise from the direction at 3 o'clock.double
getTangent2D
(double aParam) Returns the angle of the curve's tangent in the point defined by the given parameter, in degrees counterclockwise from the direction at 3 o'clock.Methods inherited from interface com.luciad.shape.ILcdBounded
getBounds
Methods inherited from interface com.luciad.util.ILcdCloneable
clone
Methods inherited from interface com.luciad.shape.ILcdShape
contains2D, contains2D, contains3D, contains3D, getFocusPoint
-
Field Details
-
INTERPOLATION_LINEAR
Curve interpolation type: linear.- See Also:
-
INTERPOLATION_GEODESIC
Curve interpolation type: geodesic.- See Also:
-
INTERPOLATION_RHUMB
Curve interpolation type: rhumb.- See Also:
-
INTERPOLATION_CIRCULARARC_BY_3POINTS
Curve interpolation type: circular arc by 3 points.- See Also:
-
INTERPOLATION_CIRCULARARC_BY_BULGE
Curve interpolation type: circular arc by 2 points and bulge.- See Also:
-
INTERPOLATION_CIRCULARARC_BY_CENTERPOINT
Curve interpolation type: circular arc by center point and radius.- See Also:
-
INTERPOLATION_CIRCLE_BY_3POINTS
Curve interpolation type: circle by 3 points.- See Also:
-
INTERPOLATION_CIRCLE_BY_CENTERPOINT
Curve interpolation type: circle by center point and radius.- See Also:
-
INTERPOLATION_ELLIPTICAL
Curve interpolation type: elliptical.- See Also:
-
INTERPOLATION_MIXED
Curve interpolation type: mixed.- See Also:
-
-
Method Details
-
getStartPoint
ILcdPoint getStartPoint()Retrieves the start point of the curve.This is equivalent to
computePointSFCT(0)
.- Returns:
- the start point of the curve
-
getEndPoint
ILcdPoint getEndPoint()Retrieves the end point of the curve.This is equivalent to
computePointSFCT(1)
.- Returns:
- the end point of the curve
-
getStartTangent2D
double getStartTangent2D()Returns the angle of the curve's tangent at the start point, in degrees counterclockwise from the direction at 3 o'clock.The tangent orientation is from the start point towards the rest of the shape.
This is the same as
getTangent2D(0)
.- Returns:
- the curve's angle in the start point
-
getEndTangent2D
double getEndTangent2D()Returns the angle of the curve's tangent at the end point, in degrees counterclockwise from the direction at 3 o'clock.The tangent orientation is from the end point, away from the curve before it.
This is the same as
getTangent2D(1)
.- Returns:
- the curve's angle in the end point
-
getTangent2D
double getTangent2D(double aParam) Returns the angle of the curve's tangent in the point defined by the given parameter, in degrees counterclockwise from the direction at 3 o'clock.The tangent orientation is from the point at parameter
aParam
towards the rest of the shape.- The tangent at parameter 0 is the same as
getStartTangent2D()
. - The tangent at parameter 1 is the same as
getEndTangent2D()
.
- Parameters:
aParam
- a value of the closed interval [0,1]- Returns:
- the curve's angle in the point defined by the given parameter
- The tangent at parameter 0 is the same as
-
getLength2D
double getLength2D(double aParam1, double aParam2) Returns the length between two points of the curve, defined by the given parameters.- When
aParam1 == aParam2
, the length is 0. - When
aParam1 == 0 and aParam2 == 1
, the length is the whole length of the curve. - When
aParam1 > aParam2
, the length is (aParam1 to 1
) + (0 to aParam2
).
- Parameters:
aParam1
- a value of the closed interval [0,1]aParam2
- a value of the closed interval [0,1]- Returns:
- the length of the curve.
- When
-
computePointSFCT
Computes a point of the curve, defined by the given parameter.- At parameter 0, the point is the same as
getStartPoint()
. - At parameter 1, the point is the same as
getEndPoint()
.
- Parameters:
aParam
- a value of the closed interval [0,1]aPointSFCT
- the point to store the computed curve point in
- At parameter 0, the point is the same as
-
getInterpolation
String getInterpolation()Returns the interpolation method used by this curve.A set of predefined constants are defined in this interface, which are used by the default
ILcdCurve
implementations provided by LuciadLightspeed.Custom implementations can define their own constants, and use them to interpret the interpolation of the curve.
- Returns:
- the interpolation method used by this curve.
-
getLineSegmentIntersectionCount
Returns the number of intersections between this curve and a line segment defined by the two specified points.This information can be used to perform containment calculations, if this curve is closed or if this curve is part of a composite closed curve. By determining the number of intersections between this curve and a line segment starting from a given point in a fixed direction, one can determine whether a point is located within the closed curve by using the even-odd rule.
- Parameters:
aP1
- the first point of the line segmentaP2
- the second point of the line segment- Returns:
- the number of intersections between the curve and the line segment
-