void Update()
        {
            float opTime = Time.time - mStartTime;

            opTime *= TimeScale;
            float val;

            switch (Operation)
            {
            case GrowOp:
                FixEaseFunction(GrowEaseFunction);
                val = GrowEaseFunction.Evaluate(opTime);
                mScaleMultiplier = ChartCommon.SmoothLerp(mStartValue, GrowMultiplier, val);
                if (CheckAnimationEnded(opTime, GrowEaseFunction))
                {
                    Operation        = NoOp;
                    mScaleMultiplier = GrowMultiplier;
                }
                break;

            case ShrinkOp:
                FixEaseFunction(ShrinkEaseFunction);
                val = ShrinkEaseFunction.Evaluate(opTime);
                mScaleMultiplier = ChartCommon.SmoothLerp(mStartValue, 1f, val);
                if (CheckAnimationEnded(opTime, ShrinkEaseFunction))
                {
                    Operation        = NoOp;
                    mScaleMultiplier = 1f;
                }
                break;

            case GrowShrinkOp:
                FixEaseFunction(GrowEaseFunction);
                val = GrowEaseFunction.Evaluate(opTime);
                mScaleMultiplier = ChartCommon.SmoothLerp(mStartValue, GrowMultiplier, val);
                if (CheckAnimationEnded(opTime, GrowEaseFunction))
                {
                    mScaleMultiplier = GrowMultiplier;
                    Shrink();
                }
                break;
            }
        }