#pragma once

#include "Rectangle.h"
#include <vector>

template<typename T>
class Grid
{
public:

    Grid(const Rectangle& bounds);

    const Rectangle& getBounds() const;

    double getXSpacing() const;

    double getYSpacing() const;

    const std::vector<T>& getValues() const;

    void resetBounds(const Rectangle& bounds);

    void setValues(const std::vector<std::size_t>& indices, T value);

private:
    Rectangle mBounds;
    std::vector<T> mValues;
    unsigned mNumX{5};
    unsigned mNumY{5};
};
