]> git.mxchange.org Git - flightgear.git/commitdiff
Moved sky code over to simgear.
authorcurt <curt>
Mon, 3 Jul 2000 20:09:56 +0000 (20:09 +0000)
committercurt <curt>
Mon, 3 Jul 2000 20:09:56 +0000 (20:09 +0000)
Added David Megginsons property manager.

Thanks
src/Main/Makefile.am
src/Main/bfi.cxx
src/Main/bfi.hxx
src/Main/fg_init.cxx
src/Main/main.cxx
src/Main/options.cxx
src/Makefile.am

diff --git a/Thanks b/Thanks
index 6f83fe19fedbe5e0b061c5b5ecadee9a98af6fd3..cfb2ff65178c1137c13d402891719f294d7b09c8 100644 (file)
--- a/Thanks
+++ b/Thanks
@@ -76,6 +76,10 @@ Didier Chauveau <chauveau@math.univ-mlv.fr>
   http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html
 
 
+John Check <j4strngs@rockfish.net>
+  Cloud textures
+
+
 Oliver Delise <delise@mail.isis.de>
   FAQ Maintainer, Documentation, Public Relations.
   Working on adding some networking / multi-user support.
index 19853272452d14d26e44f41578af9811fdfeed7a..c74160b446443ad132953578b560319ccf8a8865 100644 (file)
@@ -64,10 +64,9 @@ fgfs_LDADD = \
        $(top_builddir)/src/Objects/libObjects.a \
        $(top_builddir)/src/Time/libTime.a \
        $(WEATHER_LIBS) \
-       $(top_builddir)/src/Sky/libSky.a \
        $(top_builddir)/src/Joystick/libJoystick.a \
        $(SERIAL_LIBS) \
-       -lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
+       -lsgsky -lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
        -lplibpu -lplibfnt -lplibssg -lplibsg \
        -lmk4 -lz \
        $(opengl_LIBS) \
index 9c20d6996842809c26d39dbac4fde4ed5c711f94..cdc577cbed52b30e99fdb1f6f6407d299e52f401 100644 (file)
@@ -34,6 +34,7 @@
 #include <simgear/constants.h>
 #include <simgear/debug/logstream.hxx>
 #include <simgear/math/fg_types.hxx>
+#include <simgear/misc/props.hxx>
 
 #include <Aircraft/aircraft.hxx>
 #include <FDM/UIUCModel/uiuc_aircraftdir.h>
@@ -76,6 +77,131 @@ bool FGBFI::_needReinit = false;
 ////////////////////////////////////////////////////////////////////////
 
 
