Ejemplo n.º 1
0
        public void blendFrom(OffsetModifierKeyframe previousFrame, float percentage, SimObjectFollowerWithRotation follower)
        {
            var simplePreviousFrame = previousFrame as SimpleOffsetModifierKeyframe;

            if (simplePreviousFrame != null)
            {
                follower.TranslationOffset = simplePreviousFrame.translationOffset.lerp(ref translationOffset, ref percentage);
                follower.RotationOffset    = simplePreviousFrame.rotationOffset.nlerp(ref rotationOffset, ref percentage);
                follower.computePosition();
            }
        }
        public void blendFrom(OffsetModifierKeyframe previousFrame, float percentage, SimObjectFollowerWithRotation follower)
        {
            var orbitPreviousFrame = previousFrame as OrbitOffsetModifierKeyframe;

            if (orbitPreviousFrame != null)
            {
                Vector3    orbitTranslationOffset          = orbitPreviousFrame.orbitTranslation.lerp(ref orbitTranslation, ref percentage);
                Quaternion orbitRotationOffset             = orbitPreviousFrame.orbitRotation.nlerp(ref orbitRotation, ref percentage);
                float      radiusOffset                    = orbitPreviousFrame.orbitRadius.interpolate(orbitRadius, percentage);
                Quaternion orbiterAdditionalRotationOffset = orbitPreviousFrame.orbiterAdditionalRotation.nlerp(ref orbiterAdditionalRotation, ref percentage);

                follower.TranslationOffset = orbitTranslationOffset + Quaternion.quatRotate(orbitRotationOffset, orbitStartDirection * radiusOffset);
                follower.RotationOffset    = orbitRotationOffset * orbiterAdditionalRotationOffset;

                follower.computePosition();
            }
        }