Esempio n. 1
0
        /// <summary>
        /// Updates the target value and starts the interpolator if it is not running already.
        /// </summary>
        /// <param name="updateTargetValue">The new target value.</param>
        /// <param name="forceUpdate">A flag for forcing an update propagation.</param>
        public void UpdateTarget(T updateTargetValue, bool forceUpdate)
        {
            performingInterpolativeSnap = false;

            targetValue = updateTargetValue;

            startValue = Value;
            timeInterpolationStartedAt = CurrentTime;

            if (!DoValuesEqual(updateTargetValue, Value))
            {
                EnsureEnabled();
            }
            else if (forceUpdate && !IsRunning)
            {
                ValueChanged.RaiseEvent(this);
            }
        }