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); }
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); }