#pragma once

#include "AbstractGeometricItem.h"
#include "Point.h"

class Circle : public AbstractGeometricItem
{
public:
    Circle(const Point& centre, double radius = 0.5);

    const Point& getLocation() const override;

    double getRadius() const;

    double getMinorRadius() const;

    Bounds getBounds() const override;

    Type getType() const override;

    bool isEllipse() const;

    void setMinorRadius(double radius);

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

private:
    double mMinorRadius{ 0.5 };
    double mRadius{ 0.5 };
    Point mCentre;
};
