15 #include "VecMath.hpp"
25 virtual ~
Orbit(
void) {}
39 double argOfPeriapsis,
40 double meanAnomalyAtEpoch,
43 double parentRotObliquity,
44 double parentRotAscendingnode,
45 double parentRotJ2000Longitude
53 void positionAtTimevInVSOP87Coordinates(
double JD,
double* v)
const;
56 Vec3d positionAtTime(
double)
const;
57 double getPeriod()
const;
58 double getBoundingRadius()
const;
62 double eccentricAnomaly(
double)
const;
63 Vec3d positionAtE(
double)
const;
65 double pericenterDistance;
69 double argOfPeriapsis;
70 double meanAnomalyAtEpoch;
73 double rotateToVsop87[9];
83 double argOfPerhelion,
84 double timeAtPerihelion,
86 double parentRotObliquity,
87 double parentRotAscendingnode,
88 double parentRotJ2000Longitude);
91 void positionAtTimevInVSOP87Coordinates(
double JD,
double* v)
const;
100 double rotateToVsop87[9];
108 virtual void sample(
const Vec3d&) = 0;
124 virtual Vec3d computePosition(
double jd)
const = 0;
125 virtual double getPeriod()
const = 0;
126 virtual double getBoundingRadius()
const = 0;
128 Vec3d positionAtTime(
double jd)
const;
133 mutable Vec3d lastPosition;
134 mutable double lastTime;
139 #endif // _ORBIT_HPP_