internal static Vec3 TransformDirection(Mat4 m, Vec3 d) { return(new Vec3(m[0][0] * d.X + m[0][1] * d.Y + m[0][2] * d.Z, m[1][0] * d.X + m[1][1] * d.Y + m[1][2] * d.Z, m[2][0] * d.X + m[2][1] * d.Y + m[2][2] * d.Z)); }
internal static Vec3 TransformPoint(Mat4 m, Vec3 p) { return(new Vec3(m[0][0] * p.X + m[0][1] * p.Y + m[0][2] * p.Z + m[0][3], m[1][0] * p.X + m[1][1] * p.Y + m[1][2] * p.Z + m[1][3], m[2][0] * p.X + m[2][1] * p.Y + m[2][2] * p.Z + m[2][3])); }