in binding/SkiaSharp/SKMatrix44.cs [302:466]
public static SKMatrix44 Concat (SKMatrix44 first, SKMatrix44 second) =>
first * second;
public readonly SKMatrix44 PreConcat (SKMatrix44 matrix) =>
this * matrix;
public readonly SKMatrix44 PostConcat (SKMatrix44 matrix) =>
matrix * this;
public static void Concat (ref SKMatrix44 target, SKMatrix44 first, SKMatrix44 second) =>
target = first * second;
// Operations
public static SKMatrix44 Negate (SKMatrix44 value) =>
-value;
public static SKMatrix44 Add (SKMatrix44 value1, SKMatrix44 value2) =>
value1 + value2;
public static SKMatrix44 Subtract (SKMatrix44 value1, SKMatrix44 value2) =>
value1 - value2;
public static SKMatrix44 Multiply (SKMatrix44 value1, SKMatrix44 value2) =>
value1 * value2;
public static SKMatrix44 Multiply (SKMatrix44 value1, float value2) =>
value1 * value2;
// operators
public static SKMatrix44 operator - (SKMatrix44 value) =>
-((Matrix4x4)value);
public static SKMatrix44 operator + (SKMatrix44 value1, SKMatrix44 value2) =>
((Matrix4x4)value1) + ((Matrix4x4)value2);
public static SKMatrix44 operator - (SKMatrix44 value1, SKMatrix44 value2) =>
((Matrix4x4)value1) - ((Matrix4x4)value2);
public static SKMatrix44 operator * (SKMatrix44 value1, SKMatrix44 value2) =>
((Matrix4x4)value1) * ((Matrix4x4)value2);
public static SKMatrix44 operator * (SKMatrix44 value1, float value2) =>
((Matrix4x4)value1) * value2;
// properties
public SKMatrix Matrix =>
new SKMatrix (
m00, m10, m30,
m01, m11, m31,
m03, m13, m33);
public float this[int row, int column] {
get => row switch {
0 => column switch {
0 => m00,
1 => m01,
2 => m02,
3 => m03,
_ => throw new ArgumentOutOfRangeException (nameof (column))
},
1 => column switch {
0 => m10,
1 => m11,
2 => m12,
3 => m13,
_ => throw new ArgumentOutOfRangeException (nameof (column))
},
2 => column switch {
0 => m20,
1 => m21,
2 => m22,
3 => m23,
_ => throw new ArgumentOutOfRangeException (nameof (column))
},
3 => column switch {
0 => m30,
1 => m31,
2 => m32,
3 => m33,
_ => throw new ArgumentOutOfRangeException (nameof (column))
},
_ => throw new ArgumentOutOfRangeException (nameof (row))
};
set {
switch (row) {
case 0:
switch (column) {
case 0:
m00 = value;
break;
case 1:
m01 = value;
break;
case 2:
m02 = value;
break;
case 3:
m03 = value;
break;
default:
throw new ArgumentOutOfRangeException (nameof (column));
};
break;
case 1:
switch (column) {
case 0:
m10 = value;
break;
case 1:
m11 = value;
break;
case 2:
m12 = value;
break;
case 3:
m13 = value;
break;
default:
throw new ArgumentOutOfRangeException (nameof (column));
};
break;
case 2:
switch (column) {
case 0:
m20 = value;
break;
case 1:
m21 = value;
break;
case 2:
m22 = value;
break;
case 3:
m23 = value;
break;
default:
throw new ArgumentOutOfRangeException (nameof (column));
};
break;
case 3:
switch (column) {
case 0:
m30 = value;
break;
case 1:
m31 = value;
break;
case 2:
m32 = value;
break;
case 3:
m33 = value;
break;
default:
throw new ArgumentOutOfRangeException (nameof (column));
};
break;
default:
throw new ArgumentOutOfRangeException (nameof (row));
};
}
}