/* * Copyright (C) 2011, Mathieu Labbe - IntRoLab - Universite de Sherbrooke */ #ifndef MAINWINDOW_H_ #define MAINWINDOW_H_ #include #include #include #include #include #include #include #include #include class Ui_mainWindow; class ObjWidget; class Camera; class ParametersToolBox; class QLabel; class AboutDialog; namespace rtabmap { class PdfPlotCurve; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(Camera * camera = 0, QWidget * parent = 0); virtual ~MainWindow(); int loadObjects(const QString & dirPath); void saveObjects(const QString & dirPath); ParametersToolBox * parametersToolBox() const; void setSourceImageText(const QString & text); protected: virtual void closeEvent(QCloseEvent * event); public slots: void startProcessing(); void stopProcessing(); void pauseProcessing(); private slots: void loadObjects(); bool saveObjects(); void addObjectFromScene(); void addObjectsFromFiles(); void loadSceneFromFile(); void setupCameraFromVideoFile(); void removeObject(ObjWidget * object); void removeAllObjects(); void updateObjectsSize(); void updateMirrorView(); void update(const cv::Mat & image); void updateObjects(); void notifyParametersChanged(); signals: void objectsFound(const QMap > &); private: void addObjectFromFile(const QString & filePath); void showObject(ObjWidget * obj); void updateData(); void updateObjectSize(ObjWidget * obj); private: Ui_mainWindow * ui_; Camera * camera_; rtabmap::PdfPlotCurve * likelihoodCurve_; AboutDialog * aboutDialog_; QList objects_; cv::Mat objectsDescriptors_; cv::flann::Index flannIndex_; QMap dataRange_; // QTime updateRate_; QTime refreshStartTime_; int lowestRefreshRate_; bool objectsModified_; QMap imagesMap_; }; #endif /* MainWindow_H_ */