void ShaderOptions::fromConfig(const Config& conf) { _code = conf.value(); _samplers.clear(); ConfigSet s = conf.children("sampler"); for (ConfigSet::const_iterator i = s.begin(); i != s.end(); ++i) { _samplers.push_back(Sampler()); _samplers.back()._name = i->value("name"); const Config* urlarray = i->find("array"); if (urlarray) { ConfigSet uris = urlarray->children("url"); for (ConfigSet::const_iterator j = uris.begin(); j != uris.end(); ++j) { URI uri(j->value(), URIContext(conf.referrer())); _samplers.back()._uris.push_back(uri); } } else { optional<URI> uri; i->get("url", uri); if (uri.isSet()) _samplers.back()._uris.push_back(uri.get()); } } s = conf.children("uniform"); for (ConfigSet::const_iterator i = s.begin(); i != s.end(); ++i) { _uniforms.push_back(Uniform()); _uniforms.back()._name = i->value("name"); i->get("value", _uniforms.back()._value); } }
void SplatCoverageLegend::fromConfig(const Config& conf) { conf.get("name", _name); conf.get("source", _source); ConfigSet predicatesConf = conf.child("mappings").children(); for(ConfigSet::const_iterator i = predicatesConf.begin(); i != predicatesConf.end(); ++i) { osg::ref_ptr<CoverageValuePredicate> p = new CoverageValuePredicate(); i->get( "name", p->_description ); i->get( "value", p->_exactValue ); i->get( "class", p->_mappedClassName ); if ( p->_mappedClassName.isSet() ) { _predicates.push_back( p.get() ); } } }