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

CallistoOrbit Class Reference

Inheritance diagram for CallistoOrbit:

Inheritance graph
Collaboration diagram for CallistoOrbit:

Collaboration graph
List of all members.

Private Member Functions

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

Member Function Documentation

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

Implements CachingOrbit.

Definition at line 1757 of file customorbit.cpp.

References B, ComputeGalileanElements(), cos(), degToRad(), JupAscendingNode, JupiterRadius, LPEJ, pfmod(), PI, and sin().

01758     {
01759     //Computation will yield latitude(L), longitude(B) and distance(R) relative to Jupiter
01760     double t;
01761     double l1, l2, l3, l4;
01762     double p1, p2, p3, p4;
01763     double w1, w2, w3, w4;
01764     double gamma, phi, psi, G, Gp;
01765     double sigma, L, B, R;
01766     double T, P;
01767 
01768     //Epoch for Galilean satellites is 1976 Aug 10
01769     t = jd - 2443000.5;
01770 
01771     ComputeGalileanElements(t,
01772                             l1, l2, l3, l4,
01773                             p1, p2, p3, p4,
01774                             w1, w2, w3, w4,
01775                             gamma, phi, psi, G, Gp);
01776 
01777     //Calculate periodic terms for longitude
01778     sigma =
01779         0.84287*sin(l4 - p4)
01780         + 0.03431*sin(p4 - p3)
01781         - 0.03305*sin(2*(psi - LPEJ))
01782         - 0.03211*sin(G)
01783         - 0.01862*sin(l4 - p3)
01784         + 0.01186*sin(psi - w4)
01785         + 6.23e-3*sin(l4 + p4 - 2*G - 2*LPEJ)
01786         + 3.87e-3*sin(2*(l4 - p4))
01787         - 2.84e-3*sin(5*Gp - 2*G + 0.9115)
01788         - 2.34e-3*sin(2*(psi - p4))
01789         - 2.23e-3*sin(l3 - l4)
01790         - 2.08e-3*sin(l4 - LPEJ)
01791         + 1.78e-3*sin(psi + w4 - 2*p4)
01792         + 1.34e-3*sin(p4 - LPEJ)
01793         + 1.25e-3*sin(2*(l4 - G - LPEJ))
01794         - 1.17e-3*sin(2*G)
01795         - 1.12e-3*sin(2*(l3 - l4))
01796         + 1.07e-3*sin(3*l3 - 7*l4 + 4*p4)
01797         + 1.02e-3*sin(l4 - G - LPEJ)
01798         + 9.6e-4*sin(2*l4 - psi - w4)
01799         + 8.7e-4*sin(2*(psi - w4))
01800         - 8.5e-4*sin(3*l3 - 7*l4 + p3 + 3*p4)
01801         + 8.5e-4*sin(l3 - 2*l4 + p4)
01802         - 8.1e-4*sin(2*(l4 - psi))
01803         + 7.1e-4*sin(l4 + p4 - 2*LPEJ - 3*G)
01804         + 6.1e-4*sin(l1 - l4)
01805         - 5.6e-4*sin(psi - w3)
01806         - 5.4e-4*sin(l3 - 2*l4 + p3)
01807         + 5.1e-4*sin(l2 - l4)
01808         + 4.2e-4*sin(2*(psi - G - LPEJ))
01809         + 3.9e-4*sin(2*(p4 - w4))
01810         + 3.6e-4*sin(psi + LPEJ - p4 - w4)
01811         + 3.5e-4*sin(2*Gp - G + 3.2877)
01812         - 3.5e-4*sin(l4 - p4 + 2*LPEJ - 2*psi)
01813         - 3.2e-4*sin(l4 + p4 - 2*LPEJ - G)
01814         + 3.0e-4*sin(2*Gp - 2*G + 2.6032)
01815         + 2.9e-4*sin(3*l3 - 7*l4 + 2*p3 + 2*p4)
01816         + 2.8e-4*sin(l4 - p4 + 2*psi - 2*LPEJ)
01817         - 2.8e-4*sin(2*(l4 - w4))
01818         - 2.7e-4*sin(p3 - p4 + w3 - w4)
01819         - 2.6e-4*sin(5*Gp - 3*G + 3.2877)
01820         + 2.5e-4*sin(w4 - w3)
01821         - 2.5e-4*sin(l2 - 3*l3 + 2*l4)
01822         - 2.3e-4*sin(3*(l3 - l4))
01823         + 2.1e-4*sin(2*l4 - 2*LPEJ - 3*G)
01824         - 2.1e-4*sin(2*l3 - 3*l4 + p4)
01825         + 1.9e-4*sin(l4 - p4 - G)
01826         - 1.9e-4*sin(2*l4 - p3 - p4)
01827         - 1.8e-4*sin(l4 - p4 + G)
01828         - 1.6e-4*sin(l4 + p3 - 2*LPEJ - 2*G);
01829     sigma = pfmod(sigma, 360.0);
01830     sigma = degToRad(sigma);
01831     L = l4 + sigma;
01832 
01833     //Calculate periodic terms for the tangent of the latitude
01834     B =
01835         - 7.6579e-3 * sin(L - psi)
01836         + 4.4134e-3 * sin(L - w4)
01837         - 5.112e-4  * sin(L - w3)
01838         + 7.73e-5   * sin(L + psi - 2*LPEJ - 2*G)
01839         + 1.04e-5   * sin(L - psi + G)
01840         - 1.02e-5   * sin(L - psi - G)
01841         + 8.8e-6    * sin(L + psi - 2*LPEJ - 3*G)
01842         - 3.8e-6    * sin(L + psi - 2*LPEJ - G);
01843     B = atan(B);
01844 
01845     //Calculate the periodic terms for distance
01846     R =
01847         - 7.3546e-3 * cos(l4 - p4)
01848         + 1.621e-4  * cos(l4 - p3)
01849         + 9.74e-5   * cos(l3 - l4)
01850         - 5.43e-5   * cos(l4 + p4 - 2*LPEJ - 2*G)
01851         - 2.71e-5   * cos(2*(l4 - p4))
01852         + 1.82e-5   * cos(l4 - LPEJ)
01853         + 1.77e-5   * cos(2*(l3 - l4))
01854         - 1.67e-5   * cos(2*l4 - psi - w4)
01855         + 1.67e-5   * cos(psi - w4)
01856         - 1.55e-5   * cos(2*(l4 - LPEJ - G))
01857         + 1.42e-5   * cos(2*(l4 - psi))
01858         + 1.05e-5   * cos(l1 - l4)
01859         + 9.2e-6    * cos(l2 - l4)
01860         - 8.9e-6    * cos(l4 - LPEJ -G)
01861         - 6.2e-6    * cos(l4 + p4 - 2*LPEJ - 3*G)
01862         + 4.8e-6    * cos(2*(l4 - w4));
01863     
01864     R = 26.36273 * JupiterRadius * (1 + R);
01865 
01866     T = (jd - 2433282.423) / 36525.0;
01867     P = 1.3966626*T + 3.088e-4*T*T;
01868     L += degToRad(P);
01869 
01870     L += JupAscendingNode;
01871 
01872     //Corrections for internal coordinate system
01873     B -= (PI/2);
01874     L += PI;
01875 
01876     return Point3d(cos(L) * sin(B) * R,
01877                    cos(B) * R,
01878                    -sin(L) * sin(B) * R);
01879     };

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

Implements CachingOrbit.

Definition at line 1886 of file customorbit.cpp.

References BoundingRadiusSlack.

01887     {
01888         return 1890000 * BoundingRadiusSlack;
01889     };

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

Implements CachingOrbit.

Definition at line 1881 of file customorbit.cpp.

01882     {
01883         return 16.689018;
01884     };


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