00001 // g2o - General Graph Optimization 00002 // Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard 00003 // 00004 // This file is part of g2o. 00005 // 00006 // g2o is free software: you can redistribute it and/or modify 00007 // it under the terms of the GNU General Public License as published by 00008 // the Free Software Foundation, either version 3 of the License, or 00009 // (at your option) any later version. 00010 // 00011 // g2o is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU General Public License 00017 // along with g2o. If not, see <http://www.gnu.org/licenses/>. 00018 00019 #ifndef G2O_QGL_GRAPH_VIEWER_H 00020 #define G2O_QGL_GRAPH_VIEWER_H 00021 00022 #include "qglviewer.h" 00023 00024 namespace g2o { 00025 00026 struct SparseOptimizer; 00027 class HyperGraphElementAction; 00028 00032 class G2oQGLViewer : public QGLViewer 00033 { 00034 public: 00035 G2oQGLViewer(QWidget* parent=NULL, const QGLWidget* shareWidget=0, Qt::WFlags flags=0); 00036 ~G2oQGLViewer(); 00037 void draw(); 00038 void init(); 00039 00044 bool updateDisplay() const { return _updateDisplay;} 00045 void setUpdateDisplay(bool updateDisplay); 00046 00047 public: 00048 SparseOptimizer* graph; 00049 00050 protected: 00051 HyperGraphElementAction* _drawActions; 00052 GLuint _drawList; 00053 bool _updateDisplay; 00054 00055 }; 00056 00057 } // end namespace 00058 00059 #endif