#pragma once #include #include #include #include "PlanimetryCalculus.h" class Circle : public QObject, protected PlanimetryCalculus { Q_OBJECT public: Circle(QObject *parent = nullptr); Circle(double radius = 0, QObject *parent = nullptr); Circle(double radius = 0, QPointF origin = QPointF(0,0), QObject *parent = nullptr); Circle(const Circle &other, QObject *parent = nullptr); Circle &operator=(const Circle &other); // Property setters void setRadius(double radius); void setOrigin(const QPointF &origin); // Property getters double radius() const; QPointF origin() const; // Member methodes QPolygonF approximate(int numberOfCorners); signals: void radiusChanged(double radius); void originChanged(QPointF origin); private: double _circleRadius; QPointF _circleOrigin; };