mirror of
https://github.com/bilawalsidhu/gods-eye-view.git
synced 2026-11-11 13:52:19 +00:00
fix(street-level): own the framing flight and the nearest-photo lookup
From the IC8 review of #768, each with tests that fail before: - P1: closing a photo, switching the layer off or destroying it stops the 1.6 s framing flight toward that photo. The flight is claimed with a token before flyToBoundingSphere and released by its complete/cancel callbacks, so cancelFraming() calls camera.cancelFlight() only while the flight is still Street Level's: a newer navigation flight (a search result, a scene) is never cancelled. Turning FOLLOW on also stops it, so the tween cannot overwrite the follow view. - P2: an older nearest-photo lookup can no longer replace a newer choice. The core owns one AbortController per lookup, aborted by a newer lookup, a direct open or cone click, closing the viewer, disable and destroy; the signal reaches source.nearestImages through the provider, and an aborted lookup never surfaces as an error. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
c2f1b54d00
commit
09fc10756c
8 files changed
+371
-27
No files matched your search
@@ -35,7 +35,7 @@
|
||||
* @property {(sequenceId: string) => Promise<void>} [selectSequence]
|
||||
* @property {() => void} [clearSequence]
|
||||
* @property {() => {selectedId: string|null, images: number, loading: boolean}} [sequenceStats]
|
||||
* @property {(point: {lat: number, lon: number}) => Promise<string|null>} nearestImage
|
||||
* @property {(point: {lat: number, lon: number}, options?: {signal?: AbortSignal}) => Promise<string|null>} nearestImage An aborted lookup gives up (it may reject with an AbortError).
|
||||
* @property {ViewerAdapter} viewer
|
||||
*
|
||||
* @typedef {object} GroundCaster
|
||||
|
||||
Reference in new issue
Block a user