Beispiel #1
0
        /// <summary>
        /// todo: Still have bugs.
        /// </summary>
        public void FreeCutRect(EasingType easingEnum, int startTime, int endTime, Mathe.RawRectangleF startRect,
                                Mathe.RawRectangleF endRect)
        {
            if (_inRectTime.Max == int.MaxValue || endTime > _inRectTime.Max)
            {
                _inRectTime.Max = endTime;
                _inX.Target     = endRect.Left;
                _inY.Target     = endRect.Top;
                _inW.Target     = endRect.Right - endRect.Left;
                _inH.Target     = endRect.Bottom - endRect.Top;
            }

            if (_inRectTime.Min == int.MinValue || startTime < _inRectTime.Min)
            {
                _inRectTime.Min = startTime;
                _inX.Source     = startRect.Left;
                _inY.Source     = startRect.Top;
                _inW.Source     = startRect.Right - startRect.Left;
                _inH.Source     = startRect.Bottom - startRect.Top;
            }

            float ms = Offset;

            if (!IsFinished && ms <= _inRectTime.Min)
            {
                _inX.RealTimeToSource();
                _inY.RealTimeToSource();
                _inW.RealTimeToSource();
                _inH.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _inX.RealTime = startRect.Left + (float)easingEnum.Ease(t) * (endRect.Left - startRect.Left);
                _inY.RealTime = startRect.Top + (float)easingEnum.Ease(t) * (endRect.Top - startRect.Top);
                float r = startRect.Right + (float)easingEnum.Ease(t) * (endRect.Right - startRect.Right);
                float b = startRect.Bottom + (float)easingEnum.Ease(t) * (endRect.Bottom - startRect.Bottom);
                _inW.RealTime = r - _inX.RealTime;
                _inH.RealTime = b - _inY.RealTime;
            }

            if (ms >= _inRectTime.Max)
            {
                _inX.RealTimeToTarget();
                _inY.RealTimeToTarget();
                _inW.RealTimeToTarget();
                _inH.RealTimeToTarget();
            }
        }
Beispiel #2
0
        public override void MoveY(EasingType easingEnum, int startTime, int endTime, float startY, float endY)
        {
            if (_movTime.Max == int.MaxValue || endTime > _movTime.Max)
            {
                _movTime.Max = endTime;
                _y.Target    = endY;
            }

            if (_movTime.Min == int.MinValue || startTime < _movTime.Min)
            {
                _movTime.Min = startTime;
                _y.Source    = startY;
            }

            float ms = Offset;

            if (!IsFinished && ms <= _movTime.Min)
            {
                _y.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _y.RealTime = startY + (float)easingEnum.Ease(t) * (endY - startY);
            }

            if (ms >= _movTime.Max)
            {
                _y.RealTimeToTarget();
            }
        }
Beispiel #3
0
        public override void Fade(EasingType easingEnum, int startTime, int endTime, float startOpacity, float endOpacity)
        {
            if (_fadeTime.Max == int.MaxValue || endTime > _fadeTime.Max)
            {
                _fadeTime.Max = endTime;
                _f.Target     = endOpacity;
            }

            if (_fadeTime.Min == int.MinValue || startTime < _fadeTime.Min)
            {
                _fadeTime.Min = startTime;
                _f.Source     = startOpacity;
            }

            float ms = Offset;

            if (!IsFinished && ms <= _fadeTime.Min)
            {
                _f.RealTimeToSource();
            }
            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _f.RealTime = startOpacity + (float)easingEnum.Ease(t) * (endOpacity - startOpacity);
            }

            if (ms >= _fadeTime.Max)
            {
                _f.RealTimeToTarget();
            }
        }
Beispiel #4
0
        public override void Rotate(EasingType easingEnum, int startTime, int endTime, float startRad, float endRad)
        {
            //float startRad = (float)(Math.PI * startDeg / 180d);
            //float endRad = (float)(Math.PI * endDeg / 180d);

            if (_rotateTime.Max == int.MaxValue || endTime > _rotateTime.Max)
            {
                _rotateTime.Max = endTime;
                _r.Target       = endRad;
            }

            if (_rotateTime.Min == int.MinValue || startTime < _rotateTime.Min)
            {
                _rotateTime.Min = startTime;
                _r.Source       = startRad;
            }

            float ms = Offset;

            if (!IsFinished && ms <= _rotateTime.Min)
            {
                _r.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _r.RealTime = startRad + (float)easingEnum.Ease(t) * (endRad - startRad);
            }

            if (ms >= _rotateTime.Max)
            {
                _r.RealTimeToTarget();
            }
        }
Beispiel #5
0
        public void Move(EasingType easingEnum, int startTime, int endTime, Gdip.PointF startPoint, Gdip.PointF endPoint)
        {
            float ms = _timing.Offset;

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                X.RealTime = startPoint.X + (float)easingEnum.Ease(t) * (endPoint.X - startPoint.X);
                Y.RealTime = startPoint.Y + (float)easingEnum.Ease(t) * (endPoint.Y - startPoint.Y);
            }

            if (ms >= MovTime.Max)
            {
                X.RealTimeToTarget();
                Y.RealTimeToTarget();
            }
        }
