本文整理汇总了C++中tilevector::iterator类的典型用法代码示例。如果您正苦于以下问题:C++ iterator类的具体用法?C++ iterator怎么用?C++ iterator使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了iterator类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: refresh
void
OSGTerrainEngineNode::addElevationLayer( ElevationLayer* layer )
{
if ( !layer )
return;
layer->addCallback( _elevationCallback.get() );
if (!_isStreaming)
{
refresh();
}
else
{
TileVector tiles;
_terrain->getTiles( tiles );
OE_DEBUG << LC << "Found " << tiles.size() << std::endl;
for (TileVector::iterator itr = tiles.begin(); itr != tiles.end(); ++itr)
{
updateElevation( itr->get() );
}
}
}
示例2: updateElevation
void
OSGTerrainEngineNode::removeElevationLayer( ElevationLayer* layerRemoved )
{
TileVector tiles;
_terrain->getTiles( tiles );
for (TileVector::iterator itr = tiles.begin(); itr != tiles.end(); ++itr)
{
updateElevation( itr->get() );
}
}
示例3: updateTextureCombining
void
OSGTerrainEngineNode::moveImageLayer( unsigned int oldIndex, unsigned int newIndex )
{
// take a thread-safe copy of the tile table
TileVector tiles;
_terrain->getTiles( tiles );
for (TileVector::iterator itr = tiles.begin(); itr != tiles.end(); ++itr)
{
Tile* tile = itr->get();
tile->applyImmediateTileUpdate( TileUpdate::MOVE_IMAGE_LAYER );
}
updateTextureCombining();
}
示例4: updateTextureCombining
void
OSGTerrainEngineNode::removeImageLayer( ImageLayer* layerRemoved )
{
// make a thread-safe copy of the tile table
TileVector tiles;
_terrain->getTiles( tiles );
for (TileVector::iterator itr = tiles.begin(); itr != tiles.end(); ++itr)
{
Tile* tile = itr->get();
// critical section
tile->removeCustomColorLayer( layerRemoved->getUID() );
}
updateTextureCombining();
}
示例5: lock
// immediately release GL memory for any expired tiles.
// called from the DRAW thread (QuickReleaseGLCallback).
void
TerrainNode::releaseGLObjectsForTiles(osg::State* state)
{
OpenThreads::ScopedLock<Mutex> lock( _tilesToReleaseMutex );
for( TileVector::iterator i = _tilesToRelease.begin(); i != _tilesToRelease.end(); ++i )
{
i->get()->releaseGLObjects( state );
}
_tilesToRelease.clear();
//while( _tilesToRelease.size() > 0 )
//{
// _tilesToRelease.front()->releaseGLObjects( state );
// _tilesToRelease.pop();
//}
}
示例6: refresh
void
QuadTreeTerrainEngineNode::moveElevationLayer( unsigned int oldIndex, unsigned int newIndex )
{
if (!_isStreaming)
{
refresh();
}
else
{
TileVector tiles;
_terrain->getTiles( tiles );
OE_DEBUG << "Found " << tiles.size() << std::endl;
for (TileVector::iterator itr = tiles.begin(); itr != tiles.end(); ++itr)
{
updateElevation( itr->get() );
}
}
}