|
| KeplerOrbit (double epochJDE, double pericenterDistance, double eccentricity, double inclination, double ascendingNode, double argOfPerhelion, double timeAtPerihelion, double orbitGoodDays, double meanMotion, double parentRotObliquity, double parentRotAscendingnode, double parentRotJ2000Longitude, double centralMass=1.0) |
| Constructor. More...
|
|
void | positionAtTimevInVSOP87Coordinates (double JDE, double *v) override |
| Compute the object position for a specified Julian day. More...
|
|
void | positionAtMeanAnomalyInVSOP87Coordinates (const double meanAnomaly, double *v) |
| Compute the object position for a specified mean anomaly. More...
|
|
double | eccentricAnomaly (double M) |
| Compute eccentric anomaly E from mean anomaly M. [radians].
|
|
void | positionAtEccentricAnomalyInVSOP87Coordinates (const double E, double *v) |
| Compute the object position for a specified eccentric anomaly. More...
|
|
bool | getUpdateTails () const |
| updating comet tails is a bit expensive. try not to overdo it.
|
|
void | setUpdateTails (const bool update) |
|
Vec3d | getVelocity () const override |
| return speed value [AU/d] last computed by positionAtTimevInVSOP87Coordinates(JDE, v)
|
|
void | getVelocity (double *vel) const override |
| write speed value [AU/d] into first 3 elements of vel. (zero in the base class)
|
|
double | getSemimajorAxis () const override |
| Returns semimajor axis [AU] for elliptic orbit, 0 for a parabolic orbit, and a negative value [AU] for hyperbolic orbit.
|
|
double | getEccentricity () const override |
| return orbit eccentricity. (zero in the base class)
|
|
double | meanAnomaly (const double JDE) const |
| Return mean anomaly M for JDE (or W, in case of parabolae)
|
|
bool | objectDateValid (const double JDE) const |
| return whether a position returned for JDE can be regarded accurate enough for telescope use. More...
|
|
bool | objectDateGoodEnoughForOrbits (const double JDE) const |
| return whether a position returned for JDE would be good enough for at least plotting the orbit. More...
|
|
Vec2d | objectDateValidRange (const bool strict) const |
| Return minimal and maximal JDE values where this orbit should be used. More...
|
|
double | calculateSiderealPeriod () const |
| Calculate sidereal period in days from semi-major axis and central mass. If SMA<=0 (hyperbolic orbit), return 0.
|
|
double | getEpochJDE () const |
|
double | getOrbitGood () const |
|
void | setParentOrientation (const double parentRotObliquity, const double parentRotAscendingNode, const double parentRotJ2000Longitude) |
| For planet moons which have orbits given in relation to their parent planet's equator. More...
|
|
KeplerOrbit describes an undisturbed orbit in a two-body system.
This is used for minor bodies orbiting the sun, but also for planet moons. Orbital elements are considered valid for a relatively short time span (orbitGood) around epoch only and should be updated periodically, because the other planets perturbate the orbiting bodies. To avoid using outdated elements, the KeplerOrbit object can be queried using objectDateValid(JDE) whether it makes sense to assume the retrieved positions are close enough to reality to find the object in a telescope. Another test is objectDateGoodEnoughForOrbits(JDE), which test a bit more relaxed, for the sake of retrieving positions for graphics.
- Note
- This class was called CometOrbit previously, but was now recombined with the former EllipticalOrbit class. They did almost the same.
-
Algorithms from:
- Meeus: Astronomical Algorithms 1998
- Heafner: Fundamental Ephemeris Computations 1999