#ifndef MIMAPR_PRIMITIVES_H #define MIMAPR_PRIMITIVES_H #include "Form.hpp" #define EPS_RECTANGLE 0.5 #define EPS_CIRCLE 1 class Rectangle : public Form { private: double x; double y; double h_x; double h_y; public: Rectangle(double, double, double, double, bool, int); double Function(double, double) override; std::pair Second_Deriative(double, double) override; bool Inhere(double, double) override; std::pair missX(double) override; std::pair missY(double) override; std::pair size() override; }; class Circle : public Form { private: double x; double y; double h_x; double h_y; public: Circle(double, double, double, double, bool, int); double Function(double, double) override; std::pair Second_Deriative(double, double) override; bool Inhere(double, double) override; std::pair missX(double) override; std::pair missY(double) override; std::pair size() override; }; class Arc : public Form { private: double x; double y; double h_x; double h_y; public: Arc(double, double, double, double, bool, int); double Function(double, double) override; std::pair Second_Deriative(double, double) override; std::pair missX(double) override; std::pair missY(double) override; std::pair size() override; bool Inhere(double, double) override; }; #endif