#include "Vec4.h" struct Mat4{ double m[4][4]; }; struct Mat3{ double m[9]; }; Mat4 multiply(Mat4 b, Mat4 a){//is this right? Mat4 m; for(int i = 0; i < 4; i++) for(int j = 0; j<4; j++) m.m[i][j] = 0; for(int i = 0; i < 4; i++) for(int j = 0; j < 4; j++) for(int k = 0; k < 4; k++){ m.m[i][j] += a.m[i][k] * b.m[k][j]; } return m; } Vec4 matrixByVector(Mat4 m, Vec4 v){ Vec4 a(0,0,0,0); for(int i = 0; i<4; i++){ for(int j = 0; j<4; j++){ a.v[i] += m.m[i][j] * v.v[j]; } } return a; }