25 lines
459 B
C++
25 lines
459 B
C++
#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
|