#N struct template2 float x float y;
#N struct template1 float x float y float z;
#N canvas 681 23 706 816 12;
#X text 20 753 see also:;
#X obj 73 10 pointer;
#N canvas 379 131 422 137 help-pointer-template1 0;
#X obj 74 76 filledpolygon z 0 1 0 0 20 0 20 30 0 30;
#X obj 60 23 struct template1 float x float y float z;
#X restore 431 574 pd help-pointer-template1;
#N canvas 566 400 413 122 help-pointer-template2 0;
#X obj 40 67 filledcurve 909 0 0 0 0 30 30 60 0 30 -30 0 0;
#X obj 60 21 struct template2 float x float y;
#X restore 431 597 pd help-pointer-template2;
#X obj 95 754 get;
#X obj 128 754 set;
#X obj 161 754 append;
#X obj 215 754 getsize;
#X obj 96 779 setsize;
#X obj 156 779 element;
#N canvas 309 206 312 185 help-pointer-data 1;
#X scalar template2 20 97 \;;
#X scalar template1 80 17 90 \;;
#X scalar template1 120 117 9 \;;
#X restore 431 552 pd help-pointer-data;
#X obj 65 505 pointer;
#X msg 45 226 traverse pd-help-pointer-data;
#X msg 59 251 bang;
#X msg 75 277 next;
#X obj 65 530 print out1;
#X obj 156 530 print out2;
#X text 66 577 Optional arguments to pointer allow you to select according
to the class of the scalar being output:, f 50;
#X msg 86 646 next;
#X msg 72 622 traverse pd-help-pointer-data;
#X obj 72 699 print template1;
#X obj 197 699 print template2;
#X obj 322 699 print other;
#X obj 447 699 print bangout;
#X text 263 224 sets to the "head" of the list;
#X text 41 41 "Pointer" is a storage object like "float" \, except
that the thing stored is the location of a scalar somewhere. You can
send a pointer a value (perhaps from another "pointer" object). The
right inlet takes pointers and simply stores them. A bang in the left
outputs the pointer \, and a pointer in the left both sets and outputs
the value., f 76;
#X text 41 123 The value of a pointer can either indicate a real scalar
\, or else the "head" (before the first element) of the list. This
allows you to point to an empty list \, and also \, to "append" a scalar
to the beginning of the list., f 76;
#X text 42 180 Pointers are "safe": if you delete a scalar pointers
to it are marked invalid., f 43;
#X text 64 550 output;
#X obj 216 779 struct;
#X msg 83 309 vnext 1;
#X msg 102 415 send pointer-help;
#X text 99 251 output current value;
#X text 119 270 move forward one item and output pointer \; if we reach
the end \, a "bang" goes to out2.;
#X obj 477 420 r pointer-help;
#X obj 477 445 print pointer-help;
#X text 148 306 output the next object (if arg is 0) or the next selected
object (if arg is 1 -- but the window must be visible for the "selection"
to make sense).;
#X obj 72 673 pointer template1 template2, f 54;
#X msg 111 469 send-window vis \$1;
#X obj 111 447 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X text 242 469 send a message to the canvas containing the scalar
;
#X msg 91 370 delete;
#X text 152 366 delete the current object and output the next one (or
send a "bang" to bangout if it was the last one in the list);
#X text 231 416 send pointer to a named object =>;
#X text 311 514 Pointer equality =>;
#N canvas 540 159 602 411 equal_message 0;
#X obj 304 212 pointer;
#X msg 304 146 traverse pd-help-pointer-data \, bang;
#X msg 314 183 next;
#X obj 33 212 pointer;
#X msg 33 146 traverse pd-help-pointer-data \, bang;
#X msg 43 183 next;
#X msg 33 240 equal \$1;
#X obj 118 286 pointer template1 template2;
#X text 375 114 1) select a source;
#X text 32 105 2) compare different pointers with source, f 20;
#X obj 180 327 print equal;
#X obj 304 327 print not-equal;
#X text 48 21 The "equal" message allows one to compare an incoming
pointer with the stored pointer. On success \, the pointer is sent
to its corresponding outlet. On fail \, a bang is sent through the
right-most outlet., f 69;
#X text 321 277 you can also use template symbols, f 17;
#X obj 304 115 loadbang;
#X connect 0 0 7 1;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 10 0;
#X connect 7 1 10 0;
#X connect 7 2 10 0;
#X connect 7 3 11 0;
#X connect 14 0 1 0;
#X restore 448 513 pd equal_message;
#X text 469 765 updated for Pd version 0.51;
#X text 142 10 - remember the location of a scalar in a list;
#X obj 156 507 bng 18 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X text 155 551 bang at end of list;
#X obj 313 754 trigger;
#X obj 313 779 unpack;
#X obj 370 779 pack;
#X connect 11 0 15 0;
#X connect 11 1 48 0;
#X connect 12 0 11 0;
#X connect 13 0 11 0;
#X connect 14 0 11 0;
#X connect 18 0 37 0;
#X connect 19 0 37 0;
#X connect 30 0 11 0;
#X connect 31 0 11 0;
#X connect 34 0 35 0;
#X connect 37 0 20 0;
#X connect 37 1 21 0;
#X connect 37 2 22 0;
#X connect 37 3 23 0;
#X connect 38 0 11 0;
#X connect 39 0 38 0;
#X connect 41 0 11 0;
#X connect 48 0 16 0;
