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

PhobosOrbit Class Reference

Inheritance diagram for PhobosOrbit:

Inheritance graph
Collaboration diagram for PhobosOrbit:

Collaboration graph
List of all members.

Private Member Functions

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

Member Function Documentation

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

Implements CachingOrbit.

Definition at line 1293 of file customorbit.cpp.

References degToRad(), ellipsePosition(), N, Matrix3< T >::xrotation(), and Matrix3< T >::yrotation().

01294     {
01295         double epoch = 2433283.0 - 0.5; // 00:00 1 Jan 1950
01296         double a     = 9380.0;
01297         double e     = 0.0151;
01298         double w0    = 150.247;
01299         double M0    =  92.474;
01300         double i     =   1.075;
01301         double node0 = 164.931;
01302         double n     = 1128.8444155;
01303         double Pw    =  1.131;
01304         double Pnode =  2.262;
01305 
01306         double refplane_RA  = 317.724;
01307         double refplane_Dec =  52.924;
01308         double marspole_RA  = 317.681;
01309         double marspole_Dec =  52.886;
01310 
01311         double t = jd - epoch;
01312         t += 10.5 / 1440.0;     // light time correction?
01313         double T = t / 365.25;
01314 
01315         double dnode = 360.0 / Pnode;
01316         double dw    = 360.0 / Pw;
01317         double node = degToRad(node0 + T * dnode);
01318         double w    = degToRad(w0 + T * dw - T * dnode);
01319         double M    = degToRad(M0 + t * n  - T * dw);
01320 
01321         Point3d p = ellipsePosition(a, e, M);
01322 
01323         // Orientation of the orbital plane with respect to the Laplacian plane
01324         Mat3d Rorbit     = (Mat3d::yrotation(node) *
01325                             Mat3d::xrotation(degToRad(i)) *
01326                             Mat3d::yrotation(w));
01327 
01328         // Rotate to the Earth's equatorial plane
01329         double N = degToRad(refplane_RA);
01330         double J = degToRad(90 - refplane_Dec);
01331         Mat3d RLaplacian = (Mat3d::yrotation( N) *
01332                             Mat3d::xrotation( J) *
01333                             Mat3d::yrotation(-N));
01334 
01335         // Rotate to the Martian equatorial plane
01336         N = degToRad(marspole_RA);
01337         J = degToRad(90 - marspole_Dec);
01338         Mat3d RMars_eq   = (Mat3d::yrotation( N) *
01339                             Mat3d::xrotation(-J) *
01340                             Mat3d::yrotation(-N));
01341 
01342         return RMars_eq * (RLaplacian * (Rorbit * p));
01343     }

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

Implements CachingOrbit.

Definition at line 1350 of file customorbit.cpp.

References BoundingRadiusSlack.

01351     {
01352         return 9380 * BoundingRadiusSlack;
01353     }

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

Implements CachingOrbit.

Definition at line 1345 of file customorbit.cpp.

01346     {
01347         return 0.319;
01348     }


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