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
6namespace lib {
7
8/**
9 * @brief Контрольная точка
10 * @details Самый лучший класс в мире: только с ним у нас не было проблем :)
11 */
12class Target : public JSONable {
13 public:
14 Target(double x, double y) : p_(x, y) { CheckErrorValues(); }
15 Target(const Point& p) : p_{p} { CheckErrorValues(); }
16 Target() : p_(0, 0) {}
17
18 Target(const Target&) = default;
19 Target(Target&&) = default;
20
21 Target& operator=(const Target&) = default;
22 Target& operator=(Target&&) = default;
23
24 QJsonObject GetJsonInfo() const override;
25 void SetJsonInfo(const QJsonObject& target_obj) override;
26
27 bool IsChanged(const QJsonObject& target_obj) const override;
28
29 Point GetPoint() const { return p_; }
30
31 void SetPoint(const Point& p) {
32 p_ = p;
34 }
35
36 void SetPoint(double x, double y) {
37 p_ = Point(x, y);
39 }
40
41 bool operator==(const Target&) const;
42
43 private:
44 /**
45 * @brief Проверяет данные в классе на валидность
46 * @throw std::invalid_argument: если одна из коорд. точки превышает
47 * максимально допустимое значение
48 */
49 void CheckErrorValues() const override;
50
52};
53
54} // namespace lib
Объект, возможный к считыванию по .json файлу [абстрактный класс].
Definition base.h:15
Контрольная точка
Definition target.h:12
Target(const Point &p)
Definition target.h:15
void SetPoint(double x, double y)
Definition target.h:36
Point GetPoint() const
Definition target.h:29
void CheckErrorValues() const override
Проверяет данные в классе на валидность
Definition target.cpp:46
Target(double x, double y)
Definition target.h:14
bool IsChanged(const QJsonObject &target_obj) const override
Definition target.cpp:36
Target & operator=(const Target &)=default
Target()
Definition target.h:16
void SetPoint(const Point &p)
Definition target.h:31
Target(Target &&)=default
bool operator==(const Target &) const
Definition target.cpp:42
void SetJsonInfo(const QJsonObject &target_obj) override
Definition target.cpp:16
Target(const Target &)=default
Target & operator=(Target &&)=default
Point p_
Definition target.h:51
QJsonObject GetJsonInfo() const override
Definition target.cpp:6
Definition base.h:10
Математическая точка
Definition point.h:16