osgEarth 2.1.1
Public Member Functions | Public Attributes

RemoveBlacklistedFilenamesVisitor Class Reference

List of all members.

Public Member Functions

 RemoveBlacklistedFilenamesVisitor ()
virtual void apply (osg::PagedLOD &node)

Public Attributes

unsigned int _numRemoved

Detailed Description

Definition at line 79 of file MapNode.cpp.


Constructor & Destructor Documentation

RemoveBlacklistedFilenamesVisitor::RemoveBlacklistedFilenamesVisitor ( ) [inline]

Definition at line 82 of file MapNode.cpp.

                                       :
      osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN),
          _numRemoved(0)
      {
      }

Member Function Documentation

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:


Member Data Documentation

Definition at line 120 of file MapNode.cpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines