Don’t plot all celestials all the time #3276
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related to #3035.
This uses the hierarchical Keplerian structure of celestials to only plot those that could be visibly separated from their primary at some point along the plotted trajectory.
On a sample 50ish-year trajectory flying by Jupiter and Neptune, looking at the Neptune flyby in Neptune-Sun-Orbit, the framerate goes from 2 to 8 FPS; looking at the Jupiter flyby in Jupiter-Sun-Orbit, from 2 to 4 FPS.
The following table lists the bodies plotted in various situations in RSS, with multi-year trajectories:
(Earth), Moon,
Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa, Ganymede, Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan, Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,Neptune,
Triton,Pluto,
CharonFoV ≈ orbit of Earth
Earth, Moon,
Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa, Ganymede, Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan, Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,Neptune,
Triton,Pluto,
CharonFoV ≈ orbit of Mars
Earth,
Moon,Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa, Ganymede, Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan, Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,Neptune,
Triton,Pluto,
CharonFoV ≈ orbit of Jupiter
Earth,
Moon,Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa,Ganymede, Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan, Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,Neptune,
Triton,Pluto,
CharonFoV ≈ orbit of Saturn
Earth,
Moon,Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa,Ganymede,Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan, Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,Neptune,
Triton,Pluto,
CharonFoV ≈ orbit of Uranus
Earth,
Moon,Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa,Ganymede,Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan,Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,Neptune,
Triton,Pluto,
CharonEarth,
Moon,Mars,
Phobos,Deimos,Vesta, Ceres,
Jupiter,
Io,Europa,Ganymede,Callisto,Saturn,
Mimas,Enceladus,Tethys,Dione,Rhea,Titan, Iapetus,Uranus,
Miranda,Ariel,Umbriel,Titania,Oberon,(Neptune), Triton,
Pluto,
Charon