

Private Member Functions | |
| Point3d | computePosition (double jd) const |
| double | getBoundingRadius () const |
| double | getPeriod () const |
|
|
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 }
|
|
|
Implements CachingOrbit. Definition at line 1350 of file customorbit.cpp. References BoundingRadiusSlack. 01351 {
01352 return 9380 * BoundingRadiusSlack;
01353 }
|
|
|
Implements CachingOrbit. Definition at line 1345 of file customorbit.cpp. 01346 {
01347 return 0.319;
01348 }
|
1.4.1