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
trappy_circle.h
Go to the documentation of this file.
1#pragma once
2
3// our code libs:
4#include "base.h"
5#include "lib/trappy_circle.h"
6
7namespace gui {
8
9/**
10 * @brief Фигура опасной зоны
11 * @details Фигура представляет собой красный круг с полупрозрачной заливкой
12 * (красный по умолчанию, однако цвет задаётся в аргументах конструктора)
13 */
14class TrappyCircle : public Drawable {
15 public:
16 TrappyCircle() = default;
17
18 TrappyCircle(double x, double y, double radius,
19 QColor color = QColor(200, 50, 50, 255))
20 : data_(lib::Point{x, y}, radius), color_{color} {}
21
22 TrappyCircle(lib::Point center, double radius,
23 QColor color = QColor(200, 50, 50, 255))
24 : data_(center, radius), color_{color} {}
25
27 QColor color = QColor(200, 50, 50, 255))
28 : data_(data), color_{color} {}
29
30 TrappyCircle(const TrappyCircle&) = default;
32
35
36 lib::Point GetCenter() const { return data_.GetCenter(); }
37 double GetRadius() const { return data_.GetRadius(); }
38 QColor GetColor() const { return color_; }
39 const lib::TrappyCircle& GetData() const { return data_; }
41
42 void SetCenter(const lib::Point& center) { data_.SetCenter(center); }
43 void SetRadius(double radius) { data_.SetRadius(radius); }
44
45 /**
46 * @brief Отрисовывает фигуру на полотне
47 * @details Фигура представляет собой красный круг с полупрозрачной заливкой
48 * (красный по умолчанию, однако цвет задаётся в аргументах конструктора)
49 * @param plot: указатель на полотно
50 */
51 void Draw(QCustomPlot* plot) override;
52
53 /**
54 * @brief Возвращает значение указателя на полотне
55 * @return QCPItemEllipse*: указатель
56 */
57 QCPItemEllipse* GetItemEllipsePtr() const { return ellipse_; }
58
59 bool operator==(const gui::TrappyCircle& tr_circle) const {
60 return data_ == tr_circle.GetData();
61 }
62
63 private:
65 QColor color_;
66 QCPItemEllipse* ellipse_{nullptr};
67};
68
69} // namespace gui
Некоторая возможная к рисованию фигура [абстрактный класс].
Definition base.h:9
Фигура опасной зоны
Definition trappy_circle.h:14
void SetCenter(const lib::Point &center)
Definition trappy_circle.h:42
TrappyCircle & operator=(TrappyCircle &&)=default
QColor color_
Definition trappy_circle.h:65
void SetRadius(double radius)
Definition trappy_circle.h:43
double GetRadius() const
Definition trappy_circle.h:37
void Draw(QCustomPlot *plot) override
Отрисовывает фигуру на полотне
Definition trappy_circle.cpp:10
bool operator==(const gui::TrappyCircle &tr_circle) const
Definition trappy_circle.h:59
TrappyCircle & operator=(const TrappyCircle &)=default
QColor GetColor() const
Definition trappy_circle.h:38
TrappyCircle(const lib::TrappyCircle &data, QColor color=QColor(200, 50, 50, 255))
Definition trappy_circle.h:26
const lib::TrappyCircle & GetData() const
Definition trappy_circle.h:39
QCPItemEllipse * GetItemEllipsePtr() const
Возвращает значение указателя на полотне
Definition trappy_circle.h:57
TrappyCircle(double x, double y, double radius, QColor color=QColor(200, 50, 50, 255))
Definition trappy_circle.h:18
lib::Point GetCenter() const
Definition trappy_circle.h:36
TrappyCircle(const TrappyCircle &)=default
lib::TrappyCircle data_
Definition trappy_circle.h:64
lib::TrappyCircle & GetData()
Definition trappy_circle.h:40
TrappyCircle(TrappyCircle &&)=default
QCPItemEllipse * ellipse_
Definition trappy_circle.h:66
TrappyCircle()=default
TrappyCircle(lib::Point center, double radius, QColor color=QColor(200, 50, 50, 255))
Definition trappy_circle.h:22
Опасная зона
Definition trappy_circle.h:9
void SetRadius(double r)
Definition trappy_circle.h:32
double GetRadius() const
Definition trappy_circle.h:25
Point GetCenter() const
Definition trappy_circle.h:24
void SetCenter(const Point &center)
Definition trappy_circle.h:27
Definition airport.h:6
Definition base.h:10
Математическая точка
Definition point.h:16