16 #include "VecMath.hpp" 26 virtual ~
Orbit(
void) {}
40 double argOfPeriapsis,
41 double meanAnomalyAtEpoch,
44 double parentRotObliquity,
45 double parentRotAscendingnode,
46 double parentRotJ2000Longitude
54 void positionAtTimevInVSOP87Coordinates(
const double JDE,
double* v)
const;
57 Vec3d positionAtTime(
const double JDE)
const;
58 double getPeriod()
const;
59 double getBoundingRadius()
const;
64 double eccentricAnomaly(
const double M)
const;
65 Vec3d positionAtE(
const double E)
const;
67 double pericenterDistance;
71 double argOfPeriapsis;
72 double meanAnomalyAtEpoch;
75 double rotateToVsop87[9];
85 double argOfPerhelion,
86 double timeAtPerihelion,
89 double parentRotObliquity,
90 double parentRotAscendingnode,
91 double parentRotJ2000Longitude
95 void positionAtTimevInVSOP87Coordinates(
double JDE,
double* v,
bool updateVelocityVector=
true);
97 bool getUpdateTails()
const {
return updateTails; }
98 void setUpdateTails(
const bool update){ updateTails=update; }
101 double getSemimajorAxis()
const {
return (e==1. ? 0. : q / (1.-e)); }
102 double getEccentricity()
const {
return e; }
103 bool objectDateValid(
const double JDE)
const {
return (fabs(t0-JDE)<orbitGood); }
113 double rotateToVsop87[9];
115 const double orbitGood;
123 virtual void sample(
const Vec3d&) = 0;
155 #endif // _ORBIT_HPP_
Vec3d getVelocity() const
return speed value [AU/d] last computed by positionAtTimevInVSOP87Coordinates(JDE, v, true)