osgEarth 2.1.1
|
00001 /* -*-c++-*- */ 00002 /* osgEarth - Dynamic map generation toolkit for OpenSceneGraph 00003 * Copyright 2008-2010 Pelican Mapping 00004 * http://osgearth.org 00005 * 00006 * osgEarth is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU Lesser General Public License as published by 00008 * the Free Software Foundation; either version 2 of the License, or 00009 * (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public License 00017 * along with this program. If not, see <http://www.gnu.org/licenses/> 00018 */ 00019 #ifndef OSGEARTH_NODE_UTILS_H 00020 #define OSGEARTH_NODE_UTILS_H 1 00021 00022 #include <osgEarth/Common> 00023 #include <osg/ClusterCullingCallback> 00024 00025 namespace osgEarth 00026 { 00031 struct OSGEARTH_EXPORT ClusterCullerFactory 00032 { 00033 static osg::ClusterCullingCallback* create( 00034 osg::Node* node, 00035 const osg::Vec3d& centerGeocentric ); 00036 }; 00037 00043 class OSGEARTH_EXPORT RemoveEmptyGroupsVisitor : public osg::NodeVisitor 00044 { 00045 public: 00046 static void run( osg::Node* entry ) { 00047 if ( entry ) { 00048 RemoveEmptyGroupsVisitor v; 00049 entry->accept( v ); 00050 } 00051 } 00052 00053 public: 00054 RemoveEmptyGroupsVisitor(); 00055 void apply( osg::Group& group ); //override 00056 }; 00057 } 00058 00059 #endif // OSGEARTH_CACHING_H