|
osgEarth 2.1.1
|
Public Member Functions | |
| RemoveBlacklistedFilenamesVisitor () | |
| virtual void | apply (osg::PagedLOD &node) |
Public Attributes | |
| unsigned int | _numRemoved |
Definition at line 79 of file MapNode.cpp.
| RemoveBlacklistedFilenamesVisitor::RemoveBlacklistedFilenamesVisitor | ( | ) | [inline] |
Definition at line 82 of file MapNode.cpp.
:
osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN),
_numRemoved(0)
{
}
| virtual void RemoveBlacklistedFilenamesVisitor::apply | ( | osg::PagedLOD & | node | ) | [inline, virtual] |
Definition at line 88 of file MapNode.cpp.
{
//The PagedLOD node will contain two filenames, the first is empty and is the actual geometry of the
//tile and the second is the filename of the next tile.
if (node.getNumFileNames() > 1)
{
//Get the child filename
const std::string &filename = node.getFileName(1);
if (osgEarth::Registry::instance()->isBlacklisted(filename))
{
//If the tile is blacklisted, we set the actual geometry, child 0, to always display
//and the second child to never display
node.setRange(0, 0, FLT_MAX);
node.setRange(1, FLT_MAX, FLT_MAX);
}
else
{
//If the child is not blacklisted, it is possible that it could have been blacklisted previously so reset the
//ranges of both the first and second children. This gives the second child another
//chance to be traversed in case a layer was added that might have data.
osg::ref_ptr< MapNode::TileRangeData > ranges = static_cast< MapNode::TileRangeData* >(node.getUserData());
if (ranges)
{
node.setRange(0, ranges->_minRange, ranges->_maxRange);
node.setRange(1, 0, ranges->_minRange);
}
}
}
traverse(node);
}
Here is the call graph for this function:| unsigned int RemoveBlacklistedFilenamesVisitor::_numRemoved |
Definition at line 120 of file MapNode.cpp.
1.7.3