1 // ephemeris.cxx -- Top level class for calculating current positions of
2 // astronomical objects
4 // Written by Curtis Olson, started March 2000.
6 // Copyright (C) 2000 Curtis L. Olson - curt@flightgear.org
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License as
10 // published by the Free Software Foundation; either version 2 of the
11 // License, or (at your option) any later version.
13 // This program is distributed in the hope that it will be useful, but
14 // WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 // General Public License for more details.
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the Free Software
20 // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 #include "ephemeris.hxx"
29 FGEphemeris::FGEphemeris( const string &path ) {
32 mercury = new Mercury;
35 jupiter = new Jupiter;
38 neptune = new Neptune;
39 stars = new FGStars( FGPath(path) );
44 FGEphemeris::~FGEphemeris( void ) {
58 // Update (recalculate) the positions of all objects for the specified
60 void FGEphemeris::update( SGTime *t, double lat ) {
61 // update object positions
62 our_sun->updatePosition( t );
63 moon->updatePosition( t, lat, our_sun );
64 mercury->updatePosition( t, our_sun );
65 venus->updatePosition( t, our_sun );
66 mars->updatePosition( t, our_sun );
67 jupiter->updatePosition( t, our_sun );
68 saturn->updatePosition( t, our_sun );
69 uranus->updatePosition( t, our_sun );
70 neptune->updatePosition( t, our_sun );
72 // update planets list
74 mercury->getPos( &planets[0][0], &planets[0][1], &planets[0][2] );
75 venus ->getPos( &planets[1][0], &planets[1][1], &planets[1][2] );
76 mars ->getPos( &planets[2][0], &planets[2][1], &planets[2][2] );
77 jupiter->getPos( &planets[3][0], &planets[3][1], &planets[3][2] );
78 saturn ->getPos( &planets[4][0], &planets[4][1], &planets[4][2] );
79 uranus ->getPos( &planets[5][0], &planets[5][1], &planets[5][2] );
80 neptune->getPos( &planets[6][0], &planets[6][1], &planets[6][2] );