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

LOD.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 "nvsg/Group.h"
00018 
00019 
00020 namespace nvsg
00021 {
00023 
00050   class LOD : public Group
00051   {
00052     public:
00054 
00055       NVSG_API static const LOD * create( void );
00056 
00058 
00059       NVSG_API static const LOD * createFromBase( const Group &rhs  
00060                                                 );
00061 
00063 
00064       NVSG_API virtual const LOD * clone( void ) const;
00065 
00067       NVSG_API void setRanges( const float * ranges   
00068                              , size_t count           
00069                              );
00070 
00072 
00073       NVSG_API const float * getRanges( void ) const;
00074 
00076 
00077       NVSG_API size_t getNumberOfRanges( void ) const;
00078       
00080 
00083       NVSG_API void setCenter( const nvmath::Vec3f & center   
00084                              );
00085 
00087 
00088       NVSG_API const nvmath::Vec3f & getCenter( void ) const;
00089 
00091 
00098       NVSG_API size_t getLODToUse(const nvmath::Mat44f & modelViewMatrix   
00099                                  ) const;
00100 
00101     protected:
00103       NVSG_API LOD( void );
00104 
00106       NVSG_API LOD( const Group &rhs );
00107 
00109       NVSG_API LOD( const LOD &rhs );
00110       
00112       NVSG_API virtual ~LOD( void );
00113 
00114     private:
00115       nvmath::Vec3f        m_center;
00116       std::vector<float>   m_ranges;
00117   };
00118 
00119 }

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