2023.0

• Fields inherited from interface com.luciad.shape.ILcdCurve

`INTERPOLATION_CIRCLE_BY_3POINTS, INTERPOLATION_CIRCLE_BY_CENTERPOINT, INTERPOLATION_CIRCULARARC_BY_3POINTS, INTERPOLATION_CIRCULARARC_BY_BULGE, INTERPOLATION_CIRCULARARC_BY_CENTERPOINT, INTERPOLATION_ELLIPTICAL, INTERPOLATION_GEODESIC, INTERPOLATION_LINEAR, INTERPOLATION_MIXED, INTERPOLATION_RHUMB`
• Constructor Summary

Constructors
Constructor and Description
`TLcdXYZFloatPolyline()`
Constructs an empty polyline, containing zero points.
```TLcdXYZFloatPolyline(float[] aCoordinates, boolean aHasBounds, boolean aBoundsInitialized, boolean aClone)```
Constructs an XYZ polyline with the points as given in the array.
`TLcdXYZFloatPolyline(TLcdXYZFloatPolyline aXYZFloatPolyline)`
Clones the array of the polyline passed and interprets the its values alike (containing bounds or not).
• Method Summary

All Methods
Modifier and Type Method and Description
`Object` `clone()`
Creates and returns a copy of this object, by delegating to `Object.clone()`.
`void` ```computePointSFCT(double aParam, ILcd3DEditablePoint aPointSFCT)```
Computes a point of the curve, defined by the given parameter.
`boolean` ```contains2D(double aX, double aY)```
Checks if the point `(aX,aY)` lies on the 2D projection of one of the line segments of the `TLcdXYZPolyline`.
`boolean` ```contains3D(double aX, double aY, double aZ)```
Checks if the point `(aX,aY,aZ)` lies on one of the line segments of the `TLcdXYZPolyline`.
`protected ILcd3DEditableBounds` `createBounds()`
Creates an uninitialized `ILcd3DEditableBounds` object of a type compatible with the concrete implementation of this class.
`protected ILcd3DEditablePoint` `createPoint()`
Creates an uninitialized `ILcd3DEditablePoint` point of a type compatible with the concrete implementation of this class (geodesic/cartesian).
`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.
`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 class com.luciad.shape.shape3D.ALcd3DEditableFloatPolypoint

`calculateBounds, calculateFocusPoint, equals, getBounds, getFocusPoint, getPoint, getPointCount, hashCode, insert2DPoint, insert3DPoint, invalidate, move2D, move2DPoint, move3D, move3DPoint, removePointAt, translate2D, translate2DPoint, translate3D, translate3DPoint`
• Methods inherited from class com.luciad.shape.shape3D.ALcd3DEditableShape

`move3D`
• Methods inherited from class com.luciad.shape.shape2D.ALcd2DEditableShape

`move2D`
• Methods inherited from class com.luciad.shape.ALcdShape

