public Quaternion GetRotation(RigidBoneSystemInputs inputs)
    {
        Quaternion orientedSpaceRotation = GetOrientedSpaceRotation(inputs).AsQuaternion(RotationOrder.TwistAxis);
        Quaternion objectSpaceRotation   = orientationSpace.TransformFromOrientedSpace(orientedSpaceRotation);

        return(objectSpaceRotation);
    }
Пример #2
0
    public Quaternion GetRotation(ChannelOutputs outputs)
    {
        OrientationSpace orientationSpace = GetOrientationSpace(outputs);

        Vector3    rotationAngles     = Rotation.GetValue(outputs);
        TwistSwing rotationTwistSwing = RotationOrder.FromTwistSwingAngles(MathExtensions.DegreesToRadians(rotationAngles));

        rotationTwistSwing = RotationConstraint.Clamp(rotationTwistSwing);

        Quaternion orientedSpaceRotation = rotationTwistSwing.AsQuaternion(RotationOrder.TwistAxis);
        Quaternion worldSpaceRotation    = orientationSpace.TransformFromOrientedSpace(orientedSpaceRotation);

        return(worldSpaceRotation);
    }