Exemple #1
0
        public double CalcProgress(double progress)
        {
            if (progress.IsLessThanOrClose(0.0))
            {
                return(0.0);
            }

            if (progress.IsGreaterThanOrClose(1.0))
            {
                return(1.0);
            }

            var isAccelerationZero = AccelerationRatio.IsZero();
            var isDecelerationZero = DecelerationRatio.IsZero();

            if (isAccelerationZero && isDecelerationZero)
            {
                return(progress);
            }

            if (isAccelerationZero)
            {
                return(CalcDeceleration(progress));
            }

            if (isDecelerationZero)
            {
                return(CalcAcceleration(progress));
            }

            return(CalcAccelerationDeceleration(progress));
        }
Exemple #2
0
        /// <summary>
        /// Dumps the description of this timeline.
        /// </summary>
        /// <param name="builder">
        /// A StringBuilder that accumulates the description text.
        /// </param>
        /// <param name="depth">
        /// The depth of recursion for this timeline.
        /// </param>
        /// <param name="includeDebugID">
        /// Whether or not to include the debug ID in the description.
        /// </param>
        internal void BuildInfo(System.Text.StringBuilder builder, int depth, bool includeDebugID)
        {
            // Start with the name of the timeline
            if (includeDebugID)
            {
                builder.Append(' ', depth);
                builder.Append("Timeline ");
                builder.Append(_debugIdentity);
            }
            builder.Append(" (");
            builder.Append(GetType().Name);

            // Build attributes
            if (Name != null)
            {
                builder.Append(", Name=\"");
                builder.Append(Name);
                builder.Append("\"");
            }
            if (AccelerationRatio != 0.0f)
            {
                builder.Append(", AccelerationRatio = ");
                builder.Append(AccelerationRatio.ToString());
            }
            if (AutoReverse != false)
            {
                builder.Append(", AutoReverse = ");
                builder.Append(AutoReverse.ToString());
            }
            if (DecelerationRatio != 0.0f)
            {
                builder.Append(", DecelerationRatio = ");
                builder.Append(DecelerationRatio.ToString());
            }
            if (Duration != Duration.Automatic)
            {
                builder.Append(", Duration = ");
                builder.Append(Duration.ToString());
            }
            if (FillBehavior != FillBehavior.HoldEnd)
            {
                builder.Append(", FillBehavior = ");
                builder.Append(FillBehavior.ToString());
            }
            if (SpeedRatio != 1.0f)
            {
                builder.Append(", Speed = ");
                builder.Append(SpeedRatio);
            }
            builder.Append(")\n");
        }