@math.gl/geospatial 4.2.0-alpha.3 → 4.2.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/ellipsoid.ts", "../src/constants.ts", "../src/type-utils.ts", "../src/ellipsoid-helpers/ellipsoid-transform.ts", "../src/ellipsoid-helpers/scale-to-geodetic-surface.ts", "../src/ellipsoid-tangent-plane.ts", "../src/lng-lat-rectangle.ts"],
4
- "sourcesContent": ["// math.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport {Ellipsoid} from './ellipsoid';\nexport {EllipsoidTangentPlane} from './ellipsoid-tangent-plane';\nexport {LngLatRectangle} from './lng-lat-rectangle';\nexport {isWGS84} from './type-utils';\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\n/* eslint-disable */\nimport {Vector3, Matrix4, assert, equals, _MathUtils, NumericArray, vec3} from '@math.gl/core';\n\nimport {WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z} from './constants';\nimport {fromCartographicToRadians, toCartographicFromRadians} from './type-utils';\n\nimport type {AxisDirection} from './ellipsoid-helpers/ellipsoid-transform';\nimport {localFrameToFixedFrame} from './ellipsoid-helpers/ellipsoid-transform';\nimport {scaleToGeodeticSurface} from './ellipsoid-helpers/scale-to-geodetic-surface';\n\nconst scratchVector = new Vector3();\nconst scratchNormal = new Vector3();\nconst scratchK = new Vector3();\nconst scratchPosition = new Vector3();\nconst scratchHeight = new Vector3();\nconst scratchCartesian = new Vector3();\n\n/**\n * A quadratic surface defined in Cartesian coordinates by the equation\n * `(x / a)^2 + (y / b)^2 + (z / c)^2 = 1`. Primarily used\n * to represent the shape of planetary bodies.\n */\nexport class Ellipsoid {\n /** An Ellipsoid instance initialized to the WGS84 standard. */\n static readonly WGS84: Ellipsoid = new Ellipsoid(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z);\n\n readonly radii: Vector3;\n readonly radiiSquared: Vector3;\n readonly radiiToTheFourth: Vector3;\n readonly oneOverRadii: Vector3;\n readonly oneOverRadiiSquared: Vector3;\n readonly minimumRadius: number;\n readonly maximumRadius: number;\n readonly centerToleranceSquared: number = _MathUtils.EPSILON1;\n readonly squaredXOverSquaredZ: number;\n\n /** Creates an Ellipsoid from a Cartesian specifying the radii in x, y, and z directions. */\n constructor(x: number, y: number, z: number);\n constructor();\n\n constructor(x = 0.0, y = 0.0, z = 0.0) {\n assert(x >= 0.0);\n assert(y >= 0.0);\n assert(z >= 0.0);\n\n this.radii = new Vector3(x, y, z);\n\n this.radiiSquared = new Vector3(x * x, y * y, z * z);\n\n this.radiiToTheFourth = new Vector3(x * x * x * x, y * y * y * y, z * z * z * z);\n\n this.oneOverRadii = new Vector3(\n x === 0.0 ? 0.0 : 1.0 / x,\n y === 0.0 ? 0.0 : 1.0 / y,\n z === 0.0 ? 0.0 : 1.0 / z\n );\n\n this.oneOverRadiiSquared = new Vector3(\n x === 0.0 ? 0.0 : 1.0 / (x * x),\n y === 0.0 ? 0.0 : 1.0 / (y * y),\n z === 0.0 ? 0.0 : 1.0 / (z * z)\n );\n\n this.minimumRadius = Math.min(x, y, z);\n\n this.maximumRadius = Math.max(x, y, z);\n\n if (this.radiiSquared.z !== 0) {\n this.squaredXOverSquaredZ = this.radiiSquared.x / this.radiiSquared.z;\n }\n\n Object.freeze(this);\n }\n\n /** Compares this Ellipsoid against the provided Ellipsoid componentwise */\n equals(right: Ellipsoid): boolean {\n return this === right || Boolean(right && this.radii.equals(right.radii));\n }\n\n /** Creates a string representing this Ellipsoid in the format '(radii.x, radii.y, radii.z)'. */\n toString(): string {\n return this.radii.toString();\n }\n\n /** Converts the provided cartographic to Cartesian representation. */\n cartographicToCartesian(cartographic: number[], result: Vector3): Vector3;\n cartographicToCartesian(cartographic: number[], result?: number[]): number[];\n\n cartographicToCartesian(cartographic: Readonly<NumericArray>, result = [0, 0, 0]) {\n const normal = scratchNormal;\n const k = scratchK;\n\n const [, , height] = cartographic;\n this.geodeticSurfaceNormalCartographic(cartographic, normal);\n k.copy(this.radiiSquared).scale(normal);\n\n const gamma = Math.sqrt(normal.dot(k));\n k.scale(1 / gamma);\n\n normal.scale(height);\n\n k.add(normal);\n\n return k.to(result);\n }\n\n /** Converts the provided cartesian to cartographic (lng/lat/z) representation.\n * The cartesian is undefined at the center of the ellipsoid. */\n cartesianToCartographic(cartesian: Readonly<NumericArray>, result: Vector3): Vector3;\n cartesianToCartographic(cartesian: Readonly<NumericArray>, result?: number[]): number[];\n\n cartesianToCartographic(cartesian: Readonly<NumericArray>, result = [0, 0, 0]) {\n scratchCartesian.from(cartesian);\n const point = this.scaleToGeodeticSurface(scratchCartesian, scratchPosition);\n\n if (!point) {\n return undefined;\n }\n\n const normal = this.geodeticSurfaceNormal(point, scratchNormal);\n\n const h = scratchHeight;\n h.copy(scratchCartesian).subtract(point);\n\n const longitude = Math.atan2(normal.y, normal.x);\n const latitude = Math.asin(normal.z);\n const height = Math.sign(vec3.dot(h, scratchCartesian)) * vec3.length(h);\n\n return toCartographicFromRadians([longitude, latitude, height], result);\n }\n\n /** Computes a 4x4 transformation matrix from a reference frame with an east-north-up axes\n * centered at the provided origin to the provided ellipsoid's fixed reference frame. */\n eastNorthUpToFixedFrame(origin: Readonly<NumericArray>, result?: Matrix4): Matrix4;\n eastNorthUpToFixedFrame(origin: Readonly<NumericArray>, result: number[]): number[];\n\n eastNorthUpToFixedFrame(origin: Readonly<NumericArray>, result = new Matrix4()) {\n return localFrameToFixedFrame(this, 'east', 'north', 'up', origin, result);\n }\n\n /** Computes a 4x4 transformation matrix from a reference frame centered at\n * the provided origin to the ellipsoid's fixed reference frame.\n */\n localFrameToFixedFrame(\n firstAxis: AxisDirection,\n secondAxis: AxisDirection,\n thirdAxis: AxisDirection,\n origin: Readonly<NumericArray>,\n result?: Matrix4\n ): Matrix4;\n localFrameToFixedFrame<Matrix4T>(\n firstAxis: AxisDirection,\n secondAxis: AxisDirection,\n thirdAxis: AxisDirection,\n origin: Readonly<NumericArray>,\n result: number[]\n ): number[];\n\n // Computes a 4x4 transformation matrix from a reference frame centered at\n // the provided origin to the ellipsoid's fixed reference frame.\n localFrameToFixedFrame(\n firstAxis: AxisDirection,\n secondAxis: AxisDirection,\n thirdAxis: AxisDirection,\n origin: Readonly<NumericArray>,\n result = new Matrix4()\n ) {\n return localFrameToFixedFrame(this, firstAxis, secondAxis, thirdAxis, origin, result);\n }\n\n /** Computes the unit vector directed from the center of this ellipsoid toward\n * the provided Cartesian position. */\n geocentricSurfaceNormal(cartesian: number[], result?: number[]): number[];\n geocentricSurfaceNormal<NumArray>(cartesian: number[], result: NumArray): NumArray;\n geocentricSurfaceNormal(cartesian: Readonly<NumericArray>, result = [0, 0, 0]) {\n return scratchVector.from(cartesian).normalize().to(result);\n }\n\n /** Computes the normal of the plane tangent to the surface of the ellipsoid at provided position. */\n geodeticSurfaceNormalCartographic<NumArray>(\n cartographic: Readonly<NumericArray>,\n result: NumArray\n ): NumArray;\n geodeticSurfaceNormalCartographic(cartographic: number[]): number[];\n geodeticSurfaceNormalCartographic(cartographic: Readonly<NumericArray>, result = [0, 0, 0]) {\n const cartographicVectorRadians = fromCartographicToRadians(cartographic);\n\n const longitude = cartographicVectorRadians[0];\n const latitude = cartographicVectorRadians[1];\n\n const cosLatitude = Math.cos(latitude);\n\n scratchVector\n .set(cosLatitude * Math.cos(longitude), cosLatitude * Math.sin(longitude), Math.sin(latitude))\n .normalize();\n\n return scratchVector.to(result);\n }\n\n /** Computes the normal of the plane tangent to the surface of the ellipsoid at the provided position. */\n geodeticSurfaceNormal<NumArrayT>(cartesian: number[], result: NumArrayT): NumArrayT;\n geodeticSurfaceNormal(cartesian: number[]): number[];\n geodeticSurfaceNormal(cartesian: Readonly<NumericArray>, result = [0, 0, 0]) {\n return scratchVector.from(cartesian).scale(this.oneOverRadiiSquared).normalize().to(result);\n }\n\n /** Scales the provided Cartesian position along the geodetic surface normal\n * so that it is on the surface of this ellipsoid. If the position is\n * at the center of the ellipsoid, this function returns undefined. */\n scaleToGeodeticSurface(cartesian: number[], result?: number[]): number[] {\n return scaleToGeodeticSurface(cartesian, this, result);\n }\n\n /** Scales the provided Cartesian position along the geocentric surface normal\n * so that it is on the surface of this ellipsoid. */\n scaleToGeocentricSurface(cartesian: number[], result: number[] = [0, 0, 0]): number[] {\n scratchPosition.from(cartesian);\n\n const positionX = scratchPosition.x;\n const positionY = scratchPosition.y;\n const positionZ = scratchPosition.z;\n const oneOverRadiiSquared = this.oneOverRadiiSquared;\n\n const beta =\n 1.0 /\n Math.sqrt(\n positionX * positionX * oneOverRadiiSquared.x +\n positionY * positionY * oneOverRadiiSquared.y +\n positionZ * positionZ * oneOverRadiiSquared.z\n );\n\n return scratchPosition.multiplyScalar(beta).to(result);\n }\n\n /** Transforms a Cartesian X, Y, Z position to the ellipsoid-scaled space by multiplying\n * its components by the result of `Ellipsoid#oneOverRadii` */\n transformPositionToScaledSpace(position: number[], result: number[] = [0, 0, 0]): number[] {\n return scratchPosition.from(position).scale(this.oneOverRadii).to(result);\n }\n\n /** Transforms a Cartesian X, Y, Z position from the ellipsoid-scaled space by multiplying\n * its components by the result of `Ellipsoid#radii`. */\n transformPositionFromScaledSpace(position: number[], result: number[] = [0, 0, 0]): number[] {\n return scratchPosition.from(position).scale(this.radii).to(result);\n }\n\n /** Computes a point which is the intersection of the surface normal with the z-axis. */\n getSurfaceNormalIntersectionWithZAxis(\n position: number[],\n buffer: number = 0,\n result: number[] = [0, 0, 0]\n ): number[] {\n // Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)\n assert(equals(this.radii.x, this.radii.y, _MathUtils.EPSILON15));\n assert(this.radii.z > 0);\n\n scratchPosition.from(position);\n const z = scratchPosition.z * (1 - this.squaredXOverSquaredZ);\n\n if (Math.abs(z) >= this.radii.z - buffer) {\n return undefined;\n }\n\n return scratchPosition.set(0.0, 0.0, z).to(result);\n }\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nexport const WGS84_RADIUS_X = 6378137.0;\nexport const WGS84_RADIUS_Y = 6378137.0;\nexport const WGS84_RADIUS_Z = 6356752.3142451793;\n\n// Pre-calculated ellipsoid defaults to avoid utils depending on `ellipsoid.js`\n\nexport const WGS84_CONSTANTS = {\n radii: [WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z],\n radiiSquared: [\n WGS84_RADIUS_X * WGS84_RADIUS_X,\n WGS84_RADIUS_Y * WGS84_RADIUS_Y,\n WGS84_RADIUS_Z * WGS84_RADIUS_Z\n ],\n oneOverRadii: [1.0 / WGS84_RADIUS_X, 1.0 / WGS84_RADIUS_Y, 1.0 / WGS84_RADIUS_Z],\n oneOverRadiiSquared: [\n 1.0 / (WGS84_RADIUS_X * WGS84_RADIUS_X),\n 1.0 / (WGS84_RADIUS_Y * WGS84_RADIUS_Y),\n 1.0 / (WGS84_RADIUS_Z * WGS84_RADIUS_Z)\n ],\n maximumRadius: Math.max(WGS84_RADIUS_X, WGS84_RADIUS_Y, WGS84_RADIUS_Z),\n centerToleranceSquared: 1e-1 // EPSILON1;\n};\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the Cesium math library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport type {NumericArray} from '@math.gl/core';\nimport {Vector3, toRadians, toDegrees, config} from '@math.gl/core';\nimport {WGS84_CONSTANTS} from './constants';\n\ntype LngLatHeightObject = {\n longitude: number;\n latitude: number;\n height: number;\n};\n\ntype XYZObject = {\n x: number;\n y: number;\n z: number;\n};\n\ntype Cartographic = LngLatHeightObject | XYZObject | NumericArray;\n\nfunction identity(x: number): number {\n return x;\n}\n\nconst scratchVector = new Vector3();\n\nexport function fromCartographic(cartographic: Readonly<Cartographic>): number[];\nexport function fromCartographic<NumArrayT>(\n cartographic: Readonly<Cartographic>,\n result: NumArrayT,\n map?: (x: number) => number\n): NumArrayT;\nexport function fromCartographic(\n cartographic: Readonly<Cartographic>,\n result = [] as number[],\n map = identity\n): number[] {\n if ('longitude' in cartographic) {\n result[0] = map(cartographic.longitude);\n result[1] = map(cartographic.latitude);\n result[2] = cartographic.height;\n } else if ('x' in cartographic) {\n result[0] = map(cartographic.x);\n result[1] = map(cartographic.y);\n result[2] = cartographic.z;\n } else {\n result[0] = map(cartographic[0]);\n result[1] = map(cartographic[1]);\n result[2] = cartographic[2];\n }\n return result;\n}\n\nexport function fromCartographicToRadians(\n cartographic: Readonly<Cartographic>,\n result?: number[]\n): number[];\nexport function fromCartographicToRadians<TArray>(\n cartographic: Readonly<Cartographic>,\n result: TArray\n): TArray;\nexport function fromCartographicToRadians(\n cartographic: Readonly<Cartographic>,\n vector = [] as number[]\n): number[] {\n return fromCartographic(cartographic, vector, config._cartographicRadians ? identity : toRadians);\n}\n\nexport function fromCartographicToDegrees(\n cartographic: Readonly<Cartographic>,\n result?: number[]\n): number[];\nexport function fromCartographicToDegrees<TArray>(\n cartographic: Readonly<Cartographic>,\n result: TArray\n): TArray;\nexport function fromCartographicToDegrees(\n cartographic: Readonly<Cartographic>,\n vector = [] as number[]\n): number[] {\n return fromCartographic(cartographic, vector, config._cartographicRadians ? toDegrees : identity);\n}\n\nexport function toCartographic<T extends Cartographic>(\n vector: Readonly<NumericArray>,\n cartographic: T,\n map: (x: number) => number = identity\n): T {\n if ('longitude' in cartographic) {\n cartographic.longitude = map(vector[0]);\n cartographic.latitude = map(vector[1]);\n cartographic.height = vector[2];\n } else if ('x' in cartographic) {\n cartographic.x = map(vector[0]);\n cartographic.y = map(vector[1]);\n cartographic.z = vector[2];\n } else {\n cartographic[0] = map(vector[0]);\n cartographic[1] = map(vector[1]);\n cartographic[2] = vector[2];\n }\n return cartographic;\n}\n\nexport function toCartographicFromRadians<T extends Cartographic>(\n vector: Readonly<NumericArray>,\n cartographic: T\n): T {\n return toCartographic(vector, cartographic, config._cartographicRadians ? identity : toDegrees);\n}\n\nexport function toCartographicFromDegrees<T extends Cartographic>(\n vector: Readonly<NumericArray>,\n cartographic: T\n): T {\n return toCartographic(vector, cartographic, config._cartographicRadians ? toRadians : identity);\n}\n\n// Estimates if a vector is close to the surface of the WGS84 Ellipsoid\nexport function isWGS84(vector: Readonly<NumericArray>): boolean {\n if (!vector) {\n return false;\n }\n scratchVector.from(vector);\n const {oneOverRadiiSquared, centerToleranceSquared} = WGS84_CONSTANTS;\n const x2 = vector[0] * vector[0] * oneOverRadiiSquared[0];\n const y2 = vector[1] * vector[1] * oneOverRadiiSquared[1];\n const z2 = vector[2] * vector[2] * oneOverRadiiSquared[2];\n return Math.abs(x2 + y2 + z2 - 1) < centerToleranceSquared;\n}\n\n/*\n\nexport function fromCartographic(cartographic: Cartographic, result?: number[]): number[];\nexport function fromCartographic(cartographic: Cartographic, result: TypedArray): TypedArray;\nexport function fromCartographicToRadians(cartographic: Cartographic, result?: number[]): number[];\nexport function fromCartographicToRadians(\n cartographic: Cartographic,\n result: TypedArray\n): TypedArray;\nexport function fromCartographicToDegrees(cartographic: Cartographic, result?: number[]): number[];\nexport function fromCartographicToDegrees(\n cartographic: Cartographic,\n result: TypedArray\n): TypedArray;\n\nexport function toCartographic(vector: number[] | TypedArray, result: Cartographic): number[];\nexport function toCartographicFromRadians(\n vector: number[] | TypedArray,\n result: Cartographic\n): number[];\nexport function toCartographicFromDegrees(\n vector: number[] | TypedArray,\n result: Cartographic\n): number[];\n\n// Estimates if a vector is close to the surface of the WGS84 Ellipsoid\nexport function isWGS84(vector: number[] | TypedArray): boolean;\n*/\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\nimport {NumericArray} from '@math.gl/types';\nimport {Vector3, assert, equals as equalsEpsilon} from '@math.gl/core';\n\nimport type {Ellipsoid} from '../ellipsoid';\n\nconst EPSILON14 = 1e-14;\n\nconst scratchOrigin = new Vector3();\n\nexport type AxisDirection = 'up' | 'down' | 'north' | 'east' | 'south' | 'west';\n\n// Caclulate third axis from given two axii\nconst VECTOR_PRODUCT_LOCAL_FRAME: Record<\n AxisDirection,\n Partial<Record<AxisDirection, AxisDirection>>\n> = {\n up: {\n south: 'east',\n north: 'west',\n west: 'south',\n east: 'north'\n },\n down: {\n south: 'west',\n north: 'east',\n west: 'north',\n east: 'south'\n },\n south: {\n up: 'west',\n down: 'east',\n west: 'down',\n east: 'up'\n },\n north: {\n up: 'east',\n down: 'west',\n west: 'up',\n east: 'down'\n },\n west: {\n up: 'north',\n down: 'south',\n north: 'down',\n south: 'up'\n },\n east: {\n up: 'south',\n down: 'north',\n north: 'up',\n south: 'down'\n }\n} as const;\n\nconst degeneratePositionLocalFrame = {\n north: [-1, 0, 0],\n east: [0, 1, 0],\n up: [0, 0, 1],\n south: [1, 0, 0],\n west: [0, -1, 0],\n down: [0, 0, -1]\n} as const;\n\nconst scratchAxisVectors = {\n east: new Vector3(),\n north: new Vector3(),\n up: new Vector3(),\n west: new Vector3(),\n south: new Vector3(),\n down: new Vector3()\n};\n\nconst scratchVector1 = new Vector3();\nconst scratchVector2 = new Vector3();\nconst scratchVector3 = new Vector3();\n\n// Computes a 4x4 transformation matrix from a reference frame\n// centered at the provided origin to the provided ellipsoid's fixed reference frame.\n// eslint-disable-next-line max-statements, max-params, complexity\nexport function localFrameToFixedFrame(\n ellipsoid: Ellipsoid,\n firstAxis: AxisDirection,\n secondAxis: AxisDirection,\n thirdAxis: AxisDirection,\n cartesianOrigin: Readonly<NumericArray>,\n result: number[]\n): number[] {\n const thirdAxisInferred =\n VECTOR_PRODUCT_LOCAL_FRAME[firstAxis] && VECTOR_PRODUCT_LOCAL_FRAME[firstAxis][secondAxis];\n // firstAxis and secondAxis must be east, north, up, west, south or down.');\n assert(thirdAxisInferred && (!thirdAxis || thirdAxis === thirdAxisInferred));\n\n let firstAxisVector: Vector3;\n let secondAxisVector: Vector3;\n let thirdAxisVector: Vector3;\n\n const origin = scratchOrigin.copy(cartesianOrigin);\n\n // If x and y are zero, assume origin is at a pole, which is a special case.\n const atPole = equalsEpsilon(origin.x, 0.0, EPSILON14) && equalsEpsilon(origin.y, 0.0, EPSILON14);\n\n if (atPole) {\n // Look up axis value and adjust\n const sign = Math.sign(origin.z);\n\n firstAxisVector = scratchVector1.fromArray(degeneratePositionLocalFrame[firstAxis]);\n if (firstAxis !== 'east' && firstAxis !== 'west') {\n firstAxisVector.scale(sign);\n }\n\n secondAxisVector = scratchVector2.fromArray(degeneratePositionLocalFrame[secondAxis]);\n if (secondAxis !== 'east' && secondAxis !== 'west') {\n secondAxisVector.scale(sign);\n }\n\n thirdAxisVector = scratchVector3.fromArray(degeneratePositionLocalFrame[thirdAxis]);\n if (thirdAxis !== 'east' && thirdAxis !== 'west') {\n thirdAxisVector.scale(sign);\n }\n } else {\n // Calculate all axis\n const {up, east, north} = scratchAxisVectors;\n\n east.set(-origin.y, origin.x, 0.0).normalize();\n ellipsoid.geodeticSurfaceNormal(origin, up);\n north.copy(up).cross(east);\n\n const {down, west, south} = scratchAxisVectors;\n\n down.copy(up).scale(-1);\n west.copy(east).scale(-1);\n south.copy(north).scale(-1);\n\n // Pick three axis based on desired orientation\n firstAxisVector = scratchAxisVectors[firstAxis];\n secondAxisVector = scratchAxisVectors[secondAxis];\n thirdAxisVector = scratchAxisVectors[thirdAxis];\n }\n\n // TODO - assuming the result is column-major\n result[0] = firstAxisVector.x;\n result[1] = firstAxisVector.y;\n result[2] = firstAxisVector.z;\n result[3] = 0.0;\n result[4] = secondAxisVector.x;\n result[5] = secondAxisVector.y;\n result[6] = secondAxisVector.z;\n result[7] = 0.0;\n result[8] = thirdAxisVector.x;\n result[9] = thirdAxisVector.y;\n result[10] = thirdAxisVector.z;\n result[11] = 0.0;\n result[12] = origin.x;\n result[13] = origin.y;\n result[14] = origin.z;\n result[15] = 1.0;\n return result;\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable */\nimport {Vector3, _MathUtils} from '@math.gl/core';\nimport type {Ellipsoid} from '../ellipsoid';\n\nconst scratchVector = new Vector3();\nconst scaleToGeodeticSurfaceIntersection = new Vector3();\nconst scaleToGeodeticSurfaceGradient = new Vector3();\n\n// Scales the provided Cartesian position along the geodetic surface normal\n// so that it is on the surface of this ellipsoid. If the position is\n// at the center of the ellipsoid, this function returns undefined.\nexport function scaleToGeodeticSurface(\n cartesian: number[],\n ellipsoid: Ellipsoid,\n result: number[] = []\n): number[] {\n const {oneOverRadii, oneOverRadiiSquared, centerToleranceSquared} = ellipsoid;\n\n scratchVector.from(cartesian);\n\n const positionX = scratchVector.x;\n const positionY = scratchVector.y;\n const positionZ = scratchVector.z;\n\n const oneOverRadiiX = oneOverRadii.x;\n const oneOverRadiiY = oneOverRadii.y;\n const oneOverRadiiZ = oneOverRadii.z;\n\n const x2 = positionX * positionX * oneOverRadiiX * oneOverRadiiX;\n const y2 = positionY * positionY * oneOverRadiiY * oneOverRadiiY;\n const z2 = positionZ * positionZ * oneOverRadiiZ * oneOverRadiiZ;\n\n // Compute the squared ellipsoid norm.\n const squaredNorm = x2 + y2 + z2;\n const ratio = Math.sqrt(1.0 / squaredNorm);\n\n // When very close to center or at center\n if (!Number.isFinite(ratio)) {\n return undefined;\n }\n\n // As an initial approximation, assume that the radial intersection is the projection point.\n const intersection = scaleToGeodeticSurfaceIntersection;\n intersection.copy(cartesian).scale(ratio);\n\n // If the position is near the center, the iteration will not converge.\n if (squaredNorm < centerToleranceSquared) {\n return intersection.to(result);\n }\n\n const oneOverRadiiSquaredX = oneOverRadiiSquared.x;\n const oneOverRadiiSquaredY = oneOverRadiiSquared.y;\n const oneOverRadiiSquaredZ = oneOverRadiiSquared.z;\n\n // Use the gradient at the intersection point in place of the true unit normal.\n // The difference in magnitude will be absorbed in the multiplier.\n const gradient = scaleToGeodeticSurfaceGradient;\n gradient.set(\n intersection.x * oneOverRadiiSquaredX * 2.0,\n intersection.y * oneOverRadiiSquaredY * 2.0,\n intersection.z * oneOverRadiiSquaredZ * 2.0\n );\n\n // Compute the initial guess at the normal vector multiplier, lambda.\n let lambda = ((1.0 - ratio) * scratchVector.len()) / (0.5 * gradient.len());\n let correction = 0.0;\n\n let xMultiplier;\n let yMultiplier;\n let zMultiplier;\n let func;\n\n do {\n lambda -= correction;\n\n xMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredX);\n yMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredY);\n zMultiplier = 1.0 / (1.0 + lambda * oneOverRadiiSquaredZ);\n\n const xMultiplier2 = xMultiplier * xMultiplier;\n const yMultiplier2 = yMultiplier * yMultiplier;\n const zMultiplier2 = zMultiplier * zMultiplier;\n\n const xMultiplier3 = xMultiplier2 * xMultiplier;\n const yMultiplier3 = yMultiplier2 * yMultiplier;\n const zMultiplier3 = zMultiplier2 * zMultiplier;\n\n func = x2 * xMultiplier2 + y2 * yMultiplier2 + z2 * zMultiplier2 - 1.0;\n\n // \"denominator\" here refers to the use of this expression in the velocity and acceleration\n // computations in the sections to follow.\n const denominator =\n x2 * xMultiplier3 * oneOverRadiiSquaredX +\n y2 * yMultiplier3 * oneOverRadiiSquaredY +\n z2 * zMultiplier3 * oneOverRadiiSquaredZ;\n\n const derivative = -2.0 * denominator;\n\n correction = func / derivative;\n } while (Math.abs(func) > _MathUtils.EPSILON12);\n\n return scratchVector.scale([xMultiplier, yMultiplier, zMultiplier]).to(result);\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the Cesium library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Vector2, Vector3, Matrix4} from '@math.gl/core';\nimport {Plane, Ray} from '@math.gl/culling';\nimport {Ellipsoid} from './ellipsoid';\n\nconst scratchOrigin = new Vector3();\nconst scratchCart3 = new Vector3();\nconst scratchEastNorthUp = new Matrix4();\nconst scratchPlane = new Plane();\n\nconst scratchProjectPointOntoPlaneRay = new Ray();\nconst scratchProjectPointOntoPlaneCartesian3 = new Vector3();\nconst scratchDirection = new Vector3();\n\n/** A plane tangent to the WGS84 ellipsoid at the provided origin */\nexport class EllipsoidTangentPlane {\n private _origin: Vector3;\n private _xAxis: Vector3;\n private _yAxis: Vector3;\n private _plane: Plane;\n\n /**\n * Creates a new plane tangent to the WGS84 ellipsoid at the provided origin.\n * If origin is not on the surface of the ellipsoid, it's surface projection will be used.\n *\n * @param {Cartesian3} origin The point on the surface of the ellipsoid where the tangent plane touches.\n */\n constructor(origin: number[]) {\n origin = Ellipsoid.WGS84.scaleToGeodeticSurface(origin, scratchOrigin);\n\n const eastNorthUp = Ellipsoid.WGS84.eastNorthUpToFixedFrame(origin, scratchEastNorthUp);\n\n this._origin = origin as Vector3;\n this._xAxis = new Vector3(scratchCart3.from(eastNorthUp.getColumn(0)));\n this._yAxis = new Vector3(scratchCart3.from(eastNorthUp.getColumn(1)));\n const normal = new Vector3(scratchCart3.from(eastNorthUp.getColumn(2)));\n\n this._plane = scratchPlane.fromPointNormal(origin, normal);\n }\n\n /**\n * Computes the projection of the provided 3D position onto the 2D plane, along the plane normal.\n *\n * @param {Vector3} cartesian The point to project.\n * @param {Vector2} [result] The object onto which to store the result.\n * @returns {Vector2} The modified result parameter or a new Cartesian2 instance if none was provided.\n */\n projectPointToNearestOnPlane(cartesian: Vector3, result?: Vector2): Vector2 {\n if (!result) result = new Vector2();\n\n const plane = this._plane;\n\n const ray = scratchProjectPointOntoPlaneRay;\n scratchProjectPointOntoPlaneRay.origin = cartesian;\n scratchProjectPointOntoPlaneRay.direction = scratchDirection.copy(plane.normal);\n\n let intersectionPoint = plane.intersectWithRay(ray, scratchProjectPointOntoPlaneCartesian3);\n\n if (!intersectionPoint) {\n ray.direction = ray.direction.negate();\n intersectionPoint = plane.intersectWithRay(ray, scratchProjectPointOntoPlaneCartesian3);\n }\n\n const v = intersectionPoint.subtract(this._origin);\n const x = this._xAxis.dot(v);\n const y = this._yAxis.dot(v);\n\n result.x = x;\n result.y = y;\n return result;\n }\n\n get plane() {\n return this._plane;\n }\n\n get origin() {\n return this._origin;\n }\n\n get xAxis() {\n return this._xAxis;\n }\n\n get yAxis() {\n return this._yAxis;\n }\n\n get zAxis() {\n return this._plane.normal;\n }\n}\n", "// math.gl\n// SPDX-License-Identifier: MIT and Apache-2.0\n// Copyright (c) vis.gl contributors\n\n// This file is derived from the Cesium library under Apache 2 license\n// See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md\n\nimport {Vector3, normalizeAngle, _MathUtils} from '@math.gl/core';\n\n/** A two dimensional region specified as longitude and latitude coordinates. */\nexport class LngLatRectangle {\n west: number;\n south: number;\n east: number;\n north: number;\n\n /**\n * Creates a new two dimensional region specified as longitude and latitude coordinates.\n *\n * @param west The westernmost longitude, in radians, in the range [-Pi, Pi].\n * @param south The southernmost latitude, in radians, in the range [-Pi/2, Pi/2].\n * @param east The easternmost longitude, in radians, in the range [-Pi, Pi].\n * @param north The northernmost latitude, in radians, in the range [-Pi/2, Pi/2].\n */\n constructor(west: number, south: number, east: number, north: number) {\n this.west = west;\n this.south = south;\n this.east = east;\n this.north = north;\n }\n\n /**\n * Computes the center of a rectangle.\n *\n * @param rectangle The rectangle for which to find the center\n * @param [result] The object onto which to store the result.\n * @returns The modified result parameter or a new Cartographic instance if none was provided.\n */\n static center(rectangle: LngLatRectangle, result?: Vector3): Vector3 {\n if (!result) result = new Vector3();\n\n let east = rectangle.east;\n const west = rectangle.west;\n\n if (east < west) {\n east += _MathUtils.TWO_PI;\n }\n\n const longitude = normalizeAngle((west + east) * 0.5, 'negative-pi-to-pi');\n const latitude = (rectangle.south + rectangle.north) * 0.5;\n\n result.x = longitude;\n result.y = latitude;\n result.z = 0.0;\n return result;\n }\n\n get width() {\n let east = this.east;\n const west = this.west;\n\n if (east < west) {\n east += _MathUtils.TWO_PI;\n }\n return east - west;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["import_core", "import_core", "equalsEpsilon", "import_core", "scratchVector", "scratchVector", "import_core", "scratchOrigin", "import_core"]
3
+ "sources": ["../src/index.ts", "../src/ellipsoid.ts", "../src/constants.ts", "../src/type-utils.ts", "../src/ellipsoid-helpers/ellipsoid-transform.ts", "../src/ellipsoid-helpers/scale-to-geodetic-surface.ts", "../src/ellipsoid-tangent-plane.ts", "../src/lng-lat-rectangle.ts", "../src/make-obb-from-region.ts"],
4
+ "mappings": "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",
5
+ "names": ["import_core", "import_core", "equalsEpsilon", "import_core", "scratchVector", "scratchVector", "import_core", "scratchOrigin", "import_core", "import_core", "import_culling", "tangentPoint"]
7
6
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { Ellipsoid } from "./ellipsoid.js";
2
2
  export { EllipsoidTangentPlane } from "./ellipsoid-tangent-plane.js";
3
3
  export { LngLatRectangle } from "./lng-lat-rectangle.js";
4
+ export { makeOBBFromRegion } from "./make-obb-from-region.js";
5
+ export type { GeodeticRegion, MakeOBBFromRegionOptions } from "./make-obb-from-region.js";
4
6
  export { isWGS84 } from "./type-utils.js";
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,uBAAoB;AACtC,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,OAAO,EAAC,wBAAqB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,SAAS,EAAC,uBAAoB;AACtC,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,iBAAiB,EAAC,kCAA+B;AACzD,YAAY,EAAC,cAAc,EAAE,wBAAwB,EAAC,kCAA+B;AACrF,OAAO,EAAC,OAAO,EAAC,wBAAqB"}
package/dist/index.js CHANGED
@@ -4,5 +4,6 @@
4
4
  export { Ellipsoid } from "./ellipsoid.js";
5
5
  export { EllipsoidTangentPlane } from "./ellipsoid-tangent-plane.js";
6
6
  export { LngLatRectangle } from "./lng-lat-rectangle.js";
7
+ export { makeOBBFromRegion } from "./make-obb-from-region.js";
7
8
  export { isWGS84 } from "./type-utils.js";
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,SAAS,EAAC,uBAAoB;AACtC,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,OAAO,EAAC,wBAAqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,SAAS,EAAC,uBAAoB;AACtC,OAAO,EAAC,qBAAqB,EAAC,qCAAkC;AAChE,OAAO,EAAC,eAAe,EAAC,+BAA4B;AACpD,OAAO,EAAC,iBAAiB,EAAC,kCAA+B;AAEzD,OAAO,EAAC,OAAO,EAAC,wBAAqB"}
@@ -1 +1 @@
1
- {"version":3,"file":"lng-lat-rectangle.d.ts","sourceRoot":"","sources":["../src/lng-lat-rectangle.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,OAAO,EAA6B,MAAM,eAAe,CAAC;AAElE,gFAAgF;AAChF,qBAAa,eAAe;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;gBACS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOpE;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAmBpE,IAAI,KAAK,WAQR;CACF"}
1
+ {"version":3,"file":"lng-lat-rectangle.d.ts","sourceRoot":"","sources":["../src/lng-lat-rectangle.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,OAAO,EAA6B,MAAM,eAAe,CAAC;AAElE,gFAAgF;AAChF,qBAAa,eAAe;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IAEd;;;;;;;OAOG;gBACS,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOpE;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO;IAmBpE,IAAI,KAAK,IAAI,MAAM,CAQlB;CACF"}
@@ -1,11 +1,28 @@
1
+ import { Matrix4 } from '@math.gl/core';
1
2
  import { OrientedBoundingBox } from '@math.gl/culling';
3
+ import { Ellipsoid } from "./ellipsoid.js";
4
+ export type GeodeticRegion = readonly [
5
+ west: number,
6
+ south: number,
7
+ east: number,
8
+ north: number,
9
+ minimumHeight: number,
10
+ maximumHeight: number
11
+ ];
12
+ export type MakeOBBFromRegionOptions = {
13
+ /** Longitude and latitude units. Defaults to radians, as in 3D Tiles regions. */
14
+ units?: 'radians' | 'degrees';
15
+ /** Affine transform from ellipsoid-fixed coordinates into the caller's world space. */
16
+ transform?: Matrix4;
17
+ };
2
18
  /**
3
- * Computes an OrientedBoundingBox that bounds a region on the surface of the WGS84 ellipsoid.
4
- * There are no guarantees about the orientation of the bounding box.
19
+ * Creates a conservative oriented bounding box for a geodetic region.
5
20
  *
6
- * @param {number[]} region The cartographic region ([west, south, east, north, minimum height, maximum height])
7
- * on the surface of the ellipsoid.
8
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if none was provided.
21
+ * Longitudes and latitudes are radians by default. An east longitude smaller than west
22
+ * denotes the directed eastward interval crossing the antimeridian; equal longitudes denote
23
+ * zero width unless the original endpoints differ by a full turn.
24
+ * Heights use the ellipsoid's linear unit. Inputs and the supplied ellipsoid and transform are
25
+ * never mutated.
9
26
  */
10
- export declare function makeOBBfromRegion(region: number[]): OrientedBoundingBox;
27
+ export declare function makeOBBFromRegion(region: readonly number[], ellipsoid?: Ellipsoid, options?: MakeOBBFromRegionOptions): OrientedBoundingBox;
11
28
  //# sourceMappingURL=make-obb-from-region.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-obb-from-region.d.ts","sourceRoot":"","sources":["../src/make-obb-from-region.ts"],"names":[],"mappings":"AAQA,OAAO,EAAC,mBAAmB,EAAQ,MAAM,kBAAkB,CAAC;AAuC5D;;;;;;;GAOG;AAEH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,CA6MvE"}
1
+ {"version":3,"file":"make-obb-from-region.d.ts","sourceRoot":"","sources":["../src/make-obb-from-region.ts"],"names":[],"mappings":"AAOA,OAAO,EAAU,OAAO,EAAiD,MAAM,eAAe,CAAC;AAC/F,OAAO,EAAC,mBAAmB,EAAQ,MAAM,kBAAkB,CAAC;AAI5D,OAAO,EAAC,SAAS,EAAC,uBAAoB;AAkCtC,MAAM,MAAM,cAAc,GAAG,SAAS;IACpC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;IACb,aAAa,EAAE,MAAM;IACrB,aAAa,EAAE,MAAM;CACtB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,iFAAiF;IACjF,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,uFAAuF;IACvF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;;;;;;;GAQG;AAEH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,GAAE,SAA2B,EACtC,OAAO,GAAE,wBAA6B,GACrC,mBAAmB,CAmCrB"}
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  // This file is derived from the Cesium math library under Apache 2 license
5
5
  // See LICENSE.md and https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md
6
- import { Vector2, Vector3, degrees, _MathUtils } from '@math.gl/core';
6
+ import { Matrix3, Vector2, Vector3, degrees, radians, _MathUtils } from '@math.gl/core';
7
7
  import { OrientedBoundingBox, Plane } from '@math.gl/culling';
8
8
  // @ts-ignore
9
9
  // eslint-disable-next-line import/no-unresolved
@@ -34,20 +34,54 @@ const scratchPlaneXAxis = new Vector3();
34
34
  const scratchHorizonCartesian = new Vector3();
35
35
  const scratchHorizonProjected = new Vector2();
36
36
  const scratchMaxY = new Vector3();
37
- const scratchMinY = new Vector3();
38
37
  const scratchZ = new Vector3();
39
38
  const VECTOR3_UNIT_X = new Vector3(1, 0, 0);
40
39
  const VECTOR3_UNIT_Z = new Vector3(0, 0, 1);
41
40
  /**
42
- * Computes an OrientedBoundingBox that bounds a region on the surface of the WGS84 ellipsoid.
43
- * There are no guarantees about the orientation of the bounding box.
41
+ * Creates a conservative oriented bounding box for a geodetic region.
44
42
  *
45
- * @param {number[]} region The cartographic region ([west, south, east, north, minimum height, maximum height])
46
- * on the surface of the ellipsoid.
47
- * @returns {OrientedBoundingBox} The modified result parameter or a new OrientedBoundingBox instance if none was provided.
43
+ * Longitudes and latitudes are radians by default. An east longitude smaller than west
44
+ * denotes the directed eastward interval crossing the antimeridian; equal longitudes denote
45
+ * zero width unless the original endpoints differ by a full turn.
46
+ * Heights use the ellipsoid's linear unit. Inputs and the supplied ellipsoid and transform are
47
+ * never mutated.
48
48
  */
49
49
  // eslint-disable-next-line max-statements
50
- export function makeOBBfromRegion(region) {
50
+ export function makeOBBFromRegion(region, ellipsoid = Ellipsoid.WGS84, options = {}) {
51
+ if (!region || region.length !== 6 || region.some(value => !Number.isFinite(value))) {
52
+ throw new Error('makeOBBFromRegion: region must contain exactly six finite numbers');
53
+ }
54
+ const unitScale = options.units === 'degrees' ? radians(1) : 1;
55
+ const [rawWest, rawSouth, rawEast, rawNorth, minimumHeight, maximumHeight] = region;
56
+ if (minimumHeight > maximumHeight) {
57
+ throw new Error('makeOBBFromRegion: minimumHeight must not exceed maximumHeight');
58
+ }
59
+ const south = rawSouth * unitScale;
60
+ const north = rawNorth * unitScale;
61
+ const west = normalizeLongitude(rawWest * unitScale);
62
+ let east = normalizeLongitude(rawEast * unitScale);
63
+ // Preserve a complete directed turn, which would otherwise collapse when both endpoints
64
+ // are normalized to the same longitude. Reversed boundaries retain Cesium/3D Tiles semantics.
65
+ const directedSpan = rawEast * unitScale - rawWest * unitScale;
66
+ if (directedSpan >= _MathUtils.TWO_PI - 1e-12) {
67
+ east = west + _MathUtils.TWO_PI;
68
+ }
69
+ const latitudeTolerance = 1e-12;
70
+ if (south > north ||
71
+ south < -_MathUtils.PI_OVER_TWO - latitudeTolerance ||
72
+ north > _MathUtils.PI_OVER_TWO + latitudeTolerance) {
73
+ throw new Error('makeOBBFromRegion: latitude must be within [-π/2, π/2] and south ≤ north');
74
+ }
75
+ // Avoid passing a tiny out-of-range value to the ellipsoid conversion at a boundary.
76
+ const clampedSouth = Math.max(-_MathUtils.PI_OVER_TWO, Math.min(_MathUtils.PI_OVER_TWO, south));
77
+ const clampedNorth = Math.max(-_MathUtils.PI_OVER_TWO, Math.min(_MathUtils.PI_OVER_TWO, north));
78
+ return makeOBBFromNormalizedRegion([west, clampedSouth, east, clampedNorth, minimumHeight, maximumHeight], ellipsoid, options.transform);
79
+ }
80
+ function normalizeLongitude(value) {
81
+ const normalized = ((((value + Math.PI) % _MathUtils.TWO_PI) + _MathUtils.TWO_PI) % _MathUtils.TWO_PI) - Math.PI;
82
+ return normalized === -Math.PI && value > 0 ? Math.PI : normalized;
83
+ }
84
+ function makeOBBFromNormalizedRegion(region, ellipsoid, transform) {
51
85
  const obb = new OrientedBoundingBox();
52
86
  const [west, south, east, north, minimumHeight, maximumHeight] = region;
53
87
  const northDeg = degrees(north);
@@ -70,8 +104,8 @@ export function makeOBBfromRegion(region) {
70
104
  const lonCenterDeg = tangentPointCartographic.x;
71
105
  if (rectangle.width <= _MathUtils.PI) {
72
106
  const westDeg = degrees(west);
73
- const tangentPoint = Ellipsoid.WGS84.cartographicToCartesian(tangentPointCartographic);
74
- const ellipsoidTangentPlane = new EllipsoidTangentPlane(tangentPoint);
107
+ const tangentPoint = ellipsoid.cartographicToCartesian(tangentPointCartographic);
108
+ const ellipsoidTangentPlane = new EllipsoidTangentPlane(tangentPoint, ellipsoid);
75
109
  const latCenter = southDeg < 0.0 && northDeg > 0.0 ? 0.0 : tangentPointCartographic.y;
76
110
  const perimeterCartographicNC = scratchPerimeterCartographicNC.copy([
77
111
  lonCenterDeg,
@@ -98,11 +132,11 @@ export function makeOBBfromRegion(region) {
98
132
  southDeg,
99
133
  maximumHeight
100
134
  ]);
101
- const perimeterCartesianNC = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicNC, scratchPerimeterCartesianNC);
102
- let perimeterCartesianNW = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicNW, scratchPerimeterCartesianNW);
103
- const perimeterCartesianCW = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicCW, scratchPerimeterCartesianCW);
104
- let perimeterCartesianSW = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicSW, scratchPerimeterCartesianSW);
105
- const perimeterCartesianSC = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicSC, scratchPerimeterCartesianSC);
135
+ const perimeterCartesianNC = ellipsoid.cartographicToCartesian(perimeterCartographicNC, scratchPerimeterCartesianNC);
136
+ let perimeterCartesianNW = ellipsoid.cartographicToCartesian(perimeterCartographicNW, scratchPerimeterCartesianNW);
137
+ const perimeterCartesianCW = ellipsoid.cartographicToCartesian(perimeterCartographicCW, scratchPerimeterCartesianCW);
138
+ let perimeterCartesianSW = ellipsoid.cartographicToCartesian(perimeterCartographicSW, scratchPerimeterCartesianSW);
139
+ const perimeterCartesianSC = ellipsoid.cartographicToCartesian(perimeterCartographicSC, scratchPerimeterCartesianSC);
106
140
  const perimeterProjectedNC = ellipsoidTangentPlane.projectPointToNearestOnPlane(perimeterCartesianNC, scratchPerimeterProjectedNC);
107
141
  const perimeterProjectedNW = ellipsoidTangentPlane.projectPointToNearestOnPlane(perimeterCartesianNW, scratchPerimeterProjectedNW);
108
142
  const perimeterProjectedCW = ellipsoidTangentPlane.projectPointToNearestOnPlane(perimeterCartesianCW, scratchPerimeterProjectedCW);
@@ -113,12 +147,12 @@ export function makeOBBfromRegion(region) {
113
147
  maxY = Math.max(perimeterProjectedNW.y, perimeterProjectedNC.y);
114
148
  minY = Math.min(perimeterProjectedSW.y, perimeterProjectedSC.y);
115
149
  perimeterCartographicNW.z = perimeterCartographicSW.z = minimumHeight;
116
- perimeterCartesianNW = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicNW, scratchPerimeterCartesianNW);
117
- perimeterCartesianSW = Ellipsoid.WGS84.cartographicToCartesian(perimeterCartographicSW, scratchPerimeterCartesianSW);
150
+ perimeterCartesianNW = ellipsoid.cartographicToCartesian(perimeterCartographicNW, scratchPerimeterCartesianNW);
151
+ perimeterCartesianSW = ellipsoid.cartographicToCartesian(perimeterCartographicSW, scratchPerimeterCartesianSW);
118
152
  plane = ellipsoidTangentPlane.plane;
119
153
  minZ = Math.min(plane.getPointDistance(perimeterCartesianNW), plane.getPointDistance(perimeterCartesianSW));
120
154
  maxZ = maximumHeight;
121
- return fromPlaneExtents(ellipsoidTangentPlane.origin, ellipsoidTangentPlane.xAxis, ellipsoidTangentPlane.yAxis, ellipsoidTangentPlane.zAxis, minX, maxX, minY, maxY, minZ, maxZ, obb);
155
+ return applyTransform(fromPlaneExtents(ellipsoidTangentPlane.origin, ellipsoidTangentPlane.xAxis, ellipsoidTangentPlane.yAxis, ellipsoidTangentPlane.zAxis, minX, maxX, minY, maxY, minZ, maxZ, obb), transform);
122
156
  }
123
157
  const eastDeg = degrees(east);
124
158
  const fullyAboveEquator = south > 0.0;
@@ -128,7 +162,7 @@ export function makeOBBfromRegion(region) {
128
162
  : fullyBelowEquator
129
163
  ? northDeg
130
164
  : 0.0;
131
- const planeOrigin = Ellipsoid.WGS84.cartographicToCartesian([lonCenterDeg, latitudeNearestToEquator, maximumHeight], scratchPlaneOrigin);
165
+ const planeOrigin = ellipsoid.cartographicToCartesian([lonCenterDeg, latitudeNearestToEquator, maximumHeight], scratchPlaneOrigin);
132
166
  planeOrigin.z = 0.0;
133
167
  const isPole = Math.abs(planeOrigin.x) < _MathUtils.EPSILON10 &&
134
168
  Math.abs(planeOrigin.y) < _MathUtils.EPSILON10;
@@ -136,19 +170,54 @@ export function makeOBBfromRegion(region) {
136
170
  const planeYAxis = VECTOR3_UNIT_Z;
137
171
  const planeXAxis = scratchPlaneXAxis.copy(planeNormal).cross(planeYAxis);
138
172
  plane = scratchPlane.fromPointNormal(planeOrigin, planeNormal);
139
- const horizonCartesian = Ellipsoid.WGS84.cartographicToCartesian([degrees(lonCenter + _MathUtils.PI_OVER_TWO), latitudeNearestToEquator, maximumHeight], scratchHorizonCartesian);
173
+ const horizonCartesian = ellipsoid.cartographicToCartesian([degrees(lonCenter + _MathUtils.PI_OVER_TWO), latitudeNearestToEquator, maximumHeight], scratchHorizonCartesian);
140
174
  const projectedPoint = plane.projectPointOntoPlane(horizonCartesian, scratchHorizonProjected);
141
175
  maxX = projectedPoint.dot(planeXAxis);
142
176
  minX = -maxX;
143
- maxY = Ellipsoid.WGS84.cartographicToCartesian([0.0, northDeg, fullyBelowEquator ? minimumHeight : maximumHeight], scratchMaxY).z;
144
- minY = Ellipsoid.WGS84.cartographicToCartesian([0.0, southDeg, fullyAboveEquator ? minimumHeight : maximumHeight], scratchMinY).z;
145
- const farZ = Ellipsoid.WGS84.cartographicToCartesian([eastDeg, latitudeNearestToEquator, maximumHeight], scratchZ);
177
+ const northHeight = fullyBelowEquator ? minimumHeight : maximumHeight;
178
+ const southHeight = fullyAboveEquator ? minimumHeight : maximumHeight;
179
+ maxY = latitudeZExtent(ellipsoid, northDeg, northHeight, true);
180
+ minY = latitudeZExtent(ellipsoid, southDeg, southHeight, false);
181
+ const farZ = ellipsoid.cartographicToCartesian([eastDeg, latitudeNearestToEquator, maximumHeight], scratchZ);
146
182
  minZ = plane.getPointDistance(farZ);
147
183
  maxZ = 0.0;
148
- return fromPlaneExtents(planeOrigin, planeXAxis, planeYAxis, planeNormal, minX, maxX, minY, maxY, minZ, maxZ, obb);
184
+ return applyTransform(fromPlaneExtents(planeOrigin, planeXAxis, planeYAxis, planeNormal, minX, maxX, minY, maxY, minZ, maxZ, obb), transform);
185
+ }
186
+ function applyTransform(obb, transform) {
187
+ if (!transform)
188
+ return obb;
189
+ // A general affine transform turns an OBB into a parallelepiped. Refit its eight
190
+ // corners to an axis-aligned OBB so culling methods that assume orthogonal axes remain safe.
191
+ const axes = [0, 1, 2].map(column => obb.halfAxes.getColumn(column, new Vector3()));
192
+ const center = transform.transformAsPoint(obb.center);
193
+ const minimum = [Infinity, Infinity, Infinity];
194
+ const maximum = [-Infinity, -Infinity, -Infinity];
195
+ for (let mask = 0; mask < 8; mask++) {
196
+ const corner = new Vector3(center);
197
+ for (let axis = 0; axis < 3; axis++) {
198
+ const transformedAxis = transform.transformAsVector(axes[axis]);
199
+ corner.add(new Vector3(transformedAxis).scale((mask & (1 << axis)) === 0 ? -1 : 1));
200
+ }
201
+ for (let component = 0; component < 3; component++) {
202
+ minimum[component] = Math.min(minimum[component], corner[component]);
203
+ maximum[component] = Math.max(maximum[component], corner[component]);
204
+ }
205
+ }
206
+ obb.center.copy(minimum).add(maximum).scale(0.5);
207
+ const halfSize = new Vector3(maximum).subtract(minimum).scale(0.5);
208
+ obb.halfAxes = new Matrix3().set(halfSize.x, 0, 0, 0, halfSize.y, 0, 0, 0, halfSize.z);
209
+ return obb;
210
+ }
211
+ function latitudeZExtent(ellipsoid, latitude, height, maximum) {
212
+ let extent = maximum ? -Infinity : Infinity;
213
+ // A triaxial ellipsoid's fixed-latitude extrema occur at a principal longitude.
214
+ for (const longitude of [0, 90, 180, 270]) {
215
+ const z = ellipsoid.cartographicToCartesian([longitude, latitude, height], scratchMaxY).z;
216
+ extent = maximum ? Math.max(extent, z) : Math.min(extent, z);
217
+ }
218
+ return extent;
149
219
  }
150
- const scratchScale = new Vector3();
151
- /** helper function for OrientedBoundingBox.fromRegion() */
220
+ /** Helper function for makeOBBFromRegion(). */
152
221
  // eslint-disable-next-line max-params
153
222
  function fromPlaneExtents(planeOrigin, planeXAxis, planeYAxis, planeZAxis, minimumX, maximumX, minimumY, maximumY, minimumZ, maximumZ, result) {
154
223
  const center = result.center;
@@ -156,18 +225,22 @@ function fromPlaneExtents(planeOrigin, planeXAxis, planeYAxis, planeZAxis, minim
156
225
  halfAxes.setColumn(0, planeXAxis);
157
226
  halfAxes.setColumn(1, planeYAxis);
158
227
  halfAxes.setColumn(2, planeZAxis);
159
- let centerOffset = scratchOffset;
160
- centerOffset.x = (minimumX + maximumX) / 2.0;
161
- centerOffset.y = (minimumY + maximumY) / 2.0;
162
- centerOffset.z = (minimumZ + maximumZ) / 2.0;
163
- centerOffset = halfAxes.multiplyByVector(centerOffset, scratchOffset);
164
- const scale = scratchScale;
165
- scale.x = (maximumX - minimumX) / 2.0;
166
- scale.y = (maximumY - minimumY) / 2.0;
167
- scale.z = (maximumZ - minimumZ) / 2.0;
168
- planeOrigin = center.copy(planeOrigin);
169
- result.center = planeOrigin.add(centerOffset);
170
- result.halfAxes = halfAxes.multiplyByScale(scale, halfAxes);
228
+ const centerOffset = scratchOffset
229
+ .set((minimumX + maximumX) / 2.0, (minimumY + maximumY) / 2.0, (minimumZ + maximumZ) / 2.0)
230
+ .transformByMatrix3(halfAxes);
231
+ const scaleX = (maximumX - minimumX) / 2.0;
232
+ const scaleY = (maximumY - minimumY) / 2.0;
233
+ const scaleZ = (maximumZ - minimumZ) / 2.0;
234
+ halfAxes[0] *= scaleX;
235
+ halfAxes[1] *= scaleX;
236
+ halfAxes[2] *= scaleX;
237
+ halfAxes[3] *= scaleY;
238
+ halfAxes[4] *= scaleY;
239
+ halfAxes[5] *= scaleY;
240
+ halfAxes[6] *= scaleZ;
241
+ halfAxes[7] *= scaleZ;
242
+ halfAxes[8] *= scaleZ;
243
+ center.copy(planeOrigin).add(centerOffset);
171
244
  return result;
172
245
  }
173
246
  //# sourceMappingURL=make-obb-from-region.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-obb-from-region.js","sourceRoot":"","sources":["../src/make-obb-from-region.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"make-obb-from-region.js","sourceRoot":"","sources":["../src/make-obb-from-region.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
- "version": "4.2.0-alpha.3",
9
+ "version": "4.2.0-alpha.6",
10
10
  "keywords": [
11
11
  "webgl",
12
12
  "javascript",
@@ -39,9 +39,9 @@
39
39
  "src"
40
40
  ],
41
41
  "dependencies": {
42
- "@math.gl/core": "4.2.0-alpha.3",
43
- "@math.gl/culling": "4.2.0-alpha.3",
44
- "@math.gl/types": "4.2.0-alpha.3"
42
+ "@math.gl/core": "4.2.0-alpha.6",
43
+ "@math.gl/culling": "4.2.0-alpha.6",
44
+ "@math.gl/types": "4.2.0-alpha.6"
45
45
  },
46
- "gitHead": "4238aa95fb38da43a65c6e5f2b8343a875666d92"
46
+ "gitHead": "b1d477a0afa7033ce6ac837bb4c811b425e99566"
47
47
  }