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

Quads.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/Face.h"
00018 #include  "nvsg/GeoSet.h"
00019 
00020 namespace nvsg
00021 {
00023 
00026   class Quads : public GeoSet
00027   {
00028     public:
00030 
00031       NVSG_API static const Quads * create( void );
00032 
00034 
00035       NVSG_API static const Quads * createFromBase( const GeoSet &rhs );
00036 
00038 
00039       NVSG_API virtual const Quads * clone( void ) const;
00040    
00042 
00043       NVSG_API virtual bool isDataShared( void ) const;
00044 
00046 
00047       NVSG_API virtual DataID getDataID( void ) const;
00048 
00050 
00051       NVSG_API bool hasFaces( void ) const;
00052 
00054 
00055       NVSG_API size_t getNumberOfFaces( void ) const;
00056 
00058 
00059       NVSG_API const Face4 * getFaces( void ) const;
00060 
00062 
00063       NVSG_API void setFaces( const Face4 * pFaces    
00064                             , size_t numFaces         
00065                             );
00066 
00068 
00080       NVSG_API void setFaces( size_t pos 
00081                             , const Face4* pFaces    
00082                             , size_t numFaces        
00083                             );
00084 
00085 
00087 
00089       NVSG_API virtual void calculateTangentSpace( size_t tu = 0    
00090                                                  , size_t tg = 1    
00091                                                  , size_t bn = 2    
00092                                                  );
00093 
00094     protected:
00096       NVSG_API Quads( void );
00097 
00099       NVSG_API Quads( const GeoSet &rhs );
00100 
00102       NVSG_API Quads( const Quads &rhs );
00103 
00105       NVSG_API virtual ~Quads(void);
00106 
00107     private:
00108       nvutil::RCPtr<nvutil::RCVector<Face4> > m_faces; // quad faces
00109   };
00110 
00111   // - - - - - - - - - - - - - - - - - - - - - - - - - 
00112   // inlines
00113   // - - - - - - - - - - - - - - - - - - - - - - - - - 
00114 
00115   inline bool Quads::hasFaces() const
00116   { 
00117     __TRACE();
00118     return( !m_faces->empty() ); 
00119   }
00120 
00121   inline size_t Quads::getNumberOfFaces( void ) const
00122   { 
00123     __TRACE();
00124     return( m_faces->size() ); 
00125   }
00126 
00127   inline const Face4 * Quads::getFaces( void ) const 
00128   { 
00129     __TRACE();
00130     return( &(*m_faces)[0] );
00131   }
00132 }

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