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
target.h
Go to the documentation of this file.
1#pragma once
2
3// our code libs:
4#include "base.h"
5#include "lib/target.h"
6
7namespace gui {
8
9/**
10 * @brief Фигура контрольной точки
11 * @details Фигура представляет собой малую серую окружность (точку)
12 */
13class Target : public Drawable {
14 public:
15 Target() = default;
16
17 Target(double x, double y) : data_(x, y) {}
19 Target(const lib::Target& data) : data_(data) {}
20
21 Target(const Target&) = default;
22 Target(Target&&) = default;
23
24 Target& operator=(const Target&) = default;
25 Target& operator=(Target&&) = default;
26
28 void SetPoint(double x, double y) { data_.SetPoint(x, y); }
29
30 lib::Point GetPoint() const { return data_.GetPoint(); }
31 lib::Target& GetData() { return data_; }
32 const lib::Target& GetData() const { return data_; }
33
34 /**
35 * @brief Отрисовывает фигуру на полотне
36 * @details Фигура представляет собой малую серую окружность (точку)
37 * @param plot: указатель на полотно
38 */
39 virtual void Draw(QCustomPlot* plot) override;
40
41 /**
42 * @brief Возвращает значение указателя на полотне
43 * @return QCPGraph*: указатель
44 */
45 QCPGraph* GetGraphPtr() const { return graph_; }
46
47 bool operator==(const gui::Target& target) const {
48 return data_ == target.GetData();
49 }
50
51 private:
53
54 QCPGraph* graph_{nullptr};
55};
56
57inline void Target::Draw(QCustomPlot* plot) {
58 graph_ = plot->addGraph(plot->xAxis, plot->yAxis);
59
60 graph_->setPen(QColor(50, 50, 50, 255));
61 graph_->setLineStyle(QCPGraph::lsNone);
62 graph_->setScatterStyle(QCPScatterStyle(QCPScatterStyle::ssCircle, 4));
63
64 graph_->setData({GetPoint().x}, {GetPoint().y});
65}
66
67} // namespace gui
Некоторая возможная к рисованию фигура [абстрактный класс].
Definition base.h:9
Фигура контрольной точки
Definition target.h:13
void SetPoint(lib::Point p)
Definition target.h:27
Target(double x, double y)
Definition target.h:17
void SetPoint(double x, double y)
Definition target.h:28
lib::Point GetPoint() const
Definition target.h:30
Target(lib::Point p)
Definition target.h:18
const lib::Target & GetData() const
Definition target.h:32
lib::Target data_
Definition target.h:52
Target()=default
Target(Target &&)=default
Target & operator=(Target &&)=default
QCPGraph * GetGraphPtr() const
Возвращает значение указателя на полотне
Definition target.h:45
Target(const Target &)=default
virtual void Draw(QCustomPlot *plot) override
Отрисовывает фигуру на полотне
Definition target.h:57
bool operator==(const gui::Target &target) const
Definition target.h:47
Target & operator=(const Target &)=default
QCPGraph * graph_
Definition target.h:54
lib::Target & GetData()
Definition target.h:31
Target(const lib::Target &data)
Definition target.h:19
Контрольная точка
Definition target.h:12
Point GetPoint() const
Definition target.h:29
void SetPoint(const Point &p)
Definition target.h:31
Definition airport.h:6
Математическая точка
Definition point.h:16
double y
Definition point.h:18
double x
Definition point.h:17