Ejemplo n.º 1
0
        internal override float runStep(DisplayModel displayModel, float timeToConsume)
        {
            if (method == ClearCommand.Methods.Instant)
            {
                displayModel.SetAll(targetState);
                return(timeToConsume);
            }

            if (counter < 0)
            {
                while (timeToConsume >= secondsPerDot)
                {
                    if (method == ClearCommand.Methods.MoveLeft)
                    {
                        displayModel.PushLeft();
                        if (targetState > 0)
                        {
                            displayModel.SetColumn(displayModel.Width - 1, targetState);
                        }
                    }
                    else if (method == ClearCommand.Methods.MoveRight)
                    {
                        displayModel.PushRight();
                        if (targetState > 0)
                        {
                            displayModel.SetColumn(0, targetState);
                        }
                    }
                    else if (method == ClearCommand.Methods.MoveUp)
                    {
                        displayModel.PushUp();
                        if (targetState > 0)
                        {
                            displayModel.SetRow(displayModel.Height - 1, targetState);
                        }
                    }
                    else if (method == ClearCommand.Methods.MoveDown)
                    {
                        displayModel.PushDown();
                        if (targetState > 0)
                        {
                            displayModel.SetRow(0, targetState);
                        }
                    }

                    timeToConsume -= secondsPerDot;

                    if (isFinished(displayModel))
                    {
                        break;
                    }
                }
            }
            else
            {
                while (timeToConsume >= secondsPerDot && counter < counterMax)
                {
                    if (method == ClearCommand.Methods.ColumnByColumnFromLeft)
                    {
                        displayModel.SetColumn(counter, targetState);
                    }
                    else if (method == ClearCommand.Methods.ColumnByColumnFromRight)
                    {
                        displayModel.SetColumn(displayModel.Width - counter - 1, targetState);
                    }
                    else if (method == ClearCommand.Methods.RowByRowFromTop)
                    {
                        displayModel.SetRow(counter, targetState);
                    }
                    else if (method == ClearCommand.Methods.RowByRowFromBottom)
                    {
                        displayModel.SetRow(displayModel.Height - counter - 1, targetState);
                    }

                    timeToConsume -= secondsPerDot;
                    counter++;
                }
            }

            return(timeToConsume);
        }
Ejemplo n.º 2
0
        internal override float runStep(DisplayModel displayModel, float timeToConsume)
        {
            if (counter < 0)
            {
                displayModel.Clear();
                displayModel.SetPartialContent(content, posX, posY);
                return(timeToConsume);
            }

            while (timeToConsume >= secondsPerDot && counter < push)
            {
                if (movement == AbsCmdPosition.Movements.MoveLeftAndStop || movement == AbsCmdPosition.Movements.MoveLeftAndPass)
                {
                    if (counter < content.GetLength(1))
                    {
                        displayModel.pushLeftAndSetRightColumn(content, counter, posY);
                    }
                    else
                    {
                        displayModel.PushLeft();
                    }
                }
                else if (movement == AbsCmdPosition.Movements.MoveRightAndStop || movement == AbsCmdPosition.Movements.MoveRightAndPass)
                {
                    if (counter < content.GetLength(1))
                    {
                        displayModel.pushRightAndSetLeftColumn(content, content.GetLength(1) - counter - 1, posY);
                    }
                    else
                    {
                        displayModel.PushRight();
                    }
                }
                else if (movement == AbsCmdPosition.Movements.MoveUpAndStop || movement == AbsCmdPosition.Movements.MoveUpAndPass)
                {
                    if (counter < content.GetLength(0))
                    {
                        displayModel.pushUpAndSetBottomRow(content, counter, posX);
                    }
                    else
                    {
                        displayModel.PushUp();
                    }
                }
                else if (movement == AbsCmdPosition.Movements.MoveDownAndStop || movement == AbsCmdPosition.Movements.MoveDownAndPass)
                {
                    if (counter < content.GetLength(0))
                    {
                        displayModel.pushDownAndSetTopRow(content, content.GetLength(0) - counter - 1, posX);
                    }
                    else
                    {
                        displayModel.PushDown();
                    }
                }

                timeToConsume -= secondsPerDot;
                counter++;
            }

            return(timeToConsume);
        }