forked from MRPT/mrpt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMainWindow.h
94 lines (74 loc) · 2.64 KB
/
CMainWindow.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* +------------------------------------------------------------------------+
| Mobile Robot Programming Toolkit (MRPT) |
| https://www.mrpt.org/ |
| |
| Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
| See: https://www.mrpt.org/Authors - All rights reserved. |
| Released under BSD License. See: https://www.mrpt.org/License |
+------------------------------------------------------------------------+ */
#pragma once
#include <QMainWindow>
#include <QSettings>
#include <memory>
#include <mrpt/opengl/CSetOfObjects.h>
#include <mrpt/maps/CSimpleMap.h>
/** This class implements GUI of main window and connection with other classes
*/
namespace Ui
{
class CMainWindow;
}
class CDocument;
class CObservationTreeModel;
class QTreeWidgetItem;
class CMainWindow : public QMainWindow
{
Q_OBJECT
public:
CMainWindow(QWidget* parent = nullptr);
~CMainWindow() override;
void addRobotPosesFromMap(
std::vector<size_t> idx,
mrpt::maps::CSimpleMap::TPosePDFSensFramePairList posesObsPairs);
void deleteRobotPosesFromMap(const std::vector<size_t>& idx);
void moveRobotPosesOnMap(
const std::vector<size_t>& idx, const QPointF& dist);
void loadMap(const QString& fileName);
private slots:
void about();
void undo();
void redo();
void openMap();
void saveMap();
void saveAsText();
void saveAsPNG();
void itemClicked(const QModelIndex& index);
void updateConfig();
void openConfig(const std::string& str);
void applyConfigurationForCurrentMaps();
void showMapConfiguration();
void selectedChanged(const std::vector<size_t>& idx);
void deleteRobotPoses(const std::vector<size_t>& idx);
void moveRobotPoses(const std::vector<size_t>& idx, const QPointF& dist);
void openRecent();
void saveMetricMapRepresentation();
void saveMetricmapInBinaryFormat();
void updateDirection(size_t index, double yaw, double pitch, double roll);
void showPoseDirection(size_t index, double yaw, double pitch, double roll);
void hidePoseDirection();
private:
void updateRenderMapFromConfig();
void applyMapsChanges();
void createNewDocument();
void clearObservationsViewer();
void addToRecent(const std::string& fileName);
void addToRecent(const QString& fileName);
void addRecentFilesToMenu();
void showErrorMessage(const QString& str) const;
void updateSaveButtonState();
CDocument* m_document{nullptr};
CObservationTreeModel* m_model{nullptr};
std::unique_ptr<Ui::CMainWindow> m_ui;
QSettings m_settings;
QStringList m_recentFiles;
};