44 lines
1.0 KiB
C++
44 lines
1.0 KiB
C++
/// @file
|
|
/// @brief Task2: SVG-Circle element https://developer.mozilla.org/en-US/docs/Web/SVG/Element/circle
|
|
|
|
#pragma once
|
|
|
|
#include "task2.Element.hpp"
|
|
#include "task2.aliases.hpp"
|
|
|
|
/// @todo Include standard library headers as needed
|
|
#include <sstream>
|
|
#include <string>
|
|
|
|
namespace task2 {
|
|
|
|
/// @brief Circle SVG Element
|
|
struct CircleElement : Element {
|
|
Circle circle; // Now uses the alias Circle = std::tuple<Vec2i, int>
|
|
|
|
CircleElement(Circle circle) : circle(circle) {}
|
|
|
|
std::string open() const override final {
|
|
std::stringstream ss;
|
|
ss << "<circle ";
|
|
ss << "cx='" << std::get<0>(circle)[0] << "' ";
|
|
ss << "cy='" << std::get<0>(circle)[1] << "' ";
|
|
ss << "r='" << std::get<1>(circle) << "' ";
|
|
ss << "fill='none' ";
|
|
ss << "stroke='black' ";
|
|
ss << "stroke-width='1' ";
|
|
ss << "/>";
|
|
return ss.str();
|
|
}
|
|
|
|
std::string text() const override final {
|
|
return std::string();
|
|
}
|
|
|
|
std::string close() const override final {
|
|
return std::string();
|
|
}
|
|
};
|
|
|
|
} // namespace task2
|