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

TrackballCamManip.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 
00014 #include "nvsgcommon.h"
00015 
00016 #include "nvui/CameraManipulator.h"
00017 #include "nvutil/Trackball.h"
00018 
00021 namespace nvui
00022 {    
00023 
00025 
00032   class TrackballCamManip : public CameraManipulator
00033   {
00034     public:
00036       NVSG_API TrackballCamManip(void);
00037 
00039       NVSG_API virtual ~TrackballCamManip(void);
00040       
00042 
00043       NVSG_API virtual void apply();
00044       
00046 
00049       NVSG_API virtual void  setViewportSize( size_t x  
00050                                             , size_t y  
00051                                             );  
00052       
00054 
00059       bool  isDolly( void );
00060       
00062 
00067       bool  isPan( void );
00068       
00070 
00075       bool  isRotate( void );
00076 
00077     protected:
00078       static NVSG_API const UINT DOLLY1;  
00079       static NVSG_API const UINT DOLLY2;  
00080       static NVSG_API const UINT PAN1;    
00081       static NVSG_API const UINT PAN2;    
00082       static NVSG_API const UINT ROTATE1; 
00083       
00084       nvutil::Trackball m_trackball;  
00085 
00087 
00089       NVSG_API virtual void rotate(void);
00090       
00092 
00094       NVSG_API virtual void pan(void);
00095       
00097 
00099       NVSG_API virtual void dolly(void);
00100 
00101   };
00102 
00103   inline  bool  TrackballCamManip::isRotate( void )
00104   {
00105     return( ROTATE1 == (m_buttonState | m_keyState));
00106   }
00107 
00108   inline  bool  TrackballCamManip::isPan( void )
00109   {
00110     return( PAN1 == (m_buttonState | m_keyState) || PAN2 == (m_buttonState | m_keyState) );
00111   }
00112 
00113   inline  bool  TrackballCamManip::isDolly( void )
00114   {
00115     return( DOLLY1 == (m_buttonState | m_keyState) || DOLLY2 == (m_buttonState | m_keyState) );
00116   }
00117 
00118 } //  namespace nvui

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