-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlibdessin blocks.xml
1 lines (1 loc) · 58.6 KB
/
libdessin blocks.xml
1
<blocks app="Snap! 4.2, http://snap.berkeley.edu" version="1"><block-definition s="rectangle pt: %'p1' pt: %'p3'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>p2</l><l>p4</l><l>width</l></list></block><block s="doSetVar"><l>width</l><block s="reportDifference"><custom-block s="x %s"><block var="p3"/></custom-block><custom-block s="x %s"><block var="p1"/></custom-block></block></block><block s="doSetVar"><l>p2</l><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><block var="width"/><l>0</l></custom-block><block var="p1"/></custom-block></block><block s="doSetVar"><l>p4</l><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><custom-block s="- %s"><block var="width"/></custom-block><l>0</l></custom-block><block var="p3"/></custom-block></block><block s="doReport"><custom-block s="polygon %mult%s"><list><block var="p1"/><block var="p2"/><block var="p3"/><block var="p4"/></list></custom-block></block></script></block-definition><block-definition s="vector %'p1' %'p2'" type="reporter" category="operators"><header></header><code></code><translations>fr:vecteur _ _
</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>vector</l><block var="p1"/><block var="p2"/></list></block></block></script></block-definition><block-definition s="point %'x' %'y'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><l>pt</l><block var="x"/><block var="y"/></list></block></block></script></block-definition><block-definition s="draw %'object'" type="command" category="pen"><header></header><code></code><translations>fr:dessiner _
</translations><inputs><input type="%s"></input></inputs><script><block s="doWarp"><script><custom-block s="let %upvar = %s %cs"><l>type</l><custom-block s="type %s"><block var="object"/></custom-block><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>pt</l></block><script><custom-block s="draw X %s %n"><block var="object"/><l>2</l></custom-block></script><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>vector</l></block><script><custom-block s="go to pt: %s"><custom-block s="start %s"><block var="object"/></custom-block></custom-block><block s="down"></block><custom-block s="go to pt: %s"><custom-block s="end %s"><block var="object"/></custom-block></custom-block><block s="up"></block></script><script><custom-block s="for each %upvar of %l %cs"><l>component</l><block s="reportCDR"><block var="object"/></block><script><custom-block s="draw %s"><block var="component"/></custom-block></script></custom-block></script></block></script></block></script></custom-block></script></block></script></block-definition><block-definition s="let %'var' = %'value' %'body'" type="command" category="control"><header></header><code></code><translations>fr:soit _ = _ _
</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>var</l><block var="value"/></block><block s="doRun"><block var="body"/><list></list></block></script></block-definition><block-definition s="type %'objet'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="first of %l"><block var="objet"/></custom-block></block></script></block-definition><block-definition s="position" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="point %s %s"><block s="xPosition"></block><block s="yPosition"></block></custom-block></block></script></block-definition><block-definition s="draw X %'pt' %'size'" type="command" category="pen"><header></header><code></code><translations>fr:dessiner X _ _
</translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><custom-block s="draw %s"><custom-block s="vector %s %s"><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><custom-block s="- %s"><block var="size"/></custom-block><block var="size"/></custom-block><block var="pt"/></custom-block><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><block var="size"/><custom-block s="- %s"><block var="size"/></custom-block></custom-block><block var="pt"/></custom-block></custom-block></custom-block><custom-block s="draw %s"><custom-block s="vector %s %s"><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><custom-block s="- %s"><block var="size"/></custom-block><custom-block s="- %s"><block var="size"/></custom-block></custom-block><block var="pt"/></custom-block><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><block var="size"/><block var="size"/></custom-block><block var="pt"/></custom-block></custom-block></custom-block></script></block-definition><block-definition s="- %'n'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportDifference"><l>0</l><block var="n"/></block></block></script></block-definition><block-definition s="square %'pt' %'size'" type="reporter" category="operators"><header></header><code></code><translations>fr:carré _ _
</translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doReport"><custom-block s="rectangle pt: %s pt: %s"><block var="pt"/><custom-block s="apply %repRing to %s"><custom-block s="translation %n %n"><block var="size"/><block var="size"/></custom-block><block var="pt"/></custom-block></custom-block></block></script></block-definition><block-definition s="x %'pt'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="pt"/></block></block></script></block-definition><block-definition s="y %'pt'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="pt"/></block></block></script></block-definition><block-definition s="apply %'transformation' to %'object'" type="reporter" category="operators"><header></header><code></code><translations>fr:appliquer _ à _
</translations><inputs><input type="%repRing"></input><input type="%s"></input></inputs><script><block s="doWarp"><script><custom-block s="let %upvar = %s %cs"><l>type</l><custom-block s="type %s"><block var="object"/></custom-block><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>pt</l></block><script><block s="doReport"><block s="evaluate"><block var="transformation"/><list><block var="object"/></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>vector</l></block><script><block s="doReport"><custom-block s="vector %s %s"><block s="evaluate"><block var="transformation"/><list><custom-block s="start %s"><block var="object"/></custom-block></list></block><block s="evaluate"><block var="transformation"/><list><custom-block s="end %s"><block var="object"/></custom-block></list></block></custom-block></block></script><script><block s="doReport"><custom-block s="group %mult%s"><custom-block s="map %repRing over %l"><block s="reifyReporter"><autolambda><custom-block s="apply %repRing to %s"><block var="transformation"/><l></l></custom-block></autolambda><list></list></block><block s="reportCDR"><block var="object"/></block></custom-block></custom-block></block></script></block></script></block></script></custom-block></script></block></script></block-definition><block-definition s="first of %'list'" type="reporter" category="lists"><header></header><code></code><translations>fr:premier de _
</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="list"/></block></block></script></block-definition><block-definition s="go to pt: %'pt'" type="command" category="motion"><header></header><code></code><translations>fr:aller à pt: _
</translations><inputs><input type="%s"></input></inputs><script><block s="gotoXY"><custom-block s="x %s"><block var="pt"/></custom-block><custom-block s="y %s"><block var="pt"/></custom-block></block></script></block-definition><block-definition s="polygon %'points'" type="reporter" category="operators"><header></header><code></code><translations>fr:polygone _
</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="group %mult%s"><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><custom-block s="vector %s %s"><block s="reportListItem"><block var="#"/><block var="points"/></block><custom-block s="cyclic next after %n in %l"><block var="#"/><block var="points"/></custom-block></custom-block></autolambda><list></list></block><list><block var="points"/></list></custom-block></custom-block></block></script></block-definition><block-definition s="cyclic next after %'index' in %'list'" type="reporter" category="lists"><header></header><code></code><translations>fr:prochain cyclique après _ dans _
</translations><inputs><input type="%n"></input><input type="%l"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="index"/><block s="reportListLength"><block var="list"/></block></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="list"/></block></block></script><script><block s="doReport"><block s="reportListItem"><block s="reportSum"><block var="index"/><l>1</l></block><block var="list"/></block></block></script></block></script></block-definition><block-definition s="middle %'trait'" type="reporter" category="operators"><header></header><code></code><translations>fr:milieu _
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="point %s %s"><block s="reportQuotient"><block s="reportSum"><custom-block s="x %s"><custom-block s="start %s"><block var="trait"/></custom-block></custom-block><custom-block s="x %s"><custom-block s="end %s"><block var="trait"/></custom-block></custom-block></block><l>2</l></block><block s="reportQuotient"><block s="reportSum"><custom-block s="y %s"><custom-block s="start %s"><block var="trait"/></custom-block></custom-block><custom-block s="y %s"><custom-block s="end %s"><block var="trait"/></custom-block></custom-block></block><l>2</l></block></custom-block></block></script></block-definition><block-definition s="start %'vector'" type="reporter" category="operators"><header></header><code></code><translations>fr:début _
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="vector"/></block></block></script></block-definition><block-definition s="end %'vector'" type="reporter" category="operators"><header></header><code></code><translations>fr:fin _
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>3</l><block var="vector"/></block></block></script></block-definition><block-definition s="group %'objects'" type="reporter" category="operators"><header></header><code></code><translations>fr:groupe _
</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportCONS"><l>group</l><block var="objects"/></block></block></script></block-definition><block-definition s="let2 %'var1' = %'val1' , %'var2' = %'val2' %'commandes'" type="command" category="control"><header></header><code></code><translations>fr:soient2 _ = _ , _ = _ _
</translations><inputs><input type="%upvar"></input><input type="%s"></input><input type="%upvar"></input><input type="%s"></input><input type="%cs"></input></inputs><script><block s="doSetVar"><l>var1</l><block var="val1"/></block><block s="doSetVar"><l>var2</l><block var="val2"/></block><block s="doRun"><block var="commandes"/><list></list></block></script></block-definition><block-definition s="translation %'x' %'y'" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><custom-block s="point %s %s"><block s="reportSum"><custom-block s="x %s"><block var="pt"/></custom-block><block var="x"/></block><block s="reportSum"><custom-block s="y %s"><block var="pt"/></custom-block><block var="y"/></block></custom-block></autolambda><list><l>pt</l></list></block></block></script></block-definition><block-definition s="composition $arrowRight %'transformations'" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Compose several transformations, by applying the first, then the second, etc...</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><custom-block s="composition $arrowLeft %mult%s"><custom-block s="reverse %l"><block var="transformations"/></custom-block></custom-block></block></script></block-definition><block-definition s="composition $arrowLeft %'transformations'" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Compose several transformations, by applying the last, then the second last, etc...</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doWarp"><script><block s="doIfElse"><block s="reportEquals"><block s="reportListLength"><block var="transformations"/></block><l>1</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="transformations"/></block></block></script><script><block s="doReport"><block s="reifyReporter"><autolambda><custom-block s="apply %repRing to %s"><block s="reportListItem"><l>1</l><block var="transformations"/></block><custom-block s="apply %repRing to %s"><custom-block s="composition $arrowLeft %mult%s"><block s="reportCDR"><block var="transformations"/></block></custom-block><l></l></custom-block></custom-block></autolambda><list></list></block></block></script></block></script></block></script></block-definition><block-definition s="origin" type="reporter" category="motion"><header></header><code></code><translations>fr:origine
</translations><inputs></inputs><script><block s="doReport"><custom-block s="point %s %s"><l>0</l><l>0</l></custom-block></block></script></block-definition><block-definition s="homothety %'centre' %'ratio'" type="reporter" category="motion"><comment x="0" y="0" w="90" collapsed="false">homothety p k creates a homothety of centre p and ratio k.</comment><header></header><code></code><translations>fr:homothétie _ _
</translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>dx</l><l>dy</l></list></block><block s="doSetVar"><l>dx</l><block s="reportDifference"><custom-block s="x %s"><block var="pt"/></custom-block><custom-block s="x %s"><block var="centre"/></custom-block></block></block><block s="doSetVar"><l>dy</l><block s="reportDifference"><custom-block s="y %s"><block var="pt"/></custom-block><custom-block s="y %s"><block var="centre"/></custom-block></block></block><block s="doReport"><custom-block s="point %s %s"><block s="reportSum"><custom-block s="x %s"><block var="centre"/></custom-block><block s="reportProduct"><block var="dx"/><block var="ratio"/></block></block><block s="reportSum"><custom-block s="y %s"><block var="centre"/></custom-block><block s="reportProduct"><block var="dy"/><block var="ratio"/></block></block></custom-block></block></script><list><l>pt</l></list></block></block></script></block-definition><block-definition s="translation pt: %'pt'" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="translation %n %n"><custom-block s="x %s"><block var="pt"/></custom-block><custom-block s="y %s"><block var="pt"/></custom-block></custom-block></block></script></block-definition><block-definition s="parallelogram pt: %'p1' pt: %'p2' pt: %'p3'" type="reporter" category="operators"><header></header><code></code><translations>fr:parallélogramme pt: _ pt: _ pt: _
</translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="polygon %mult%s"><list><block var="p1"/><block var="p2"/><custom-block s="apply %repRing to %s"><custom-block s="composition $arrowLeft %mult%s"><list><custom-block s="translation vec: %s"><custom-block s="vector %s %s"><block var="p1"/><block var="p2"/></custom-block></custom-block><custom-block s="translation vec: %s"><custom-block s="vector %s %s"><block var="p1"/><block var="p3"/></custom-block></custom-block></list></custom-block><block var="p1"/></custom-block><block var="p3"/></list></custom-block></block></script></block-definition><block-definition s="translation vec: %'vec'" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="translation %n %n"><block s="reportDifference"><custom-block s="x %s"><custom-block s="end %s"><block var="vec"/></custom-block></custom-block><custom-block s="x %s"><custom-block s="start %s"><block var="vec"/></custom-block></custom-block></block><block s="reportDifference"><custom-block s="y %s"><custom-block s="end %s"><block var="vec"/></custom-block></custom-block><custom-block s="y %s"><custom-block s="start %s"><block var="vec"/></custom-block></custom-block></block></custom-block></block></script></block-definition><block-definition s="rotation around %'centre' by %'θ' °" type="reporter" category="motion"><header></header><code></code><translations>fr:rotation autour de _ de _ °
</translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><custom-block s="apply %repRing to %s"><custom-block s="composition $arrowRight %mult%s"><list><custom-block s="translation pt: %s"><custom-block s="opposite %s"><block var="centre"/></custom-block></custom-block><custom-block s="linear transformation %l"><custom-block s="( %mult%s )"><list><custom-block s="( %mult%s )"><list><block s="reportMonadic"><l><option>cos</option></l><block var="θ"/></block><custom-block s="- %s"><block s="reportMonadic"><l><option>sin</option></l><block var="θ"/></block></custom-block></list></custom-block><custom-block s="( %mult%s )"><list><block s="reportMonadic"><l><option>sin</option></l><block var="θ"/></block><block s="reportMonadic"><l><option>cos</option></l><block var="θ"/></block></list></custom-block></list></custom-block></custom-block><custom-block s="translation pt: %s"><block var="centre"/></custom-block></list></custom-block><l></l></custom-block></autolambda><list></list></block></block></script><scripts><script x="267" y="338.99999999999994"><custom-block s="let %upvar = %s %cs"><l>rotate around origin</l><l></l><script></script></custom-block></script></scripts></block-definition><block-definition s="π" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.14159265359</l></block></script></block-definition><block-definition s="axes" type="reporter" category="pen"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><custom-block s="group %mult%s"><list><custom-block s="vector %s %s"><custom-block s="point %s %s"><l>0</l><l>180</l></custom-block><custom-block s="point %s %s"><l>0</l><l>-180</l></custom-block></custom-block><custom-block s="vector %s %s"><custom-block s="point %s %s"><l>-240</l><l>0</l></custom-block><custom-block s="point %s %s"><l>240</l><l>0</l></custom-block></custom-block></list></custom-block></block></script></block-definition><block-definition s="mouse position" type="reporter" category="sensing"><header></header><code></code><translations>fr:position souris
</translations><inputs></inputs><script><block s="doReport"><custom-block s="point %s %s"><block s="reportMouseX"></block><block s="reportMouseY"></block></custom-block></block></script></block-definition><block-definition s="go left %'distance' steps" type="command" category="motion"><header></header><code></code><translations>fr:aller à gauche de _ pas
</translations><inputs><input type="%n"></input></inputs><script><block s="changeXPosition"><custom-block s="- %s"><block var="distance"/></custom-block></block></script></block-definition><block-definition s="go right %'distance' steps" type="command" category="motion"><header></header><code></code><translations>fr:aller à droite de _ pas
</translations><inputs><input type="%n"></input></inputs><script><block s="changeXPosition"><block var="distance"/></block></script></block-definition><block-definition s="%'pt' in rectangle pt: %'p1' pt: %'p2' ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s in rectangle %s ?"><block var="pt"/><custom-block s="rectangle pt: %s pt: %s"><block var="p1"/><block var="p2"/></custom-block></custom-block></block></script></block-definition><block-definition s="%'x' ≤ %'y'" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportLessThan"><block var="x"/><block var="y"/></block><block s="reportEquals"><block var="x"/><block var="y"/></block></block></block></script></block-definition><block-definition s="%'x' ≥ %'y'" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportOr"><block s="reportGreaterThan"><block var="x"/><block var="y"/></block><block s="reportEquals"><block var="x"/><block var="y"/></block></block></block></script></block-definition><block-definition s="%'a' ≤ %'b' ≤ %'c'" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportAnd"><custom-block s="%n ≤ %n"><block var="a"/><block var="b"/></custom-block><custom-block s="%n ≤ %n"><block var="b"/><block var="c"/></custom-block></block></block></script></block-definition><block-definition s="min %'x' %'y'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportLessThan"><block var="x"/><block var="y"/></block><script><block s="doReport"><block var="x"/></block></script><script><block s="doReport"><block var="y"/></block></script></block></script></block-definition><block-definition s="max %'x' %'y'" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><block var="x"/><block var="y"/></block><script><block s="doReport"><block var="x"/></block></script><script><block s="doReport"><block var="y"/></block></script></block></script></block-definition><block-definition s="mouse in rectangle pt: %'p1' pt: %'p2' ?" type="predicate" category="sensing"><header></header><code></code><translations>fr:souris dans rectangle pt: _ pt: _ ?
</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s in rectangle pt: %s pt: %s ?"><custom-block s="mouse position"></custom-block><block var="p1"/><block var="p2"/></custom-block></block></script></block-definition><block-definition s="in rectangle pt: %'p1' pt: %'p2' ?" type="predicate" category="sensing"><header></header><code></code><translations>fr:dans rectangle pt: _ pt: _ ?
</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s in rectangle pt: %s pt: %s ?"><custom-block s="position"></custom-block><block var="p1"/><block var="p2"/></custom-block></block></script></block-definition><block-definition s="go down %'distance' steps" type="command" category="motion"><header></header><code></code><translations>fr:aller en bas de _ pas
</translations><inputs><input type="%n"></input></inputs><script><block s="changeYPosition"><custom-block s="- %s"><block var="distance"/></custom-block></block></script></block-definition><block-definition s="go up %'distance' steps" type="command" category="motion"><header></header><code></code><translations>fr:aller en haut de _ pas
</translations><inputs><input type="%n"></input></inputs><script><block s="changeYPosition"><block var="distance"/></block></script></block-definition><block-definition s="points of %'object'" type="reporter" category="operators"><header></header><code></code><translations>fr:points de _
</translations><inputs><input type="%s"></input></inputs><script><custom-block s="let %upvar = %s %cs"><l>type</l><custom-block s="type %s"><block var="object"/></custom-block><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>pt</l></block><script><block s="doReport"><block s="reportNewList"><list><block var="object"/></list></block></block></script><script><block s="doIfElse"><block s="reportEquals"><block var="type"/><l>vector</l></block><script><block s="doReport"><block s="reportNewList"><list><custom-block s="start %s"><block var="object"/></custom-block><custom-block s="end %s"><block var="object"/></custom-block></list></block></block></script><script><block s="doReport"><custom-block s="remove duplicates from %l"><custom-block s="append %mult%l"><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><custom-block s="points of %s"><l></l></custom-block></autolambda><list></list></block><list><block s="reportCDR"><block var="object"/></block></list></custom-block></custom-block></custom-block></block></script></block></script></block></script></custom-block></script></block-definition><block-definition s="barycenter of %'object'" type="reporter" category="operators"><header></header><code></code><translations>fr:barycentre de _
</translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>points</l></list></block><block s="doSetVar"><l>points</l><custom-block s="points of %s"><block var="object"/></custom-block></block><block s="doReport"><custom-block s="point %s %s"><custom-block s="mean of %mult%n"><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><custom-block s="x %s"><l></l></custom-block></autolambda><list></list></block><list><block var="points"/></list></custom-block></custom-block><custom-block s="mean of %mult%n"><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><custom-block s="y %s"><l></l></custom-block></autolambda><list></list></block><list><block var="points"/></list></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="mean of %'numbers'" type="reporter" category="operators"><header></header><code></code><translations>fr:moyenne de _
</translations><inputs><input type="%mult%n"></input></inputs><script><block s="doDeclareVariables"><list><l>sum</l></list></block><block s="doSetVar"><l>sum</l><l>0</l></block><custom-block s="for each %upvar of %l %cs"><l>item</l><block var="numbers"/><script><block s="doChangeVar"><l>sum</l><block var="item"/></block></script></custom-block><block s="doReport"><block s="reportQuotient"><block var="sum"/><block s="reportListLength"><block var="numbers"/></block></block></block></script></block-definition><block-definition s="%'object' and its %'transformations'" type="reporter" category="operators"><header></header><code></code><translations>fr:_ et son _
</translations><inputs><input type="%s"></input><input type="%mult%repRing"></input></inputs><script><block s="doReport"><custom-block s="group %mult%s"><block s="reportCONS"><block var="object"/><custom-block s="map %repRing over %l"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="t"/><list><block var="object"/></list></block></autolambda><list><l>t</l></list></block><block var="transformations"/></custom-block></block></custom-block></block></script></block-definition><block-definition s="rectangle enclosing %'object'" type="reporter" category="operators"><variables><list id="1019"><item><l>limits</l></item><item><l>left</l></item><item><l>right</l></item><item><l>top</l></item><item><l>bottom</l></item></list></variables><header></header><code></code><translations>fr:rectangle entourant _
</translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>limits</l><custom-block s="limits of %s"><block var="object"/></custom-block></block><block s="doReport"><custom-block s="rectangle pt: %s pt: %s"><custom-block s="point %s %s"><block s="reportListItem"><l>1</l><block var="limits"/></block><block s="reportListItem"><l>4</l><block var="limits"/></block></custom-block><custom-block s="point %s %s"><block s="reportListItem"><l>2</l><block var="limits"/></block><block s="reportListItem"><l>3</l><block var="limits"/></block></custom-block></custom-block></block></script></block-definition><block-definition s="append %'lists'" type="reporter" category="lists"><comment x="0" y="0" w="287" collapsed="false">Take any number of input lists, and create a new list containing the items of the input lists. So
 APPEND [A B] [C D]
