#pragma once #include "math/vector.hpp" class DrawingContext; namespace primitives { class Primitive { public: Primitive() = default; virtual void Translate(const math::Vector& offset) = 0; virtual void Rotate(const math::Vector& center, float angle) = 0; virtual void Scale(const math::Vector& center, float factor) = 0; virtual void Draw(DrawingContext& ctx) = 0; virtual ~Primitive() = 0; }; } // namespace primitives