00001 /* 00002 * Copyright (C) 2007. PARP Research Group. 00003 * <http://perception.inf.um.es> 00004 * University of Murcia, Spain. 00005 * 00006 * This file is part of the QVision library. 00007 * 00008 * QVision is free software: you can redistribute it and/or modify 00009 * it under the terms of the GNU Lesser General Public License as 00010 * published by the Free Software Foundation, version 3 of the License. 00011 * 00012 * QVision is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU Lesser General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU Lesser General Public 00018 * License along with QVision. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00024 00025 #ifndef QVGLCANVAS_H 00026 #define QVGLCANVAS_H 00027 00028 #include <QGLWidget> 00029 00030 class QVGLCanvas : public QGLWidget 00031 { 00032 Q_OBJECT 00033 00034 public: 00035 QVGLCanvas(const QString &title, QWidget* parent); 00036 ~QVGLCanvas (); 00037 00038 virtual void init() {}; 00039 virtual void display() {}; 00040 virtual void reshape(int w, int h) {}; 00041 00042 signals: 00043 void closed(); 00044 00045 protected: 00046 void initializeGL(); 00047 void paintGL(); 00048 void resizeGL(int w, int h ); 00049 00050 void mousePressEvent(QMouseEvent * event); 00051 void mouseReleaseEvent(QMouseEvent *event); 00052 void mouseMoveEvent(QMouseEvent *event); 00053 void wheelEvent(QWheelEvent *event); 00054 void keyPressEvent(QKeyEvent *event); 00055 00056 void closeEvent(QCloseEvent * event); 00057 00058 float beginx, beginy; 00059 float quat[4]; 00060 float zoom; 00061 bool pressedleft,pressedright; 00062 float maxwide; 00063 float cx,cy,cz; 00064 }; 00065 00066 #endif