The orbit frame indices to measure for border-lit content: for each target
angle on a BORDER_SAMPLE_STEP_DEG grid spanning the WHOLE ±amplitudeDeg
rock, the captured frame closest to it. Returned sorted, without duplicates.
Frames are captured at amplitudeDeg·sin(2π·i/orbitFrames), i.e. bunched near
the endpoints, so a stride over i would sample angles very unevenly; picking
the nearest frame per target angle spreads the poses over the sweep instead.
Ties go to the lower index, which makes the choice deterministic.
The grid is capped at one target per captured frame — that keeps a smoke run
(GALLERY_ORBIT_FRAMES=4) from asking for more distinct poses than exist, and
makes an absurd stepDeg degrade to "measure every frame" rather than spin.
orbitFrames <= 0 yields no poses.
The orbit frame indices to measure for border-lit content: for each target angle on a BORDER_SAMPLE_STEP_DEG grid spanning the WHOLE ±
amplitudeDegrock, the captured frame closest to it. Returned sorted, without duplicates.Frames are captured at
amplitudeDeg·sin(2π·i/orbitFrames), i.e. bunched near the endpoints, so a stride overiwould sample angles very unevenly; picking the nearest frame per target angle spreads the poses over the sweep instead. Ties go to the lower index, which makes the choice deterministic.The grid is capped at one target per captured frame — that keeps a smoke run (
GALLERY_ORBIT_FRAMES=4) from asking for more distinct poses than exist, and makes an absurdstepDegdegrade to "measure every frame" rather than spin.orbitFrames <= 0yields no poses.