X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FScenery%2Fscenery.cxx;h=b319cefe8a29352f90e0590d2e77726eef0677ff;hb=a4e81f4ff075e6a3c0c2ea1b5a29c0bcdfdbc671;hp=cb21b6af067d1338f537c521630fe69101758f2c;hpb=a5e4e6be11bcd94dd0b78da7ef492767cc53dcf8;p=flightgear.git diff --git a/src/Scenery/scenery.cxx b/src/Scenery/scenery.cxx index cb21b6af0..b319cefe8 100644 --- a/src/Scenery/scenery.cxx +++ b/src/Scenery/scenery.cxx @@ -30,26 +30,74 @@ #endif #include -#include +#include #include #include #include +#include
+ #include "scenery.hxx" -// Shared structure to hold current scenery parameters -struct fgSCENERY scenery; +// Scenery Management system +FGScenery::FGScenery() { + SG_LOG( SG_TERRAIN, SG_INFO, "Initializing scenery subsystem" ); + + center = Point3D(0.0); + cur_elev = -9999; +} // Initialize the Scenery Management system -int fgSceneryInit( void ) { - FG_LOG( FG_TERRAIN, FG_INFO, "Initializing scenery subsystem" ); +FGScenery::~FGScenery() { +} + + +void FGScenery::init() { + // Scene graph root + scene_graph = new ssgRoot; + scene_graph->setName( "Scene" ); + + lighting = new ssgRoot; + lighting->setName( "Lighting" ); + + // Terrain branch + terrain_branch = new ssgBranch; + terrain_branch->setName( "Terrain" ); + scene_graph->addKid( terrain_branch ); + + models_branch = new ssgBranch; + models_branch->setName( "Models" ); + scene_graph->addKid( models_branch ); + + aircraft_branch = new ssgBranch; + aircraft_branch->setName( "Aircraft" ); + scene_graph->addKid( aircraft_branch ); + + // Lighting + gnd_lights_branch = new ssgBranch; + gnd_lights_branch->setName( "Ground Lighting" ); + lighting->addKid( gnd_lights_branch ); + + rwy_lights_branch = new ssgBranch; + rwy_lights_branch->setName( "Runway Lighting" ); + lighting->addKid( rwy_lights_branch ); +} + + +void FGScenery::update(double dt) { +} + + +void FGScenery::bind() { + fgTie("/environment/ground-elevation-m", this, + &FGScenery::get_cur_elev, &FGScenery::set_cur_elev); +} - scenery.center = Point3D(0.0); - scenery.cur_elev = -9999; - return 1; +void FGScenery::unbind() { + fgUntie("/environment/ground-elevation-m"); }