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 "nvsgcommon.h" 00016 00017 #include "nvtraverser/Traverser.h" 00018 00019 namespace nvtraverser 00020 { 00021 00023 00024 class TriangulateTraverser : public Traverser 00025 { 00026 public: 00028 NVSG_API TriangulateTraverser(void); 00029 00030 protected: 00032 NVSG_API virtual ~TriangulateTraverser(void); 00033 00035 00036 NVSG_API virtual void handleAnimatedQuads( 00037 const nvsg::AnimatedQuads *p 00038 ); 00039 00041 00042 NVSG_API virtual void handleGeoNode( 00043 const nvsg::GeoNode *p 00044 ); 00045 00047 00048 NVSG_API virtual void handleQuads( 00049 const nvsg::Quads *p 00050 ); 00051 00053 00054 NVSG_API virtual void handleQuadStrips( 00055 const nvsg::QuadStrips *p 00056 ); 00057 00058 private: 00059 std::vector<std::pair<const nvsg::GeoSet*,const nvsg::GeoSet*> > m_geoSetReplaces; 00060 }; 00061 00062 }