#include <glmatrix.h>
Although the bottom row is typically 0,0,0,1 this implementation uses the full 4x4 computation.
It uses the (unfortutate) OpenGL layout:
( m[0] m[4] m[8] m[12] ) ( v[0])
| m[1] m[5] m[9] m[13] | | v[1]|
M(v) = | m[2] m[6] m[10] m[14] | x | v[2]|
( m[3] m[7] m[11] m[15] ) ( v[3])
1.4.3