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
hill.h
Go to the documentation of this file.
1#pragma once
2
3// our code libs:
4#include "base.h"
5#include "lib/hill.h"
6
7namespace gui {
8
9/**
10 * @brief Фигура рельефа с высотой
11 * @details Фигура представляет собой зеленый
12 * многоугольник с полупрозрачной заливкой
13 * (зеленый по умолчанию, однако цвет задаётся в аргументах конструктора)
14 */
15class Hill : public Drawable {
16 public:
17 Hill() = default;
18
19 /**
20 * @brief Инициализирует новый экземпляр Hill
21 * @param points: список точек
22 * @param color: цвет
23 */
24 Hill(const std::initializer_list<lib::Point>& points,
25 QColor color = QColor(50, 200, 50, 255))
26 : data_(points), color_{color} {}
27
28 Hill(const std::vector<lib::Point>& points,
29 QColor color = QColor(50, 200, 50, 255))
30 : data_(points), color_{color} {}
31
32 Hill(const lib::Hill& data, QColor color = QColor(50, 200, 50, 255))
33 : data_(data), color_{color} {}
34
35 Hill(const Hill&) = default;
36 Hill(Hill&&) = default;
37
38 Hill& operator=(const Hill&) = default;
39 Hill& operator=(Hill&&) = default;
40
41 const lib::Hill& GetData() const { return data_; }
42 lib::Hill& GetData() { return data_; }
43
44 const std::vector<lib::Point>& GetVertices() const {
45 return data_.GetVertices();
46 }
47 std::vector<lib::Point>& GetVertices() { return data_.GetVertices(); }
48
49 void AddVertice(lib::Point vertice) { data_.AddVertice(vertice); }
50
51 /**
52 * @brief Отрисовывает фигуру на полотне
53 * @details Фигура представляет собой зеленый
54 * многоугольник с полупрозрачной заливкой
55 * (зеленый по умолчанию, однако цвет задаётся в аргументах конструктора)
56 * @param plot: указатель на полотно
57 */
58 void Draw(QCustomPlot* plot) override;
59
60 /**
61 * @brief Возвращает значение указателя на полотне
62 * @return QCPGraph*: указатель
63 */
64 QCPCurve* GetCurvePtr() const { return curve_; }
65
66 bool operator==(const gui::Hill& hill) const {
67 return data_ == hill.GetData();
68 }
69
70 private:
72 QColor color_;
73
74 QCPCurve* curve_{nullptr};
75};
76
77} // namespace gui
Некоторая возможная к рисованию фигура [абстрактный класс].
Definition base.h:9
Фигура рельефа с высотой
Definition hill.h:15
lib::Hill & GetData()
Definition hill.h:42
Hill & operator=(const Hill &)=default
QCPCurve * curve_
Definition hill.h:74
Hill(const std::vector< lib::Point > &points, QColor color=QColor(50, 200, 50, 255))
Definition hill.h:28
const std::vector< lib::Point > & GetVertices() const
Definition hill.h:44
Hill()=default
Hill(Hill &&)=default
lib::Hill data_
Definition hill.h:71
const lib::Hill & GetData() const
Definition hill.h:41
Hill(const lib::Hill &data, QColor color=QColor(50, 200, 50, 255))
Definition hill.h:32
QCPCurve * GetCurvePtr() const
Возвращает значение указателя на полотне
Definition hill.h:64
Hill(const std::initializer_list< lib::Point > &points, QColor color=QColor(50, 200, 50, 255))
Инициализирует новый экземпляр Hill.
Definition hill.h:24
void AddVertice(lib::Point vertice)
Definition hill.h:49
void Draw(QCustomPlot *plot) override
Отрисовывает фигуру на полотне
Definition hill.cpp:4
bool operator==(const gui::Hill &hill) const
Definition hill.h:66
Hill(const Hill &)=default
std::vector< lib::Point > & GetVertices()
Definition hill.h:47
Hill & operator=(Hill &&)=default
QColor color_
Definition hill.h:72
Рельеф с высотой
Definition hill.h:13
void AddVertice(Point vertice)
Definition hill.h:40
const std::vector< Point > & GetVertices() const
Definition hill.h:37
Definition airport.h:6
Математическая точка
Definition point.h:16