TU-Programmieren_2/exercise6/task2.Circle.hpp
2025-04-09 10:22:44 +02:00

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