11#ifndef GUI_MAINWINDOW_H_
12#define GUI_MAINWINDOW_H_
15#include <boost/container/flat_map.hpp>
18#include "ui_main_window.h"
19#include "model/Model.h"
20#include "view/Viewer_instructor.h"
23class Menu_k_nearest_neighbors;
24class Menu_uniform_neighbors;
25class Menu_edge_contraction;
26class Menu_persistence;
28class MainWindow :
public QMainWindow,
public Ui::MainWindow {
33 Viewer_instructor* viewer_instructor_;
34 Menu_k_nearest_neighbors* menu_k_nearest_neighbors_;
35 Menu_uniform_neighbors* menu_uniform_neighbors_;
36 Menu_edge_contraction* menu_edge_contraction_;
37 Menu_persistence* menu_persistence_;
40 MainWindow(QWidget* parent = 0);
41 void connectActions();
46 void init_view()
const;
47 void update_view()
const;
51 void closeEvent(QCloseEvent *event);
53 void keyPressEvent(QKeyEvent *event) { }
62 void off_points_open();
68 void off_points_save();
70 void show_graph_stats();
71 void show_complex_stats();
72 void show_complex_dimension();
75 void build_rips_menu();
76 void build_rips(
double alpha);
77 void build_k_nearest_neighbors_menu();
78 void build_k_nearest_neighbors(
unsigned k);
81 void contract_edge_menu();
82 void contract_edges(
unsigned num_collapses);
85 void collapse_vertices();
86 void collapse_edges();
92 void show_homology_group();
93 void show_euler_characteristic();
94 void persistence_menu();
95 void compute_persistence(
int p,
double threshold,
int max_dim,
double min_pers);
96 void critical_points_menu();
97 void is_manifold_menu();
102 void sceneChanged()
const;