]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/ephemeris.cxx
Bind the CAVOK flag to metarproperties
[flightgear.git] / src / Environment / ephemeris.cxx
index 68c0bedf8bac29607b13970b281f3f6bcb1008f9..612501c74dca795f6e6d54c18c00f1ac91bb791e 100644 (file)
 #include <Main/globals.hxx>
 #include <Main/fg_props.hxx>
 
+static void tieStar(const char* prop, Star* s, double (Star::*getter)() const)
+{
+  fgGetNode(prop, true)->tie(SGRawValueMethods<Star, double>(*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<Star, double>(*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()