//C++ header - Open Scene Graph - Copyright (C) 1998-2001 Robert Osfield //Distributed under the terms of the GNU Library General Public License (LGPL) //as published by the Free Software Foundation. #ifndef OSGUTIL_SMOOTHINGVISITOR #define OSGUTIL_SMOOTHINGVISITOR 1 #include #include #include #include namespace osgUtil { /** A smoothing visitor for calculating smoothed normals for * osg::GeoSet's which contains surface primitives. */ class OSGUTIL_EXPORT SmoothingVisitor : public osg::NodeVisitor { public: /// default to traversing all children. SmoothingVisitor() { setTraversalMode(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN); } /// smooth geoset by creating per vertex normals. static void smooth(osg::GeoSet& geoset); /// apply smoothing method to all geode geosets. virtual void apply(osg::Geode& geode); }; } #endif