#pragma once

#include <memory>

#include "GeometryElement.h"
#include "DiscretePoint.h"

class RectangleElement : public GeometryElement
{
    DiscretePoint mLocation;
    unsigned mWidth;
    unsigned mHeight;

public:

    RectangleElement(const DiscretePoint& loc, unsigned width, unsigned height);
    static std::unique_ptr<RectangleElement> Create(const DiscretePoint& loc,
            unsigned width, unsigned height);
    GeometryElement::Type GetType() override;

    DiscretePoint GetLocation() const;
    unsigned GetWidth() const;
    unsigned GetHeight() const;
};

using RectangleElementUPtr = std::unique_ptr<RectangleElement>;


