

Private Member Functions | |
| Point3d | computePosition (double jd) const |
| double | getBoundingRadius () const |
| double | getPeriod () const |
|
|
Implements CachingOrbit. Definition at line 2330 of file customorbit.cpp. References ComputeSaturnianElements(), cosD(), cube(), OuterSaturnMoonParams(), SaturnMoonPosition(), sinD(), and square(). 02331 {
02332 // Computation will yield latitude(L), longitude(B) and distance(R)
02333 // relative to Saturn.
02334 double t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11;
02335 double W0, W1, W2, W3, W4, W5, W6, W7, W8;
02336
02337 ComputeSaturnianElements(jd,
02338 t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11,
02339 W0, W1, W2, W3, W4, W5, W6, W7, W8);
02340 double L = 261.1582 + 22.57697855 * t4;
02341 double om_ = 91.796 + 0.562 * t7;
02342 double psi = 4.367 - 0.195 * t7;
02343 double theta = 146.819 - 3.198 * t7;
02344 double phi = 60.470 + 1.521 * t7;
02345 double Phi = 205.055 - 2.091 * t7;
02346 double e_ = 0.028298 + 0.001156 * t11;
02347 double om0 = 352.91 + 11.71 * t11;
02348 double mu = 76.3852 + 4.53795125 * t10;
02349 double i_ = 18.4602 - 0.9518 * t11 - 0.072 * square(t11) +
02350 0.0054 * cube(t11);
02351 double Om_ = 143.198 - 3.919 * t11 + 0.116 * square(t11) +
02352 0.008 * cube(t11);
02353 double l = mu - om0;
02354 double g = om0 - Om_ - psi;
02355 double g1 = om0 - Om_ - phi;
02356 double ls = W5 - om_;
02357 double gs = om_ - theta;
02358 double lT = L - W4;
02359 double gT = W4 - Phi;
02360 double u1 = 2 * (l + g - (ls + gs));
02361 double u2 = l + g1 - (lT + gT);
02362 double u3 = l + 2 * (g - (ls + gs));
02363 double u4 = lT + gT - g1;
02364 double u5 = 2 * (ls + gs);
02365
02366 double a = 58.935028 + 0.004638 * cosD(u1) + 0.058222 * cosD(u2);
02367 double e = e_ -
02368 0.0014097 * cosD(g1 - gT) +
02369 0.0003733 * cosD(u5 - 2 * g) +
02370 0.0001180 * cosD(u3) +
02371 0.0002408 * cosD(l) +
02372 0.0002849 * cosD(l + u2) +
02373 0.0006190 * cosD(u4);
02374 double W = 0.08077 * sinD(g1 - gT) +
02375 0.02139 * sinD(u5 - 2 * g) -
02376 0.00676 * sinD(u3) +
02377 0.01380 * sinD(l) +
02378 0.01632 * sinD(l + u2) +
02379 0.03547 * sinD(u4);
02380 double p = om0 + W / e_;
02381 double lam_ = mu -
02382 0.04299 * sinD(u2) -
02383 0.00789 * sinD(u1) -
02384 0.06312 * sinD(ls) -
02385 0.00295 * sinD(2 * ls) -
02386 0.02231 * sinD(u5) +
02387 0.00650 * sinD(u5 + psi);
02388 double sum = l + g1 + lT + gT + phi;
02389 double i = i_ +
02390 0.04204 * cosD(u5 + psi) +
02391 0.00235 * cosD(sum) +
02392 0.00360 * cosD(u2 + phi);
02393 double w_ = 0.04204 * sinD(u5 + psi) +
02394 0.00235 * sinD(sum) +
02395 0.00358 * sinD(u2 + phi);
02396 double Om = Om_ + w_ / sinD(i_);
02397
02398 double lam, gam, r, w;
02399 OuterSaturnMoonParams(a, e, i, Om, lam_ - p, lam_,
02400 lam, gam, r, w);
02401
02402 return SaturnMoonPosition(lam, gam, w, r);
02403 };
|
|
|
Implements CachingOrbit. Definition at line 2410 of file customorbit.cpp. References BoundingRadiusSlack. 02411 {
02412 return 3660000 * BoundingRadiusSlack;
02413 };
|
|
|
Implements CachingOrbit. Definition at line 2405 of file customorbit.cpp. 02406 {
02407 return 79.330183;
02408 };
|
1.4.1