Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

IapetusOrbit Class Reference

Inheritance diagram for IapetusOrbit:

Inheritance graph
Collaboration diagram for IapetusOrbit:

Collaboration graph
List of all members.

Private Member Functions

Point3d computePosition (double jd) const
double getBoundingRadius () const
double getPeriod () const

Member Function Documentation

Point3d IapetusOrbit::computePosition double  jd  )  const [inline, private, virtual]
 

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     };

double IapetusOrbit::getBoundingRadius  )  const [inline, private, virtual]
 

Implements CachingOrbit.

Definition at line 2410 of file customorbit.cpp.

References BoundingRadiusSlack.

02411     {
02412         return 3660000 * BoundingRadiusSlack;
02413     };

double IapetusOrbit::getPeriod  )  const [inline, private, virtual]
 

Implements CachingOrbit.

Definition at line 2405 of file customorbit.cpp.

02406     {
02407         return 79.330183;
02408     };


The documentation for this class was generated from the following file:
Generated on Sat Jan 14 22:33:22 2006 for Celestia by  doxygen 1.4.1