activity diagram for token application
This commit is contained in:
parent
f4e6bd6e3d
commit
faac093116
1 changed files with 44 additions and 0 deletions
44
doc/uml/lib/token activity.puml
Normal file
44
doc/uml/lib/token activity.puml
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
@startuml "Token.apply activity diagram"
|
||||||
|
title Token.apply
|
||||||
|
|
||||||
|
left footer
|
||||||
|
Les méthodes et champs de l'argument "context" et "self" ont été raccourcis pour gagner de la place.
|
||||||
|
"t" will be incremented by placing the length instruction in "slopes". Context.render will tick every slope variable at every frame.
|
||||||
|
endfooter
|
||||||
|
|
||||||
|
start
|
||||||
|
|
||||||
|
(C)
|
||||||
|
switch (T)
|
||||||
|
case (Silence)
|
||||||
|
:render(None);
|
||||||
|
case (Marser)
|
||||||
|
:result = [];
|
||||||
|
case (Note)
|
||||||
|
:render(n);
|
||||||
|
case (VariableChange)
|
||||||
|
:variables[name] = change.eval(variables);
|
||||||
|
case (Loop)
|
||||||
|
:old_context = context.clone();
|
||||||
|
:context.result = [];
|
||||||
|
:new_context = fold inner into current context with Token.apply;
|
||||||
|
:return new_context.replace(result, old_context.result + new_context.result * count);
|
||||||
|
case (Tuplet)
|
||||||
|
:current_length = current_length();
|
||||||
|
:calculate how many samples should fit in the current length;
|
||||||
|
:old_context = context.clone();
|
||||||
|
:context.result = [];
|
||||||
|
:new_context = fold inner into current context with Token.apply;
|
||||||
|
:new_context.variables[t] = old_context.variables[t];
|
||||||
|
:spray new_context.result with void until it fits the sample count;
|
||||||
|
:prepend old_context.result;
|
||||||
|
:return new context;
|
||||||
|
case (Slope)
|
||||||
|
:slopes += (each_frame.name, each_frame.change);
|
||||||
|
:context = fold inner into current context with Token.apply;
|
||||||
|
:slopes[each_frame.name].drop();
|
||||||
|
endswitch
|
||||||
|
|
||||||
|
stop
|
||||||
|
|
||||||
|
@enduml
|
Loading…
Add table
Add a link
Reference in a new issue