visibleOrbits

function visibleOrbits
devtools/src/orbitPaths.ts:219
visibleOrbits(all: readonly OrbitPath[], context: OrbitScopeContext) → readonly OrbitPath[]

Thin every trace in the loaded systems down to the ones that are context.

A pure function, and that is the point rather than tidiness. It lived inside GameEngine.#maybeTraceOrbits, reachable only through the frame loop, so the one thing it does — turn a hundred and twenty-nine lines into eight — had no test at all, and neither did the rebuild key that decides whether it is re-run. Both failures are silent: drop the scope from the key and the View panel's switch appears dead until the reader navigates away and back, and lint, typecheck and the whole suite stay green.

The rule itself: a subject's siblings and the things going round it, and rubble is not context. That was unambiguous when a star's children were eight planets. Sol has sixty-seven, fifty-nine of them asteroids and comets, and drawn together they are a cage with the subject somewhere behind it — measured by looking at Bennu, which was a dark shape inside a wireframe. So a small body's orbit is drawn when it is the subject or goes round it, and not merely because it shares a primary.

The nine dwarf planets stay: isDebris is asteroids and comets only, and hiding Pluto costs the one trace a planetarium is most often opened for — with Neptune selected, where the two orbits cross.

scope: 'all' is the deliberate way to ask for the cage. From outside a system it is the picture, the whole architecture of the place at once; from inside it is a fan of edge-on lines. Which is why it is a switch a reader throws rather than the default.

allreadonly OrbitPath[]
Undocumented
contextOrbitScopeContext
Undocumented
Returnsreadonly OrbitPath[]