void Style::mergeConfig( const Config& conf ) { if ( _name.empty() ) _name = conf.value( "name" ); // if there's no explicit name, use the KEY as the name. if ( _name.empty() ) _name = conf.key(); conf.getIfSet( "url", _uri ); // named "url" for back compat _origType = conf.value( "type" ); std::string textData = trim(conf.value()); bool useCSS = _origType.compare("text/css") == 0 || !textData.empty(); if ( useCSS ) { _origData = textData; // just take the first block. ConfigSet blocks; CssUtils::readConfig( _origData, conf.referrer(), blocks ); if ( blocks.size() > 0 ) { fromSLD( blocks.front() ); } } else { Config symbolConf = conf.child( "symbols" ); if ( !symbolConf.empty() ) { for( ConfigSet::const_iterator i = symbolConf.children().begin(); i != symbolConf.children().end(); ++i ) { const Config& c = *i; Symbol* symbol = SymbolRegistry::instance()->create( c ); add(symbol); } } } }
DataManager::DataManager(osgEarth::MapNode* mapNode) : _mapNode(mapNode), _maxUndoStackSize( 128 ) { if (_mapNode) { _map = _mapNode->getMap(); //Look for viewpoints in the MapNode externals const Config& externals = _mapNode->externalConfig(); const ConfigSet children = externals.children("viewpoint"); if (children.size() > 0) { for( ConfigSet::const_iterator i = children.begin(); i != children.end(); ++i ) _viewpoints.push_back(Viewpoint(*i)); } } initialize(); }