1
0
Fork 0

Moved sky code over to simgear.

Added David Megginsons property manager.
This commit is contained in:
curt 2000-07-03 20:09:56 +00:00
parent 8842829571
commit efe5654b8b
8 changed files with 157 additions and 7 deletions

4
Thanks
View file

@ -76,6 +76,10 @@ Didier Chauveau <chauveau@math.univ-mlv.fr>
http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html
John Check <j4strngs@rockfish.net>
Cloud textures
Oliver Delise <delise@mail.isis.de> Oliver Delise <delise@mail.isis.de>
FAQ Maintainer, Documentation, Public Relations. FAQ Maintainer, Documentation, Public Relations.
Working on adding some networking / multi-user support. Working on adding some networking / multi-user support.

View file

@ -64,10 +64,9 @@ fgfs_LDADD = \
$(top_builddir)/src/Objects/libObjects.a \ $(top_builddir)/src/Objects/libObjects.a \
$(top_builddir)/src/Time/libTime.a \ $(top_builddir)/src/Time/libTime.a \
$(WEATHER_LIBS) \ $(WEATHER_LIBS) \
$(top_builddir)/src/Sky/libSky.a \
$(top_builddir)/src/Joystick/libJoystick.a \ $(top_builddir)/src/Joystick/libJoystick.a \
$(SERIAL_LIBS) \ $(SERIAL_LIBS) \
-lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \ -lsgsky -lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
-lplibpu -lplibfnt -lplibssg -lplibsg \ -lplibpu -lplibfnt -lplibssg -lplibsg \
-lmk4 -lz \ -lmk4 -lz \
$(opengl_LIBS) \ $(opengl_LIBS) \

View file

@ -34,6 +34,7 @@
#include <simgear/constants.h> #include <simgear/constants.h>
#include <simgear/debug/logstream.hxx> #include <simgear/debug/logstream.hxx>
#include <simgear/math/fg_types.hxx> #include <simgear/math/fg_types.hxx>
#include <simgear/misc/props.hxx>
#include <Aircraft/aircraft.hxx> #include <Aircraft/aircraft.hxx>
#include <FDM/UIUCModel/uiuc_aircraftdir.h> #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. * Reinitialize FGFS if required.
* *
@ -134,6 +260,7 @@ FGBFI::reinit ()
setTargetAirport(""); setTargetAirport("");
cout << "Target airport is " << current_options.get_airport_id() << endl; cout << "Target airport is " << current_options.get_airport_id() << endl;
fgReInitSubsystems(); fgReInitSubsystems();
// FIXME: this is wrong. // FIXME: this is wrong.
@ -393,9 +520,10 @@ FGBFI::getAGL ()
void void
FGBFI::setAltitude (double altitude) FGBFI::setAltitude (double altitude)
{ {
current_options.set_altitude(altitude * FEET_TO_METER); fgFDMForceAltitude(getFlightModel(), altitude * FEET_TO_METER);
current_aircraft.fdm_state->set_Altitude(altitude); // current_options.set_altitude(altitude * FEET_TO_METER);
needReinit(); // current_aircraft.fdm_state->set_Altitude(altitude);
// needReinit();
} }

View file

@ -46,6 +46,9 @@ class FGBFI
{ {
public: public:
// Initialize before first use.
static void init ();
// Reinit if necessary. // Reinit if necessary.
static void update (); static void update ();

View file

@ -92,6 +92,7 @@
#include "fg_io.hxx" #include "fg_io.hxx"
#include "options.hxx" #include "options.hxx"
#include "views.hxx" #include "views.hxx"
#include "bfi.hxx"
#if defined(FX) && defined(XMESA) #if defined(FX) && defined(XMESA)
#include <GL/xmesa.h> #include <GL/xmesa.h>
@ -582,6 +583,9 @@ bool fgInitSubsystems( void ) {
// Initialize the 2D panel. // Initialize the 2D panel.
current_panel = fgCreateSmallSinglePropPanel(0, 0, 1024, 768); current_panel = fgCreateSmallSinglePropPanel(0, 0, 1024, 768);
// Initialize the BFI
FGBFI::init();
FG_LOG( FG_GENERAL, FG_INFO, endl); FG_LOG( FG_GENERAL, FG_INFO, endl);
return true; return true;

View file

@ -70,6 +70,7 @@
#include <simgear/math/polar3d.hxx> #include <simgear/math/polar3d.hxx>
#include <simgear/math/fg_random.h> #include <simgear/math/fg_random.h>
#include <simgear/misc/fgpath.hxx> #include <simgear/misc/fgpath.hxx>
#include <simgear/sky/sky.hxx>
#include <Include/general.hxx> #include <Include/general.hxx>
@ -89,7 +90,6 @@
#endif #endif
#include <Scenery/scenery.hxx> #include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx> #include <Scenery/tilemgr.hxx>
#include <Sky/sky.hxx>
#include <Time/event.hxx> #include <Time/event.hxx>
#include <Time/fg_time.hxx> #include <Time/fg_time.hxx>
#include <Time/fg_timer.hxx> #include <Time/fg_timer.hxx>

View file

@ -41,6 +41,7 @@ bool global_fullscreen = true;
#include <simgear/constants.h> #include <simgear/constants.h>
#include <simgear/debug/logstream.hxx> #include <simgear/debug/logstream.hxx>
#include <simgear/misc/fgstream.hxx> #include <simgear/misc/fgstream.hxx>
#include <simgear/misc/props.hxx>
#include <Include/general.hxx> #include <Include/general.hxx>
#include <Cockpit/cockpit.hxx> #include <Cockpit/cockpit.hxx>
@ -821,6 +822,18 @@ int fgOPTIONS::parse_option( const string& arg ) {
} else if ( arg.find( "--net-id=") != string::npos ) { } else if ( arg.find( "--net-id=") != string::npos ) {
net_id = arg.substr( 9 ); net_id = arg.substr( 9 );
#endif #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 { } else {
FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" ); FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
return FG_OPTIONS_ERROR; return FG_OPTIONS_ERROR;

View file

@ -25,7 +25,6 @@ SUBDIRS = \
$(NETWORK_DIRS) \ $(NETWORK_DIRS) \
Objects \ Objects \
Scenery \ Scenery \
Sky \
Time \ Time \
$(WEATHER_DIR) \ $(WEATHER_DIR) \
Main Main