X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fephemeris.cxx;h=612501c74dca795f6e6d54c18c00f1ac91bb791e;hb=c152e7f118881183199285a8b1a9e33d3cbff750;hp=68c0bedf8bac29607b13970b281f3f6bcb1008f9;hpb=14be21ea5ce0f5a2b9234490e8ad891e8b7f43b6;p=flightgear.git diff --git a/src/Environment/ephemeris.cxx b/src/Environment/ephemeris.cxx index 68c0bedf8..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,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()