X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fephemeris.cxx;h=612501c74dca795f6e6d54c18c00f1ac91bb791e;hb=cff6b2034de866df70a2b29feb3383ee8ccbbef6;hp=874617fd21d1eebee95df82d67687115215f0142;hpb=0bce31ae9a80c571b9126427c093b8dc3d3f6820;p=flightgear.git diff --git a/src/Environment/ephemeris.cxx b/src/Environment/ephemeris.cxx index 874617fd2..612501c74 100644 --- a/src/Environment/ephemeris.cxx +++ b/src/Environment/ephemeris.cxx @@ -28,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) @@ -41,14 +46,16 @@ 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); + + 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); @@ -59,19 +66,8 @@ void Ephemeris::postinit() } -static void tieStar(const char* prop, Star* s, double (Star::*getter)() const) -{ - fgGetNode(prop, true)->tie(SGRawValueMethods(*s, getter, NULL)); -} - void Ephemeris::bind() { - 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()