// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
namespace SixLabors.Fonts.Tables.General.Colr {
///
/// Represents a variation-aware 2x3 affine transformation matrix used by COLR v1 PaintVarTransform operations.
/// Values are stored as Fixed 16.16 numbers with an associated variation index base for font variations.
///
///
internal readonly struct VarAffine2x3
{
///
/// The x-component of the x-basis vector.
///
public readonly float Xx;
///
/// The y-component of the x-basis vector.
///
public readonly float Yx;
///
/// The x-component of the y-basis vector.
///
public readonly float Xy;
///
/// The y-component of the y-basis vector.
///
public readonly float Yy;
///
/// The x-translation component.
///
public readonly float Dx;
///
/// The y-translation component.
///
public readonly float Dy;
///
/// The base index into the ItemVariationStore delta sets for this transform's variation data.
///
public readonly uint VarIndexBase;
///
/// Initializes a new instance of the struct.
///
/// The x-component of the x-basis vector.
/// The y-component of the x-basis vector.
/// The x-component of the y-basis vector.
/// The y-component of the y-basis vector.
/// The x-translation component.
/// The y-translation component.
/// The base index into the ItemVariationStore delta sets.
public VarAffine2x3(float xx, float yx, float xy, float yy, float dx, float dy, uint varIndexBase)
{
this.Xx = xx;
this.Yx = yx;
this.Xy = xy;
this.Yy = yy;
this.Dx = dx;
this.Dy = dy;
this.VarIndexBase = varIndexBase;
}
}
}