/// <summary>
        /// Advances the specified virtual position.
        /// </summary>
        /// <param name="virtualPosition">The virtual position.</param>
        /// <param name="direction">The direction.</param>
        /// <param name="mode">The mode.</param>
        /// <param name="absSpeed">The abs speed.</param>
        /// <param name="clamping">The clamping.</param>
        protected override void Advance(ref float virtualPosition, ref int direction, MoveModeEnum mode, float absSpeed, CurvyClamping clamping)
        {
            switch (mode)
            {
            case MoveModeEnum.Relative:
                PathData.Move(ref virtualPosition, ref direction, absSpeed, clamping);
                break;

            default:
                PathData.MoveBy(ref virtualPosition, ref direction, absSpeed, clamping);
                break;
            }
        }