`contains2D, contains3D, fromDomainObject`
• Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`
• Methods inherited from interface com.luciad.shape.shape3D.ILcd3DEditableShape

`move3D, move3D, translate3D`
• Methods inherited from interface com.luciad.shape.shape2D.ILcd2DEditableShape

`move2D, move2D, translate2D`
• Methods inherited from interface com.luciad.shape.ILcdShape

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

`getBounds`
• Methods inherited from interface com.luciad.shape.shape3D.ILcd3DEditablePointList

`insert3DPoint, move3DPoint, removePointAt, translate3D, translate3DPoint`
• Methods inherited from interface com.luciad.shape.shape2D.ILcd2DEditablePointList

`append2DPoint, insert2DPoint, move2DPoint, translate2D, translate2DPoint`
• Methods inherited from interface com.luciad.shape.ILcdPointList

`getPoint, getPointCount, getPointSFCT, getX, getY, getZ`
• Constructor Detail

• TLcdXYZFloatPolyline

`public TLcdXYZFloatPolyline()`
Constructs an empty polyline, containing zero points. No space is reserved to store the bounds of the polyline.
• TLcdXYZFloatPolyline

```public TLcdXYZFloatPolyline(float[] aCoordinates,
boolean aHasBounds,
boolean aBoundsInitialized,
boolean aClone)```
Constructs an XYZ polyline with the points as given in the array. If aHasBounds is true, the last 6 entries of the array will be used to store the bounds of the polyline.
Parameters:
`aCoordinates` - an array containing the coordinates of the points and possibly the bounds of the polyline.
`aHasBounds` - whether to reserve the last 6 entries of the array for the bounds of the polyline or not.
`aBoundsInitialized` - whether the last 6 entries of the array passed represent the calculated values of the bounds of the polyline or not. This is only of importance when aHasBounds is true.
`aClone` - whether the array containing the coordinates (and possibly the bounds) should be cloned.
• TLcdXYZFloatPolyline

`public TLcdXYZFloatPolyline(TLcdXYZFloatPolyline aXYZFloatPolyline)`
Clones the array of the polyline passed and interprets the its values alike (containing bounds or not).
Parameters:
`aXYZFloatPolyline` - the polyline to assume all values from.
• Method Detail

• contains2D

```public boolean contains2D(double aX,
double aY)```
Checks if the point `(aX,aY)` lies on the 2D projection of one of the line segments of the `TLcdXYZPolyline`.
Specified by:
`contains2D` in interface `ILcdShape`
Overrides:
`contains2D` in class `ALcd3DEditableFloatPolypoint`
Parameters:
`aX` - the x coordinate of the point.
`aY` - the y coordinate of the point.
Returns:
the boolean result of the containment test.
• contains3D

```public boolean contains3D(double aX,
double aY,
double aZ)```
Checks if the point `(aX,aY,aZ)` lies on one of the line segments of the `TLcdXYZPolyline`.
Specified by:
`contains3D` in interface `ILcdShape`
Overrides:
`contains3D` in class `ALcd3DEditableFloatPolypoint`
Parameters:
`aX` - the x coordinate of the point.
`aY` - the y coordinate of the point.
`aZ` - the z coordinate of the point.
Returns:
`true` if the bounds of this shape contain the point in the 3D space and the shape itself contains the point in the 2D space, `false` otherwise.
• clone

`public Object clone()`
Description copied from class: `ALcdShape`
Creates and returns a copy of this object, by delegating to `Object.clone()`. Extensions should delegate to this implementation with `super.clone()`, in order to create an object instance of the right type, with all fields copied. They then should explicitly clone any non-primitive fields for which a deeper clone is required.
Specified by:
`clone` in interface `ILcdCloneable`
Overrides:
`clone` in class `ALcd3DEditableFloatPolypoint`
`Object.clone()`
• createPoint

`protected ILcd3DEditablePoint createPoint()`
Description copied from class: `ALcd3DEditableFloatPolypoint`
Creates an uninitialized `ILcd3DEditablePoint` point of a type compatible with the concrete implementation of this class (geodesic/cartesian). The created point will be updated and returned by the `ALcd3DEditableFloatPolypoint.getPoint(int)` and `ALcd3DEditableFloatPolypoint.getFocusPoint()` methods.
Specified by:
`createPoint` in class `ALcd3DEditableFloatPolypoint`
• createBounds

`protected ILcd3DEditableBounds createBounds()`
Description copied from class: `ALcd3DEditableFloatPolypoint`
Creates an uninitialized `ILcd3DEditableBounds` object of a type compatible with the concrete implementation of this class. This bounds object will be updated and returned by the `ALcd3DEditableFloatPolypoint.getBounds()` method.
Specified by:
`createBounds` in class `ALcd3DEditableFloatPolypoint`
• computePointSFCT

```public void computePointSFCT(double aParam,
ILcd3DEditablePoint aPointSFCT)```
Description copied from interface: `ILcdCurve`
Computes a point of the curve, defined by the given parameter.
Specified by:
`computePointSFCT` in interface `ILcdCurve`
Parameters:
`aParam` - a value of the closed interval [0,1]
`aPointSFCT` - the point to store the computed curve point in
• getEndPoint

`public ILcdPoint getEndPoint()`
Description copied from interface: `ILcdCurve`
Retrieves the end point of the curve.

This is equivalent to `computePointSFCT(1)`.

Specified by:
`getEndPoint` in interface `ILcdCurve`
Returns:
the end point of the curve
• getEndTangent2D

`public double getEndTangent2D()`
Description copied from interface: `ILcdCurve`
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)`.

Specified by:
`getEndTangent2D` in interface `ILcdCurve`
Returns:
the curve's angle in the end point
• getInterpolation

`public String getInterpolation()`
Description copied from interface: `ILcdCurve`
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.

Specified by:
`getInterpolation` in interface `ILcdCurve`
Returns:
the interpolation method used by this curve.
• getLength2D

```public double getLength2D(double aParam1,
double aParam2)```
Description copied from interface: `ILcdCurve`
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`).
Specified by:
`getLength2D` in interface `ILcdCurve`
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.
• getLineSegmentIntersectionCount

```public int getLineSegmentIntersectionCount(ILcdPoint aP1,
ILcdPoint aP2)```
Description copied from interface: `ILcdCurve`
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.

Specified by:
`getLineSegmentIntersectionCount` in interface `ILcdCurve`
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
• getStartPoint

`public ILcdPoint getStartPoint()`
Description copied from interface: `ILcdCurve`
Retrieves the start point of the curve.

This is equivalent to `computePointSFCT(0)`.

Specified by:
`getStartPoint` in interface `ILcdCurve`
Returns:
the start point of the curve
• getStartTangent2D

`public double getStartTangent2D()`
Description copied from interface: `ILcdCurve`
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)`.

Specified by:
`getStartTangent2D` in interface `ILcdCurve`
Returns:
the curve's angle in the start point
• getTangent2D

`public double getTangent2D(double aParam)`
Description copied from interface: `ILcdCurve`
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.

Specified by:
`getTangent2D` in interface `ILcdCurve`
Parameters:
`aParam` - a value of the closed interval [0,1]
Returns:
the curve's angle in the point defined by the given parameter