|
|
|
|
@ -104,9 +104,13 @@ orbitGetElementsFromStateVectors(glm::dvec3 r, glm::dvec3 v, double mu)
|
|
|
|
|
if (ecc_v.z < 0) el.omega = 2 * M_PI - el.omega; // quadrant check
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// FIXME: el.e == 0 would be undefined here
|
|
|
|
|
double cos_theta = glm::dot(r, ecc_v) / (el.e * r_mag); |
|
|
|
|
el.nu= acos(cos_theta); |
|
|
|
|
if (el.e == 0) { |
|
|
|
|
el.nu = 0; |
|
|
|
|
} else { |
|
|
|
|
double cos_theta = glm::dot(r, ecc_v) / (el.e * r_mag); |
|
|
|
|
el.nu= acos(cos_theta); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// FIXME: breaks test case
|
|
|
|
|
//if (glm::dot(r, v) < 0) el.nu *= -1; //quadrant check
|
|
|
|
|
if (glm::dot(r, v) < 0) el.nu = 2 * M_PI - el.nu; //quadrant check
|
|
|
|
|
|