#ifndef UI_TVR_MAIN_WINWOW_H_
#define UI_TVR_MAIN_WINWOW_H_
#if _WIN32
#define NOMINMAX
#endif
#include <QMainWindow>
#include <QMenu>
#include <QAction>
#include <QMdiArea>
#include <qgl.h>
#include "ui/tvr/features.h"
#include "ui/tvr/tvr_document.h"
#include "ui/tvr/match_viewer.h"
#include "ui/tvr/3D_viewer.h"
#include "ui/tvr/gl_texture.h"
class TvrMainWindow : public QMainWindow {
Q_OBJECT
public:
TvrMainWindow(QWidget *parent = 0);
~TvrMainWindow();
public slots:
void OpenImages();
void SaveBlender();
void Show2DView();
void Show3DView();
void ComputeFeatures();
void ComputeFeatures(int image_index);
void ComputeCandidateMatches();
void ComputeRobustMatches();
void FocalFromFundamental();
void MetricReconstruction();
void MetricBundle();
void UpdateViewers();
void InvalidateTextures();
void InitTextures();
void InitTexture(int index);
signals:
void TextureChanged();
void GLUpdateNeeded();
private:
void CreateActions();
void CreateMenus();
void SynchronizeDepthmapList();
private:
TvrDocument document_;
QGLWidget context_;
GLTexture textures_[2];
QMenu *file_menu_;
QAction *open_images_action_;
QAction *save_blender_action_;
QMenu *view_menu_;
QAction *view_2d_action_;
QAction *view_3d_action_;
QMenu *matching_menu_;
QAction *compute_features_action_;
QAction *compute_candidate_matches_action_;
QAction *compute_robust_matches_action_;
QMenu *calibration_menu_;
QAction *focal_from_fundamental_action_;
QAction *metric_reconstruction_action_;
QAction *metric_bundle_action_;
QMdiArea *viewers_area_;
};
#endif