#pragma once #include #include #include struct Figure { Figure() = default; inline virtual ~Figure() {} Figure(const Figure &other) = default; Figure(Figure &&other) = default; Figure& operator=(const Figure &other) = default; Figure& operator=(Figure &&other) = default; virtual std::string svg() const = 0; }; struct Polygon final : public Figure { std::vector> pts; std::string bg; Polygon(std::vector> pts, std::string bg); std::string svg() const override; }; struct Text final : public Figure { double x, y; double rotation; std::string text; Text(double x, double y, double rotation, std::string text); std::string svg() const override; };