2022.1.08

• All Superinterfaces:
Cloneable, ILcdBounded, ILcdCircularArc, ILcdCloneable, ILcdCurve, ILcdShape, Serializable
All Known Subinterfaces:
ILcd2DEditableCircularArcByBulge
All Known Implementing Classes:
TLcdGML31ArcByBulge, TLcdGML32ArcByBulge, TLcdLonLatCircularArcByBulge, TLcdXYCircularArcByBulge

```public interface ILcdCircularArcByBulge
extends ILcdCircularArc```
A circular arc that is defined by a start point, end point and a bulge factor. A bulge factor of 1 means that the arc defines half a circle. As the bulge factor goes towards 0 the arc becomes flatter (i.e. the radius of the arc's circle increases). The sign of the bulge indicates whether the bulge is on the left side (positive) or right side (negative) of the vector from start to end point.

More specifically, consider the chord between start and end point (dashed line between S and E in the picture), with a point C in the middle of it. The midpoint M of the arc is located on a line that starts from C and is oriented along the normal. The bulge factor is the ratio of the distance of MC and SC. The sign of the bulge indicates whether the midpoint is on the left side (positive, as in the picture) or right side (negative) of the vector from start to end point.

The following image clarifies the properties of a circular arc-by-bulge. The arc is represented in black, the start, end and mid points in red and the chord and line from the mid point to the chord in grey.

A circular arc-by-bulge where the start and end point coincide represents an arc on a circle with these points as its center and a radius of 0. The start angle and arc angle are undefined in this case.

Since:
9.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`
• ### Method Summary

All Methods
Modifier and Type Method and Description
`double` `getBulge()`
Returns the bulge factor of this arc.
`String` `getInterpolation()`
Returns the interpolation method used by this curve, which is `ILcdCurve.INTERPOLATION_CIRCULARARC_BY_BULGE`.
• ### Methods inherited from interface com.luciad.shape.ILcdCircularArc

`getArcAngle, getCenter, getRadius, getStartAngle`
• ### Methods inherited from interface com.luciad.shape.ILcdCurve

`computePointSFCT, getEndPoint, getEndTangent2D, getLength2D, getLineSegmentIntersectionCount, getStartPoint, getStartTangent2D, getTangent2D`
• ### 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`
• ### Method Detail

• #### getBulge

`double getBulge()`
Returns the bulge factor of this arc. The bulge factor is the ratio of (1) the distance between the arc midpoint and the center of the arc's chord, and (2) half the length of the arc's chord. The sign of the bulge indicates whether the midpoint is on the left side (positive) or right side (negative) of the vector from start to end point. So a bulge factor with an absolute value of 1 means a half-circle, smaller than 1 means a less bulging arc and larger than 1 means an arc that bulges out in the start and end point.
Returns:
the bulge factor of this arc.
• #### getInterpolation

`String getInterpolation()`
Returns the interpolation method used by this curve, which is `ILcdCurve.INTERPOLATION_CIRCULARARC_BY_BULGE`.
Specified by:
`getInterpolation` in interface `ILcdCircularArc`
Specified by:
`getInterpolation` in interface `ILcdCurve`
Returns:
the interpolation method used by this curve, which is `INTERPOLATION_CIRCULARARC_BY_BULGE`.