[Gridflow-cvs] [svn] commit: r3880 - in /trunk/doc: architecture.html flow_classes/#-help.pd optable.pd optable.tcl

gridflow-cvs at artengine.ca gridflow-cvs at artengine.ca
Mon Jun 16 13:35:47 EDT 2008


Author: matju
Date: Mon Jun 16 13:35:46 2008
New Revision: 3880

Log:
translated numop table from html to pd

Added:
    trunk/doc/optable.pd
Modified:
    trunk/doc/architecture.html
    trunk/doc/flow_classes/#-help.pd
    trunk/doc/optable.tcl

Modified: trunk/doc/architecture.html
==============================================================================
--- trunk/doc/architecture.html (original)
+++ trunk/doc/architecture.html Mon Jun 16 13:35:46 2008
@@ -145,66 +145,6 @@
 <tr><td align="left" valign="top"><table bgcolor="white" border="0" cellpadding="4" cellspacing="1">
 <tr class="c3"><td><b>name</b></td><td><b>description</b></td><td><b>meaning in pixel context (pictures, palettes)</b></td><td><b>meaning in spatial context (indexmaps, polygons)</b></td></tr>
 
-<tr class="c1"><td>ignore</td><td> A </td><td>no effect</td><td>no effect</td></tr> 
-<tr class="c2"><td>put</td><td> B </td><td>replace by</td><td>replace by</td></tr> 
-<tr class="c1"><td>+</td><td> A + B </td><td>brightness, crossfade</td><td>move, morph</td></tr> 
-<tr class="c2"><td>-</td><td> A - B </td><td>brightness, motion detection</td><td>move, motion detection</td></tr> 
-<tr class="c1"><td>inv+</td><td> B - A </td><td>negate then contrast</td><td>180 degree rotate then move</td></tr> 
-<tr class="c2"><td>*</td><td> A * B </td><td>contrast</td><td>zoom out</td></tr> 
-<tr class="c1"><td>/</td><td> A / B, rounded towards zero </td><td>contrast</td><td>zoom in</td></tr> 
-<tr class="c2"><td>div</td><td> A / B, rounded downwards </td><td>contrast</td><td>zoom in</td></tr> 
-<tr class="c1"><td>inv*</td><td> B / A, rounded towards zero </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>swapdiv</td><td> B / A, rounded downwards </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>%</td><td> A % B, modulo (goes with div) </td><td>--</td><td>tile</td></tr> 
-<tr class="c2"><td>swap%</td><td> B % A, modulo (goes with div) </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>rem</td><td> A % B, remainder (goes with /) </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>swaprem</td><td> B % A, remainder (goes with /) </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>gcd</td><td> 
-	greatest common divisor</td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>lcm</td><td> 
-	least common multiple</td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>|</td><td> A or B, bitwise </td><td>bright munchies</td><td>bottomright munchies</td></tr> 
-<tr class="c2"><td>^</td><td> A xor B, bitwise </td><td>symmetric munchies (fractal checkers)</td><td>symmetric munchies (fractal checkers)</td></tr> 
-<tr class="c1"><td>&amp;</td><td> A and B, bitwise </td><td>dark munchies</td><td>topleft munchies</td></tr> 
-<tr class="c2"><td>&lt;&lt;</td><td> A * (2**(B % 32)), which is left-shifting </td><td>like *</td><td>like *</td></tr> 
-<tr class="c1"><td>&gt;&gt;</td><td> A / (2**(B % 32)), which is right-shifting </td><td>like /,div</td><td>like /,div</td></tr> 
-<tr class="c2"><td>||</td><td> if A is zero then B else A </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>&amp;&amp;</td><td> if A is zero then zero else B</td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>min</td><td> the lowest value in A,B </td><td>clipping</td><td>clipping (of individual points)</td></tr> 
-<tr class="c1"><td>max</td><td> the highest value in A,B </td><td>clipping</td><td>clipping (of individual points)</td></tr> 
-<tr class="c2"><td>cmp</td><td> -1 when A&lt;B; 0 when A=B; 1 when A&gt;B. </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>==</td><td> is A equal to B ? 1=true, 0=false </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>!=</td><td> is A not equal to B ? </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>&gt;</td><td> is A greater than B ? </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>&lt;=</td><td> is A not greater than B ? </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>&lt;</td><td> is A less than B ? </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>&gt;=</td><td>is A not less than B ? </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>sin*</td><td> B * sin(A) </td><td>--</td><td>waves, rotations</td></tr> 
-<tr class="c2"><td>cos*</td><td> B * cos(A) </td><td>--</td><td>waves, rotations</td></tr> 
-<tr class="c1"><td>atan</td><td> arctan(A/B) </td><td>--</td><td>find angle to origin (part of polar transform)</td></tr> 
-<tr class="c2"><td>tanh*</td><td> B * tanh(A) </td><td>smooth clipping</td><td>smooth clipping (of individual points), neural sigmoid, fuzzy logic</td></tr> 
-<tr class="c1"><td>log*</td><td> B * log(A) (in base e) </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>gamma</td><td> floor(pow(a/256.0,256.0/b)*256.0) </td><td>gamma correction</td><td>--</td></tr> 
-<tr class="c1"><td>**</td><td> A**B, that is, A raised to power B </td><td>gamma correction</td><td>--</td></tr> 
-<tr class="c2"><td>abs-</td><td> absolute value of (A-B) </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>rand</td><td> randomly produces a non-negative number below A </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>sqrt</td><td> square root of A, rounded downwards </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>sq-</td><td> (A-B) times (A-B) </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>avg</td><td> (A+B)/2 </td><td>--</td><td>--</td></tr> 
-<tr class="c1"><td>hypot</td><td> square root of (A*A+B*B) </td><td>--</td><td>--</td></tr> 
-<tr class="c2"><td>clip+</td><td> like A+B but overflow causes clipping instead of wrapping around (coming soon) </td><td>--</td><td>--</td></tr>
-<tr class="c1"><td>clip-</td><td> like A-B but overflow causes clipping instead of wrapping around (coming soon) </td><td>--</td><td>--</td></tr>
-<tr class="c2"><td>erf*</td><td> integral of e^(-x*x) dx ... (coming soon; what ought to be the scaling factor?) </td><td>--</td><td>--</td></tr>
-<tr class="c1"><td>weight</td><td> number of "1" bits in an integer</td><td>--</td><td>--</td></tr>
-<tr class="c2"><td>sin</td><td>sin(A-B), float only</td><td>--</td><td>--</td></tr>
-<tr class="c1"><td>cos</td><td>cos(A-B), float only</td><td>--</td><td>--</td></tr>
-<tr class="c2"><td>atan2</td><td>atan2(A,B), float only</td><td>--</td><td>--</td></tr>
-<tr class="c1"><td>tanh</td><td>tanh(A-B), float only</td><td>--</td><td>--</td></tr>
-<tr class="c2"><td>exp</td><td>exp(A-B), float only</td><td>--</td><td>--</td></tr>
-<tr class="c1"><td>log</td><td>log(A-B), float only</td><td>--</td><td>--</td></tr>
-
-</table></td></tr></table></td></tr>
-
 <p>The following are called VecOps because each operation happens between more than just two numbers.</p>
 <p>A first kind of VecOp are those that arise when a pair of numbers (A0,A1) is considered as a single number A0+A1*sqrt(-1).
 If you need complex numbers but don't know yet how they work, learn them using a math tutorial and then those VecOps will begin to seem familiar.</p>

