#pragma once #include "renderer.hpp" #include #include /** * @brief SVG Renderer * * Draws shapes to an SVG format. */ class SvgRenderer final : public Renderer { public: SvgRenderer(size_t width, size_t height); void DrawLine(const math::Vector& p0, const math::Vector& p1) override; void DrawRectangle(const math::Vector& pos, const math::Vector& size, float angle) override; void DrawCircle(const math::Vector& center, float radius) override; void Save(const std::filesystem::path& path); ~SvgRenderer() override = default; private: size_t m_width, m_height; std::ostringstream m_out; };