uranus.cxx

00001 /**************************************************************************
00002  * uranus.cxx
00003  * Written by Durk Talsma. Originally started October 1997, for distribution  
00004  * with the FlightGear project. Version 2 was written in August and 
00005  * September 1998. This code is based upon algorithms and data kindly 
00006  * provided by Mr. Paul Schlyter. (pausch@saaf.se). 
00007  *
00008  * This library is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU Library General Public
00010  * License as published by the Free Software Foundation; either
00011  * version 2 of the License, or (at your option) any later version.
00012  *
00013  * This library is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016  * Library General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
00021  *
00022  * $Id: uranus_8cxx-source.html,v 1.15 2007-12-17 15:37:16 curt Exp $
00023  **************************************************************************/
00024 
00025 #ifdef __BORLANDC__
00026 #  define exception c_exception
00027 #endif
00028 #include <math.h>
00029 
00030 #include "uranus.hxx"
00031 
00032 /*************************************************************************
00033  * Uranus::Uranus(double mjd)
00034  * Public constructor for class Uranus
00035  * Argument: The current time.
00036  * the hard coded orbital elements for Uranus are passed to 
00037  * CelestialBody::CelestialBody();
00038  ************************************************************************/
00039 Uranus::Uranus(double mjd) :
00040   CelestialBody(74.00050,   1.3978000E-5,
00041                 0.7733,     1.900E-8,
00042                 96.66120,   3.0565000E-5,
00043                 19.181710, -1.55E-8,
00044                 0.047318,   7.450E-9,
00045                 142.5905,   0.01172580600, mjd)
00046 {
00047 }
00048 Uranus::Uranus() :
00049   CelestialBody(74.00050,   1.3978000E-5,
00050                 0.7733,     1.900E-8,
00051                 96.66120,   3.0565000E-5,
00052                 19.181710, -1.55E-8,
00053                 0.047318,   7.450E-9,
00054                 142.5905,   0.01172580600)
00055 {
00056 }
00057 
00058 /*************************************************************************
00059  * void Uranus::updatePosition(double mjd, Star *ourSun)
00060  * 
00061  * calculates the current position of Uranus, by calling the base class,
00062  * CelestialBody::updatePosition(); The current magnitude is calculated using 
00063  * a Uranus specific equation
00064  *************************************************************************/
00065 void Uranus::updatePosition(double mjd, Star *ourSun)
00066 {
00067   CelestialBody::updatePosition(mjd, ourSun);
00068   magnitude = -7.15 + 5*log10( r*R) + 0.001 * FV;
00069 }

Generated on Mon Dec 17 09:30:56 2007 for SimGear by  doxygen 1.5.1