Skip to main content

Class: FlightPathUtils

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:14

Utility class for working with flight path calculations.

Constructors​

Constructor​

new FlightPathUtils(): FlightPathUtils

Returns​

FlightPathUtils

Methods​

createEmptyVector()​

static createEmptyVector(): FlightPathVector

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:23

Creates an empty flight path vector.

Returns​

FlightPathVector

An empty flight path vector.


deepCopyVectorArray()​

static deepCopyVectorArray(from, to, fromStartIndex, fromEndIndex, toStartIndex): FlightPathVector[]

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:652

Performs a deep copy of a flight path vector array into another array.

Parameters​

ParameterTypeDefault valueDescription
fromreadonly Readonly<FlightPathVector>[]undefinedThe array to copy from.
toFlightPathVector[]undefinedThe array to copy to.
fromStartIndexnumber0The lowest index in the source array to copy, inclusive. Defaults to zero.
fromEndIndexnumberfrom.lengthThe highest index in the source array to copy, exclusive. Defaults to the length of the source array.
toStartIndexnumber0The index in the target array to which to copy the lowest copied index in the source array. Each index i copied from the source array will be copied to the index in the target array equal to toStartIndex + i - fromStartIndex. Defaults to zero.

Returns​

FlightPathVector[]

The target array, after the copy is complete.


getAlongArcNormalizedDistance()​

static getAlongArcNormalizedDistance(circle, start, end, pos, tolerance): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:460

Gets the normalized distance along an arc from a defined start point to a query point. The start, query, and end points will be projected onto the arc's parent circle if they do not already lie on it. The distance is normalized such that 1 equals the arc length from the start point to the end point. A negative distance indicates that the query point lies somewhere before the start of the arc but after the point on the arc's parent circle that is diametrically opposed to the midpoint of the arc.

Parameters​

ParameterTypeDefault valueDescription
circleReadonlyGeoCircleundefinedThe arc's parent circle.
startReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe start point of the arc.
endReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe end point of the arc.
posReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe query point.
tolerancenumberGeoCircle.ANGULAR_TOLERANCEThe error tolerance, in great-arc radians, when checking if start and query are equal. Defaults to GeoCircle.ANGULAR_TOLERANCE if not specified.

Returns​

number

The normalized distance along the arc from the start point to the query point.


getAlongArcSignedDistance()​

static getAlongArcSignedDistance(circle, start, end, pos, tolerance): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:428

Gets the signed distance along an arc from a defined start point to a query point. The start, query, and end points will be projected onto the arc's parent circle if they do not already lie on it. A negative distance indicates that the query point lies somewhere before the start of the arc but after the point on the arc's parent circle that is diametrically opposed to the midpoint of the arc.

Parameters​

ParameterTypeDefault valueDescription
circleReadonlyGeoCircleundefinedThe arc's parent circle.
startReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe start point of the arc.
endReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe end point of the arc.
posReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe query point.
tolerancenumberGeoCircle.ANGULAR_TOLERANCEThe error tolerance, in great-arc radians, when checking if start and query are equal. Defaults to GeoCircle.ANGULAR_TOLERANCE if not specified.

Returns​

number

The signed distance along the arc from the start point to the query point, in great-arc radians.


getGreatCircleTangentToPath()​

static getGreatCircleTangentToPath(point, path, out): GeoCircle

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:336

Gets the great circle tangent to a given path at a given tangent point. The tangent circle will contain the tangent point and have the same direction as the path at the tangent point.

Parameters​

ParameterTypeDescription
pointReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe tangent point. If the point does not lie on the path, it will be projected onto the path.
pathReadonlyGeoCircleThe geo circle describing the path.
outGeoCircleA GeoCircle object to which to write the result.

Returns​

GeoCircle

The great circle tangent to the specified path at the specified point.


getGreatCircleTangentToVector()​

static getGreatCircleTangentToVector(point, vector, out): GeoCircle

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:352

Gets the great circle tangent to a given flight path vector at a given tangent point. The tangent circle will contain the tangent point and have the same direction as the vector at the tangent point.

Parameters​

ParameterTypeDescription
pointReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe tangent point. If the point does not lie on the vector, it will be projected onto the vector.
vectorFlightPathVectorThe flight path vector.
outGeoCircleA GeoCircle object to which to write the result.

Returns​

GeoCircle

The great circle tangent to the specified flight path vector at the specified point.


getLegDesiredTurnDirection()​

static getLegDesiredTurnDirection(leg): VectorTurnDirection | undefined

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:151

