X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FEnvironment%2Fephemeris.cxx;h=612501c74dca795f6e6d54c18c00f1ac91bb791e;hb=c152e7f118881183199285a8b1a9e33d3cbff750;hp=21ff38b4d308335ae89d29cfadd40a0ad93099ad;hpb=c1eca1ff6b717c977eb75bf1be41026916e53869;p=flightgear.git diff --git a/src/Environment/ephemeris.cxx b/src/Environment/ephemeris.cxx index 21ff38b4d..612501c74 100644 --- a/src/Environment/ephemeris.cxx +++ b/src/Environment/ephemeris.cxx @@ -28,14 +28,15 @@ #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) { - 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); } Ephemeris::~Ephemeris() @@ -45,6 +46,17 @@ Ephemeris::~Ephemeris() void Ephemeris::init() { + 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); } @@ -54,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()