00001 /*!@file Qt/beobotmap.h */ 00002 00003 // //////////////////////////////////////////////////////////////////// // 00004 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2001 by the // 00005 // University of Southern California (USC) and the iLab at USC. // 00006 // See http://iLab.usc.edu for information about this project. // 00007 // //////////////////////////////////////////////////////////////////// // 00008 // Major portions of the iLab Neuromorphic Vision Toolkit are protected // 00009 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency // 00010 // in Visual Environments, and Applications'' by Christof Koch and // 00011 // Laurent Itti, California Institute of Technology, 2001 (patent // 00012 // pending; application number 09/912,225 filed July 23, 2001; see // 00013 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status). // 00014 // //////////////////////////////////////////////////////////////////// // 00015 // This file is part of the iLab Neuromorphic Vision C++ Toolkit. // 00016 // // 00017 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can // 00018 // redistribute it and/or modify it under the terms of the GNU General // 00019 // Public License as published by the Free Software Foundation; either // 00020 // version 2 of the License, or (at your option) any later version. // 00021 // // 00022 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope // 00023 // that it will be useful, but WITHOUT ANY WARRANTY; without even the // 00024 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // 00025 // PURPOSE. See the GNU General Public License for more details. // 00026 // // 00027 // You should have received a copy of the GNU General Public License // 00028 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write // 00029 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, // 00030 // Boston, MA 02111-1307 USA. // 00031 // //////////////////////////////////////////////////////////////////// // 00032 // 00033 // Primary maintainer for this file: 00034 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Qt/beobotmap.h $ 00035 // $Id: beobotmap.h 5735 2005-10-18 16:00:27Z rjpeters $ 00036 // 00037 00038 #include <qgl.h> 00039 class BeoBotIcon 00040 { 00041 public: 00042 BeoBotIcon(){}; 00043 BeoBotIcon(int ax, int ay,int size) 00044 { 00045 x = ax; y = ay; 00046 edgeSize = size; 00047 selected = false; 00048 glx = (x - 100) * 0.025; gly = (y - 100) * 0.025; 00049 }; 00050 void setPosition(int ax, int ay) 00051 { 00052 x = x + ax; y = y + ay; 00053 glx = glx + GLfloat(ax) * 0.025; 00054 gly = gly - GLfloat(ay) * 0.025; 00055 }; 00056 BeoBotIcon operator=(const BeoBotIcon other) 00057 { 00058 BeoBotIcon temp; 00059 temp.x = other.x; 00060 temp.y = other.y; 00061 temp.glx = other.glx; 00062 temp.gly = other.gly; 00063 temp.selected = other.selected; 00064 temp.edgeSize = other.edgeSize; 00065 return temp; 00066 }; 00067 int x, y; 00068 GLfloat glx, gly; 00069 00070 int selected; 00071 int edgeSize; 00072 }; 00073 class BeoBotMap : public QGLWidget 00074 { 00075 public: 00076 BeoBotMap(QWidget * parent = 0, const char *name = 0); 00077 00078 void returnSelectedCoord(float &fx, float &fy); 00079 protected: 00080 void initializeGL(); 00081 void resizeGL(int w, int h); 00082 void paintGL(); 00083 00084 void createIcon(int num); 00085 void mousePressEvent(QMouseEvent *event); 00086 void mouseMoveEvent(QMouseEvent *event); 00087 void mouseDoubleClickEvent(QMouseEvent *event); 00088 void mouseReleaseEvent(QMouseEvent *event); 00089 private: 00090 int sizeOfList; 00091 void draw(); 00092 float iconlistx, iconlisty; 00093 float iconlistgx, iconlistgy; 00094 BeoBotIcon *listOfIcon; 00095 QPoint lastPos; 00096 QPoint dragPos; 00097 QColor colors[7]; 00098 };