aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/02.advanced/19.pointer.pd
blob: 7db5c4f3dce256a35b87f81b9aa07daad28ef1a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
#N canvas 102 54 864 638 10;
#X obj 209 223 gemhead;
#X obj 241 277 t a a a;
#X obj 264 320 cube 1;
#X obj 238 66 world_light;
#X obj 238 41 gemhead;
#X obj 37 226 gemhead;
#X obj 37 321 sphere 1.3 33;
#X obj 287 300 rotateXYZ 60 30 0;
#X obj 37 300 rotateXYZ 60 30 0;
#X text 36 184 #1:;
#X text 209 181 #2:;
#X obj 37 428 sphere 1.3 33;
#X obj 37 407 rotateXYZ 60 30 0;
#X obj 209 248 t a a;
#X obj 595 288 gemlist;
#X obj 595 223 gemhead;
#X obj 595 250 t b b a;
#X obj 37 202 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 209 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 595 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 37 342 translateXYZ 2 0 0;
#X obj 37 449 translateXYZ 2 0 0;
#X obj 241 341 translateXYZ 2 0 0;
#X obj 209 386 t a a a;
#X obj 232 429 cube 1;
#X obj 255 409 rotateXYZ 60 30 0;
#X obj 209 450 translateXYZ 2 0 0;
#X obj 595 410 rotateXYZ 60 30 0;
#X obj 595 452 translateXYZ 2 0 0;
#X obj 595 431 sphere 1.6 4;
#X text 29 498 example #1 is the usual way to use Gem \, but the technique
shown in example #2 can be more flexible...;
#N canvas 186 321 446 463 more_interating_1 0;
#X obj 22 64 gemhead;
#X obj 22 351 rotateXYZ 0 0 12;
#X obj 22 274 scaleXYZ 0.97 0.9 1;
#X obj 22 296 translateXYZ 0.5 0 0;
#X obj 22 376 circle 0.2;
#X floatatom 131 331 5 0 0 0 - - -;
#X obj 22 226 gemlist;
#X obj 22 204 until;
#X msg 22 180 100;
#X obj 22 158 t b a;
#X obj 22 111 translateXYZ -3 0 0;
#X obj 22 43 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X text 85 198 "repeat" 100 times the same "gemlist";
#X connect 0 0 10 0;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 5 0 1 3;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X connect 8 0 7 0;
#X connect 9 0 8 0;
#X connect 9 1 6 1;
#X connect 10 0 9 0;
#X connect 11 0 0 0;
#X restore 32 561 pd more_interating_1;
#N canvas 178 159 464 582 more_interating_2 0;
#X obj 22 69 gemhead;
#X obj 22 377 scaleXYZ 0.97 0.9 1;
#X obj 22 505 circle 0.2;
#X obj 22 235 gemlist;
#X obj 22 213 until;
#X msg 22 189 100;
#X obj 22 167 t b a;
#X obj 185 322 f;
#X obj 277 309 random 1000;
#X obj 22 480 rotateXYZ 0 0 0;
#X obj 185 420 *;
#X obj 22 132 t a b;
#X obj 22 264 t a b b;
#X msg 277 283 seed \$1;
#X obj 277 256 f;
#X floatatom 295 234 5 0 0 0 - - -;
#X obj 277 334 - 500;
#X obj 185 441 / 1000;
#X obj 22 400 translateXYZ -0.5 0 0;
#X obj 22 103 translateXYZ 3 0 0;
#X obj 22 42 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X text 343 233 <- change random;
#X text 276 356 rotation angle is random;
#X text 200 390 amplitude decrease;
#X msg 203 296 100;
#X obj 222 351 - 1;
#X connect 0 0 19 0;
#X connect 1 0 18 0;
#X connect 3 0 12 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 6 0 5 0;
#X connect 6 1 3 1;
#X connect 7 0 25 0;
#X connect 7 0 10 0;
#X connect 8 0 16 0;
#X connect 9 0 2 0;
#X connect 10 0 17 0;
#X connect 11 0 6 0;
#X connect 11 1 24 0;
#X connect 11 1 14 0;
#X connect 12 0 1 0;
#X connect 12 1 7 0;
#X connect 12 2 8 0;
#X connect 13 0 8 0;
#X connect 14 0 13 0;
#X connect 15 0 14 1;
#X connect 16 0 10 1;
#X connect 17 0 9 3;
#X connect 18 0 9 0;
#X connect 19 0 11 0;
#X connect 20 0 0 0;
#X connect 24 0 7 1;
#X connect 25 0 7 1;
#X restore 32 581 pd more_interating_2;
#X obj 445 223 gemhead;
#X obj 445 198 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 443 178 #3:;
#X obj 445 410 rotateXYZ 60 30 0;
#X obj 445 452 translateXYZ 2 0 0;
#X obj 445 271 t a a;
#X text 593 178 #4:;
#X text 611 314 [gemlist] stores the current state;
#X text 613 330 and outputs it when banged;
#X text 30 528 The example #4 can easily be extended to use many primitives.
;
#X text 31 122 [gemhead]'s output is a special message describing the
"state" of the system. This state is changed by the GEM objects. This
means that the examples below are equivalent:;
#X obj 445 431 teapot 1;
#N canvas 340 107 682 322 gemwin 0;
#X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144
-1 -1 0 1;
#X obj 102 161 r \$0-gemstart;
#X obj 102 182 select 1 0;
#X msg 102 214 create \, 1;
#X msg 177 215 destroy;
#X obj 102 239 t a;
#X obj 318 54 inlet;
#X obj 318 255 gemwin;
#X obj 318 100 t a a;
#X obj 318 287 outlet;
#X obj 350 128 route create destroy;
#X obj 350 150 t b;
#X msg 350 172 1;
#X obj 390 150 t b;
#X msg 390 172 0;
#X obj 350 195 t f;
#X msg 350 219 set \$1;
#X text 118 122 rendering;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 3 0 5 0;
#X connect 4 0 5 0;
#X connect 5 0 8 0;
#X connect 6 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 10 0;
#X connect 10 0 11 0;
#X connect 10 1 13 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 0 0;
#X coords 0 -1 1 1 85 40 1 100 100;
#X restore 44 55 pd gemwin;
#N canvas 0 0 450 300 Gem.init 0;
#X obj 94 232 outlet;
#X obj 94 183 loadbang;
#X msg 94 208 lighting 1;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X restore 44 36 pd Gem.init;
#X connect 0 0 13 0;
#X connect 1 0 22 0;
#X connect 1 1 2 0;
#X connect 1 2 7 0;
#X connect 4 0 3 0;
#X connect 5 0 8 0;
#X connect 6 0 20 0;
#X connect 8 0 6 0;
#X connect 11 0 21 0;
#X connect 12 0 11 0;
#X connect 13 0 23 0;
#X connect 13 1 1 0;
#X connect 14 0 27 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X connect 16 1 14 0;
#X connect 16 2 14 1;
#X connect 17 0 5 0;
#X connect 18 0 0 0;
#X connect 19 0 15 0;
#X connect 20 0 12 0;
#X connect 23 0 26 0;
#X connect 23 1 24 0;
#X connect 23 2 25 0;
#X connect 27 0 29 0;
#X connect 29 0 28 0;
#X connect 33 0 38 0;
#X connect 34 0 33 0;
#X connect 36 0 44 0;
#X connect 38 0 36 0;
#X connect 38 1 36 0;
#X connect 44 0 37 0;
#X connect 46 0 45 0;