Advertisement

osgEarth的Rex引擎原理分析和(二十八)活跃瓦片寄存器的作用

阅读量:

目标:(十二)中的问题18

将其译为“活跃瓦片注册表”更为恰当

在RexTerrainEngineNode中,_liveTiles对应于osgEarth::Drivers::RexTerrainEngine::TileNodeRegistry,该对象在setMap方法调用时被创建,并被置入上下文环境中。随后,该注册表会随着上下文环境在其他位置被调用,例如TileNode的create函数中。

活跃瓦片寄存器的主要职责是管理不同版本的瓦片节点TileNode。当rex引擎执行setMap操作时,该寄存器会被生成。而在TileNode进行create操作时,相应的瓦片会被添加至活跃瓦片寄存器中。当某瓦片被加入到活跃瓦片注册表的过程中,会触发一系列相关操作:

复制代码
 osgEarthDrivers/engine_rex/TileNodeRegistry.cpp

    
 void
    
 TileNodeRegistry::addSafely(TileNode* tile)
    
 {
    
     _tiles.insert( tile->getKey(), tile );
    
     //_tiles[ tile->getTileKey() ] = tile;
    
     if ( _revisioningEnabled )
    

全部评论 (0)

还没有任何评论哟~