namespace Gma.QrCodeNet.Encoding;

public sealed class StateMatrix
{
    public StateMatrix(int width)
    {
        Width = width;
        MatrixStatus = new MatrixStatus[width, width];
    }

    private MatrixStatus[,] MatrixStatus { get; }

    public MatrixStatus this[int x, int y]
    {
        get => MatrixStatus[x, y];
        set => MatrixStatus[x, y] = value;
    }

    internal MatrixStatus this[MatrixPoint point]
    {
        get => this[point.X, point.Y];
        set => this[point.X, point.Y] = value;
    }

    public int Width { get; }

    public int Height => Width;
}