@startuml title ЛР2 ИВ1: обработка инструментов рисования start :Событие мыши в PixelCanvas; :Преобразование координат экрана -> пиксель; if (Инструмент == Brush?) then (да) :Вычислить маску кисти (круг); :Записать выбранный индекс цвета; elseif (Инструмент == Eraser?) then (да) :Вычислить маску кисти (круг); :Записать индекс 0 (прозрачный); elseif (Инструмент == Fill?) then (да) :Запустить FloodFillService.Fill; :BFS по 4-связным соседям; :Перекрасить только область target-индекса; else (Select) :Передать управление блоку выделения; endif :Обновить итоговый буфер и холст; stop @enduml