|
|
|
|
@ -15,18 +15,28 @@ struct ellipse_parameters
|
|
|
|
|
double e; // NOTE: eccentricity
|
|
|
|
|
double c; // NOTE: linear eccentricity
|
|
|
|
|
double p; // NOTE: semilatus rectum
|
|
|
|
|
// FIXME: these should be swapped so f1 is primary focus
|
|
|
|
|
glm::vec2 f1; // NOTE: 'vacant' focus
|
|
|
|
|
glm::vec2 f2; // NOTE: 'primary' focus
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
struct orbital_elements |
|
|
|
|
{ |
|
|
|
|
// NOTE: classical orbital elements
|
|
|
|
|
// TODO: would be better to have a higher level composite object so we
|
|
|
|
|
// don't have to store this twice
|
|
|
|
|
ellipse_parameters ep; |
|
|
|
|
// semimajor axis, a
|
|
|
|
|
// eccentricity, e
|
|
|
|
|
double iota; // NOTE: (ι) inclination
|
|
|
|
|
double omega; // NOTE: (ω) argument of periapsis
|
|
|
|
|
double mu; // NOTE: (μ) gravitational parameter
|
|
|
|
|
double nu; // NOTE: (ν) true anomaly
|
|
|
|
|
// longitude of the ascending node, Ω
|
|
|
|
|
// argument of periapsis, ω
|
|
|
|
|
// true anomaly at epoch, θ0
|
|
|
|
|
|
|
|
|
|
#if 1 |
|
|
|
|
double mu; // NOTE: (μ) gravitational parameter
|
|
|
|
|
double epsilon; // NOTE: (ε) specific orbital energy, MJ/kg
|
|
|
|
|
double h; // NOTE: angular momentum
|
|
|
|
|
|
|
|
|
|
|