@startuml
title ЛР2 ИВ1: выделение, копирование и вставка

start
:Пользователь выбирает Select;
:Формирование прямоугольника выделения;

if (Copy/Cut?) then (да)
  :Пройти выделенную область;
  :Преобразовать индексы в RGBA;
  :Сохранить ClipboardFragment;
  if (Cut?) then (да)
    :Очистить выделенную область (индекс 0);
  endif
endif

if (Paste?) then (да)
  :Показать "плавающий" фрагмент;
  :Пользователь задаёт позицию;
  :CommitPaste -> запись в слой;
  :Прозрачные пиксели пропустить;
endif

:Обновить холст;
stop
@enduml
