public static void AreEqual(Assimp.Matrix4x4 a, SharpDX.Matrix b) { Vector3D transA; Vector3 transB; Vector3D scaleA; Vector3 scaleB; Assimp.Quaternion rotA; SharpDX.Quaternion rotB; a.Decompose(out scaleA, out rotA, out transA); b.Decompose(out scaleB, out rotB, out transB); AreEqual(transA, transB); AreEqual(rotA, rotB); AreEqual(scaleA, scaleB); //AreNearEqual(a.A1, b.M11); //AreNearEqual(a.A2, b.M12); //AreNearEqual(a.A3, b.M13); //AreNearEqual(a.A4, b.M14); //AreNearEqual(a.B1, b.M21); //AreNearEqual(a.B2, b.M22); //AreNearEqual(a.B3, b.M23); //AreNearEqual(a.B4, b.M24); //AreNearEqual(a.C1, b.M31); //AreNearEqual(a.C2, b.M32); //AreNearEqual(a.C3, b.M33); //AreNearEqual(a.C4, b.M34); //AreNearEqual(a.D1, b.M41); //AreNearEqual(a.D2, b.M42); //AreNearEqual(a.D3, b.M43); //AreNearEqual(a.D4, b.M44); }