00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <list>
00013
00014 #include "nvsgcommon.h"
00015
00016 #include "nvtraverser/Traverser.h"
00017
00018 namespace nvtraverser
00019 {
00021
00022 class GeoNodeUnifyTraverser : public Traverser
00023 {
00024 public:
00026 NVSG_API GeoNodeUnifyTraverser( void );
00027
00028 public:
00030
00032 NVSG_API bool getIgnoreNames( void ) const;
00033
00035
00036 NVSG_API void setIgnoreNames( bool ignore
00037 );
00038
00039 protected:
00041 NVSG_API virtual ~GeoNodeUnifyTraverser( void );
00042
00044
00045 NVSG_API virtual void handleGeoNode( const nvsg::GeoNode * p
00046 );
00047
00049
00050 NVSG_API virtual void preTraverseGroup( const nvsg::Group *p
00051 );
00052
00054
00055 NVSG_API virtual void postTraverseGroup( const nvsg::Group *p
00056 );
00057
00058 private:
00059 bool m_ignoreNames;
00060 std::stack<std::list<const nvsg::GeoNode*>*> m_geoNodes;
00061 };
00062
00063 inline bool GeoNodeUnifyTraverser::getIgnoreNames( void ) const
00064 {
00065 return( m_ignoreNames );
00066 }
00067
00068 inline void GeoNodeUnifyTraverser::setIgnoreNames( bool ignore )
00069 {
00070 m_ignoreNames = ignore;
00071 }
00072
00073 }