+/**
+ * Initialize the BFI by binding its functions to properties.
+ *
+ * TODO: perhaps these should migrate into the individual modules
+ * (i.e. they should register themselves).
+ */
+void
+FGBFI::init ()
+{
+  FG_LOG(FG_GENERAL, FG_INFO, "Starting BFI init");
+                               // Simulation
+  current_properties.tieInt("/sim/flight-model",
+                           getFlightModel, setFlightModel);
+//   current_properties.tieString("/sim/aircraft",
+//                            getAircraft, setAircraft);
+  // TODO: timeGMT
+  current_properties.tieBool("/sim/hud/visibility",
+                            getHUDVisible, setHUDVisible);
+  current_properties.tieBool("/sim/panel/visibility",
+                            getPanelVisible, setPanelVisible);
+
+                               // Position
+  current_properties.tieDouble("/position/latitude",
+                               getLatitude, setLatitude);
+  current_properties.tieDouble("/position/longitude",
+                              getLongitude, setLongitude);
+  current_properties.tieDouble("/position/altitude",
+                              getAltitude, setAltitude);
+  current_properties.tieDouble("/position/altitude-agl",
+                              getAGL, 0);
+
+                               // Orientation
+  current_properties.tieDouble("/orientation/heading",
+                              getHeading, setHeading);
+  current_properties.tieDouble("/orientation/heading-magnetic",
+                              getHeadingMag, 0);
+  current_properties.tieDouble("/orientation/pitch",
+                              getPitch, setPitch);
+  current_properties.tieDouble("/orientation/roll",
+                              getRoll, setRoll);
+
+                               // Velocities
+  current_properties.tieDouble("/velocities/airspeed",
+                              getAirspeed, 0);
+  current_properties.tieDouble("/velocities/side-slip",
+                              getSideSlip, 0);
+  current_properties.tieDouble("/velocities/vertical-speed",
+                              getVerticalSpeed, 0);
+  current_properties.tieDouble("/velocities/speed-north",
+                              getSpeedNorth, setSpeedNorth);
+  current_properties.tieDouble("/velocities/speed-east",
+                              getSpeedEast, setSpeedEast);
+  current_properties.tieDouble("/velocities/speed-down",
+                              getSpeedDown, setSpeedDown);
+
+                               // Controls
+  current_properties.tieDouble("/controls/throttle",
+                              getThrottle, setThrottle);
+  current_properties.tieDouble("/controls/flaps",
+                              getFlaps, setFlaps);
+  current_properties.tieDouble("/controls/aileron",
+                              getAileron, setAileron);
+  current_properties.tieDouble("/controls/rudder",
+                              getRudder, setRudder);
+  current_properties.tieDouble("/controls/elevator",
+                              getElevator, setElevator);
+  current_properties.tieDouble("/controls/elevator-trim",
+                              getElevatorTrim, setElevatorTrim);
+  current_properties.tieDouble("/controls/brake",
+                              getBrake, setBrake);
+
+                               // Autopilot
+  current_properties.tieBool("/autopilot/locks/altitude",
+                            getAPAltitudeLock, setAPAltitudeLock);
+  current_properties.tieDouble("/autopilot/settings/altitude",
+                              getAPAltitude, setAPAltitude);
+  current_properties.tieBool("/autopilot/locks/heading",
+                            getAPHeadingLock, setAPHeadingLock);
+  current_properties.tieDouble("/autopilot/settings/heading-magnetic",
+                              getAPHeadingMag, setAPHeadingMag);
+  current_properties.tieBool("/autopilot/locks/nav1",
+                            getAPNAV1Lock, setAPNAV1Lock);
+
+                               // Radio navigation
+  current_properties.tieDouble("/radios/nav1/frequencies/selected",
+                              getNAV1Freq, setNAV1Freq);
+  current_properties.tieDouble("/radios/nav1/frequencies/standby",
+                              getNAV1AltFreq, setNAV1AltFreq);
+  current_properties.tieDouble("/radios/nav1/radials/actual",
+                              getNAV1Radial, 0);
+  current_properties.tieDouble("/radios/nav1/radials/selected",
+                              getNAV1SelRadial, setNAV1SelRadial);
+  current_properties.tieDouble("/radios/nav1/dme/distance",
+                              getNAV1DistDME, 0);
+  current_properties.tieBool("/radios/nav1/in-range",
+                            getNAV1InRange, 0);
+  current_properties.tieBool("/radios/nav1/dme/in-range",
+                            getNAV1DMEInRange, 0);
+                              
+  current_properties.tieDouble("/radios/nav2/frequencies/selected",
+                              getNAV2Freq, setNAV2Freq);
+  current_properties.tieDouble("/radios/nav2/frequencies/standby",
+                              getNAV2AltFreq, setNAV2AltFreq);
+  current_properties.tieDouble("/radios/nav2/radials/actual",
+                              getNAV2Radial, 0);
+  current_properties.tieDouble("/radios/nav2/radials/selected",
+                              getNAV2SelRadial, setNAV2SelRadial);
+  current_properties.tieDouble("/radios/nav2/dme/distance",
+                              getNAV2DistDME, 0);
+  current_properties.tieBool("/radios/nav2/in-range",
+                            getNAV2InRange, 0);
+  current_properties.tieBool("/radios/nav2/dme/in-range",
+                            getNAV2DMEInRange, 0);
+
+  current_properties.tieDouble("/radios/adf/frequencies/selected",
+                              getADFFreq, setADFFreq);
+  current_properties.tieDouble("/radios/adf/frequencies/standby",
+                              getADFAltFreq, setADFAltFreq);
+  current_properties.tieDouble("/radios/adf/rotation",
+                              getADFRotation, setADFRotation);
+
+  FG_LOG(FG_GENERAL, FG_INFO, "Ending BFI init");
+}
+
+
 /**
  * Reinitialize FGFS if required.
  *
@@ -134,6 +260,7 @@ FGBFI::reinit ()
 
   setTargetAirport("");
   cout << "Target airport is " << current_options.get_airport_id() << endl;
+
   fgReInitSubsystems();
 
                                // FIXME: this is wrong.
@@ -393,9 +520,10 @@ FGBFI::getAGL ()
 void
 FGBFI::setAltitude (double altitude)
 {
-  current_options.set_altitude(altitude * FEET_TO_METER);
-  current_aircraft.fdm_state->set_Altitude(altitude);
-  needReinit();
+  fgFDMForceAltitude(getFlightModel(), altitude * FEET_TO_METER);
+//   current_options.set_altitude(altitude * FEET_TO_METER);
+//   current_aircraft.fdm_state->set_Altitude(altitude);
+//   needReinit();
 }
 
 
index d27c5913c60e0dab1a4fdbcd1d2de909a3fe3613..cac3bb81214cebe3ea9149cc6f0c2bfd9b22ed17 100644 (file)
@@ -46,6 +46,9 @@ class FGBFI
 {
 public:
 
+                               // Initialize before first use.
+  static void init ();
+
                                // Reinit if necessary.
   static void update ();
 
index 652166bf6f92496de38c20b74fb730e7b5ab47c2..4b195dee0a76d3ab1ddb74fb2f88a1cebd9152c3 100644 (file)
@@ -92,6 +92,7 @@
 #include "fg_io.hxx"
 #include "options.hxx"
 #include "views.hxx"
+#include "bfi.hxx"
 
 #if defined(FX) && defined(XMESA)
 #include <GL/xmesa.h>
@@ -582,6 +583,9 @@ bool fgInitSubsystems( void ) {
     // Initialize the 2D panel.
     current_panel = fgCreateSmallSinglePropPanel(0, 0, 1024, 768);
 
+    // Initialize the BFI
+    FGBFI::init();
+
     FG_LOG( FG_GENERAL, FG_INFO, endl);
 
     return true;
index c30779b25da197aff00c1028ecf48bca5bb5ef07..c4ce83ddcfb54d574fd1fce8771e2309a230de45 100644 (file)
@@ -70,6 +70,7 @@
 #include <simgear/math/polar3d.hxx>
 #include <simgear/math/fg_random.h>
 #include <simgear/misc/fgpath.hxx>
+#include <simgear/sky/sky.hxx>
 
 #include <Include/general.hxx>
 
@@ -89,7 +90,6 @@
 #endif
 #include <Scenery/scenery.hxx>
 #include <Scenery/tilemgr.hxx>
-#include <Sky/sky.hxx>
 #include <Time/event.hxx>
 #include <Time/fg_time.hxx>
 #include <Time/fg_timer.hxx>
index 245619b46e9e66f0738bb9b09bd720ac65d1dc27..e3c8eeec7ff52269ab2933f5460a7dadb7c4aabe 100644 (file)
@@ -41,6 +41,7 @@ bool global_fullscreen = true;
 #include <simgear/constants.h>
 #include <simgear/debug/logstream.hxx>
 #include <simgear/misc/fgstream.hxx>
+#include <simgear/misc/props.hxx>
 
 #include <Include/general.hxx>
 #include <Cockpit/cockpit.hxx>
@@ -821,6 +822,18 @@ int fgOPTIONS::parse_option( const string& arg ) {
     } else if ( arg.find( "--net-id=") != string::npos ) {
        net_id = arg.substr( 9 );
 #endif
+    } else if ( arg.find( "--prop:" ) == 0 ) {
+        string assign = arg.substr(7);
+       int pos = assign.find('=');
+       if (pos == arg.npos || pos == 0) {
+           FG_LOG(FG_GENERAL, FG_ALERT, "Bad property assignment: " << arg);
+           return FG_OPTIONS_ERROR;
+       }
+       string name = assign.substr(0, pos);
+       string value = assign.substr(pos + 1);
+       current_properties.setStringValue(name.c_str(), value);
+       FG_LOG(FG_GENERAL, FG_INFO, "Setting default value of property "
+              << name << " to \"" << value << '"');
     } else {
        FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
        return FG_OPTIONS_ERROR;
index 4270a561075ada9bcbf68a40cabfe3a3ab134116..a3985479720adc5f5bf54e04356a1c2146acfe45 100644 (file)
@@ -25,7 +25,6 @@ SUBDIRS = \
         $(NETWORK_DIRS) \
         Objects \
         Scenery \
-       Sky \
         Time \
         $(WEATHER_DIR) \
         Main