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

DeimosOrbit Class Reference

Inheritance diagram for DeimosOrbit:

Inheritance graph
Collaboration diagram for DeimosOrbit:

Collaboration graph
List of all members.

Private Member Functions

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

Member Function Documentation

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

Implements CachingOrbit.

Definition at line 1359 of file customorbit.cpp.

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

01360     {
01361         double epoch = 2433283.0 - 0.5;
01362         double a     = 23460.0;
01363         double e     = 0.0002;
01364         double w0    = 290.496;
01365         double M0    = 296.230;
01366         double i     = 1.793;
01367         double node0 = 339.600;
01368         double n     = 285.1618919;
01369         double Pw    = 26.892;
01370         double Pnode = 54.536;
01371 
01372         double refplane_RA  = 316.700;
01373         double refplane_Dec =  53.564;
01374         double marspole_RA  = 317.681;
01375         double marspole_Dec =  52.886;
01376 
01377         double t = jd - epoch;
01378         t += 10.5 / 1440.0;     // light time correction?
01379         double T = t / 365.25;
01380 
01381         double dnode = 360.0 / Pnode;
01382         double dw    = 360.0 / Pw;
01383         double node = degToRad(node0 + T * dnode);
01384         double w    = degToRad(w0 + T * dw - T * dnode);
01385         double M    = degToRad(M0 + t * n  - T * dw);
01386 
01387         Point3d p = ellipsePosition(a, e, M);
01388 
01389         // Orientation of the orbital plane with respect to the Laplacian plane
01390         Mat3d Rorbit     = (Mat3d::yrotation(node) *
01391                             Mat3d::xrotation(degToRad(i)) *
01392                             Mat3d::yrotation(w));
01393 
01394         // Rotate to the Earth's equatorial plane
01395         double N = degToRad(refplane_RA);
01396         double J = degToRad(90 - refplane_Dec);
01397         Mat3d RLaplacian = (Mat3d::yrotation( N) *
01398                             Mat3d::xrotation( J) *
01399                             Mat3d::yrotation(-N));
01400 
01401         // Rotate to the Martian equatorial plane
01402         N = degToRad(marspole_RA);
01403         J = degToRad(90 - marspole_Dec);
01404         Mat3d RMars_eq   = (Mat3d::yrotation( N) *
01405                             Mat3d::xrotation(-J) *
01406                             Mat3d::yrotation(-N));
01407 
01408         return RMars_eq * (RLaplacian * (Rorbit * p));
01409     }

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

Implements CachingOrbit.

Definition at line 1486 of file customorbit.cpp.

References BoundingRadiusSlack.

01487     {
01488         return 23462 * BoundingRadiusSlack;
01489     }

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

Implements CachingOrbit.

Definition at line 1481 of file customorbit.cpp.

01482     {
01483         return 1.262441;
01484     }


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