X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fephemeris.cxx;h=612501c74dca795f6e6d54c18c00f1ac91bb791e;hb=c152e7f118881183199285a8b1a9e33d3cbff750;hp=a6a1f5c9476d9d0c09e9576cd5fd8d826d2da08e;hpb=4756cd4882adcc0341abe217bb9272fb23861d10;p=flightgear.git diff --git a/src/Environment/ephemeris.cxx b/src/Environment/ephemeris.cxx index a6a1f5c94..612501c74 100644 --- a/src/Environment/ephemeris.cxx +++ b/src/Environment/ephemeris.cxx @@ -1,3 +1,25 @@ +// ephemeris.cxx -- wrap SGEphemeris code in a subsystem +// +// Written by James Turner, started June 2010. +// +// Copyright (C) 2010 Curtis L. Olson - http://www.flightgear.org/~curt +// +// 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 program 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. +// +// 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +// $Id$ + #include #include @@ -6,6 +28,11 @@ #include
#include
+static void tieStar(const char* prop, Star* s, double (Star::*getter)() const) +{ + fgGetNode(prop, true)->tie(SGRawValueMethods(*s, getter, NULL)); +} + Ephemeris::Ephemeris() : _impl(NULL), _latProp(NULL) @@ -19,36 +46,28 @@ Ephemeris::~Ephemeris() void Ephemeris::init() { - if (_impl) { - return; - } - SGPath ephem_data_path(globals->get_fg_root()); ephem_data_path.append("Astro"); _impl = new SGEphemeris(ephem_data_path.c_str()); globals->set_ephem(_impl); -} -void Ephemeris::postinit() -{ + tieStar("/ephemeris/sun/xs", _impl->get_sun(), &Star::getxs); + tieStar("/ephemeris/sun/ys", _impl->get_sun(), &Star::getys); + tieStar("/ephemeris/sun/ze", _impl->get_sun(), &Star::getze); + tieStar("/ephemeris/sun/ye", _impl->get_sun(), &Star::getye); + tieStar("/ephemeris/sun/lat-deg", _impl->get_sun(), &Star::getLat); + + _latProp = fgGetNode("/position/latitude-deg", true); update(0.0); } -static void tieStar(const char* prop, Star* s, double (Star::*getter)() const) +void Ephemeris::postinit() { - fgGetNode(prop, true)->tie(SGRawValueMethods(*s, getter, NULL)); -} + +} void Ephemeris::bind() { - _latProp = fgGetNode("/position/latitude-deg", true); - - tieStar("/ephemeris/sun/xs", _impl->get_sun(), &Star::getxs); - tieStar("/ephemeris/sun/ys", _impl->get_sun(), &Star::getys); - tieStar("/ephemeris/sun/ze", _impl->get_sun(), &Star::getze); - tieStar("/ephemeris/sun/ye", _impl->get_sun(), &Star::getye); - - tieStar("/ephemeris/sun/lat-deg", _impl->get_sun(), &Star::getLat); } void Ephemeris::unbind()