#pragma once

#include "core/area.h"
#include "core/color.h"

namespace kku
{

class Rectangle
{
public:
    virtual ~Rectangle() = default;
    virtual void setRect(const Area<float>& rect) = 0;
    virtual Area<float> getRect() const = 0;

    virtual void setPosition(const Point& position) = 0;
    virtual Point getPosition() const = 0;
    virtual void move(const kku::Vector2<float>& delta) = 0;

    virtual void setColor(const Color& color) = 0;
    virtual kku::Color getColor() const = 0;
    virtual bool contains(const kku::Point& position) const = 0;

    virtual void display() = 0;
};

}
