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 "nvui/CameraManipulator.h" 00018 00019 // forward declarations 00020 namespace nvmath 00021 { 00022 class Trafo; 00023 } 00024 namespace nvsg 00025 { 00026 template<typename T> class Animation; 00027 } 00028 00029 namespace nvui 00030 { 00032 00048 class AnimationCamManip : public CameraManipulator 00049 { 00050 public: 00052 NVSG_API AnimationCamManip(void); 00053 00055 00056 NVSG_API virtual ~AnimationCamManip(void); 00057 00059 NVSG_API virtual void apply(); 00060 00062 NVSG_API void setAnimationFrame( size_t nFrame 00063 ); 00064 00066 00069 NVSG_API void setAnimation( const nvsg::Animation<nvmath::Trafo> * pAnimation 00070 ); 00071 00072 protected: 00073 const nvsg::Animation<nvmath::Trafo> * m_animation; 00074 size_t m_currentFrame; 00075 }; 00076 00077 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00078 // inlines 00079 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00080 inline void AnimationCamManip::setAnimationFrame( size_t nFrame ) 00081 { 00082 __TRACE(); 00083 m_currentFrame = nFrame; 00084 } 00085 00086 } // namespace nvui