public void GetValues(float[] values)
{
if (values == null)
throw new ArgumentNullException(nameof(values));
if (values.Length != Indices.Count)
throw new ArgumentException($"The matrix array must have a length of {Indices.Count}.", nameof(values));
values[Indices.ScaleX] = scaleX;
values[Indices.SkewX] = skewX;
values[Indices.TransX] = transX;
values[Indices.SkewY] = skewY;
values[Indices.ScaleY] = scaleY;
values[Indices.TransY] = transY;
values[Indices.Persp0] = persp0;
values[Indices.Persp1] = persp1;
values[Indices.Persp2] = persp2;
}