where the [,,,] are lists reports the list
 [A B C D]
not [[A B] [C D]].</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="lists"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListLength"><block var="lists"/></block><l>1</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="lists"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="lists"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><custom-block s="append %mult%l"><block s="reportCDR"><block var="lists"/></block></custom-block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="lists"/></block></block><custom-block s="append %mult%l"><block s="reportCONS"><block s="reportCDR"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><block s="reportCDR"><block var="lists"/></block></block></custom-block></block></block></script></block></script></block-definition><block-definition s="reverse %'data'" type="reporter" category="lists"><comment x="0" y="0" w="223" collapsed="false">Reports a new list containing the items of the input list, but in the opposite order.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doDeclareVariables"><list><l>helper</l></list></block><block s="doSetVar"><l>helper</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="input"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="result"/></block></script></block><block s="doReport"><block s="evaluate"><block var="helper"/><list><block s="reportCDR"><block var="input"/></block><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="input"/></block><block var="result"/></block></list></block></block></script><list><l>input</l><l>result</l></list></block></block><block s="doWarp"><script><block s="doReport"><block s="evaluate"><block var="helper"/><list><block var="data"/><block s="reportNewList"><list></list></block></list></block></block></script></block></script></block-definition><block-definition s="remove duplicates from %'data'" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="reportListContainsItem"><block s="reportCDR"><block var="data"/></block><block s="reportListItem"><l>1</l><block var="data"/></block></block><script><block s="doReport"><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="remove duplicates from %l"><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block></script></block></script></block-definition><block-definition s="sort %'data' ordering with %'function'" type="reporter" category="lists"><comment x="0" y="0" w="204" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot. For a list of numbers, using < as the comparison function will sort from low to high; using > will sort from high to low.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doDeclareVariables"><list><l>even items</l><l>odd items</l><l>merge</l></list></block><block s="doSetVar"><l>odd items</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><l></l><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><l/></block><block s="evaluate"><block var="even items"/><list><block s="reportCDR"><l/></block></list></block></block></block></script><list></list></block></block><block s="doSetVar"><l>even items</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><l></l><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="evaluate"><block var="odd items"/><list><block s="reportCDR"><l/></block></list></block></block></script><list></list></block></block><block s="doSetVar"><l>merge</l><block s="reifyScript"><script><block s="doIf"><block s="reportEquals"><block var="#1"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#2"/></block></script></block><block s="doIf"><block s="reportEquals"><block var="#2"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="#1"/></block></script></block><block s="doIfElse"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="reportListItem"><l>1</l><block var="#2"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#1"/></block><block s="evaluate"><block var="merge"/><list><block s="reportCDR"><block var="#1"/></block><block var="#2"/></list></block></block></block></script><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="#2"/></block><block s="evaluate"><block var="merge"/><list><block var="#1"/><block s="reportCDR"><block var="#2"/></block></list></block></block></block></script></block></script><list><l>#1</l><l>#2</l></list></block></block><block s="doIf"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportCDR"><block var="data"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="evaluate"><block var="merge"/><list><custom-block s="sort %l ordering with %predRing"><block s="evaluate"><block var="odd items"/><list><block var="data"/></list></block><block var="function"/></custom-block><custom-block s="sort %l ordering with %predRing"><block s="evaluate"><block var="even items"/><list><block var="data"/></list></block><block var="function"/></custom-block></list></block></block></script></block-definition><block-definition s="%'#' map %'function' over %'lists'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>#</l><block var="count"/></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></block></script><list><l>data</l><l>count</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doSetVar"><l>#</l><block var="count"/></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="%upvar map %repRing over %mult%l"><l>#</l><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block><block s="reportSum"><block var="count"/><l>1</l></block></list></block></block></block></script><list><l>data lists</l><l>count</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block><l>1</l></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/><l>1</l></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %'data'" type="predicate" category="lists"><header></header><code></code><translations>de:ist _ leer?
</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="combine with %'function' items of %'data'" type="reporter" category="lists"><header></header><code></code><translations>de:kombiniere mit _ die Elemente von _
</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block-definition><block-definition s="if %'test' then %'true' else %'false'" type="reporter" category="control"><header></header><code></code><translations>de:wenn _ dann _ sonst _
</translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for each %'item' of %'data' %'action'" type="command" category="lists"><header></header><code></code><translations>de:für jedes _ von _ _
</translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="map %'func' over %'data'" type="reporter" category="lists"><header></header><code></code><translations>de:wende _ an auf _
</translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block var="data"/></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="func"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><custom-block s="map %repRing over %l"><block var="func"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script></block-definition><block-definition s="%'pt' in rectangle %'object' ?" type="predicate" category="operators"><variables><list id="1728"><item><l>limits</l></item><item><l>left</l></item><item><l>right</l></item><item><l>d</l></item><item><l>e</l></item></list></variables><header></header><code></code><translations>fr:_ dans rectangle _ ?
</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>limits</l><custom-block s="limits of %s"><block var="object"/></custom-block></block><block s="doReport"><block s="reportAnd"><custom-block s="%n ≤ %n ≤ %n"><block s="reportListItem"><l>1</l><block var="limits"/></block><custom-block s="x %s"><block var="pt"/></custom-block><block s="reportListItem"><l>2</l><block var="limits"/></block></custom-block><custom-block s="%n ≤ %n ≤ %n"><block s="reportListItem"><l>3</l><block var="limits"/></block><custom-block s="y %s"><block var="pt"/></custom-block><block s="reportListItem"><l>4</l><block var="limits"/></block></custom-block></block></block></script></block-definition><block-definition s="limits of %'object'" type="reporter" category="operators"><variables><list id="1765"><item><l>points</l></item><item><l>left</l></item><item><l>right</l></item><item><l>bottom</l></item><item><l>top</l></item></list></variables><header></header><code></code><translations>fr:limites de _
</translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>points</l><custom-block s="points of %s"><block var="object"/></custom-block></block><block s="doSetVar"><l>left</l><custom-block s="first of %l"><custom-block s="sort %l ordering with %predRing"><block var="points"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><custom-block s="x %s"><l></l></custom-block><custom-block s="x %s"><l></l></custom-block></block></autolambda><list></list></block></custom-block></custom-block></block><block s="doSetVar"><l>right</l><custom-block s="first of %l"><custom-block s="sort %l ordering with %predRing"><block var="points"/><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><custom-block s="x %s"><l></l></custom-block><custom-block s="x %s"><l></l></custom-block></block></autolambda><list></list></block></custom-block></custom-block></block><block s="doSetVar"><l>bottom</l><custom-block s="first of %l"><custom-block s="sort %l ordering with %predRing"><block var="points"/><block s="reifyPredicate"><autolambda><block s="reportLessThan"><custom-block s="y %s"><l></l></custom-block><custom-block s="y %s"><l></l></custom-block></block></autolambda><list></list></block></custom-block></custom-block></block><block s="doSetVar"><l>top</l><custom-block s="first of %l"><custom-block s="sort %l ordering with %predRing"><block var="points"/><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><custom-block s="y %s"><l></l></custom-block><custom-block s="y %s"><l></l></custom-block></block></autolambda><list></list></block></custom-block></custom-block></block><block s="doReport"><block s="reportNewList"><list><custom-block s="x %s"><block var="left"/></custom-block><custom-block s="x %s"><block var="right"/></custom-block><custom-block s="y %s"><block var="bottom"/></custom-block><custom-block s="y %s"><block var="top"/></custom-block></list></block></block></script></block-definition><block-definition s="mouse in rectangle %'object' ?" type="predicate" category="sensing"><header></header><code></code><translations>fr:souris dans rectangle _ ?
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s in rectangle %s ?"><custom-block s="mouse position"></custom-block><block var="object"/></custom-block></block></script></block-definition><block-definition s="fill in %'object'" type="command" category="pen"><header></header><code></code><translations>fr:remplir dans _
</translations><inputs><input type="%s"></input></inputs><script><custom-block s="go to pt: %s"><custom-block s="barycenter of %s"><block var="object"/></custom-block></custom-block><block s="floodFill"></block></script></block-definition><block-definition s="in rectangle %'object' ?" type="predicate" category="sensing"><header></header><code></code><translations>fr:dans rectangle _ ?
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s in rectangle %s ?"><custom-block s="position"></custom-block><block var="object"/></custom-block></block></script></block-definition><block-definition s="distance between %'p1' and %'p2'" type="reporter" category="operators"><header></header><code></code><translations>fr:distance entre _ et _
</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sqrt</option></l><block s="reportSum"><custom-block s="%n ²"><block s="reportDifference"><custom-block s="x %s"><block var="p1"/></custom-block><custom-block s="x %s"><block var="p2"/></custom-block></block></custom-block><custom-block s="%n ²"><block s="reportDifference"><custom-block s="y %s"><block var="p1"/></custom-block><custom-block s="y %s"><block var="p2"/></custom-block></block></custom-block></block></block></block></script></block-definition><block-definition s="%'x' ²" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportProduct"><block var="x"/><block var="x"/></block></block></script></block-definition><block-definition s="length of %'vec'" type="reporter" category="operators"><header></header><code></code><translations>fr:longueur de _
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="distance between %s and %s"><custom-block s="start %s"><block var="vec"/></custom-block><custom-block s="end %s"><block var="vec"/></custom-block></custom-block></block></script></block-definition><block-definition s="symmetry of center %'c'" type="reporter" category="motion"><header></header><code></code><translations>fr:symmétrie de centre _
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="homothety %s %n"><block var="c"/><l>-1</l></custom-block></block></script></block-definition><block-definition s="within %'container' : %'objects'" type="reporter" category="motion"><variables><list id="1946"><item><l>limits</l></item><item><l>translation</l></item></list></variables><header></header><code></code><translations>fr:dans _ : _
</translations><inputs><input type="%s"></input><input type="%mult%s"></input></inputs><script><block s="doSetVar"><l>limits</l><custom-block s="limits of %s"><block var="container"/></custom-block></block><block s="doSetVar"><l>translation</l><custom-block s="translation %n %n"><block s="reportListItem"><l>1</l><block var="limits"/></block><block s="reportListItem"><l>3</l><block var="limits"/></block></custom-block></block><block s="doReport"><custom-block s="if %b then %anyUE else %anyUE"><block s="reportEquals"><block s="reportListLength"><block var="objects"/></block><l>1</l></block><custom-block s="apply %repRing to %s"><block var="translation"/><custom-block s="first of %l"><block var="objects"/></custom-block></custom-block><custom-block s="group %mult%s"><custom-block s="map %repRing over %l"><block s="reifyReporter"><autolambda><custom-block s="apply %repRing to %s"><block var="translation"/><l></l></custom-block></autolambda><list></list></block><block var="objects"/></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="angle %'vector'" type="reporter" category="operators"><variables><list id="1996"><item><l>hypotenuse</l></item><item><l>adjacent</l></item><item><l>opposite</l></item></list></variables><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doSetVar"><l>hypotenuse</l><custom-block s="length of %s"><block var="vector"/></custom-block></block><block s="doSetVar"><l>adjacent</l><block s="reportDifference"><custom-block s="x %s"><custom-block s="end %s"><block var="vector"/></custom-block></custom-block><custom-block s="x %s"><custom-block s="start %s"><block var="vector"/></custom-block></custom-block></block></block><block s="doSetVar"><l>opposite</l><block s="reportDifference"><custom-block s="y %s"><custom-block s="end %s"><block var="vector"/></custom-block></custom-block><custom-block s="y %s"><custom-block s="start %s"><block var="vector"/></custom-block></custom-block></block></block><block s="doReport"><block s="reportProduct"><block s="reportMonadic"><l><option>acos</option></l><block s="reportQuotient"><block var="adjacent"/><block var="hypotenuse"/></block></block><custom-block s="if %b then %anyUE else %anyUE"><block s="reportLessThan"><block s="reportMonadic"><l><option>asin</option></l><block s="reportQuotient"><block var="opposite"/><block var="hypotenuse"/></block></block><l>0</l></block><l>-1</l><l>1</l></custom-block></block></block></script></block-definition><block-definition s="symmetry of axe %'axe'" type="reporter" category="motion"><header></header><code></code><translations>fr:symmétrie d'axe _
</translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="composition $arrowRight %mult%s"><list><custom-block s="rotation around %s by %n °"><custom-block s="start %s"><block var="axe"/></custom-block><custom-block s="- %s"><custom-block s="angle %s"><block var="axe"/></custom-block></custom-block></custom-block><custom-block s="translation %n %n"><l>0</l><custom-block s="- %s"><custom-block s="y %s"><custom-block s="start %s"><block var="axe"/></custom-block></custom-block></custom-block></custom-block><block s="reifyReporter"><autolambda><custom-block s="point %s %s"><custom-block s="x %s"><l></l></custom-block><custom-block s="- %s"><custom-block s="y %s"><l></l></custom-block></custom-block></custom-block></autolambda><list></list></block><custom-block s="translation %n %n"><l>0</l><custom-block s="y %s"><custom-block s="start %s"><block var="axe"/></custom-block></custom-block></custom-block><custom-block s="rotation around %s by %n °"><custom-block s="start %s"><block var="axe"/></custom-block><custom-block s="angle %s"><block var="axe"/></custom-block></custom-block></list></custom-block></block></script></block-definition><block-definition s="( %'xs' )" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block var="xs"/></block></script></block-definition><block-definition s="%'list' [ %'index' ]" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="index"/><block var="list"/></block></block></script></block-definition><block-definition s="linear transformation %'matrix'" type="reporter" category="motion"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><custom-block s="point %s %s"><block s="reportSum"><block s="reportProduct"><custom-block s="x %s"><l></l></custom-block><custom-block s="%l [ %n ]"><custom-block s="%l [ %n ]"><block var="matrix"/><l>1</l></custom-block><l>1</l></custom-block></block><block s="reportProduct"><custom-block s="y %s"><l></l></custom-block><custom-block s="%l [ %n ]"><custom-block s="%l [ %n ]"><block var="matrix"/><l>1</l></custom-block><l>2</l></custom-block></block></block><block s="reportSum"><block s="reportProduct"><custom-block s="x %s"><l></l></custom-block><custom-block s="%l [ %n ]"><custom-block s="%l [ %n ]"><block var="matrix"/><l>2</l></custom-block><l>1</l></custom-block></block><block s="reportProduct"><custom-block s="y %s"><l></l></custom-block><custom-block s="%l [ %n ]"><custom-block s="%l [ %n ]"><block var="matrix"/><l>2</l></custom-block><l>2</l></custom-block></block></block></custom-block></autolambda><list></list></block></block></script></block-definition><block-definition s="opposite %'object'" type="reporter" category="motion"><header></header><code></code><translations>fr:opposé _
</translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><custom-block s="type %s"><block var="object"/></custom-block><l>pt</l></block><script><block s="doReport"><custom-block s="point %s %s"><custom-block s="- %s"><custom-block s="x %s"><block var="object"/></custom-block></custom-block><custom-block s="- %s"><custom-block s="y %s"><block var="object"/></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="vector %s %s"><custom-block s="end %s"><block var="object"/></custom-block><custom-block s="start %s"><block var="object"/></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="%'object' centered on %'point'" type="reporter" category="motion"><header></header><code></code><translations>fr:_ centré sur _
</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="apply %repRing to %s"><custom-block s="translation vec: %s"><custom-block s="vector %s %s"><custom-block s="barycenter of %s"><block var="object"/></custom-block><block var="point"/></custom-block></custom-block><block var="object"/></custom-block></block></script></block-definition><block-definition s="%'transformation' with origin %'point'" type="reporter" category="motion"><header></header><code></code><translations>fr:_ avec _ comme origine
</translations><inputs><input type="%repRing"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="composition $arrowRight %mult%s"><list><custom-block s="translation pt: %s"><custom-block s="opposite %s"><block var="point"/></custom-block></custom-block><block var="transformation"/><custom-block s="translation pt: %s"><block var="point"/></custom-block></list></custom-block></block></script></block-definition></blocks>