Beispiel #1
0
        private void UpdateCoordinate(CoordinateSetting coordinateSetting)
        {
            if (!coordinateSetting.Update)
            {
                return;
            }

            int i = (int)coordinateSetting.Coordinate;

            float current;

            if (coordinateSetting.Type == AnimationType.Offset)
            {
                current = CurrentOffset[i];
            }
            else
            {
                current = CurrentRotation[i];
            }

            float newValue = coordinateSetting.UpdateValue(current);

            if (coordinateSetting.Type == AnimationType.Offset)
            {
                SecondOffset[i] = newValue - Offset[i];
            }
            else
            {
                SecondRotation[i] = newValue - Rotation[i];
            }
        }
Beispiel #2
0
        /// <summary>
        /// Sets the specified <paramref name="coordinate"/> to the maximum or minimum value.
        /// </summary>
        /// <param name="animationType">Wanted <see cref="FusionEnums.AnimationType"/>.</param>
        /// <param name="animationStep"><see cref="FusionEnums.AnimationStep"/> of <paramref name="animationType"/>.</param>
        /// <param name="coordinate"><see cref="FusionEnums.Coordinate"/> of <paramref name="animationStep"/>.</param>
        /// <param name="maximum"><see langword="true"/> sets <paramref name="coordinate"/> to maximum value; otherwise minimum.</param>
        public void SetCoordinateAt(AnimationType animationType, AnimationStep animationStep, Coordinate coordinate, bool maximum)
        {
            CoordinateSetting coordinateSetting = Animation[animationType][animationStep][coordinate];

            if (animationType == AnimationType.Offset)
            {
                SecondOffset[(int)coordinate] = (maximum ? coordinateSetting.Maximum : coordinateSetting.Minimum) * coordinateSetting.MaxMinRatio - Offset[(int)coordinate];
            }
            else
            {
                SecondRotation[(int)coordinate] = (maximum ? coordinateSetting.Maximum : coordinateSetting.Minimum) * coordinateSetting.MaxMinRatio - Rotation[(int)coordinate];
            }

            Attach();
        }