00001 // Copyright NVIDIA Corporation 2002-2004 00002 // TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED 00003 // *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS 00004 // OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY 00005 // AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS 00006 // BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES 00007 // WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 00008 // BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) 00009 // ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS 00010 // BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 00011 00012 #pragma once 00013 00015 #include <map> 00016 00017 #include "nvsgcommon.h" 00018 00019 #include "nvtraverser/Traverser.h" 00020 00021 namespace nvtraverser 00022 { 00024 00027 class IdentityToGroupTraverser : public Traverser 00028 { 00029 public: 00031 NVSG_API IdentityToGroupTraverser( void ); 00032 00033 protected: 00035 NVSG_API virtual ~IdentityToGroupTraverser( void ); 00036 00038 00039 NVSG_API virtual void handleAnimatedTransform( const nvsg::AnimatedTransform *p 00040 ); 00041 00043 00044 NVSG_API virtual void handleGroup( const nvsg::Group *p 00045 ); 00046 00048 00050 NVSG_API virtual void handleTransform( const nvsg::Transform *p 00051 ); 00052 00053 private: 00054 std::map<const nvsg::Node*,const nvsg::Group*> m_transformToGroupMap; 00055 }; 00056 }