orbital-engine
    Preparing search index...

    Function computeVisibleBodyIds

    • Which bodies actually render/are selectable at the current zoom — pure so both the render loop (OrbitalSystemScene.tsx's SceneContent) and the bubble-cursor proximity hit-test (proximitySelection.ts) work from exactly the same notion of "visible": a body that isn't drawn must never be a selectable proximity target either, or the cursor could "snap" to something invisible with no way to tell what just got selected.

      This is the count-and-rank half of the visibility system; screen-space proximity thinning (two of these still overlapping on screen right now) is a separate, per-frame pass — see thinByScreenProximity in labelDeclutter.ts, applied by OrbitalSystemScene's ProximitySelector on top of whatever this function returns.

      Parameters

      • system: StarSystemData
      • cameraDistance: number
      • selectedId: string | null
      • maxSecondary: number = MAX_VISIBLE_SECONDARY

      Returns Set<string>