Locus No Pilotus
Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++
Loading...
Searching...
No Matches
plot_area.h
Go to the documentation of this file.
1#pragma once
2
3// our code libs:
5
6namespace data_tools {
7
8/// @brief Класс, упрощающий управление классами gui на QCustomPlot
9class PlotArea {
10 public:
11 PlotArea() = default;
12
13 PlotArea(QCustomPlot* plot) : plot_{plot} {}
14
15 void Setup(DataManager* manager);
16
17 /**
18 * @brief Устанавливает значение plot
19 * @param plot: указатель на полотно
20 */
21 void SetPlot(QCustomPlot* plot) { plot_.reset(plot); }
22
23 /// @brief Перерисовывает на полотне все объекты и обновляет данные
24 void ReDraw();
25
26 gui::FlyingRobot* GetRobot() { return robot_.get(); }
27
29
30 /// @brief Перерисовывает на полотне траекторию
31 void ReDrawTrajectory();
32
34
35 size_t TrajectorySize() const { return trajectory_->Segments().size(); }
36
37 void SetAmountOfRobots(unsigned short amount) { amount_of_robots_ = amount; }
38
39 private:
40 /// @brief Расчет вектора сегментов по заданным объектам на полотне
42
43 // i love unique_ptr's, i love logic schemes
44 std::unique_ptr<QCustomPlot> plot_;
45 std::unique_ptr<DataManager> manager_;
46
47 std::unique_ptr<gui::Trajectory> trajectory_{new gui::Trajectory()};
48 std::unique_ptr<gui::FlyingRobot> robot_{new gui::FlyingRobot()};
49
50 unsigned short amount_of_robots_ = 1;
51
52 void CheckHills();
53 void CheckTrappyCircles();
54 void CheckTrappyLines();
55 void CheckTargets();
58};
59
60} // namespace data_tools
Класс, хранящий gui объекты и связывающий их с QCustomPlot.
Definition data_manager.h:9
Класс, упрощающий управление классами gui на QCustomPlot.
Definition plot_area.h:9
void ClearTrajectory()
Definition plot_area.h:33
gui::Trajectory * GetTrajectory()
Definition plot_area.h:28
size_t TrajectorySize() const
Definition plot_area.h:35
void CalculateTrajectory()
Расчет вектора сегментов по заданным объектам на полотне
Definition plot_area.cpp:44
void CheckTrappyCircles()
Definition check_errors.cpp:78
std::unique_ptr< gui::FlyingRobot > robot_
Definition plot_area.h:48
std::unique_ptr< QCustomPlot > plot_
Definition plot_area.h:44
void CheckTrappyLines()
Definition check_errors.cpp:121
void SetAmountOfRobots(unsigned short amount)
Definition plot_area.h:37
PlotArea(QCustomPlot *plot)
Definition plot_area.h:13
void CheckIntersectionsBetweenTrappyCircles()
Definition check_errors.cpp:25
void CheckTargets()
Definition check_errors.cpp:131
void SetPlot(QCustomPlot *plot)
Устанавливает значение plot.
Definition plot_area.h:21
void Setup(DataManager *manager)
Definition plot_area.cpp:6
unsigned short amount_of_robots_
Definition plot_area.h:50
std::unique_ptr< DataManager > manager_
Definition plot_area.h:45
std::unique_ptr< gui::Trajectory > trajectory_
Definition plot_area.h:47
void ReDraw()
Перерисовывает на полотне все объекты и обновляет данные
Definition plot_area.cpp:8
void CheckIntersectionsBetweenHills()
Definition check_errors.cpp:47
void CheckHills()
Definition check_errors.cpp:141
void ReDrawTrajectory()
Перерисовывает на полотне траекторию
Definition plot_area.cpp:27
gui::FlyingRobot * GetRobot()
Definition plot_area.h:26
Класс, который позволяет анимировать движение робота
Definition flying_robot.h:13
Фигура траектории облёта объектов на полотне
Definition trajectory.h:14
std::vector< gui::Segment > & Segments()
Возвращает вектор сегментов
Definition trajectory.h:42
void Clear()
Definition trajectory.h:56
Definition data_manager.cpp:4