Modified: trunk/doc/flow_classes/#-help.pd
==============================================================================
--- trunk/doc/flow_classes/#-help.pd (original)
+++ trunk/doc/flow_classes/#-help.pd Mon Jun 16 13:35:46 2008
@@ -1,269 +1,26 @@
-#N canvas 0 26 1001 659 10;
-#X text 13 44 for all of these \, A refers to the left inlet and B
-to the value on the right.;
-#X obj 479 70 #color;
-#X obj 654 70 #color;
-#X obj 437 90 r op;
-#X text 86 208 A;
-#X text 86 227 B;
-#X text 69 402 if A is zero then;
-#X text 70 416 B else A;
-#X obj 13 457 s op;
-#X text 69 430 if A is zero then;
-#X msg 25 436 op &&;
-#X text 70 444 zero else B;
-#X obj 13 606 s op;
-#X msg 37 558 op min;
-#X text 86 553 the lowest value;
-#X text 87 565 in A \, B;
-#X msg 37 581 op max;
-#X text 86 587 in A \, B;
-#X text 86 576 the highest value;
-#X msg 24 488 op abs-;
-#X text 86 488 absolute value of (A-B);
-#X obj 257 552 s op;
-#X msg 257 533 op rand;
-#X text 320 547 number below A;
-#X text 319 532 randomly produces a non-negative;
-#X msg 267 575 op sqrt;
-#X text 323 568 square root of A;
-#X text 324 583 rounded downwards;
-#X obj 13 532 s op;
-#X msg 24 509 op sq-;
-#X text 87 508 (A-B) times (A-B);
-#X obj 256 622 s op;
-#X msg 267 598 op hypot;
-#X text 335 598 square root of (A*A+B*B);
-#X text 585 31 select values below;
-#X text 14 127 select an operator below;
-#X text 478 51 A;
-#X text 653 51 B;
-#X obj 479 136 # +;
-#X obj 464 183 #color;
-#X obj 681 150 #unpack 3;
-#X floatatom 681 170 5 0 0 0 - - -;
-#X obj 642 150 t a a;
-#X obj 643 186 display;
-#X msg 25 408 op ||;
-#X obj 333 160 display;
-#X text 861 23 GridFlow 0.8.3;
-#X text 15 14 Numeric Operators:;
-#X text 15 27 Consult doc/architecture.html to see a table of all of
-them.;
-#X text 14 73 angles are in hundredths of degrees \, so a full circle
-(two pi radians) is 36000 you can convert from radians to our angles
-by multiplying by 18000/pi.;
-#X msg 36 227 op put;
-#X msg 15 207 op ignore;
-#N canvas 0 0 450 300 bitwise_numops 0;
-#X text 106 54 A or B \, bitwise;
-#X text 99 76 A xor B \, bitwise;
-#X msg 45 74 op ^;
-#X msg 45 96 op &;
-#X text 100 98 A and B \, bitwise;
-#X text 100 120 A * (2**(B % 32);
-#X obj 25 170 s op;
-#X text 100 150 A / (2**(B % 32);
-#X msg 45 118 op <<;
-#X msg 45 147 op >>;
-#X msg 45 52 op |;
-#X text 99 135 left-shifting;
-#X text 99 164 right-shifting;
-#X connect 2 0 6 0;
-#X connect 3 0 6 0;
-#X connect 8 0 6 0;
-#X connect 9 0 6 0;
-#X connect 10 0 6 0;
-#X restore 11 322 pd bitwise_numops (5);
-#N canvas 0 0 450 300 comparator_numops 0;
-#X msg 40 33 op cmp;
-#X text 87 22 -1 when A<B;
-#X text 94 50 1 when A>B;
-#X text 94 36 0 when A=B;
-#X msg 40 66 op ==;
-#X text 97 67 is A equal to B ?;
-#X text 97 79 1 = true \, 0 = false;
-#X msg 40 93 op !=;
-#X text 97 94 is A not equal to B ?;
-#X msg 41 114 op >;
-#X text 98 115 is A greater than B ?;
-#X msg 41 137 op <=;
-#X text 98 138 is A not greater than B ?;
-#X msg 41 158 op <;
-#X text 98 159 is A less than B ?;
-#X obj 20 203 s op;
-#X msg 41 179 op >=;
-#X text 98 180 is A not less than B ?;
-#X connect 0 0 15 0;
-#X connect 4 0 15 0;
-#X connect 7 0 15 0;
-#X connect 9 0 15 0;
-#X connect 11 0 15 0;
-#X connect 13 0 15 0;
-#X connect 16 0 15 0;
-#X restore 11 342 pd comparator_numops (7);
-#N canvas 0 0 450 447 trigonometric&exponential_numops 0;
-#X msg 56 142 op sin*;
-#X text 126 144 B * sin(A);
-#X msg 56 162 op cos*;
-#X text 127 165 B * cos(A);
-#X text 127 184 arctan(A/B);
-#X msg 56 56 op log*;
-#X text 198 47 in base e;
-#X msg 56 77 op gamma;
-#X obj 22 100 s op;
-#X msg 56 98 op **;
-#X text 125 96 A**B;
-#X text 125 107 A raised to power B;
-#X obj 39 120 bng 15 250 50 0 empty empty empty 0 -6 0 8 -258699 -1
--1;
-#X msg 56 120 op erf;
-#X text 124 123 integral of e^(-x*x)dx;
-#X msg 55 15 op tanh*;
-#X obj 12 166 s op;
-#X msg 55 35 op exp*;
-#X text 127 77 floor(pow(a/256 \, 256/b)*256);
-#X text 115 256 B * sin(A);
-#X text 116 277 B * cos(A);
-#X msg 56 182 op atan;
-#X text 60 222 FLOAT ONLY \, IN RADIANS:;
-#X msg 56 255 op sin;
-#X msg 56 275 op cos;
-#X msg 56 295 op tanh;
-#X msg 56 315 op exp;
-#X msg 56 335 op log;
-#X msg 56 355 op atan2;
-#X text 115 296 B * sin(A);
-#X text 116 317 B * cos(A);
-#X text 125 16 B * tanh(A);
-#X text 126 36 B * exp(A);
-#X text 126 57 B * log(A);
-#X text 117 354 arctan(A/B);
-#X text 117 337 B * log(A);
-#X obj 16 381 s op;
-#X connect 0 0 16 0;
-#X connect 2 0 16 0;
-#X connect 5 0 8 0;
-#X connect 7 0 8 0;
+#N canvas 0 26 645 571 10;
+#X obj 139 174 #color;
+#X obj 314 174 #color;
+#X text 245 135 select values below;
+#X text 138 155 A;
+#X text 313 155 B;
+#X obj 139 240 # +;
+#X obj 178 274 #color;
+#X obj 74 50 doc/optable;
+#X obj 140 380 display;
+#X obj 139 274 t a a;
+#X text 152 342 warning: #color clips value to the 0..255 range;
+#X text 152 357 so use this [display] to view the true numbers;
+#X text 14 31 click on this object to select a numop to try out:;
+#X text 15 14 # applies a simple Numeric Operator (numop).;
+#X text 83 445 note: a centidegree is 0.01 degree. There are 36000
+degrees in a circle. Some angle operators use centidegrees \, while
+some others use radians. To convert degrees into centidegrees \, multiply
+by 100 To convert degrees into radians \, divide by 57.2957 .;
+#X text 531 23 GridFlow 0.9.4;
+#X connect 0 0 5 0;
+#X connect 1 0 5 1;
+#X connect 5 0 9 0;
+#X connect 7 0 5 0;
 #X connect 9 0 8 0;
