ui/map/aircraft/Aircraft3DTransforms¶
Classes¶
Aircraft3DTransforms¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:63
Aircraft3DTransforms - scene-origin management and mesh/camera transform math for the 3D aircraft layer, extracted from Aircraft3DCustomLayer.
Owns the moving scene origin (mercator mode positions meshes in meters relative to it), the globe origin rebasing that keeps mesh translations small enough for float32, and the per-frame camera projection updates for both projection modes.
Constructors¶
Constructor¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:74
Parameters¶
deps¶
Returns¶
Methods¶
updateSceneOrigin()¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:86
Initialize or update scene origin based on aircraft positions. Returns true when the origin was repositioned, in which case the caller must re-apply mercator transforms to existing meshes.
Invalid records (NaN or out-of-range lat/lon — BlueSky delivers these, e.g. after a MOVE beyond lat 90) are ignored, mirroring the per-aircraft guard in the renderers. A poisoned origin would make MercatorCoordinate.fromLngLat throw on every mesh and camera update.
Parameters¶
aircraftData¶
Returns¶
boolean
updateMeshTransform()¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:240
Update mesh position, rotation, and scale using relative positioning Used when scene-based transform is active (mercator mode)
Parameters¶
mesh¶
Object3D
data¶
Returns¶
void
updateMeshTransformForGlobe()¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:263
Update mesh for globe projection using individual projection-aware transforms
Parameters¶
mesh¶
Object3D
data¶
Returns¶
void
applyGlobeCamera()¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:333
Per-frame camera projection for globe mode: folds the shared origin matrix into the projection in double precision so the GPU only sees small mesh translations (large ones collapse into float32 artifacts).
Parameters¶
args¶
Returns¶
void
applyMercatorCamera()¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:358
Per-frame camera projection for mercator mode. A no-op before a scene origin exists (no meshes exist then either; the default mainMatrix projection set in render() stays in effect).
Parameters¶
args¶
Returns¶
void
Interfaces¶
AircraftMeshData¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:20
Simplified aircraft data for 3D rendering
Properties¶
lat¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:21
lon¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:22
alt¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:23
hdg¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:24
actype¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:25
Aircraft3DTransformsDeps¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:33
Everything the transform math needs from the owning custom layer. Map and camera are fetched through getters because they only exist once MapLibre has called the layer's onAdd.
Properties¶
getMap¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:34
Returns¶
Map$1 | null
getCamera¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:35
Returns¶
Camera
getDisplayOptions¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:36
Returns¶
createFallbackMatrix¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:41
Mercator fallback matrix builder (CustomLayer3D.createTransformMatrix): (lng, lat, altitude, headingRad, pitchRad, rollRad, scale).
Parameters¶
lng¶
number
lat¶
number
altitude¶
number
heading¶
number
pitch¶
number
roll¶
number
scale¶
number
Returns¶
Matrix4
stateManager¶
Defined in: ui/map/aircraft/Aircraft3DTransforms.ts:51
Source of per-aircraft scale overrides; null in tests.