#pragma once

#include "AbstractGeometricItem.h"

namespace ntk{
class Rectangle : public AbstractGeometricItem
{
public:
    Rectangle(const Point& bottomLeft, const Point& topRight);
    Rectangle(const Point& bottomLeft, double width, double height);

    double getHeight() const;

    double getWidth() const;

    const Point& getLocation() const override;

    Bounds getBounds() const override;

    Type getType() const override;

    double getRadius() const;

    void setRadius(double radius);

    void sample(SparseGrid<bool>*) const override;

private:
    Point mBottomLeft;
    double mWidth{0};
    double mHeight{0};
    double mRadius{ 0.0 };
};

}
