X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fephemeris.cxx;h=612501c74dca795f6e6d54c18c00f1ac91bb791e;hb=c152e7f118881183199285a8b1a9e33d3cbff750;hp=874617fd21d1eebee95df82d67687115215f0142;hpb=7f36caede6a600f3c4e346f7898587d81975ef02;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()