Skip to content
Commit 246bbaf9 authored by Akarsh Simha's avatar Akarsh Simha
Browse files

Fix the issue with rise / set / transit times of Jupiter's Moons

Jupiters Moons are TrailObjects, and so riseSetTimeUT() calls
SkyPoint::updateCoords() -- the "vanilla" update of coordinates that
doesn't account for the motion of the planets.

Thus, one would have expected at least approximate rise/set times for
Jupiter moons to be displayed -- treating them as if they were objects
with fixed catalog RA0 / Dec0. However, we were displaying something
way off.

This is because we were setting current (RA, Dec) of the moons from
JupiterMoons::findPosition(), but we were not setting the "catalog"
(RA0, Dec0). Thereafter, SkyPoint::updateCoords() would happily call
precess() when it detected a sufficient change in JD, overwriting the
calculated (RA, Dec) with some junk that comes from precessing a junk
values of (RA0, Dec0) to the current epoch.

This patch calls SkyPoint::deprecess() to convert that (RA, Dec)
calculated in JupiterMoons::findPosition() to (RA0, Dec0) and resets
it appropriately, so that when SkyPoint::updateCoords() is called, it
writes out the (RA, Dec) computed back from this (RA0, Dec0), and not
some junk.

However, this is not perfectly accurate. For one, it seems like we
don't de-nutate. Besides, it looks like we never aberrate (is
aberration even relevant to planets?). So assuming that the nutation
and aberration are small enough, this yields a solution that's not
terribly off from what it should actually be.

Besides, we should actually be updating Jupiters' moons' rise / set
times as though they were planets, not as though they were generic
sky-points with fixed (RA0, Dec0). They would certainly move quite a
bit in the order of hours, so we should ideally implement a PlanetMoon
and JupiterMoon class and have a PlanetMoon::updateCoords(), even if
all it does is call JupiterMoons::findPosition().

CCMAIL: kstars-devel@kde.org

BUG: 340946
parent 05b9b797
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment