58 lines
1.5 KiB
C++
58 lines
1.5 KiB
C++
#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<double, double> Second_Deriative(double, double) override;
|
|
bool Inhere(double, double) override;
|
|
std::pair<double, double> missX(double) override;
|
|
std::pair<double, double> missY(double) override;
|
|
std::pair<double, double> 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<double, double> Second_Deriative(double, double) override;
|
|
bool Inhere(double, double) override;
|
|
std::pair<double, double> missX(double) override;
|
|
std::pair<double, double> missY(double) override;
|
|
std::pair<double, double> 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<double, double> Second_Deriative(double, double) override;
|
|
std::pair<double, double> missX(double) override;
|
|
std::pair<double, double> missY(double) override;
|
|
std::pair<double, double> size() override;
|
|
bool Inhere(double, double) override;
|
|
};
|
|
|
|
#endif
|
|
|