From: curt Date: Tue, 14 May 2002 05:22:52 +0000 (+0000) Subject: Moved "scenery" from being declaried in scenery.cxx to being declared X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=47825dcbae3113d4d414b9c2164387211d51b4e1;p=flightgear.git Moved "scenery" from being declaried in scenery.cxx to being declared in globals.hxx. --- diff --git a/src/ATC/AIEntity.cxx b/src/ATC/AIEntity.cxx index 2eb8ba1d6..828b9dde8 100644 --- a/src/ATC/AIEntity.cxx +++ b/src/ATC/AIEntity.cxx @@ -46,7 +46,7 @@ void FGAIEntity::Update() { void FGAIEntity::Transform() { // Translate moving object w.r.t eye - Point3D sc = scenery.get_center(); + Point3D sc = globals->get_scenery()->get_center(); //cout << "sc0 = " << sc.x() << " sc1 = " << sc.y() << " sc2 = " << sc.z() << '\n'; //cout << "op0 = " << obj_pos.x() << " op1 = " << obj_pos.y() << " op2 = " << obj_pos.z() << '\n'; diff --git a/src/Autopilot/newauto.cxx b/src/Autopilot/newauto.cxx index 7e12850c0..ccbf01cb4 100644 --- a/src/Autopilot/newauto.cxx +++ b/src/Autopilot/newauto.cxx @@ -940,8 +940,8 @@ void FGAutopilot::AltitudeSet( double new_altitude ) { target_alt = new_altitude * SG_FEET_TO_METER; } - if( target_alt < scenery.get_cur_elev() ) { - target_alt = scenery.get_cur_elev(); + if( target_alt < globals->get_scenery()->get_cur_elev() ) { + target_alt = globals->get_scenery()->get_cur_elev(); } TargetAltitude = target_alt; diff --git a/src/Cockpit/cockpit.cxx b/src/Cockpit/cockpit.cxx index f1bc1faea..94438273f 100644 --- a/src/Cockpit/cockpit.cxx +++ b/src/Cockpit/cockpit.cxx @@ -202,10 +202,10 @@ float get_agl( void ) if ( !strcmp(startup_units_node->getStringValue(), "feet") ) { agl = (current_aircraft.fdm_state->get_Altitude() - - scenery.get_cur_elev() * SG_METER_TO_FEET); + - globals->get_scenery()->get_cur_elev() * SG_METER_TO_FEET); } else { agl = (current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER - - scenery.get_cur_elev()); + - globals->get_scenery()->get_cur_elev()); } return agl; diff --git a/src/FDM/ADA.cxx b/src/FDM/ADA.cxx index 65de05599..d20e44f32 100644 --- a/src/FDM/ADA.cxx +++ b/src/FDM/ADA.cxx @@ -190,7 +190,7 @@ void FGADA::init() { copy_to_FGADA(); // Write FGExternal structure from socket to establish connection int result = fdmsock->write(OutBuffer, nbytes); - printf("Connection established.\n"); + printf("Connection established = %d.\n", result); } } @@ -222,15 +222,15 @@ void FGADA::update( double dt ) { copy_to_FGADA(); fgGetDouble("/sim/view/offset",view_offset); - if ( view_offset == 0.0) { - memcpy (&OutBuffer, &visuals_to_sixdof, sizeof (OutBuffer)); - int result = fdmsock->write(OutBuffer, nbytes); - } + if ( view_offset == 0.0) { + memcpy (&OutBuffer, &visuals_to_sixdof, sizeof (OutBuffer)); + fdmsock->write(OutBuffer, nbytes); + } } // Convert from the FGInterface struct to the FGADA struct (output) bool FGADA::copy_to_FGADA () { - ground_elevation = scenery.get_cur_elev(); + ground_elevation = globals->get_scenery()->get_cur_elev(); return true; } diff --git a/src/FDM/JSBSim/JSBSim.cxx b/src/FDM/JSBSim/JSBSim.cxx index 4136e6b32..76f2181f2 100644 --- a/src/FDM/JSBSim/JSBSim.cxx +++ b/src/FDM/JSBSim/JSBSim.cxx @@ -281,8 +281,9 @@ FGJSBsim::update( double dt ) { if ( startup_trim->getBoolValue() ) { SG_LOG(SG_FLIGHT, SG_INFO, "Ready to trim, terrain altitude is: " - << scenery.get_cur_elev() * SG_METER_TO_FEET ); - fgic->SetTerrainAltitudeFtIC( scenery.get_cur_elev() * SG_METER_TO_FEET ); + << globals->get_scenery()->get_cur_elev() * SG_METER_TO_FEET ); + fgic->SetTerrainAltitudeFtIC( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); do_trim(); } else { fdmex->RunIC(fgic); //apply any changes made through the set_ functions @@ -359,7 +360,8 @@ bool FGJSBsim::copy_to_JSBsim() { eng->SetStarter( globals->get_controls()->get_starter(i) ); } - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); Position->SetSeaLevelRadius( get_Sea_level_radius() ); Position->SetRunwayRadius( get_Runway_altitude() + get_Sea_level_radius() ); @@ -576,8 +578,10 @@ void FGJSBsim::set_Latitude(double lat) { &sea_level_radius_meters, &lat_geoc ); _set_Sea_level_radius( sea_level_radius_meters * SG_METER_TO_FEET ); fgic->SetSeaLevelRadiusFtIC( sea_level_radius_meters * SG_METER_TO_FEET ); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); - fgic->SetTerrainAltitudeFtIC( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); + fgic->SetTerrainAltitudeFtIC( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); fgic->SetLatitudeRadIC( lat_geoc ); needTrim=true; } @@ -587,8 +591,10 @@ void FGJSBsim::set_Longitude(double lon) { SG_LOG(SG_FLIGHT,SG_INFO,"FGJSBsim::set_Longitude: " << lon ); update_ic(); fgic->SetLongitudeRadIC( lon ); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); - fgic->SetTerrainAltitudeFtIC( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); + fgic->SetTerrainAltitudeFtIC( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); needTrim=true; } @@ -605,10 +611,13 @@ void FGJSBsim::set_Altitude(double alt) { &sea_level_radius_meters, &lat_geoc); _set_Sea_level_radius( sea_level_radius_meters * SG_METER_TO_FEET ); fgic->SetSeaLevelRadiusFtIC( sea_level_radius_meters * SG_METER_TO_FEET ); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); - fgic->SetTerrainAltitudeFtIC( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); + fgic->SetTerrainAltitudeFtIC( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); SG_LOG(SG_FLIGHT, SG_INFO, - "Terrain altitude: " << scenery.get_cur_elev() * SG_METER_TO_FEET ); + "Terrain altitude: " << globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); fgic->SetLatitudeRadIC( lat_geoc ); fgic->SetAltitudeFtIC(alt); needTrim=true; diff --git a/src/FDM/LaRCsim.cxx b/src/FDM/LaRCsim.cxx index 8051ef49f..78840a805 100644 --- a/src/FDM/LaRCsim.cxx +++ b/src/FDM/LaRCsim.cxx @@ -188,7 +188,7 @@ void FGLaRCsim::update( double dt ) { // Inform LaRCsim of the local terrain altitude // Runway_altitude = get_Runway_altitude(); - Runway_altitude = scenery.get_cur_elev() * SG_METER_TO_FEET; + Runway_altitude = globals->get_scenery()->get_cur_elev() * SG_METER_TO_FEET; // Weather /* V_north_airmass = get_V_north_airmass(); @@ -616,7 +616,8 @@ void FGLaRCsim::snap_shot(void) { void FGLaRCsim::set_Latitude(double lat) { SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Latitude: " << lat ); snap_shot(); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); lsic->SetLatitudeGDRadIC(lat); set_ls(); copy_from_LaRCsim(); //update the bus @@ -626,7 +627,8 @@ void FGLaRCsim::set_Longitude(double lon) { SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Longitude: " << lon ); snap_shot(); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); lsic->SetLongitudeRadIC(lon); set_ls(); copy_from_LaRCsim(); //update the bus @@ -635,7 +637,8 @@ void FGLaRCsim::set_Longitude(double lon) { void FGLaRCsim::set_Altitude(double alt) { SG_LOG( SG_FLIGHT, SG_INFO, "FGLaRCsim::set_Altitude: " << alt ); snap_shot(); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); lsic->SetAltitudeFtIC(alt); set_ls(); copy_from_LaRCsim(); //update the bus diff --git a/src/FDM/YASim/YASim.cxx b/src/FDM/YASim/YASim.cxx index faaaf5fe7..6a6ba7971 100644 --- a/src/FDM/YASim/YASim.cxx +++ b/src/FDM/YASim/YASim.cxx @@ -233,7 +233,7 @@ void YASim::copyToYASim(bool copyState) // The ground elevation doesn't come from FGInterface; query it // from the scenery and set it for others to find. - double ground = scenery.get_cur_elev(); + double ground = globals->get_scenery()->get_cur_elev(); _set_Runway_altitude(ground * FT2M); // cout << "YASIM: ground = " << ground << endl; diff --git a/src/FDM/flight.cxx b/src/FDM/flight.cxx index 76f93e2a4..2845c8e3b 100644 --- a/src/FDM/flight.cxx +++ b/src/FDM/flight.cxx @@ -188,7 +188,7 @@ FGInterface::common_init () * SGD_DEGREES_TO_RADIANS ); set_Latitude( fgGetDouble("/position/latitude-deg") * SGD_DEGREES_TO_RADIANS ); - double ground_elev_m = scenery.get_cur_elev(); + double ground_elev_m = globals->get_scenery()->get_cur_elev(); double ground_elev_ft = ground_elev_m * SG_METER_TO_FEET; if ( fgGetBool("/sim/startup/onground") || fgGetDouble("/position/altitude-ft") < ground_elev_ft ) { @@ -448,7 +448,8 @@ void FGInterface::_updateGeodeticPosition( double lat, double lon, double alt ) _set_Geodetic_Position( lat, lon, alt ); _set_Sea_level_radius( sl_radius * SG_METER_TO_FEET ); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); _set_sin_lat_geocentric( lat_geoc ); _set_cos_lat_geocentric( lat_geoc ); @@ -504,7 +505,8 @@ void FGInterface::_updateGeocentricPosition( double lat_geoc, double lon, _set_Geodetic_Position( lat_geod, lon, alt ); _set_Sea_level_radius( sl_radius2 * SG_METER_TO_FEET ); - _set_Runway_altitude( scenery.get_cur_elev() * SG_METER_TO_FEET ); + _set_Runway_altitude( globals->get_scenery()->get_cur_elev() + * SG_METER_TO_FEET ); _set_sin_lat_geocentric( lat_geoc ); _set_cos_lat_geocentric( lat_geoc ); diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index 7ec9eaa97..5803f952c 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -493,6 +493,7 @@ bool fgSetPosFromAirportIDandHdg( const string& id, double tgt_hdg ) { return true; } + void fgSetPosFromGlideSlope(void) { double gs = fgGetDouble("/velocities/glideslope"); double od = fgGetDouble("/sim/startup/offset-distance"); @@ -591,7 +592,7 @@ void fgInitFDM() { cur_fdm_state = new FGUFO( dt ); } else if ( model == "external" ) { cur_fdm_state = new FGExternal( dt ); - } else if ( model.find("network,") == 0 ) { + } else if ( model.find("network") == 0 ) { string host = "localhost"; int port1 = 5501; int port2 = 5502; @@ -744,8 +745,9 @@ bool fgInitSubsystems( void ) { // Initialize the scenery management subsystem. //////////////////////////////////////////////////////////////////// - scenery.init(); - scenery.bind(); + globals->set_scenery( new FGScenery ); + globals->get_scenery()->init(); + globals->get_scenery()->bind(); if ( global_tile_mgr.init() ) { // Load the local scenery data @@ -761,7 +763,7 @@ bool fgInitSubsystems( void ) { SG_LOG( SG_GENERAL, SG_DEBUG, "Current terrain elevation after tile mgr init " << - scenery.get_cur_elev() ); + globals->get_scenery()->get_cur_elev() ); //////////////////////////////////////////////////////////////////// @@ -1101,18 +1103,9 @@ void fgReInitSubsystems( void ) } // Initialize the Scenery Management subsystem - scenery.init(); - -#if 0 - if( global_tile_mgr.init() ) { - Load the local scenery data - global_tile_mgr.update( longitude->getDoubleValue(), - latitude->getDoubleValue() ); - } else { - SG_LOG( SG_GENERAL, SG_ALERT, "Error in Tile Manager initialization!" ); - exit(-1); - } -#endif + // FIXME, what really needs to get initialized here, at the time + // this was commented out, scenery.init() was a noop + // scenery.init(); fgInitFDM(); diff --git a/src/Main/globals.hxx b/src/Main/globals.hxx index a5ecfd48a..af8dd7f99 100644 --- a/src/Main/globals.hxx +++ b/src/Main/globals.hxx @@ -66,6 +66,7 @@ class FGATCDisplay; class FGAIMgr; class FGAircraftModel; class FGModelMgr; +class FGScenery; class ssgRoot; class ssgBranch; @@ -161,6 +162,9 @@ private: // list of serial port-like configurations string_list *channel_options_list; + // FlightGear scenery manager + FGScenery *scenery; + // SSG scene graph ssgRoot * scene_graph; ssgBranch * terrain_branch; @@ -277,6 +281,9 @@ public: channel_options_list = l; } + inline FGScenery * get_scenery () const { return scenery; } + inline void set_scenery ( FGScenery *s ) { scenery = s; } + inline ssgRoot * get_scene_graph () const { return scene_graph; } inline void set_scene_graph (ssgRoot * s) { scene_graph = s; } diff --git a/src/Main/location.cxx b/src/Main/location.cxx index f8c776b2d..84f421822 100644 --- a/src/Main/location.cxx +++ b/src/Main/location.cxx @@ -33,13 +33,10 @@ #include #include #include +#include #include - -#include -/* #include "globals.hxx" -*/ #include "location.hxx" @@ -244,7 +241,7 @@ FGLocation::recalcPosition (double lon_deg, double lat_deg, double alt_ft) const Point3D p = Point3D(lon_deg * SG_DEGREES_TO_RADIANS, lat_geoc_rad, sea_level_radius_m); - Point3D tmp = sgPolarToCart3d(p) - scenery.get_next_center(); + Point3D tmp = sgPolarToCart3d(p) - globals->get_scenery()->get_next_center(); sgSetVec3(_zero_elev_view_pos, tmp[0], tmp[1], tmp[2]); // Calculate the absolute view position @@ -259,9 +256,9 @@ FGLocation::recalcPosition (double lon_deg, double lat_deg, double alt_ft) const // aka Relative View Position sgdVec3 scenery_center; sgdSetVec3(scenery_center, - scenery.get_next_center().x(), - scenery.get_next_center().y(), - scenery.get_next_center().z()); + globals->get_scenery()->get_next_center().x(), + globals->get_scenery()->get_next_center().y(), + globals->get_scenery()->get_next_center().z()); sgdVec3 view_pos; sgdSubVec3(view_pos, _absolute_view_pos, scenery_center); sgSetVec3(_relative_view_pos, view_pos); diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 9880c31fa..cf6f521bb 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -445,7 +445,7 @@ void fgRenderFrame() { // now work without seg faulting the system. // calculate our current position in cartesian space - scenery.set_center( scenery.get_next_center() ); + globals->get_scenery()->set_center( globals->get_scenery()->get_next_center() ); // update view port fgReshape( fgGetInt("/sim/startup/xsize"), @@ -584,8 +584,9 @@ void fgRenderFrame() { ssgSetFOV( current__view->get_h_fov(), current__view->get_v_fov() ); - double agl = current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER - - scenery.get_cur_elev(); + double agl = + current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER + - globals->get_scenery()->get_cur_elev(); if ( agl > 10.0 ) { scene_nearplane = 10.0f; @@ -769,7 +770,9 @@ void fgUpdateTimeDepCalcs() { // cout << "cur_fdm_state->get_inited() = " << cur_fdm_state->get_inited() // << " cur_elev = " << scenery.get_cur_elev() << endl; - if ( !cur_fdm_state->get_inited() && scenery.get_cur_elev() > -9990 ) { + if ( !cur_fdm_state->get_inited() && + globals->get_scenery()->get_cur_elev() > -9990 ) + { SG_LOG(SG_FLIGHT,SG_INFO, "Finally initializing fdm"); cur_fdm_state->init(); @@ -897,16 +900,18 @@ static void fgMainLoop( void ) { cur_fdm_state->get_Runway_altitude() * SG_FEET_TO_METER, cur_fdm_state->get_Altitude() * SG_FEET_TO_METER); */ - if ( scenery.get_cur_elev() > -9990 && cur_fdm_state->get_inited() ) { + if ( globals->get_scenery()->get_cur_elev() > -9990 + && cur_fdm_state->get_inited() ) + { if ( cur_fdm_state->get_Altitude() * SG_FEET_TO_METER < - (scenery.get_cur_elev() + alt_adjust_m - 3.0) ) { + (globals->get_scenery()->get_cur_elev() + alt_adjust_m - 3.0) ) { // now set aircraft altitude above ground printf("(*) Current Altitude = %.2f < %.2f forcing to %.2f\n", cur_fdm_state->get_Altitude() * SG_FEET_TO_METER, - scenery.get_cur_elev() + alt_adjust_m - 3.0, - scenery.get_cur_elev() + alt_adjust_m ); - cur_fdm_state->set_Altitude( scenery.get_cur_elev() - + alt_adjust_m ); + globals->get_scenery()->get_cur_elev() + alt_adjust_m - 3.0, + globals->get_scenery()->get_cur_elev() + alt_adjust_m ); + cur_fdm_state->set_Altitude( globals->get_scenery()->get_cur_elev() + + alt_adjust_m ); SG_LOG( SG_ALL, SG_DEBUG, "<*> resetting altitude to " @@ -1850,7 +1855,7 @@ void fgUpdateDCS (void) { Point3D obj_pos = sgGeodToCart( obj_posn ); // Translate moving object w.r.t eye - Point3D Objtrans = obj_pos-scenery.get_center(); + Point3D Objtrans = obj_pos - globals->get_scenery()->get_center(); bz[0]=Objtrans.x(); bz[1]=Objtrans.y(); bz[2]=Objtrans.z(); diff --git a/src/Main/viewer.cxx b/src/Main/viewer.cxx index c099de9fa..8efc1e0d7 100644 --- a/src/Main/viewer.cxx +++ b/src/Main/viewer.cxx @@ -654,7 +654,7 @@ FGViewer::recalcPositionVectors (double lon_deg, double lat_deg, double alt_ft) Point3D p = Point3D(lon_deg * SG_DEGREES_TO_RADIANS, lat_geoc_rad, sea_level_radius_m); - Point3D tmp = sgPolarToCart3d(p) - scenery.get_next_center(); + Point3D tmp = sgPolarToCart3d(p) - globals->get_scenery()->get_next_center(); sgSetVec3(_zero_elev_view_pos, tmp[0], tmp[1], tmp[2]); // Calculate the absolute view position @@ -669,9 +669,9 @@ FGViewer::recalcPositionVectors (double lon_deg, double lat_deg, double alt_ft) // aka Relative View Position sgdVec3 scenery_center; sgdSetVec3(scenery_center, - scenery.get_next_center().x(), - scenery.get_next_center().y(), - scenery.get_next_center().z()); + globals->get_scenery()->get_next_center().x(), + globals->get_scenery()->get_next_center().y(), + globals->get_scenery()->get_next_center().z()); sgdVec3 view_pos; sgdSubVec3(view_pos, _absolute_view_pos, scenery_center); sgSetVec3(_relative_view_pos, view_pos); diff --git a/src/Network/atc610x.cxx b/src/Network/atc610x.cxx index ae0c3bcee..c30a5ce2f 100644 --- a/src/Network/atc610x.cxx +++ b/src/Network/atc610x.cxx @@ -272,9 +272,17 @@ bool FGATC610x::open() { // Release the hardware ATC610xRelease( lock_fd ); + SG_LOG( SG_IO, SG_ALERT, + " - Waiting for compass to come home." ); + bool home = false; + int timeout = 900; // about 30 seconds while ( ! home ) { - SG_LOG( SG_IO, SG_DEBUG, "Checking if compass home ..." ); + if ( timeout % 150 == 0 ) { + SG_LOG( SG_IO, SG_INFO, "waiting for compass = " << timeout ); + } else { + SG_LOG( SG_IO, SG_DEBUG, "Checking if compass home ..." ); + } while ( ATC610xLock( lock_fd ) <= 0 ); @@ -292,6 +300,8 @@ bool FGATC610x::open() { #else usleep(33); #endif + + --timeout; } compass_position = 0.0; diff --git a/src/Network/native_ctrls.cxx b/src/Network/native_ctrls.cxx index e09763749..6f512b8e5 100644 --- a/src/Network/native_ctrls.cxx +++ b/src/Network/native_ctrls.cxx @@ -75,7 +75,7 @@ static void global2raw( const FGControls *global, FGRawCtrls *raw ) { raw->brake[i] = globals->get_controls()->get_brake(i); } - raw->hground = scenery.get_cur_elev(); + raw->hground = globals->get_scenery()->get_cur_elev(); } @@ -97,7 +97,7 @@ static void raw2global( const FGRawCtrls *raw, FGControls *global ) { globals->get_controls()->set_brake( i, raw->brake[i] ); } globals->get_controls()->set_gear_down( raw->gear_handle ); - scenery.set_cur_elev( raw->hground ); + globals->get_scenery()->set_cur_elev( raw->hground ); } else { SG_LOG( SG_IO, SG_ALERT, "Error: version mismatch in raw2global()" ); SG_LOG( SG_IO, SG_ALERT, diff --git a/src/Scenery/scenery.cxx b/src/Scenery/scenery.cxx index 51891c062..66b053684 100644 --- a/src/Scenery/scenery.cxx +++ b/src/Scenery/scenery.cxx @@ -42,10 +42,6 @@ #include "scenery.hxx" -// Shared structure to hold current scenery parameters -FGScenery scenery; - - // Scenery Management system FGScenery::FGScenery() { SG_LOG( SG_TERRAIN, SG_INFO, "Initializing scenery subsystem" ); diff --git a/src/Scenery/scenery.hxx b/src/Scenery/scenery.hxx index 45ae6a9d7..53724bae4 100644 --- a/src/Scenery/scenery.hxx +++ b/src/Scenery/scenery.hxx @@ -83,13 +83,6 @@ public: }; -extern FGScenery scenery; - - -// Initialize the Scenery Management system -int fgSceneryInit( void ); - - #endif // _SCENERY_HXX diff --git a/src/Scenery/tileentry.cxx b/src/Scenery/tileentry.cxx index 999473765..94636db1f 100644 --- a/src/Scenery/tileentry.cxx +++ b/src/Scenery/tileentry.cxx @@ -799,7 +799,7 @@ void FGTileEntry::prep_ssg_node( const Point3D& p, sgVec3 up, float vis) { double agl; if ( current_aircraft.fdm_state ) { agl = current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER - - scenery.get_cur_elev(); + - globals->get_scenery()->get_cur_elev(); } else { agl = 0.0; } @@ -847,7 +847,7 @@ void FGTileEntry::prep_ssg_node( const Point3D& p, sgVec3 up, float vis) { double agl; if ( current_aircraft.fdm_state ) { agl = current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER - - scenery.get_cur_elev(); + - globals->get_scenery()->get_cur_elev(); } else { agl = 0.0; } @@ -902,7 +902,7 @@ void FGTileEntry::prep_ssg_node( const Point3D& p, sgVec3 up, float vis) { double agl1; if ( current_aircraft.fdm_state ) { agl1 = current_aircraft.fdm_state->get_Altitude() * SG_FEET_TO_METER - - scenery.get_cur_elev(); + - globals->get_scenery()->get_cur_elev(); } else { agl1 = 0.0; } @@ -1286,7 +1286,7 @@ FGTileEntry::load( const SGPath& base, bool is_base ) terra_transform->addKid( terra_range ); // calculate initial tile offset - SetOffset( scenery.get_center() ); + SetOffset( globals->get_scenery()->get_center() ); sgCoord sgcoord; sgSetCoord( &sgcoord, offset.x(), offset.y(), offset.z(), diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index 19a46febf..0ed9903cc 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -261,10 +261,10 @@ int FGTileMgr::update( double lon, double lat, double visibility_meters ) { if ( tile_cache.exists( current_bucket ) ) { current_tile = tile_cache.get_tile( current_bucket ); - scenery.set_next_center( current_tile->center ); + globals->get_scenery()->set_next_center( current_tile->center ); } else { SG_LOG( SG_TERRAIN, SG_WARN, "Tile not found (Ok if initializing)" ); - scenery.set_next_center( Point3D(0.0) ); + globals->get_scenery()->set_next_center( Point3D(0.0) ); } if ( state == Running ) { @@ -338,40 +338,12 @@ int FGTileMgr::update( double lon, double lat, double visibility_meters ) { sgdVec3 sc; sgdSetVec3( sc, - scenery.get_center()[0], - scenery.get_center()[1], - scenery.get_center()[2] ); - -#if 0 - if ( scenery.center == Point3D(0.0) ) { - // initializing - cout << "initializing scenery current elevation ... " << endl; - sgdVec3 tmp_abs_view_pos; - - Point3D geod_pos = Point3D( longitude * SGD_DEGREES_TO_RADIANS, - latitude * SGD_DEGREES_TO_RADIANS, - 0.0); - Point3D tmp = sgGeodToCart( geod_pos ); - scenery.center = tmp; - sgdSetVec3( tmp_abs_view_pos, tmp.x(), tmp.y(), tmp.z() ); - - // cout << "abs_view_pos = " << tmp_abs_view_pos << endl; - prep_ssg_nodes(visibility_meters); - - double tmp_elev; - if ( fgCurrentElev(tmp_abs_view_pos, sc, &hit_list, - &tmp_elev, &scenery.cur_radius, scenery.cur_normal) ) - { - scenery.set_cur_elev( tmp_elev ); - } else { - scenery.set_cur_elev( 0.0 ); - } - // cout << "result = " << scenery.get_cur_elev() << endl; - } else { -#endif + globals->get_scenery()->get_center()[0], + globals->get_scenery()->get_center()[1], + globals->get_scenery()->get_center()[2] ); /* - cout << "abs view pos = " + cout << "abs view pos = " << globals->get_current_view()->get_abs_view_pos()[0] << "," << globals->get_current_view()->get_abs_view_pos()[1] << "," << globals->get_current_view()->get_abs_view_pos()[2] @@ -396,9 +368,9 @@ int FGTileMgr::update( double lon, double lat, double visibility_meters ) { // scenery center has been properly defined so any hit // should be valid (and not just luck) sgdSetVec3( sc, - scenery.get_center()[0], - scenery.get_center()[1], - scenery.get_center()[2] ); + globals->get_scenery()->get_center()[0], + globals->get_scenery()->get_center()[1], + globals->get_scenery()->get_center()[2] ); hit = fgCurrentElev(globals->get_current_view()->get_absolute_view_pos(), sc, current_tile->get_terra_transform(), @@ -409,13 +381,13 @@ int FGTileMgr::update( double lon, double lat, double visibility_meters ) { } if ( hit ) { - scenery.set_cur_elev( hit_elev ); - scenery.set_cur_radius( hit_radius ); - scenery.set_cur_normal( hit_normal ); + globals->get_scenery()->set_cur_elev( hit_elev ); + globals->get_scenery()->set_cur_radius( hit_radius ); + globals->get_scenery()->set_cur_normal( hit_normal ); } else { - scenery.set_cur_elev( -9999.0 ); - scenery.set_cur_radius( 0.0 ); - scenery.set_cur_normal( hit_normal ); + globals->get_scenery()->set_cur_elev( -9999.0 ); + globals->get_scenery()->set_cur_radius( 0.0 ); + globals->get_scenery()->set_cur_normal( hit_normal ); } // cout << "Current elevation = " << scenery.get_cur_elev() << endl; @@ -444,7 +416,7 @@ void FGTileMgr::prep_ssg_nodes(float vis) { while ( ! tile_cache.at_end() ) { // cout << "processing a tile" << endl; if ( (e = tile_cache.get_current()) ) { - e->prep_ssg_node( scenery.get_center(), up, vis); + e->prep_ssg_node( globals->get_scenery()->get_center(), up, vis); } else { SG_LOG(SG_INPUT, SG_ALERT, "warning ... empty tile in cache"); } diff --git a/src/Time/moonpos.cxx b/src/Time/moonpos.cxx index a3bb711df..4c88c6c91 100644 --- a/src/Time/moonpos.cxx +++ b/src/Time/moonpos.cxx @@ -400,7 +400,7 @@ void fgUpdateMoonPos( void ) { Point3D vp( v->get_view_pos()[0], v->get_view_pos()[1], v->get_view_pos()[2] ); - rel_moonpos = l->fg_moonpos - ( vp + scenery.get_center() ); + rel_moonpos = l->fg_moonpos - ( vp + globals->get_scenery()->get_center() ); sgSetVec3( to_moon, rel_moonpos.x(), rel_moonpos.y(), rel_moonpos.z() ); // printf( "Vector to moon = %.2f %.2f %.2f\n", // to_moon[0], to_moon[1], to_moon[2]); diff --git a/src/Time/sunpos.cxx b/src/Time/sunpos.cxx index 1fff609cf..ebc45f9d5 100644 --- a/src/Time/sunpos.cxx +++ b/src/Time/sunpos.cxx @@ -307,7 +307,7 @@ void fgUpdateSunPos( void ) { Point3D vp( v->get_view_pos()[0], v->get_view_pos()[1], v->get_view_pos()[2] ); - rel_sunpos = l->fg_sunpos - ( vp + scenery.get_center() ); + rel_sunpos = l->fg_sunpos - ( vp + globals->get_scenery()->get_center() ); sgSetVec3( to_sun, rel_sunpos.x(), rel_sunpos.y(), rel_sunpos.z() ); // printf( "Vector to sun = %.2f %.2f %.2f\n", // v->to_sun[0], v->to_sun[1], v->to_sun[2]);