+ using namespace simgear;
+ EffectGeode* eg = dynamic_cast<EffectGeode*>(&node);
+ if (eg) {
+ const Effect* effect = eg->getEffect();
+ if (effect)
+ for (vector<osg::ref_ptr<Technique> >::const_iterator itr
+ = effect->techniques.begin(), end = effect->techniques.end();
+ itr != end;
+ ++itr) {
+ const Technique* tniq = itr->get();
+ for (vector<osg::ref_ptr<Pass> >::const_iterator pitr
+ = tniq->passes.begin(), pend = tniq->passes.end();
+ pitr != pend;
+ ++pitr)
+ maybeGetMaterialValues(pitr->get());
+ }
+ } else {
+ maybeGetMaterialValues(node.getStateSet());
+ }