/// <summary> /// Calcule et retourne la multiplication d'une matrice et d'un vecteur de dimension 4 /// </summary> public static Vec4 operator *(Matrix4x4 m, Vec4 v) { Vec4 u = new Vec4(); u.X = m.get(0) * v.X + m.get(1) * v.Y + m.get(2) * v.Z + m.get(3) * v.W; u.Y = m.get(4) * v.X + m.get(5) * v.Y + m.get(6) * v.Z + m.get(7) * v.W; u.Z = m.get(8) * v.X + m.get(9) * v.Y + m.get(10) * v.Z + m.get(11) * v.W; u.W = m.get(12) * v.X + m.get(13) * v.Y + m.get(14) * v.Z + m.get(15) * v.W; return(u); }
/// <summary> /// Calcule et retourne le produit scalaire de deux vecteurs /// </summary> public static float Dot(Vec4 u, Vec4 v) { return(( float )((u.X * v.X) + (u.Y * v.Y) + (u.Z * v.Z) + (u.W * v.W))); }
/// <summary> /// Calcule et retourne un point P situé sur le vecteur uv d'origine U. /// P = u + uv*t /// </summary> public static Vec4 Interpolate(Vec4 u, Vec4 v, float t) { return(u + (v - u) * t); }