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

Animation.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/Object.h"
00018 
00019 namespace nvsg
00020 {
00022 
00024   template<typename T> class Animation : public Object
00025   {
00026     public:
00027       //--  Functions specific to Animation --
00029 
00030       virtual const Animation<T> * clone( void ) const = 0;
00031 
00033 
00034       virtual size_t getNumberOfFrames( void ) const = 0;
00035 
00037 
00038       virtual const T & operator[]( size_t i ) const = 0;
00039 
00040       //--  Functions reimplemented from Object  --
00041       virtual DataID getDataID( void ) const;
00042       virtual bool isDataShared( void ) const;
00043 
00044     protected:
00046       Animation( void );
00047 
00049       virtual ~Animation( void );
00050   };
00051 
00052   template<typename T> Animation<T>::Animation( void )
00053   {
00054     __TRACE();
00055   }
00056 
00057   template<typename T> Animation<T>::~Animation( void )
00058   {
00059     __TRACE();
00060   }
00061 
00062   template<typename T> DataID Animation<T>::getDataID( void ) const
00063   {
00064     __TRACE();
00065     return( (DataID)this );
00066   }
00067 
00068   template<typename T> bool Animation<T>::isDataShared( void ) const
00069   {
00070     __TRACE();
00071     return( false );
00072   }
00073 } //  namespace nvsg

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