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); }
unsigned int RemoveBlacklistedFilenamesVisitor::_numRemoved |
Definition at line 120 of file MapNode.cpp.