

Private Member Functions | |
| Point3d | computePosition (double jd) const |
| double | getBoundingRadius () const |
| double | getPeriod () const |
|
|
Implements CachingOrbit. Definition at line 446 of file customorbit.cpp. References computePlanetCoords(), computePlanetElements(), cos(), degToRad(), distance(), gPlanetElements, meanAnomalySun(), PI, and sin(). 00447 {
00448 const int p = 1; //Planet 1
00449 vector<int> pList;
00450 double t;
00451 double map[4], mas;
00452 double dl, dr, dml, ds, dm, da, dhl;
00453 double eclLong, eclLat, distance; //heliocentric longitude, latitude, distance
00454
00455 dl = dr = dml = ds = dm = da = dhl = 0.0;
00456
00457 //Calculate the Julian centuries elapsed since 1900
00458 t = (jd - 2415020.0)/36525.0;
00459
00460 mas = meanAnomalySun(t);
00461
00462 //Specify which planets we must compute elements for
00463 pList.push_back(1);
00464 pList.push_back(3);
00465 computePlanetElements(t, pList);
00466
00467 //Compute necessary planet mean anomalies
00468 map[0] = 0.0;
00469 map[1] = degToRad(gPlanetElements[1][0] - gPlanetElements[1][2]);
00470 map[2] = 0.0;
00471 map[3] = degToRad(gPlanetElements[3][0] - gPlanetElements[3][2]);
00472
00473 //Compute perturbations
00474 dml = degToRad(7.7e-4*sin(4.1406+t*2.6227));
00475 dm = dml;
00476
00477 dl = 3.13e-3*cos(2*mas-2*map[1]-2.587)+
00478 1.98e-3*cos(3*mas-3*map[1]+4.4768e-2)+
00479 1.36e-3*cos(mas-map[1]-2.0788)+
00480 9.6e-4*cos(3*mas-2*map[1]-2.3721)+
00481 8.2e-4*cos(map[3]-map[1]-3.6318);
00482
00483 dr = 2.2501e-5*cos(2*mas-2*map[1]-1.01592)+
00484 1.9045e-5*cos(3*mas-3*map[1]+1.61577)+
00485 6.887e-6*cos(map[3]-map[1]-2.06106)+
00486 5.172e-6*cos(mas-map[1]-5.08065e-1)+
00487 3.62e-6*cos(5*mas-4*map[1]-1.81877)+
00488 3.283e-6*cos(4*mas-4*map[1]+1.10851)+
00489 3.074e-6*cos(2*map[3]-2*map[1]-9.62846e-1);
00490
00491 computePlanetCoords(p, map[p], da, dhl, dl, dm, dml, dr, ds,
00492 eclLong, eclLat, distance);
00493
00494 //Corrections for internal coordinate system
00495 eclLat -= (PI/2);
00496 eclLong += PI;
00497
00498 return Point3d(cos(eclLong) * sin(eclLat) * distance,
00499 cos(eclLat) * distance,
00500 -sin(eclLong) * sin(eclLat) * distance);
00501 };
|
|
|
Implements CachingOrbit. Definition at line 508 of file customorbit.cpp. References BoundingRadiusSlack. 00509 {
00510 return 1.089e+8 * BoundingRadiusSlack;
00511 };
|
|
|
Implements CachingOrbit. Definition at line 503 of file customorbit.cpp. 00504 {
00505 return 224.7018;
00506 };
|
1.4.1