X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2Facmodel.cxx;h=90a70f8f6bc158d5912f7a72addc90e9d6cd9cb5;hb=610aa1997e393073633c667c3cc058c129d4c0b7;hp=d1dc1bed5ad1f77fbf85975c8b9352bd81d05907;hpb=92a58f6555e3db67127a47f21c760e1d8978a094;p=flightgear.git diff --git a/src/Model/acmodel.cxx b/src/Model/acmodel.cxx index d1dc1bed5..90a70f8f6 100644 --- a/src/Model/acmodel.cxx +++ b/src/Model/acmodel.cxx @@ -16,14 +16,16 @@ #include #include #include +#include #include
#include
#include
#include +#include "model_panel.hxx" + #include "acmodel.hxx" -#include "model.hxx" @@ -51,8 +53,23 @@ FGAircraftModel::~FGAircraftModel () void FGAircraftModel::init () { - _aircraft = new FG3DModel; - _aircraft->init(fgGetString("/sim/model/path", "Models/Geometry/glider.ac")); + _aircraft = new SGModelPlacement; + string path = fgGetString("/sim/model/path", "Models/Geometry/glider.ac"); + try { + ssgBranch *model = fgLoad3DModelPanel( globals->get_fg_root(), + path, + globals->get_props(), + globals->get_sim_time_sec() ); + _aircraft->init( model ); + } catch (const sg_exception &ex) { + SG_LOG(SG_GENERAL, SG_ALERT, "Failed to load aircraft from " << path); + SG_LOG(SG_GENERAL, SG_ALERT, "(Falling back to glider.ac.)"); + ssgBranch *model = fgLoad3DModelPanel( globals->get_fg_root(), + "Models/Geometry/glider.ac", + globals->get_props(), + globals->get_sim_time_sec() ); + _aircraft->init( model ); + } _scene->addKid(_aircraft->getSceneGraph()); _selector->addKid(_aircraft->getSceneGraph()); globals->get_scenery()->get_aircraft_branch()->addKid(_selector); @@ -87,7 +104,7 @@ FGAircraftModel::update (double dt) _aircraft->setOrientation(fgGetDouble("/orientation/roll-deg"), fgGetDouble("/orientation/pitch-deg"), fgGetDouble("/orientation/heading-deg")); - _aircraft->update(dt); + _aircraft->update( globals->get_scenery()->get_center() ); }