multiplyMatrixAndPoint = (matrix, point) => {
let rows = [matrix.slice(0, 4), matrix.slice(4, 8), matrix.slice(8, 12), matrix.slice(12, 16)]
let columns = Array.from({length: 4}, (v, i) => [rows[0][i], rows[1][i], rows[2][i], rows[3][i]])
let result = columns.map((v, i) => point[0]*v[0] + point[1]*v[1] + point[2]*v[2] + point[3]*v[3])
return result
}