-#X connect 13 0 8 0;
-#X connect 15 0 8 0;
-#X connect 17 0 8 0;
-#X connect 21 0 16 0;
-#X connect 23 0 36 0;
-#X connect 24 0 36 0;
-#X connect 25 0 36 0;
-#X connect 26 0 36 0;
-#X connect 27 0 36 0;
-#X connect 28 0 36 0;
-#X restore 11 362 pd trigonometric&exponential_numops (15);
-#X obj 11 246 s op;
-#N canvas 0 0 450 300 addition_numops 0;
-#X text 93 40 A + B;
-#X text 94 60 A - B;
-#X text 96 80 B - A;
-#X msg 40 99 op avg;
-#X msg 33 79 op inv+;
-#X msg 55 59 op -;
-#X msg 55 38 op +;
-#X obj 24 123 s op;
-#X text 84 99 (A+B)/2 average;
-#X msg 40 205 op clip+;
-#X text 108 205 A+B but output is clipped;
-#X obj 22 253 s op;
-#X msg 40 225 op clip-;
-#X text 108 225 A-B but output is clipped;
-#X text 28 178 IN THE FUTURE:;
-#X connect 3 0 7 0;
-#X connect 4 0 7 0;
-#X connect 5 0 7 0;
-#X connect 6 0 7 0;
-#X connect 9 0 11 0;
-#X connect 12 0 11 0;
-#X restore 11 282 pd addition_numops (6);
-#N canvas 102 91 450 428 multiplication_numops 0;
-#X text 69 20 A * B;
-#X text 65 47 rounded towards zero;
-#X msg 25 162 op %;
-#X text 61 158 A % B;
-#X text 71 35 A / B;
-#X text 94 182 B % A;
-#X text 81 59 A / B;
-#X text 80 71 rounded downwards;
-#X text 90 83 B / A;
-#X text 87 95 rounded towards 0;
-#X text 108 115 rounded downwards;
-#X text 109 104 B / A;
-#X text 61 169 modulo (goes with div);
-#X text 92 193 modulo (goes with div);
-#X msg 30 186 op swap%;
-#X msg 32 109 op swapdiv;
-#X msg 42 214 op rem;
-#X text 95 207 A % B;
-#X text 117 245 B % A;
-#X text 94 218 remainder;
-#X text 95 229 (goes with /);
-#X text 116 256 remainder;
-#X text 115 267 (goes with /);
-#X msg 36 253 op swaprem;
-#X obj 14 135 s op;
-#X obj 17 279 s op;
-#X msg 32 88 op inv*;
-#X msg 32 63 op div;
-#X msg 32 39 op /;
-#X msg 32 19 op *;
-#X obj 20 360 s op;
-#X text 87 323 greatest common divisor;
-#X text 88 345 least common multiple;
-#X msg 33 319 op gcd;
-#X msg 33 339 op lcm;
-#X connect 2 0 25 0;
-#X connect 14 0 25 0;
-#X connect 15 0 24 0;
-#X connect 16 0 25 0;
-#X connect 23 0 25 0;
-#X connect 26 0 24 0;
-#X connect 27 0 24 0;
-#X connect 28 0 24 0;
-#X connect 29 0 24 0;
-#X connect 33 0 30 0;
-#X connect 34 0 30 0;
-#X restore 11 302 pd multiplication_numops (11);
-#N canvas 564 174 450 239 vecops 1;
-#X obj 13 199 s op;
-#X msg 41 90 op C.sin;
-#X msg 41 110 op C.cos;
-#X msg 41 130 op C.tanh;
-#X msg 41 150 op C.exp;
-#X msg 41 170 op C.log;
-#X text 15 18 Those are different from all the numops;
-#X text 18 30 because they work on number pairs instead of individual
-numbers.;
-#X text 17 65 In particular \, the following work on complex numbers:
-;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 0;
-#X connect 4 0 0 0;
-#X connect 5 0 0 0;
-#X restore 11 382 pd vecops (5);
-#X connect 1 0 38 0;
-#X connect 1 0 42 0;
-#X connect 2 0 38 1;
-#X connect 3 0 38 0;
-#X connect 10 0 8 0;
-#X connect 13 0 12 0;
-#X connect 16 0 12 0;
-#X connect 19 0 28 0;
-#X connect 22 0 21 0;
-#X connect 25 0 31 0;
-#X connect 29 0 28 0;
-#X connect 32 0 31 0;
-#X connect 38 0 39 0;
-#X connect 38 0 45 0;
-#X connect 40 0 41 0;
-#X connect 42 0 43 0;
-#X connect 42 1 40 0;
-#X connect 44 0 8 0;
-#X connect 50 0 55 0;
-#X connect 51 0 55 0;
+#X connect 9 1 6 0;

