private static void RotateTransformRotation(Transform trn, float angle, Vector3 axis)
        {
            Quaternion rot = trn.localRotation * Quaternion.AngleAxis(angle, axis);

            QuatUtil.Normalize(ref rot);
            trn.localRotation = rot;
        }
Exemple #2
0
        private static Quaternion EvaluateRotationSquad(
            ref Key <TransformPoint> k0, bool haveK0,
            ref Key <TransformPoint> k1,
            ref Key <TransformPoint> k2,
            ref Key <TransformPoint> k3, bool haveK3,
            float t)
        {
            Quaternion s0;

            if (!haveK0)
            {
                s0 = Quaternion.identity;
            }
            else
            {
                s0 = QuatUtil.SquadTangent(k0.value.rotation, k1.value.rotation, k2.value.rotation);
            }

            Quaternion s1;

            if (!haveK3)
            {
                s1 = Quaternion.identity;
            }
            else
            {
                s1 = QuatUtil.SquadTangent(k1.value.rotation, k2.value.rotation, k3.value.rotation);
            }

            return(QuatUtil.SquadInterpolate(t,
                                             k1.value.rotation, k2.value.rotation,
                                             s0, s1));
        }
        internal override void AddMove(Quaternion rot, Transform translateTrn, float translationFactor,
                                       Transform rotationTrn, float rotationFactor)
        {
            if (State)
            {
                Quaternion newRot = rotationTrn.localRotation
                                    * Quaternion.AngleAxis(
                    BASE_ROTATE_SPEED * rotationFactor, axis);

                QuatUtil.Normalize(ref newRot);
                rotationTrn.localRotation = newRot;
            }
        }