diff --git a/src/Scenery/scenery.cxx b/src/Scenery/scenery.cxx index 04319fbe8..f16e34ff8 100644 --- a/src/Scenery/scenery.cxx +++ b/src/Scenery/scenery.cxx @@ -33,6 +33,8 @@ #include #include #include +#include +#include #include #include #include @@ -44,6 +46,7 @@ #include "scenery.hxx" using namespace flightgear; +using namespace simgear; class FGGroundPickCallback : public SGPickCallback { public: @@ -154,8 +157,11 @@ FGScenery::get_elevation_m(const SGGeod& geod, double& alt, if (alt < elevation) { alt = elevation; if (material) { - const osg::StateSet* stateSet = hit.getDrawable()->getStateSet(); - *material = SGMaterialLib::findMaterial(stateSet); + *material = 0; + const EffectGeode* eg + = dynamic_cast(hit.getGeode()); + if (eg) + *material = SGMaterialLib::findMaterial(eg->getEffect()); } } }