00001 00002 // File: BasicTestWin.h 00003 // Author: Changchang Wu 00004 // Description : 00005 // BasicTestWin: basic viewer of SiftGPU 00006 // both TestWinGlut and GLTestWndare derived from this 00007 // SiftDriver: A simple driver of SiftGPU 00008 // 00009 // Copyright (c) 2007 University of North Carolina at Chapel Hill 00010 // All Rights Reserved 00011 // 00012 // Permission to use, copy, modify and distribute this software and its 00013 // documentation for educational, research and non-profit purposes, without 00014 // fee, and without a written agreement is hereby granted, provided that the 00015 // above copyright notice and the following paragraph appear in all copies. 00016 // 00017 // The University of North Carolina at Chapel Hill make no representations 00018 // about the suitability of this software for any purpose. It is provided 00019 // 'as is' without express or implied warranty. 00020 // 00021 // Please send BUG REPORTS to ccwu@cs.unc.edu 00022 // 00024 00025 00026 #if !defined(BASIC_TEST_WIN_H) 00027 #define BASIC_TEST_WIN_H 00028 00029 #if _WIN32 && _MSC_VER > 1000 00030 #pragma once 00031 #endif // _MSC_VER > 1000 00032 00033 00034 #include "GLTransform.h" 00035 00036 class SiftParam; 00037 class SiftGPUEX; 00038 00040 //class TestDriver 00041 //description: simple SiftGPU driver 00043 00044 00046 //class BasicTestWin 00047 //description: basic SiftGPU viewer 00048 // two implementations are GLTestWnd and TestWinGlut 00050 00051 00052 class BasicTestWin 00053 { 00054 GlTransform _transform; 00055 int _looping; 00056 int _motion; 00057 int _motion_x, _motion_y; 00058 char _title[512]; 00059 int _view; 00060 int _sub_view; 00061 int _win_w, _win_h; 00062 00063 protected: 00064 float _displayScale; 00065 int _imgWidth, _imgHeight; 00066 int _win_x, _win_y; 00067 int _current; 00068 private: 00069 // 00070 float _stat_tstart; 00071 int _stat_frames; 00072 protected: 00073 SiftGPUEX* _sift; 00074 public: 00075 void SetVerbose(); 00076 void FitWindow(); 00077 void OnIdle(); 00078 void EndMotion(); 00079 void StartMotion(int x, int y); 00080 void SetView(); 00081 void ReShape(int w, int h); 00082 void MoveMouse(int x, int y); 00083 void KeyInput(int key); 00084 void Display(); 00085 virtual void UpdateDisplay()=0; 00086 BasicTestWin(); 00087 virtual ~BasicTestWin(); 00088 void ParseSiftParam(int argc, char** argv); 00089 void RunSiftGPU(); 00090 protected: 00091 virtual void SetWindowTitle(char * title)=0; 00092 virtual void SetDisplaySize(int w, int h)=0; 00093 }; 00094 00095 #endif // !defined(BASIC_TEST_WIN_H) 00096