2020.1.02

• ### Field Summary

Fields
Modifier and Type Field and Description
`static java.lang.String` `INTERPOLATION_CIRCLE_BY_3POINTS`
Curve interpolation type: circle by 3 points.
`static java.lang.String` `INTERPOLATION_CIRCLE_BY_CENTERPOINT`
Curve interpolation type: circle by center point and radius.
`static java.lang.String` `INTERPOLATION_CIRCULARARC_BY_3POINTS`
Curve interpolation type: circular arc by 3 points.
`static java.lang.String` `INTERPOLATION_CIRCULARARC_BY_BULGE`
Curve interpolation type: circular arc by 2 points and bulge.
`static java.lang.String` `INTERPOLATION_CIRCULARARC_BY_CENTERPOINT`
Curve interpolation type: circular arc by center point and radius.
`static java.lang.String` `INTERPOLATION_ELLIPTICAL`
Curve interpolation type: elliptical.
`static java.lang.String` `INTERPOLATION_GEODESIC`
Curve interpolation type: geodesic.
`static java.lang.String` `INTERPOLATION_LINEAR`
Curve interpolation type: linear.
`static java.lang.String` `INTERPOLATION_MIXED`
Curve interpolation type: mixed.
`static java.lang.String` `INTERPOLATION_RHUMB`
Curve interpolation type: rhumb.
• ### Method Summary

All Methods
Modifier and Type Method and Description
`void` ```computePointSFCT(double aParam, ILcd3DEditablePoint aPointSFCT)```
Computes a point of the curve, defined by the given parameter.
`ILcdPoint` `getEndPoint()`
Retrieves the end point of the curve.
`double` `getEndTangent2D()`
Returns the angle of the curve's tangent at the end point, in degrees counterclockwise from the direction at 3 o'clock.
`java.lang.String` `getInterpolation()`
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` ```getLineSegmentIntersectionCount(ILcdPoint aP1, ILcdPoint aP2)```
Returns the number of intersections between this curve and a line segment defined by the two specified points.
`ILcdPoint` `getStartPoint()`
Retrieves the start point of the curve.
`double` `getStartTangent2D()`
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.ILcdShape

`contains2D, contains2D, contains3D, contains3D, getFocusPoint`
• ### Methods inherited from interface com.luciad.shape.ILcdBounded

`getBounds`
• ### Methods inherited from interface com.luciad.util.ILcdCloneable

`clone`
• ### Field Detail

• #### INTERPOLATION_LINEAR

`static final java.lang.String INTERPOLATION_LINEAR`
Curve interpolation type: linear.
Constant Field Values
• #### INTERPOLATION_GEODESIC

`static final java.lang.String INTERPOLATION_GEODESIC`
Curve interpolation type: geodesic.
Constant Field Values
• #### INTERPOLATION_RHUMB

`static final java.lang.String INTERPOLATION_RHUMB`
Curve interpolation type: rhumb.
Constant Field Values
• #### INTERPOLATION_CIRCULARARC_BY_3POINTS

`static final java.lang.String INTERPOLATION_CIRCULARARC_BY_3POINTS`
Curve interpolation type: circular arc by 3 points.
Constant Field Values
• #### INTERPOLATION_CIRCULARARC_BY_BULGE

`static final java.lang.String INTERPOLATION_CIRCULARARC_BY_BULGE`
Curve interpolation type: circular arc by 2 points and bulge.
Constant Field Values
• #### INTERPOLATION_CIRCULARARC_BY_CENTERPOINT

`static final java.lang.String INTERPOLATION_CIRCULARARC_BY_CENTERPOINT`
Curve interpolation type: circular arc by center point and radius.
Constant Field Values
• #### INTERPOLATION_CIRCLE_BY_3POINTS

`static final java.lang.String INTERPOLATION_CIRCLE_BY_3POINTS`
Curve interpolation type: circle by 3 points.
Constant Field Values
• #### INTERPOLATION_CIRCLE_BY_CENTERPOINT

`static final java.lang.String INTERPOLATION_CIRCLE_BY_CENTERPOINT`
Curve interpolation type: circle by center point and radius.
Constant Field Values
• #### INTERPOLATION_ELLIPTICAL

`static final java.lang.String INTERPOLATION_ELLIPTICAL`
Curve interpolation type: elliptical.
Constant Field Values
• #### INTERPOLATION_MIXED

`static final java.lang.String INTERPOLATION_MIXED`
Curve interpolation type: mixed.
Constant Field Values
• ### Method Detail

• #### 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.

Parameters:
`aParam` - a value of the closed interval [0,1]
Returns:
the curve's angle in the point defined by the given parameter
• #### 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.
• #### computePointSFCT

```void computePointSFCT(double aParam,
ILcd3DEditablePoint aPointSFCT)```
Computes a point of the curve, defined by the given parameter.
Parameters:
`aParam` - a value of the closed interval [0,1]
`aPointSFCT` - the point to store the computed curve point in
• #### getInterpolation

`java.lang.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

```int getLineSegmentIntersectionCount(ILcdPoint aP1,
ILcdPoint aP2)```
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 segment
`aP2` - the second point of the line segment
Returns:
the number of intersections between the curve and the line segment