digraph controller_states { rankdir=LR; size="10,8" node [shape = circle]; none -> before [ label = "init" ]; before -> starting [ label = "start" ]; starting -> searching [ label = "search" ]; searching -> starting [ label = "restart" ]; searching -> paused [ label = "pause" ]; searching -> finished [ label = "finish" ]; paused -> searching [ label = "resume" ]; paused -> before [ label = "cancel" ]; finished -> starting [ label = "restart" ]; finished -> before [ label = "clear" ]; finished -> modified [ label = "modify" ]; modified -> starting [ label = "start" ]; modified -> before [ label = "clear" ]; }