if (pSceneryManager)
{
osg::ref_ptr<osg::Object> temp = _model.get();
- pSceneryManager->get_scene_graph()->removeChild(aip.getSceneGraph());
+ pSceneryManager->get_models_branch()->removeChild(aip.getSceneGraph());
// withdraw from SGModelPlacement and drop own reference (unref)
aip.clear();
_modeldata = 0;
_installed = true;
_modeldata = new FGAIModelData(props);
- osg::Node * mdl = SGModelLib::loadDeferredModel(f, props, _modeldata);
+ _model= SGModelLib::loadPagedModel(f, props, _modeldata);
- _model = new osg::LOD;
_model->setName("AI-model range animation node");
- _model->addChild( mdl, 0, FLT_MAX );
- _model->setCenterMode(osg::LOD::USE_BOUNDING_SPHERE_CENTER);
- _model->setRangeMode(osg::LOD::DISTANCE_FROM_EYE_POINT);
+ // _model->setCenterMode(osg::LOD::USE_BOUNDING_SPHERE_CENTER);
+ // _model->setRangeMode(osg::LOD::DISTANCE_FROM_EYE_POINT);
+
// We really need low-resolution versions of AI/MP aircraft.
// Or at least dummy "stubs" with some default silhouette.
// _model->addChild( SGModelLib::loadPagedModel(fgGetString("/sim/multiplay/default-model", default_model),
// props, new FGNasalModelData(props)), FLT_MAX, FLT_MAX);
updateLOD();
-
- initModel(mdl);
+ initModel();
+
if (_model.valid() && _initialized == false) {
aip.init( _model.get() );
aip.setVisible(true);
invisible = false;
- globals->get_scenery()->get_scene_graph()->addChild(aip.getSceneGraph());
+ globals->get_scenery()->get_models_branch()->addChild(aip.getSceneGraph());
_initialized = true;
SG_LOG(SG_AI, SG_DEBUG, "AIBase: Loaded model " << model_path);
return true;
}
-void FGAIBase::initModel(osg::Node *node)
+void FGAIBase::initModel()
{
if (_model.valid()) {
#define _FG_AIBASE_HXX
#include <string>
-
-#include <osg/LOD>
+#include <osg/ref_ptr>
#include <simgear/constants.h>
#include <simgear/scene/model/placement.hxx>
#include <Main/fg_props.hxx>
+namespace osg { class PagedLOD; }
+
namespace simgear {
class BVHMaterial;
}
virtual void readFromScenario(SGPropertyNode* scFileNode);
virtual bool init(bool search_in_AI_path=false);
- virtual void initModel(osg::Node *node);
+ virtual void initModel();
virtual void update(double dt);
virtual void bind();
virtual void unbind();
int _refID;
object_type _otype;
bool _initialized;
- osg::ref_ptr<osg::LOD> _model; //The 3D model LOD object
+ osg::ref_ptr<osg::PagedLOD> _model;
osg::ref_ptr<FGAIModelData> _modeldata;