From e37f8ccf0b2c86d0b09ce3b8b0bd8a5f6bfd68b9 Mon Sep 17 00:00:00 2001 From: Bret Copeland Date: Mon, 10 Sep 2018 18:38:51 -0400 Subject: [PATCH] Add HeadingPitchRoll type to Cesium (#28462) --- types/cesium/index.d.ts | 25 ++++++++++++++++++++++--- types/cesium/test/cesium-global.test.ts | 4 ++++ types/cesium/test/cesium-module.test.ts | 4 ++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/types/cesium/index.d.ts b/types/cesium/index.d.ts index 3ea9745ebd..398d05ad33 100644 --- a/types/cesium/index.d.ts +++ b/types/cesium/index.d.ts @@ -797,6 +797,22 @@ declare namespace Cesium { isLeapSecond: boolean; } + class HeadingPitchRoll { + heading: number; + pitch: number; + roll: number; + constructor(heading?: number, pitch?: number, roll?: number); + static clone(headingPitchRoll: HeadingPitchRoll, result?: HeadingPitchRoll): HeadingPitchRoll; + static equals(left: HeadingPitchRoll | null | undefined, right: HeadingPitchRoll | null | undefined): boolean; + static equalsEpsilon(left: HeadingPitchRoll | null | undefined, right: HeadingPitchRoll | null | undefined, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + static fromDegrees(heading: number, pitch: number, roll: number, result?: HeadingPitchRoll): HeadingPitchRoll; + static fromQuaternion(quaternion: Quaternion, result?: HeadingPitchRoll): HeadingPitchRoll; + clone(result?: HeadingPitchRoll): HeadingPitchRoll; + equals(right: HeadingPitchRoll | null | undefined): boolean; + equalsEpsilon(right: HeadingPitchRoll | null | undefined, relativeEpsilon: number, absoluteEpsilon?: number): boolean; + toString(): string; + } + class HeightmapTerrainData { waterMask: Uint8Array | HTMLImageElement | HTMLCanvasElement; constructor(options: { @@ -959,6 +975,7 @@ declare namespace Cesium { static fromArray(array: number[], startingIndex?: number, result?: Matrix3): Matrix3; static fromColumnMajorArray(values: number[], result?: Matrix3): Matrix3; static fromRowMajorArray(values: number[], result?: Matrix3): Matrix3; + static fromHeadingPitchRoll(headingPitchRoll: HeadingPitchRoll, result?: Matrix3): Matrix3; static fromQuaternion(quaternion: Quaternion): Matrix3; static fromScale(scale: Cartesian3, result?: Matrix3): Matrix3; static fromUniformScale(scale: number, result?: Matrix3): Matrix3; @@ -1236,7 +1253,7 @@ declare namespace Cesium { toString(): string; static fromAxisAngle(axis: Cartesian3, angle: number, result?: Quaternion): Quaternion; static fromRotationMatrix(matrix: Matrix3, result?: Quaternion): Quaternion; - static fromHeadingPitchRoll(heading: number, pitch: number, roll: number, result: Quaternion): Quaternion; + static fromHeadingPitchRoll(headingPitchRoll: HeadingPitchRoll, result?: Quaternion): Quaternion; static pack(value: Quaternion, array: number[], startingIndex?: number): number[]; static unpack(array: number[], startingIndex?: number, result?: Quaternion): Quaternion; static convertPackedArrayForInterpolation(packedArray: number[], startingIndex?: number, lastIndex?: number, result?: number[]): void; @@ -4880,13 +4897,15 @@ declare namespace Cesium { function eastNorthUpToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; function northEastDownToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; function northUpEastToFixedFrame(origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; - function headingPitchRollToFixedFrame(origin: Cartesian3, heading: number, pitch: number, roll: number, ellipsoid?: Ellipsoid, result?: Matrix4): Matrix4; - function headingPitchRollQuaternion(origin: Cartesian3, heading: number, pitch: number, roll: number, ellipsoid?: Ellipsoid, result?: Quaternion): Quaternion; + function headingPitchRollToFixedFrame(origin: Cartesian3, headingPitchRoll: HeadingPitchRoll, ellipsoid?: Ellipsoid, fixedFrameTransform?: LocalFrameToFixedFrame, result?: Matrix4): Matrix4; + function headingPitchRollQuaternion(origin: Cartesian3, headingPitchRoll: HeadingPitchRoll, ellipsoid?: Ellipsoid, fixedFrameTransform?: LocalFrameToFixedFrame, + result?: Quaternion): Quaternion; function computeTemeToPseudoFixedMatrix(date: JulianDate, result?: Matrix3): Matrix3; function preloadIcrfFixed(timeInterval: TimeInterval): Promise; function computeIcrfToFixedMatrix(date: JulianDate, result?: Matrix3): Matrix3; function computeFixedToIcrfMatrix(date: JulianDate, result?: Matrix3): Matrix3; function pointToWindowCoordinates(modelViewProjectionMatrix: Matrix4, viewportTransformation: Matrix4, point: Cartesian3, result?: Cartesian2): Cartesian2; + type LocalFrameToFixedFrame = (origin: Cartesian3, ellipsoid?: Ellipsoid, result?: Matrix4) => Matrix4; } namespace TridiagonalSystemSolver { diff --git a/types/cesium/test/cesium-global.test.ts b/types/cesium/test/cesium-global.test.ts index 8974e56542..512f977344 100644 --- a/types/cesium/test/cesium-global.test.ts +++ b/types/cesium/test/cesium-global.test.ts @@ -46,3 +46,7 @@ const entity = new Cesium.Entity({ }) }); viewer.entities.add(entity); + +const hpr = new Cesium.HeadingPitchRoll(1.0, 2.2, 3.4); +const quat: Cesium.Quaternion = Cesium.Quaternion.fromHeadingPitchRoll(hpr); +const matrix: Cesium.Matrix3 = Cesium.Matrix3.fromHeadingPitchRoll(hpr); diff --git a/types/cesium/test/cesium-module.test.ts b/types/cesium/test/cesium-module.test.ts index 726daf7df2..2fe8f6cdb8 100644 --- a/types/cesium/test/cesium-module.test.ts +++ b/types/cesium/test/cesium-module.test.ts @@ -48,3 +48,7 @@ const entity = new Cesium.Entity({ }) }); viewer.entities.add(entity); + +const hpr = new Cesium.HeadingPitchRoll(1.0, 2.2, 3.4); +const quat: Cesium.Quaternion = Cesium.Quaternion.fromHeadingPitchRoll(hpr); +const matrix: Cesium.Matrix3 = Cesium.Matrix3.fromHeadingPitchRoll(hpr);