Gets the desired turn direction defined by a flight plan leg.

Parameters​

ParameterTypeDescription
legFlightPlanLegA flight plan leg.

Returns​

VectorTurnDirection | undefined

The desired turn direction defined by the specified flight plan leg, or undefined if the leg does not define a desired turn direction.


getLegFinalCourse()​

static getLegFinalCourse(legCalc): number | undefined

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:174

Gets the final true course of a calculated leg.

Parameters​

ParameterTypeDescription
legCalcLegCalculationsA set of leg calculations.

Returns​

number | undefined

The final true course of the leg, or undefined if one could not be obtained.


getLegFinalPosition()​

static getLegFinalPosition(legCalc, out): GeoPoint | undefined

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:161

Gets the final position of a calculated leg.

Parameters​

ParameterTypeDescription
legCalcLegCalculationsA set of leg calculations.
outGeoPointThe GeoPoint object to which to write the result.

Returns​

GeoPoint | undefined

The final position of the leg, or undefined if one could not be obtained.


getShortestTurnDirection()​

static getShortestTurnDirection(initialCourse, finalCourse): VectorTurnDirection | undefined

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:253

Gets the direction of a turn from an initial course to a final course that sweeps through the least angular distance.

Parameters​

ParameterTypeDescription
initialCoursenumberThe initial course, in degrees.
finalCoursenumberThe final course, in degrees.

Returns​

VectorTurnDirection | undefined

The direction of the turn from the specified initial course to final course that sweeps through the least angular distance, or undefined if the two courses are exactly equal or exactly 180 degrees apart.


getTangentPointBetweenCircles()​

static getTangentPointBetweenCircles<T>(circle1, circle2, out): T

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:400

Gets the point where two tangent geo circles meet.

Type Parameters​

Type Parameter
T extends Float64Array<ArrayBufferLike> | GeoPoint

Parameters​

ParameterTypeDescription
circle1ReadonlyGeoCircleThe first geo circle.
circle2ReadonlyGeoCircleThe second geo circle.
outTA GeoPoint or 3D vector object to which to write the result.

Returns​

T

The tangent point between the two specified geo circles. If the geo circles are not tangent, then the value of the result is not meaningful.


getTurnCenterFromCircle()​

static getTurnCenterFromCircle<T>(circle, out): T

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:233

Gets the center of a turn described by a circle.

Type Parameters​

Type Parameter
T extends Float64Array<ArrayBufferLike> | GeoPoint

Parameters​

ParameterTypeDescription
circleReadonlyGeoCircleThe geo circle describing the turn.
outTA GeoPoint or 3D vector object to which to write the result.

Returns​

T

The center of a turn described by the circle.


getTurnCircle()​

static getTurnCircle(center, radius, turnDirection, out): GeoCircle

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:191

Gets the circle describing the path of a turn.

Parameters​

ParameterTypeDescription
centerReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe center of the turn.
radiusnumberThe radius of the turn, in great-arc radians.
turnDirectionVectorTurnDirectionThe direction of the turn.
outGeoCircleA GeoCircle object to which to write the result.

Returns​

GeoCircle

The circle describing the path of the turn.


getTurnCircleStartingFromPath()​

static getTurnCircleStartingFromPath(start, path, turnRadius, turnDirection, out): GeoCircle

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:370

Calculates and returns a circle describing a turn starting from a path at a specified point.

Parameters​

ParameterTypeDescription
startReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe starting point of the turn.
pathReadonlyGeoCircleThe circle describing the path from which the turn starts.
turnRadiusnumberThe radius of the turn, in great-arc radians.
turnDirectionVectorTurnDirectionThe direction of the turn.
outGeoCircleA GeoCircle object to which to write the result.

Returns​

GeoCircle

The circle describing the path of the specified turn.


getTurnDirectionFromCircle()​

static getTurnDirectionFromCircle(circle): VectorTurnDirection

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:214

Gets the direction of a turn described by a circle.

Parameters​

ParameterTypeDescription
circleReadonlyGeoCircleThe geo circle describing the turn.

Returns​

VectorTurnDirection

The direction of the turn described by the circle.


getTurnRadiusFromCircle()​

static getTurnRadiusFromCircle(circle): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:223

Gets the radius of a turn described by a circle.

Parameters​

ParameterTypeDescription
circleReadonlyGeoCircleThe geo circle describing the turn.

Returns​

number

The radius of the turn described by the circle, in great-arc radians.


getVectorFinalCourse()​

static getVectorFinalCourse(vector): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:138

Gets the final true course bearing of a flight path vector.

