Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

SmoothTraverser.h

Go to the documentation of this file.
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 {
00022 
00024   class SmoothTraverser : public Traverser
00025   {
00026     public:
00028       NVSG_API SmoothTraverser(void);
00029 
00031       NVSG_API void  setCreaseAngle( float creaseAngle );
00032 
00033     protected:
00035       NVSG_API virtual ~SmoothTraverser(void);
00036 
00038 
00039       NVSG_API virtual void  handleAnimatedQuads( 
00040         const nvsg::AnimatedQuads *p      
00041       );
00042 
00044 
00045       NVSG_API virtual void  handleAnimatedTriangles( 
00046         const nvsg::AnimatedTriangles *p  
00047       );
00048 
00050 
00051       NVSG_API virtual void  handleGeoNode( 
00052         const nvsg::GeoNode *p            
00053       );
00054 
00056       NVSG_API virtual void  handleQuads(
00057         const nvsg::Quads *p              
00058       );
00059 
00061 
00062       NVSG_API virtual void  handleQuadStrips(
00063         const nvsg::QuadStrips *p         
00064       );
00065 
00067 
00068       NVSG_API virtual void  handleSkinnedTriangles(
00069         const nvsg::SkinnedTriangles *p   
00070       );
00071 
00073       NVSG_API virtual void  handleTriangles(
00074         const nvsg::Triangles *p          
00075       );
00076 
00078 
00079       NVSG_API virtual void  handleTriStrips(
00080         const nvsg::TriStrips *p          
00081       );
00082 
00083     private:
00084       float                                 m_creaseAngle;
00085       std::vector<const nvsg::GeoSet*>                       m_geoSets;
00086       std::vector<std::pair<const nvsg::QuadStrips*,const nvsg::Quads*> >     m_quadStripsQuads;
00087       std::vector<std::pair<const nvsg::TriStrips*,const nvsg::Triangles*> >  m_triStripsTriangles;
00088   };
00089 }

Generated on Tue Mar 1 13:19:20 2005 for NVSGSDK by NVIDIA