fix(camera): run a recovery check a scene deferred once it ends

A check skipped because a flight or a playing Director scene was in
progress used to be dropped, so a run that ended or held on a stars-only
shot stayed there until the next camera move. Keep watching instead:
the settle check retries once the flight or scene ends, within its
existing five-minute bound, and a moveEnd that arrives while it is
deferred keeps the check armed rather than stopping it.

Also test that the free-look limit never raises Cesium's trackball
height and that dispose keeps a value set after install, note in its
JSDoc the enableLook case it cannot tell apart, and document the
trackball change and the retry in CURRENT-STATE and the changelog.
This commit is contained in:
Manjunath committed 2026-11-05 14:36:10 +05:30
1 parent 2f9d13f39d
commit 29935cc094
4 files changed
+76 -31

No files matched your search

+17 -15
View File
@@ -67,10 +67,11 @@ the real browser controller at desktop and phone widths with keyless fixtures.
Cesium's free look (Shift+drag, which turns the camera in place) works only
below 1,000 km. Above that height a few drags could turn the whole planet out of
frame and leave only stars, so Shift+drag does nothing there. Cesium also
turns the camera in place for a drag that starts on the stars below its
trackball height (7,500 km by default); that height is lowered to 1,000 km, so
such a drag orbits the globe above it, as it does higher up. Orbit, tilt and
frame and leave only stars, so Shift+drag does nothing there. Cesium also turns
the camera in place for a drag that starts on the stars below its trackball
height (7,500 km by default); that height is lowered to 1,000 km, so such a drag
orbits the globe above it, as it does higher up, and a tilt drag from the stars
there tilts about the planet's edge or does nothing. Otherwise orbit, tilt and
zoom are unchanged at every height. How much of the frame shows the planet's
surface is measured by casting a 32×18 grid of view rays at the ellipsoid; while
the scope mask is on (the default) only the rays inside its keyhole count, since
@@ -97,17 +98,18 @@ rounding error every frame and Cesium never sees it stop. That check keeps
watching until move-end arrives, recovering once after each move that comes to
rest, and gives up five minutes after the camera last moved. Limb glow, and a
surface sliver up to about one grid cell thick (some 50 px on a 900 px tall
frame), can count as out of view. The zoom-out guard above keeps wheel and
pinch zoom-outs in view; this catches the other ways a move can end looking
away, such as a saved or shared view that did.
Views with more surface than that, such as the oblique orbital Director shots,
are left as they are, and so are tracked or locked cameras, a camera flight in
progress, a Director scene while it plays (holds included) and the 2D and
Columbus modes. A view that loses its surface without a camera move (a resize,
or turning the scope on) is left as it is until the next move. A voice turn
requested while the camera is tracked is judged
by the pose voice's release of the follow camera will leave, before that
release, so a refused turn keeps the tracking.
frame), can count as out of view. The zoom-out guard above keeps wheel and pinch
zoom-outs in view; this catches the other ways a move can end looking away, such
as a saved or shared view that did. Views with more surface than that, such as
the oblique orbital Director shots, are left as they are, and so are tracked or
locked cameras, a camera flight in progress, a Director scene while it plays
(holds included) and the 2D and Columbus modes; a check a flight or scene defers
runs once it ends. A Director shot loaded or replayed outside a run is not a
playing scene. A view that loses its surface without a camera move (a resize, or
turning the scope on) is left as it is until the next move. A voice turn
requested while the camera is tracked is judged by the pose voice's release of
the follow camera will leave, before that release, so a refused turn keeps the
tracking.
Analyst region queries resolve unique Natural Earth names offline without
geocoding, so Gold Coast and Ivory Coast name the West African natural regions.