Beispiel #6
0
        /// <summary>
        /// Do not use with SCALE or FREERECT at same time!
        /// </summary>
        public void ScaleVec(EasingType easingEnum, int startTime, int endTime, float startVx, float startVy, float endVx,
                             float endVy)
        {
            float ms = _timing.Offset;

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                Vx.RealTime = startVx + (float)easingEnum.Ease(t) * (endVx - startVx);
                Vy.RealTime = startVy + (float)easingEnum.Ease(t) * (endVy - startVy);
            }

            if (ms >= VTime.Max)
            {
                Vx.RealTimeToTarget();
                Vy.RealTimeToTarget();
            }
        }
Beispiel #7
0
        public void Color(EasingType easingEnum, int startTime, int endTime, float r1, float g1, float b1, float r2, float g2, float b2)
        {
            float ms = _timing.Offset;

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                R.RealTime = r1 + (float)easingEnum.Ease(t) * (r2 - r1);
                G.RealTime = g1 + (float)easingEnum.Ease(t) * (g2 - g1);
                B.RealTime = b1 + (float)easingEnum.Ease(t) * (b2 - b1);
            }

            if (ms >= CTime.Max)
            {
                R.RealTimeToTarget();
                G.RealTimeToTarget();
                B.RealTimeToTarget();
            }
        }
Beispiel #8
0
        /// <summary>
        /// Do not use with SCALE or FREERECT at same time!
        /// </summary>
        public override void ScaleVec(EasingType easingEnum, int startTime, int endTime, float startVx, float startVy, float endVx,
                                      float endVy)
        {
            if (_vTime.Max == int.MaxValue || endTime > _vTime.Max)
            {
                _vTime.Max = endTime;
                _vx.Target = endVx;
                _vy.Target = endVy;
            }

            if (_vTime.Min == int.MinValue || startTime < _vTime.Min)
            {
                _vTime.Min = startTime;
                _vx.Source = startVx;
                _vy.Source = startVy;
            }

            float ms = Offset;

            if (!IsFinished && ms <= _vTime.Min)
            {
                _vx.RealTimeToSource();
                _vy.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _vx.RealTime = startVx + (float)easingEnum.Ease(t) * (endVx - startVx);
                _vy.RealTime = startVy + (float)easingEnum.Ease(t) * (endVy - startVy);
            }

            if (ms >= _vTime.Max)
            {
                _vx.RealTimeToTarget();
                _vy.RealTimeToTarget();
            }
        }
Beispiel #9
0
        /// <summary>
        /// Do not use with MOVEX or MOVEY at same time!
        /// </summary>
        public override void Move(EasingType easingEnum, int startTime, int endTime, Gdip.PointF startPoint, Gdip.PointF endPoint)
        {
            if (_movTime.Max == int.MaxValue || endTime >= _movTime.Max)
            {
                _movTime.Max = endTime;
                _x.Target    = endPoint.X;
                _y.Target    = endPoint.Y;
            }

            if (_movTime.Min == int.MinValue || startTime <= _movTime.Min)
            {
                _movTime.Min = startTime;
                _x.Source    = startPoint.X;
                _y.Source    = startPoint.Y;
            }

            float ms = Offset;

            if (!IsFinished && ms <= _movTime.Min)
            {
                _x.RealTimeToSource();
                _y.RealTimeToSource();
            }

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                _x.RealTime = startPoint.X + (float)easingEnum.Ease(t) * (endPoint.X - startPoint.X);
                _y.RealTime = startPoint.Y + (float)easingEnum.Ease(t) * (endPoint.Y - startPoint.Y);
            }

            if (ms >= _movTime.Max)
            {
                _x.RealTimeToTarget();
                _y.RealTimeToTarget();
            }
        }
Beispiel #10
0
        public void Fade(EasingType easingEnum, int startTime, int endTime, float startOpacity, float endOpacity)
        {
            float ms = _timing.Offset;

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                F.RealTime = startOpacity + (float)easingEnum.Ease(t) * (endOpacity - startOpacity);
            }

            if (ms >= FadeTime.Max)
            {
                F.RealTimeToTarget();
            }
        }
Beispiel #11
0
        public void Rotate(EasingType easingEnum, int startTime, int endTime, float startRad, float endRad)
        {
            float ms = _timing.Offset;

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                Rad.RealTime = startRad + (float)easingEnum.Ease(t) * (endRad - startRad);
            }

            if (ms >= RotateTime.Max)
            {
                Rad.RealTimeToTarget();
            }
        }
Beispiel #12
0
        public void MoveY(EasingType easingEnum, int startTime, int endTime, float startY, float endY)
        {
            float ms = _timing.Offset;

            if (!IsFinished && ms >= startTime && ms <= endTime)
            {
                var t = (ms - startTime) / (endTime - startTime);
                Y.RealTime = startY + (float)easingEnum.Ease(t) * (endY - startY);
            }

            if (ms >= MovTime.Max)
            {
                Y.RealTimeToTarget();
            }
        }