X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=simgear%2Fephemeris%2Fephemeris.cxx;h=0a11aa6c88076905a55d2ae24628b0c7a82e7ee6;hb=a0bdec284624820feb0a96a06c0c38e2f07d5e4e;hp=c795a8584100139be4f0b2bcf0cad2504d300423;hpb=09b67e9440e8fdb5addd199fdd1f2446a84c4127;p=simgear.git diff --git a/simgear/ephemeris/ephemeris.cxx b/simgear/ephemeris/ephemeris.cxx index c795a858..0a11aa6c 100644 --- a/simgear/ephemeris/ephemeris.cxx +++ b/simgear/ephemeris/ephemeris.cxx @@ -5,30 +5,33 @@ // // Copyright (C) 2000 Curtis L. Olson - curt@flightgear.org // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of the -// License, or (at your option) any later version. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Library General Public +// License as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. // -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. +// Library General Public License for more details. // -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// You should have received a copy of the GNU Library General Public +// License along with this library; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. // // $Id$ +#include + #include "ephemeris.hxx" // Constructor -FGEphemeris::FGEphemeris( void ) { +SGEphemeris::SGEphemeris( const string &path ) { our_sun = new Star; - moon = new Moon; + moon = new MoonPos; mercury = new Mercury; venus = new Venus; mars = new Mars; @@ -36,11 +39,16 @@ FGEphemeris::FGEphemeris( void ) { saturn = new Saturn; uranus = new Uranus; neptune = new Neptune; + nplanets = 7; + for ( int i = 0; i < nplanets; ++i ) { + sgdSetVec3( planets[i], 0.0, 0.0, 0.0 ); + } + stars = new SGStarData( SGPath(path) ); } // Destructor -FGEphemeris::~FGEphemeris( void ) { +SGEphemeris::~SGEphemeris( void ) { delete our_sun; delete moon; delete mercury; @@ -50,24 +58,26 @@ FGEphemeris::~FGEphemeris( void ) { delete saturn; delete uranus; delete neptune; + delete stars; } // Update (recalculate) the positions of all objects for the specified // time -void FGEphemeris::update( FGTime *t ) { +void SGEphemeris::update( double mjd, double lst, double lat ) { // update object positions - our_sun->updatePosition( t ); - moon->updatePosition( t, our_sun ); - mercury->updatePosition( t, our_sun ); - venus->updatePosition( t, our_sun ); - mars->updatePosition( t, our_sun ); - jupiter->updatePosition( t, our_sun ); - saturn->updatePosition( t, our_sun ); - uranus->updatePosition( t, our_sun ); - neptune->updatePosition( t, our_sun ); + our_sun->updatePosition( mjd ); + moon->updatePosition( mjd, lst, lat, our_sun ); + mercury->updatePosition( mjd, our_sun ); + venus->updatePosition( mjd, our_sun ); + mars->updatePosition( mjd, our_sun ); + jupiter->updatePosition( mjd, our_sun ); + saturn->updatePosition( mjd, our_sun ); + uranus->updatePosition( mjd, our_sun ); + neptune->updatePosition( mjd, our_sun ); // update planets list + nplanets = 7; mercury->getPos( &planets[0][0], &planets[0][1], &planets[0][2] ); venus ->getPos( &planets[1][0], &planets[1][1], &planets[1][2] ); mars ->getPos( &planets[2][0], &planets[2][1], &planets[2][2] ); @@ -75,6 +85,5 @@ void FGEphemeris::update( FGTime *t ) { saturn ->getPos( &planets[4][0], &planets[4][1], &planets[4][2] ); uranus ->getPos( &planets[5][0], &planets[5][1], &planets[5][2] ); neptune->getPos( &planets[6][0], &planets[6][1], &planets[6][2] ); - }