

Private Member Functions | |
| Point3d | computePosition (double jd) const |
| double | getBoundingRadius () const |
| double | getPeriod () const |
|
|
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 }
|
|
|
Implements CachingOrbit. Definition at line 1486 of file customorbit.cpp. References BoundingRadiusSlack. 01487 {
01488 return 23462 * BoundingRadiusSlack;
01489 }
|
|
|
Implements CachingOrbit. Definition at line 1481 of file customorbit.cpp. 01482 {
01483 return 1.262441;
01484 }
|
1.4.1