

Private Member Functions | |
| Point3d | computePosition (double jd) const |
| double | getBoundingRadius () const |
| double | getPeriod () const |
|
|
Implements CachingOrbit. Definition at line 1498 of file customorbit.cpp. References B, ComputeGalileanElements(), cos(), degToRad(), JupAscendingNode, JupiterRadius, LPEJ, pfmod(), PI, and sin(). 01499 {
01500 //Computation will yield latitude(L), longitude(B) and distance(R) relative to Jupiter
01501 double t;
01502 double l1, l2, l3, l4;
01503 double p1, p2, p3, p4;
01504 double w1, w2, w3, w4;
01505 double gamma, phi, psi, G, Gp;
01506 double sigma, L, B, R;
01507 double T, P;
01508
01509 // Epoch for Galilean satellites is 1976.0 Aug 10
01510 t = jd - 2443000.5;
01511
01512 ComputeGalileanElements(t,
01513 l1, l2, l3, l4,
01514 p1, p2, p3, p4,
01515 w1, w2, w3, w4,
01516 gamma, phi, psi, G, Gp);
01517
01518 // Calculate periodic terms for longitude
01519 sigma = 0.47259*sin(2*(l1 - l2)) - 0.03478*sin(p3 - p4)
01520 + 0.01081*sin(l2 - 2*l3 + p3) + 7.38e-3*sin(phi)
01521 + 7.13e-3*sin(l2 - 2*l3 + p2) - 6.74e-3*sin(p1 + p3 - 2*LPEJ - 2*G)
01522 + 6.66e-3*sin(l2 - 2*l3 + p4) + 4.45e-3*sin(l1 - p3)
01523 - 3.54e-3*sin(l1 - l2) - 3.17e-3*sin(2*(psi - LPEJ))
01524 + 2.65e-3*sin(l1 - p4) - 1.86e-3*sin(G)
01525 + 1.62e-3*sin(p2 - p3) + 1.58e-3*sin(4*(l1 - l2))
01526 - 1.55e-3*sin(l1 - l3) - 1.38e-3*sin(psi + w3 - 2*LPEJ - 2*G)
01527 - 1.15e-3*sin(2*(l1 - 2*l2 + w2)) + 8.9e-4*sin(p2 - p4)
01528 + 8.5e-4*sin(l1 + p3 - 2*LPEJ - 2*G) + 8.3e-4*sin(w2 - w3)
01529 + 5.3e-4*sin(psi - w2);
01530 sigma = pfmod(sigma, 360.0);
01531 sigma = degToRad(sigma);
01532 L = l1 + sigma;
01533
01534 // Calculate periodic terms for the tangent of the latitude
01535 B = 6.393e-4*sin(L - w1) + 1.825e-4*sin(L - w2)
01536 + 3.29e-5*sin(L - w3) - 3.11e-5*sin(L - psi)
01537 + 9.3e-6*sin(L - w4) + 7.5e-6*sin(3*L - 4*l2 - 1.9927*sigma + w2)
01538 + 4.6e-6*sin(L + psi - 2*LPEJ - 2*G);
01539 B = atan(B);
01540
01541 // Calculate the periodic terms for distance
01542 R = -4.1339e-3*cos(2*(l1 - l2)) - 3.87e-5*cos(l1 - p3)
01543 - 2.14e-5*cos(l1 - p4) + 1.7e-5*cos(l1 - l2)
01544 - 1.31e-5*cos(4*(l1 - l2)) + 1.06e-5*cos(l1 - l3)
01545 - 6.6e-6*cos(l1 + p3 - 2*LPEJ - 2*G);
01546 R = 5.90569 * JupiterRadius * (1 + R);
01547
01548 T = (jd - 2433282.423) / 36525.0;
01549 P = 1.3966626*T + 3.088e-4*T*T;
01550 L += degToRad(P);
01551
01552 L += JupAscendingNode;
01553
01554 // Corrections for internal coordinate system
01555 B -= (PI/2);
01556 L += PI;
01557
01558 return Point3d(cos(L) * sin(B) * R,
01559 cos(B) * R,
01560 -sin(L) * sin(B) * R);
01561 };
|
|
|
Implements CachingOrbit. Definition at line 1568 of file customorbit.cpp. References BoundingRadiusSlack. 01569 {
01570 return 423329 * BoundingRadiusSlack;
01571 };
|
|
|
Implements CachingOrbit. Definition at line 1563 of file customorbit.cpp. 01564 {
01565 return 1.769138;
01566 };
|
1.4.1