Modified: trunk/doc/optable.tcl
==============================================================================
--- trunk/doc/optable.tcl (original)
+++ trunk/doc/optable.tcl Mon Jun 16 13:35:46 2008
@@ -15,12 +15,16 @@
 set i 0
 set oid 0
 set msgboxes {}
+set col1 96
+set col2 512
+set col3 768
+set col4 1024
 
-write [list #X obj 0 $y cnv 15 800 30 empty empty empty 20 12 0 14 20 -66577 0]
-write [list #X msg 10 $y op name]
-write [list #X text 80 $y description]
-write [list #X text 512 $y "effect on pixels"]
-write [list #X text 768 $y "effect on coords"]
+write [list #X obj 0 $y cnv 15 $col4 30 empty empty empty 20 12 0 14 20 -66577 0]
+write [list #X text 10 $y op name]
+write [list #X text $col1 $y description]
+write [list #X text $col2 $y "effect on pixels"]
+write [list #X text $col3 $y "effect on coords"]
 incr y 32
 incr oid 5
 
@@ -57,10 +61,10 @@
 {{<=} { is A not greater than B ? } {--} {--} }
 {{<} { is A less than B ? } {--} {--} }
 {{>=} {is A not less than B ? } {--} {--} }
-{{sin*} { B * sin(A) } {--} {waves, rotations} }
-{{cos*} { B * cos(A) } {--} {waves, rotations} }
-{{atan} { arctan(A/B) } {--} {find angle to origin (part of polar transform)} }
-{{tanh*} { B * tanh(A) } {smooth clipping} {smooth clipping (of individual points), neural sigmoid, fuzzy logic} }
+{{sin*} { B * sin(A) in centidegrees } {--} {waves, rotations} }
+{{cos*} { B * cos(A) in centidegrees } {--} {waves, rotations} }
+{{atan} { arctan(A/B) in centidegrees } {--} {find angle to origin (part of polar transform)} }
+{{tanh*} { B * tanh(A) in centidegrees } {smooth clipping} {smooth clipping (of individual points), neural sigmoid, fuzzy logic} }
 {{log*} { B * log(A) (in base e) } {--} {--} }
 {{gamma} { floor(pow(a/256.0,256.0/b)*256.0) } {gamma correction} {--} }
 {{**} { A**B, that is, A raised to power B } {gamma correction} {--} }
@@ -74,30 +78,34 @@
 {{clip-} { like A-B but overflow causes clipping instead of wrapping around (coming soon) } {--} {--} }
 {{erf*} { integral of e^(-x*x) dx ... (coming soon; what ought to be the scaling factor?) } {--} {--} }
 {{weight} { number of "1" bits in an integer} {--} {--} }
-{{sin} {sin(A-B), float only} {--} {--} }
-{{cos} {cos(A-B), float only} {--} {--} }
-{{atan2} {atan2(A,B), float only} {--} {--} }
-{{tanh} {tanh(A-B), float only} {--} {--} }
-{{exp} {exp(A-B), float only} {--} {--} }
-{{log} {log(A-B), float only} {--} {--} }
+{{sin} {sin(A-B) in radians, float only} {--} {--} }
+{{cos} {cos(A-B) in radians, float only} {--} {--} }
+{{atan2} {atan2(A,B) in radians, float only} {--} {--} }
+{{tanh} {tanh(A-B) in radians, float only} {--} {--} }
+{{exp} {exp(A-B) in radians, float only} {--} {--} }
+{{log} {log(A-B) in radians, float only} {--} {--} }
 } {
 	mset {op desc onpixels oncoords} $opdesc
 	if {$i&1} {set bg -233280} {set bg -249792}
-	write [list #X obj 0 $y cnv 15 1024 30 empty empty empty 20 12 0 14 $bg -66577 0]
+	write [list #X obj 0 $y cnv 15 $col4 30 empty empty empty 20 12 0 14 $bg -66577 0]
 	write [list #X msg 10 $y op $op]
-	write [list #X text 80 $y $desc]
-	write [list #X text 512 $y $onpixels]
-	write [list #X text 768 $y $oncoords]
+	write [list #X text $col1 $y $desc]
+	write [list #X text $col2 $y $onpixels]
+	write [list #X text $col3 $y $oncoords]
 	lappend msgboxes [expr $oid+1]
+	incr i
 	incr y 32
-	incr old 5
+	incr oid 5
 }
 
-for {set j 0} {$j < $i} {incr j} {
-	set oid [expr 6 + 5*$i]
-	write [li]
+write [list #X obj 10 $y outlet]
+set outletid $oid
+incr oid
+
+foreach msgbox $msgboxes {
+	write [list #X connect $msgbox 0 $outletid 0]
 }
 
-write [list #X obj  79 0 cnv 0 0 $y empty empty empty -1 12 0 14 0 -66577 0]
-write [list #X obj 511 0 cnv 0 0 $y empty empty empty -1 12 0 14 0 -66577 0]
-write [list #X obj 767 0 cnv 0 0 $y empty empty empty -1 12 0 14 0 -66577 0]
+write [list #X obj [expr $col1-1] 0 cnv 0 0 $y empty empty empty -1 12 0 14 0 -66577 0]
+write [list #X obj [expr $col2-1] 0 cnv 0 0 $y empty empty empty -1 12 0 14 0 -66577 0]
+write [list #X obj [expr $col3-1] 0 cnv 0 0 $y empty empty empty -1 12 0 14 0 -66577 0]



More information about the Gridflow-cvs mailing list