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
trajectory.h
Go to the documentation of this file.
1#pragma once
2
3// our code libs:
4#include "lib/_objects.h"
5#include "math/trajectory.h"
6#include "segment.h"
7
8namespace gui {
9
10/**
11 * @brief Фигура траектории облёта объектов на полотне
12 * @details Ради этого мы все здесь собрались :)
13 */
14class Trajectory : private Drawable {
15 public:
16 Trajectory() = default;
17
18 /**
19 * @brief Инициализирует новый экземпляр Trajectory
20 * @param segments: вектор отрезков траектории
21 */
22 Trajectory(const std::vector<gui::Segment>& segments) : segments_{segments} {}
23
24 /**
25 * @brief Расчет вектора сегментов по заданным объектам на полотне
26 * @param targets: контрольные точки
27 * @param hills: многоугольные препятствия
28 * @param tr_circles: круговые препятствия
29 * @param tr_lines: запрещённые перелеты
30 * @param amount_of_robots: кол-во летающих роботов
31 */
32 void Calculate(const std::vector<lib::Target>& targets,
33 const std::vector<lib::Hill>& hills,
34 const std::vector<lib::TrappyCircle>& tr_circles,
35 const std::vector<lib::TrappyLine>& tr_lines,
36 unsigned short amount_of_robots);
37
38 /**
39 * @brief Возвращает вектор сегментов
40 * @return std::vector<gui::Segment*>&
41 */
42 std::vector<gui::Segment>& Segments() { return segments_; }
43
44 /**
45 * @brief Возвращает вектор сегментов
46 * @return const std::vector<gui::Segment*>&
47 */
48 const std::vector<gui::Segment>& Segments() const { return segments_; }
49
50 /**
51 * @brief Отрисовывает фигуру на полотне
52 * @param plot: указатель на полотно
53 */
54 void Draw(QCustomPlot* plot) override;
55
56 void Clear() { segments_.clear(); }
57
58 private:
59 std::vector<gui::Segment> segments_;
60};
61
62} // namespace gui
Некоторая возможная к рисованию фигура [абстрактный класс].
Definition base.h:9
Фигура траектории облёта объектов на полотне
Definition trajectory.h:14
std::vector< gui::Segment > segments_
Definition trajectory.h:59
Trajectory(const std::vector< gui::Segment > &segments)
Инициализирует новый экземпляр Trajectory.
Definition trajectory.h:22
std::vector< gui::Segment > & Segments()
Возвращает вектор сегментов
Definition trajectory.h:42
const std::vector< gui::Segment > & Segments() const
Возвращает вектор сегментов
Definition trajectory.h:48
void Draw(QCustomPlot *plot) override
Отрисовывает фигуру на полотне
Definition trajectory.cpp:6
void Calculate(const std::vector< lib::Target > &targets, const std::vector< lib::Hill > &hills, const std::vector< lib::TrappyCircle > &tr_circles, const std::vector< lib::TrappyLine > &tr_lines, unsigned short amount_of_robots)
Расчет вектора сегментов по заданным объектам на полотне
Definition trajectory.cpp:10
Trajectory()=default
void Clear()
Definition trajectory.h:56
Этот файл включает в себя все lib objects.
Definition airport.h:6