Parameters​

ParameterTypeDescription
vectorReadonly<FlightPathVector>A flight path vector.

Returns​

number

The final true course bearing of the vector, or undefined if one could not be calculated.


getVectorInitialCourse()​

static getVectorInitialCourse(vector): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:126

Gets the initial true course bearing of a flight path vector.

Parameters​

ParameterTypeDescription
vectorReadonly<FlightPathVector>A flight path vector.

Returns​

number

The initial true course bearing of the vector, or undefined if one could not be calculated.


getVectorTurnDirection()​

static getVectorTurnDirection(vector): VectorTurnDirection

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:108

Gets the direction of a turn described by a flight path circle vector.

Parameters​

ParameterTypeDescription
vectorReadonly<FlightPathVector>The flight path circle vector describing the turn.

Returns​

VectorTurnDirection

The direction of the turn described by the flight path circle vector.


getVectorTurnRadius()​

static getVectorTurnRadius(vector): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:117

Gets the radius of a turn described by a flight path circle vector.

Parameters​

ParameterTypeDescription
vectorReadonly<FlightPathVector>The flight path circle vector describing the turn.

Returns​

number

The radius of the turn described by the flight path circle vector, in great-arc radians.


isPointAlongArc()​

Call Signature​

static isPointAlongArc(circle, start, end, pos, inclusive?, tolerance?): boolean

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:493

Checks if a point lies between the start and end points of an arc along a geo circle. The start, end, and query points will be projected onto the arc's parent circle if they do not already lie on it.

Parameters​
ParameterTypeDescription
circleReadonlyGeoCircleThe arc's parent circle.
startReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe start point of the arc.
endReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe end point of the arc.
posReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe query point.
inclusive?booleanWhether the arc includes the start and end points. Defaults to true.
tolerance?numberThe error tolerance, in great-arc radians. Defaults to GeoCircle.ANGULAR_TOLERANCE.
Returns​

boolean

Whether the query point lies between the start and end points of the specified arc.

Call Signature​

static isPointAlongArc(circle, start, angularWidth, pos, inclusive?, tolerance?): boolean

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:512

Checks if a point lies between the start and end points (inclusive) of an arc along a geo circle. The start and query points will be projected onto the arc's parent circle if they do not already lie on it.

Parameters​
ParameterTypeDescription
circleReadonlyGeoCircleThe arc's parent circle.
startReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe start point of the arc.
angularWidthnumberThe angular width of the arc, in radians.
posReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe query point.
inclusive?booleanWhether the arc includes the start and end points. Defaults to true.
tolerance?numberThe error tolerance, in great-arc radians. Defaults to GeoMath.ANGULAR_TOLERANCE.
Returns​

boolean

Whether the query point lies between the start and end points (inclusive) of the specified arc.


isVectorGreatCircle()​

static isVectorGreatCircle(vector): boolean

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:89

Checks whether a circle vector describes a great-circle path.

Parameters​

ParameterTypeDescription
vectorReadonly<FlightPathVector>A flight path circle vector.

Returns​

boolean

Whether the vector describes a great-circle path.


pathAngleDistance()​

static pathAngleDistance(initialPath, finalPath, point, turnDirection, tolerance): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:275

Gets the angular distance, in radians, swept when turning from an initial path to a final path at a given point.

Parameters​

ParameterTypeDefault valueDescription
initialPathReadonlyGeoCircleundefinedThe initial path.
finalPathReadonlyGeoCircleundefinedThe final path.
pointReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe point at which to turn from the initial path to the final path. Must lie on both paths.
turnDirectionVectorTurnDirection | nullundefinedThe direction in which to turn from the initial path to the final path, or null to choose the turn direction that results in the smallest angular distance.
tolerancenumberGeoMath.ANGULAR_TOLERANCEThe error tolerance, in great-arc radians, to use when checking whether point lies on both initialPath and finalPath. Defaults to GeoMath.ANGULAR_TOLERANCE.

Returns​

number

The angular distance, in radians, swept when turning from the specified initial path to the final path at the specified point, or NaN if an angular distance could not be calculated.

Throws​

Error if point does not lie on both initialPath and finalPath.


projectVelocityToCircle()​

Call Signature​

static projectVelocityToCircle(speed, position, bearing, projectTo): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:569

Projects an instantaneous velocity at a point along a bearing onto a geo circle.

The projected velocity is defined as the limit as dt goes to 0 of:

