Exemple #1
0
        public static void SetInertia(this Link.Inertial.Inertia inertia, Rigidbody rigidbody)
        {
            Evd <float> Evd = inertia.Unity3DCoordTrafo().ToMatrix().Evd(Symmetricity.Symmetric);

            rigidbody.inertiaTensor         = Evd.EigenValues.GetReal().ToVector3().FixMinInertia(); // optionally check vector for imaginary part = 0
            rigidbody.inertiaTensorRotation = Evd.EigenVectors.ToQuaternion();                       // optionally check matrix for determinant = 1
        }