main.cpp
Go to the documentation of this file.
00001 /*
00002  * Software License Agreement (BSD License)
00003  *
00004  *  Copyright (c) 2013, Intelligent Robotics Lab, DLUT.
00005  *  Author: Qinghua Li, Yan Zhuang, Fei Yan
00006  *
00007  *  All rights reserved.
00008  *
00009  *  Redistribution and use in source and binary forms, with or without
00010  *  modification, are permitted provided that the following conditions
00011  *  are met:
00012  *
00013  *   * Redistributions of source code must retain the above copyright
00014  *     notice, this list of conditions and the following disclaimer.
00015  *   * Redistributions in binary form must reproduce the above
00016  *     copyright notice, this list of conditions and the following
00017  *     disclaimer in the documentation and/or other materials provided
00018  *     with the distribution.
00019  *   * Neither the name of Intelligent Robotics Lab, DLUT. nor the names
00020  *     of its contributors may be used to endorse or promote products
00021  *     derived from this software without specific prior written permission.
00022  *
00023  *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00024  *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00025  *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00026  *  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00027  *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00028  *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00029  *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00030  *  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00031  *  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00032  *  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00033  *  ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00034  *  POSSIBILITY OF SUCH DAMAGE.
00035  */
00036 
00037 #include <QApplication>
00038 #include "dlut_place_recognition/qt_gui.h"
00039 
00040 /* Better separation of function, communication and gui */
00041 
00042 // Connect Signals and Slots for the graphical interface
00043 void guiConnections (Graphical_UI* gui, GraphManager* graph_mgr)
00044 {
00045   QObject::connect (gui, SIGNAL (loadData()), graph_mgr, SLOT (loadData ()));
00046   QObject::connect (gui, SIGNAL (showBAImage()), graph_mgr, SLOT (showBAImage ()));
00047   QObject::connect (gui, SIGNAL (extractFeatures()), graph_mgr, SLOT (extractFeatures ()));
00048   QObject::connect (gui, SIGNAL (placeRecognition()), graph_mgr, SLOT (placeRecognition ()));
00049   QObject::connect (graph_mgr, SIGNAL (reset()), gui, SLOT (reset ()));
00050   QObject::connect (graph_mgr, SIGNAL (newLibBAImage(QImage)), gui, SLOT (setLibBAImage (QImage)));
00051   QObject::connect (graph_mgr, SIGNAL (newQueryBAImage(QImage)), gui, SLOT (setQueryBAImage (QImage)));
00052   QObject::connect (graph_mgr, SIGNAL (newFeaturesImage(QImage)), gui, SLOT (setFeaturesImage (QImage)));
00053   QObject::connect (graph_mgr, SIGNAL (setGUIStatus(QString)), gui, SLOT (setStatus (QString)));
00054 }
00055 
00056 /* On program startup:
00057  * Create
00058  * - a Qt Application
00059  * - a GraphManager, managing the whole graph
00060  * - a Graphical_UI pointer(gui), then show the Qt interface
00061  * - let the above communicate internally via QT Signals
00062  */
00063 
00064 int main (int argc, char** argv)
00065 {
00066   QApplication app(argc, argv);
00067 
00068   GraphManager graph_mgr;
00069 
00070   Graphical_UI* gui = new Graphical_UI ();
00071   gui->show ();
00072   guiConnections (gui, &graph_mgr);
00073 
00074   app.exec ();
00075 
00076   delete gui;
00077 }


dlut_place_recognition
Author(s): Qinghua Li, Yan Zhuang, Fei Yan
autogenerated on Sun Oct 5 2014 23:29:57