目标:问题(九)中10
在对MapNode做初始化时,需要创建地理信息引擎节点。
void
MapNode::init()
{
_terrainEngine = TerrainEngineNodeFactory::create( terrainOptions );
}
osgEarth::TerrainEngineNodeFactory创建地理信息引擎节点的过程如下:
osgEarth/TerrainEngineNode.cpp
TerrainEngineNode*
TerrainEngineNodeFactory::create(const TerrainOptions& options )
{
osg::ref_ptr<TerrainEngineNode> node;
std::string driver =
Registry::instance()->overrideTerrainEngineDriverName().getOrUse(options.getDriver());
if ( driver.empty() )
driver = Registry::instance()->getDefaultTerrainEngineDriverName();
std::string driverExt = std::string( ".osgearth_engine_" ) + driver;
osg::ref_ptr<osg::Object> object = osgDB::readRefObjectFile( driverExt );
node = dynamic_cast<TerrainEngineNode*>( objec