Using FMatrix For 3x3?

Yes, if you use it as homogenous matrix, so it looks like this

x1 x2 x3 0
y1 y2 y3 0
z1 z2 z3 0
0  0  0  1

So your first constructor is building the identity matrix, which would be

FMatrix A = FMatrix::Identity;

The second constructor where you copy a 3x3 matrix. In Unreal you cant directly do that, but indirectly using the FPlane constructor

FMatrix A( FPlane(a[0][0], a[0][1], a[0][2], 0),
            FPlane(a[1][0], a[1][1], a[1][2], 0),
            FPlane(a[2][0], a[2][1], a[2][2], 0),
            FPlane(0,       0,       0,       1));

Or you can set it afterwardst

FMatrix A = FMatrix::Identity;
for (int i=0; i<3; i++)
     for (int k=0; k<3; k++)
         A.M[i][k] = a[i][k];

The third one is obviously the equal operator

FMatrix B = A;

The vector multiplication is like seeing the FMatrix as a Transformation applied to a vector. So in unreal it is

FVector w = A.TransformVector(v)

You can look at the FMatrix API to get more information :wink: