public static AffineVector3 ApplyMap(AffineVector3 Vec1, AffineMatrix3 Matrix) { float[] Return = new float[4]; for (int row = 0; row < 4; row++) { AffineVector3 RowVector = new AffineVector3( Matrix.values[row, 0], Matrix.values[row, 1], Matrix.values[row, 2], Matrix.values[row, 3]); Return[row] = AffineVector3.Dot(RowVector, Vec1);; } return(new AffineVector3(Return[0], Return[1], Return[2], Return[3])); }
public void ApplyMap(AffineMatrix3 Map) { float[,] values = new float[4, 4]; for (int row = 0; row < 4; row++) { AffineVector3 RowVector = new AffineVector3( Map.values[row, 0], Map.values[row, 1], Map.values[row, 2], Map.values[row, 3]); for (int col = 0; col < 4; col++) { AffineVector3 ColVector = new AffineVector3( this.values[0, col], this.values[1, col], this.values[2, col], this.values[3, col]); values[row, col] = AffineVector3.Dot(RowVector, ColVector); } } this.values = values; }