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

TritonOrbit Class Reference

Inheritance diagram for TritonOrbit:

Inheritance graph
Collaboration diagram for TritonOrbit:

Collaboration graph
List of all members.

Private Member Functions

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

Member Function Documentation

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

Implements CachingOrbit.

Definition at line 2638 of file customorbit.cpp.

References cos(), degToRad(), N, p, sin(), Matrix3< T >::xrotation(), and Matrix3< T >::yrotation().

02639     {
02640         // Pole of the fixed reference plane
02641         //double t = jd - 2433282.5;
02642         double epoch = 2433282.5;
02643         double t = jd - epoch;
02644         double T = (jd - 2451545.0) / 36525;
02645         double N = degToRad(359.28 + 54.308 * T);
02646         double refplane_RA  = degToRad(298.72 +
02647                                        2.58 * sin(N) - 0.04 * sin(2 * N));
02648         double refplane_Dec = degToRad(42.63 -
02649                                        1.90 * cos(N) - 0.01 * cos(2 * N));
02650         double nepPole_RA = degToRad(299.36);
02651         double nepPole_Dec = degToRad(43.46);
02652 
02653         double a = 354800;
02654         double e = 0.0000;
02655         double n = degToRad(61.2588532);
02656         double L0 = degToRad(200.913);
02657         double L  = L0 + n * t;
02658         double gamma = degToRad(158.996);
02659         double theta = degToRad(151.401 + 0.57806 * t / 365.25);
02660 
02661         double E = L - theta;
02662         Point3d p(a * cos(E), 0.0, a * -sin(E));
02663 
02664         // Orientation of the orbital plane with respect to the Laplacian plane
02665         Mat3d Rorbit     = (Mat3d::yrotation(theta) *
02666                             Mat3d::xrotation(gamma));
02667 
02668         // Rotate to the Earth's equatorial plane
02669         double Nr = degToRad(refplane_RA);
02670         double Jr = degToRad(90 - refplane_Dec);
02671         Mat3d Rrefplane = (Mat3d::yrotation( Nr) *
02672                            Mat3d::xrotation( Jr) *
02673                            Mat3d::yrotation(-Nr));
02674 
02675         // Rotate to the Neptunian equatorial plane
02676         double Nn = degToRad(nepPole_RA);
02677         double Jn = degToRad(90 - nepPole_Dec);
02678         Mat3d RNept_eq   = (Mat3d::yrotation( Nn) *
02679                             Mat3d::xrotation(-Jn) *
02680                             Mat3d::yrotation(-Nn));
02681 
02682         return RNept_eq * (Rrefplane * (Rorbit * p));
02683     }

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

Implements CachingOrbit.

Definition at line 2690 of file customorbit.cpp.

References BoundingRadiusSlack.

02691     {
02692         return 354800 * BoundingRadiusSlack;
02693     }

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

Implements CachingOrbit.

Definition at line 2685 of file customorbit.cpp.

02686     {
02687         return 5.877;
02688     }


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