00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include "nvsgcommon.h"
00013
00014 #include "nvtraverser/Traverser.h"
00015
00016 namespace nvtraverser
00017 {
00019
00020 class GroupUnifyTraverser : public Traverser
00021 {
00022 public:
00024 NVSG_API GroupUnifyTraverser( void );
00025
00026 public:
00028
00030 NVSG_API bool getIgnoreNames( void ) const;
00031
00033
00034 NVSG_API void setIgnoreNames( bool ignore
00035 );
00036
00037 protected:
00039 NVSG_API virtual ~GroupUnifyTraverser( void );
00040
00042
00043 NVSG_API virtual void handleGroup( const nvsg::Group * p
00044 );
00045
00047
00048 NVSG_API virtual void preTraverseGroup( const nvsg::Group *p
00049 );
00050
00052
00053 NVSG_API virtual void postTraverseGroup( const nvsg::Group *p
00054 );
00055
00056 private:
00057 bool m_ignoreNames;
00058 std::stack<std::vector<const nvsg::Group *>*> m_oneChildGroups;
00059 };
00060
00061 inline bool GroupUnifyTraverser::getIgnoreNames( void ) const
00062 {
00063 return( m_ignoreNames );
00064 }
00065
00066 inline void GroupUnifyTraverser::setIgnoreNames( bool ignore )
00067 {
00068 m_ignoreNames = ignore;
00069 }
00070 }