distance( project(p(0)), project(p(dt)) ) / dt

  • p(0) is the position at which the velocity to project is measured.
  • p(x) returns p(0) offset by the velocity to project after x time has elapsed.
  • project(x) projects x onto the geo circle onto which the velocity is to be projected.
  • distance(x, y) returns the distance from x to y along the geo circle onto which the velocity is to be projected, in the range (-c / 2, c / 2], where c is the circumference of the geo circle.
Parameters​
ParameterTypeDescription
speednumberThe magnitude of the velocity to project.
positionReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe position at which the velocity is measured.
bearingnumberThe true bearing, in degrees, defining the direction of the velocity to project.
projectToReadonlyGeoCircleThe geo circle to which to project the velocity.
Returns​

number

The signed magnitude of the velocity projected onto the specified geo circle. A positive sign indicates the projected velocity follows the same direction as the circle, while a negative sign indicates the projected velocity follows the opposite direction as the circle.

Call Signature​

static projectVelocityToCircle(speed, position, path, projectTo): number

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:595

Projects an instantaneous velocity at a point along a geo circle onto another geo circle.

The projected velocity is defined as the limit as dt goes to 0 of:

distance( project(p(0)), project(p(dt)) ) / dt

  • p(0) is the position at which the velocity to project is measured.
  • p(x) returns p(0) offset by the velocity to project after x time has elapsed.
  • project(x) projects x onto the geo circle onto which the velocity is to be projected.
  • distance(x, y) returns the distance from x to y along the geo circle onto which the velocity is to be projected, in the range (-c / 2, c / 2], where c is the circumference of the geo circle.
Parameters​
ParameterTypeDescription
speednumberThe magnitude of the velocity to project.
positionReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceThe position at which the velocity is measured.
pathGeoCircleThe geo circle defining the path parallel to the velocity to project.
projectToReadonlyGeoCircleThe geo circle to which to project the velocity.
Returns​

number

The signed magnitude of the velocity projected onto the specified geo circle. A positive sign indicates the projected velocity follows the same direction as the circle, while a negative sign indicates the projected velocity follows the opposite direction as the circle.


resolveIngressToEgress()​

static resolveIngressToEgress<T>(legCalc): T

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:683

Resolves the ingress to egress vectors for a set of flight plan leg calculations. This operation will populate the ingressToEgress array with a sequence of vectors connecting the ingress transition to the egress transition while following the flight path defined by the vectors in the flightPath array.

Type Parameters​

Type Parameter
T extends LegCalculations

Parameters​

ParameterTypeDescription
legCalcTA set of flight plan leg calculations.

Returns​

T

The flight plan leg calculations, after the ingress to egress vectors have been resolved.


reverseTurnCircle()​

static reverseTurnCircle(circle, out): GeoCircle

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:205

Reverses the direction of a turn circle while keeping the turn center and turn radius constant.

Parameters​

ParameterTypeDescription
circleReadonlyGeoCircleThe turn circle to reverse.
outGeoCircleA GeoCircle object to which to write the result.

Returns​

GeoCircle

A turn circle which has the same turn center and turn radius, but the opposite direction as circle.


setGeoCircleFromVector()​

static setGeoCircleFromVector(vector, out): GeoCircle

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:99

Sets the parameters of a GeoCircle from a flight path circle vector.

Parameters​

ParameterTypeDescription
vectorReadonly<FlightPathVector>A flight path circle vector.
outGeoCircleThe GeoCircle to set.

Returns​

GeoCircle

The GeoCircle, after its parameters have been set.


setVectorFromCircle()​

static setVectorFromCircle(vector, circle, start, end, flags, heading, isHeadingTrue): FlightPathVector

Defined in: src/sdk/flightplan/flightpath/FlightPathUtils.ts:53

Sets the parameters of a flight path vector using a GeoCircle.

Parameters​

ParameterTypeDefault valueDescription
vectorFlightPathVectorundefinedThe fligh path vector to set.
circleReadonlyGeoCircleundefinedThe GeoCircle defining the vector's path.
startReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe start of the vector.
endReadonly<Omit<Float64Array<ArrayBufferLike>, "set" | "sort" | "copyWithin">> | LatLonInterfaceundefinedThe end of the vector.
flagsnumberundefinedThe flags to set on the vector.
headingnumber | nullnullThe heading-to-fly to assign to the vector, in degrees, or null if no heading is to be assigned. Defaults to null.
isHeadingTruebooleanfalseWhether the heading-to-fly assigned to the vector is relative to true north instead of magnetic north. Defaults to false.

Returns​

FlightPathVector

The circle vector, after its parameters have been set.