![]() |
TAPs 0.7.7.3
|
00001 /****************************************************************************** 00002 TAPsOpenGLBaseViewManager.hpp 00003 00004 Declares the pure virtual interface for OpenGL View Manager 00005 00006 SUKITTI PUNAK (07/20/2005) 00007 UPDATE (07/30/2005) 00008 ******************************************************************************/ 00009 #ifndef TAPs_OPENGL_BASE_VIEW_MANAGER_HPP 00010 #define TAPs_OPENGL_BASE_VIEW_MANAGER_HPP 00011 00012 #include "../../Core/TAPsLib.hpp" 00013 00014 BEGIN_NAMESPACE_TAPs__OpenGL 00015 //============================================================================= 00016 template <typename T> 00017 class OpenGLBaseViewManager { 00018 public: 00019 //---------------------------------------------------------------- 00020 // Default Constructor and Destructor 00021 OpenGLBaseViewManager (); 00022 virtual ~OpenGLBaseViewManager (); 00023 //---------------------------------------------------------------- 00024 enum ModifyViewType { 00025 MODIFY_VIEW_TRANSLATE, 00026 MODIFY_VIEW_ROTATE, 00027 MODIFY_VIEW_SCALE, 00028 INVALID_MODIFY_VIEW 00029 }; 00030 //---------------------------------------------------------------- 00031 // Pure Virtual Fns 00032 virtual void Setup () = 0; 00033 virtual void Cleanup () = 0; 00034 virtual void ReshapeView ( int width, int height ) = 0; 00035 virtual void UpdateView () = 0; 00036 virtual int GetWindowWidth () const = 0; 00037 virtual int GetWindowHeight () const = 0; 00038 virtual bool IsModifyingView () const = 0; 00039 virtual void StartModifyView ( ModifyViewType type, int x, int y ) = 0; 00040 virtual void StopModifyView () = 0; 00041 virtual void ModifyView ( int x, int y ) = 0; 00042 virtual bool ToScreen ( const Vector3<T> &obj, Vector3<T> &win ) const = 0; 00043 virtual bool FromScreen ( const Vector3<T> &win, Vector3<T> &obj ) const = 0; 00044 virtual T GetWindowToWorldScale () const = 0; 00045 virtual const Matrix4x4<T> &GetViewTransform () const = 0; 00046 virtual const Matrix4x4<T> &GetProjTransform () const = 0; 00047 //---------------------------------------------------------------- 00048 // Get/Set Fns 00049 inline void SetClearColor ( const T color[4] ); 00050 inline void SetClearColor ( T r, T g, T b, T a ); 00051 private: 00052 //================================================================ 00053 // Data Members 00054 //---------------------------------------------------------------- 00055 }; // CLASS END: OpenGLBaseViewManager ***************************************** 00056 //============================================================================= 00057 END_NAMESPACE_TAPs__OpenGL 00058 //----------------------------------------------------------------------------- 00059 // Include definition if TAPs_USE_EXPORT is not defined 00060 //#if !defined( TAPs_USE_EXPORT ) 00061 #include "TAPsOpenGLBaseViewManager.cpp" 00062 //#endif 00063 //----------------------------------------------------------------------------- 00064 #endif 00065 //345678901234567890123456789012345678901234567890123456789012345678901234567890 00066 //--+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8