]> git.mxchange.org Git - flightgear.git/blobdiff - src/Model/model_panel.cxx
- move exception handling from init() and childAdded() to add_model()
[flightgear.git] / src / Model / model_panel.cxx
index 732e0691a534ab293781ce0e37c57f0a33ec206c..ef98544793cc2d39c2c844fc3766baf400d9d952 100644 (file)
@@ -9,10 +9,11 @@
 
 #include <simgear/compiler.h>
 
-#include <plib/ssg.h>
+#include <osg/Geode>
 
 #include <simgear/props/props.hxx>
 #include <simgear/scene/model/model.hxx>
+#include <simgear/scene/util/SGNodeMasks.hxx>
 
 #include "panelnode.hxx"
 
 SG_USING_STD(vector);
 
 static
-ssgEntity *load_panel(SGPropertyNode *n)
+osg::Node* load_panel(SGPropertyNode *n)
 {
-  return new FGPanelNode(n);
+  osg::Geode* geode = new osg::Geode;
+  geode->addDrawable(new FGPanelNode(n));
+  return geode;
 }
+
 \f
 ////////////////////////////////////////////////////////////////////////
 // Global functions.
 ////////////////////////////////////////////////////////////////////////
 
-ssgBranch *
+osg::Node *
 fgLoad3DModelPanel( const string &fg_root, const string &path,
                     SGPropertyNode *prop_root,
-                    double sim_time_sec )
+                    double sim_time_sec, const SGPath& livery )
 {
-  return sgLoad3DModel( fg_root, path, prop_root, sim_time_sec, load_panel );
+  osg::Node* node = sgLoad3DModel( fg_root, path, prop_root, sim_time_sec,
+                                   load_panel, 0, livery );
+  node->setNodeMask(~SG_NODEMASK_TERRAIN_BIT);
+  return node;
 }