#N canvas 126 111 676 689 10;
#X declare -lib Gem;
#X text 452 8 GEM object;
#X obj 7 193 cnv 15 430 480 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 7 149 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577
0;
#X text 16 153 Arguments:;
#X obj 7 43 cnv 15 430 100 empty empty empty 20 12 0 14 -233017 -66577
0;
#X obj 449 54 cnv 15 210 350 empty empty empty 20 12 0 14 -228992 -66577
0;
#X text 451 28 Example:;
#X obj 454 286 cnv 15 160 60 empty empty empty 20 12 0 14 -24198 -66577
0;
#X text 50 2 Synopsis: [gemwin];
#X text 17 46 Description: access to the window manager;
#X obj 458 320 gemwin;
#X msg 458 103 reset \, dimen 640 480 \, create \, 1;
#X msg 486 195 0 \, destroy;
#X text 16 196 Inlet 1:;
#X text 30 225 reset : reset the graphics manager to the default values
;
#X text 29 432 create : create the graphics window;
#X text 29 446 destroy : destroy the graphics window;
#X text 30 479 float (1/0) : turn on/off rendering;
#X text 30 493 print : show some information on the stderr;
#X text 71 21 Class: window handling;
#N canvas 361 97 456 455 FSAA 0;
#X msg 48 222 0;
#X msg 79 222 2;
#X msg 108 222 4;
#X text 54 129 2 - double resolution (4 times the pixel data);
#X text 43 324 Full-scene anti-aliasing by supersampling usually means
that each full frame is rendered at double (2x) or quadruple (4x) the
display resolution \, and then down-sampled to match the display resolution.
So a 4x FSAA would render 16 supersampled pixels for each single pixel
of each frame.;
#X text 54 189 8 - eight-times resolution (64 times the pixel data)
;
#X text 54 149 4 - quadruple resolution (16 times the pixel data);
#X text 54 109 0 - turn off super sampling for anti-aliasing;
#X text 43 405 http://en.wikipedia.org/wiki/Anti-aliasing#Full-scene_anti-aliasing
;
#X text 200 220 <-- destroy gemwin between clicking these;
#X obj 90 299 s \$0-gemwin-in;
#X text 54 168 5 - quadruple resolution (16 times the pixel data);
#X text 33 6 Gem provides Full Scene Anti-Aliasing for smoothing out
the edges of all things drawn in the OpenGL scene. To enable it \,
send the "FSAA" message to the [gemwin] before creating it.;
#X text 33 61 FSAA might or might not work depending on your graphic
card \, the value of the parameter may also vary.;
#X msg 169 222 8;
#X msg 139 222 5;
#X msg 90 272 destroy \, FSAA \$1 \, create \, 1;
#X connect 0 0 16 0;
#X connect 1 0 16 0;
#X connect 2 0 16 0;
#X connect 14 0 16 0;
#X connect 15 0 16 0;
#X connect 16 0 10 0;
#X restore 356 269 pd FSAA;
#X obj 471 294 r \$0-gemwin-in;
#X text 29 285 fullscreen 0|1 : make fullscreen-window;
#X text 57 302 (if possible with the dimensions passed via "dimen")
;
#N canvas 430 50 405 382 fullscreen 0;
#X text -88 -108 fullscreen 0/1: make fullscreen-window (if possible
with the dimensions passed via "dimen");
#X text -88 -64 on platform's that support it (currently: Mac OS X)
you can specify on which screen you want to go fullscreen (if you have
several screens): e.g. "fullscreen 2" will make a fullscreen-window
on Screen2;
#X text -86 -130 FULLSCREEN SUPPORT;
#X obj -85 -1 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X floatatom -85 50 5 0 0 0 - - -;
#X msg -85 71 reset \, fullscreen \$1 \, create \, 1;
#X text -63 -4 deactivate fullscreen;
#X text -64 13 fullscreen on screen 1;
#X text -64 29 fullscreen on screen 2;
#X msg -72 126 0 \, destroy;
#X text -89 182 BE CAREFUL : when you are in fullscreen mode \, you
have no more access to the other windows of your system.;
#N canvas 107 50 450 300 esc 0;
#X obj 65 20 gemkeyboard;
#X obj 65 167 outlet;
#X obj 89 71 keyname;
#X obj 128 96 sel Escape;
#X obj 65 41 sel 53;
#X obj 189 47 sel Escape;
#X obj 150 22 gemkeyname;
#X connect 0 0 4 0;
#X connect 2 1 3 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 1 5 0;
#X restore -72 104 pd esc;
#X obj -85 155 s \$0-gemwin-in;
#X text 111 11 press ESC to quit;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 9 0 12 0;
#X connect 11 0 9 0;
#X restore 356 288 pd fullscreen;
#X text 57 253 the x and y dimensions of the window. (default: 500
500);
#X text 29 508 frame <number> : number of frames per second (default
20);
#X text 30 268 FSAA <number> : anti aliasing (default:0);
#X text 30 318 border 1|0 : create a window with/out borders (default
1);
#X text 57 350 the x and y offset of the window. (default: 0 0);
#N canvas 641 438 406 148 offset 0;
#X text 53 8 OFFSET SUPPORT;
#X text 21 28 offset might not work on some window managers if the
borders are on;
#X text 20 55 under OSX you must take into account the number of pixel
of the menubar \, title and eventually of your dock.;
#X text 19 82 [offset 0 -60( with [menubar 0( is working in 10.6 to
set the window in the top left of the screen;
#X restore 356 334 pd offset;
#N canvas 230 93 618 505 more 0;
#X text 230 327 title <title_symbol>: set the title for the window
;
#X msg 121 327 title my_window;
#X obj 94 187 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0
1;
#X msg 94 205 menubar \$1;
#X msg 117 187 -1;
#X text 188 190 menubar -1/0/1: hide or show the Mac OS X menubar \,
1 shows \, 0 hides \, and -1 hides by default and shows on mouseover
;
#X msg 44 60 cursor \$1;
#X obj 44 41 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0 1
;
#X text 139 59 cursor 0/1: turn the cursor on/off;
#X obj 109 247 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0
1;
#X msg 109 266 topmost \$1;
#X text 204 255 topmost 0/1: make the gemwin the top most window \,
on top of everything else (Windows only?);
#X msg 126 376 create remotehost:8.0;
#X text 283 369 when using X-windows \, you can also create a window
on a remote display!;
#X obj 44 465 s \$0-gemwin-in;
#X text 41 14 Other messages to [gemwin] regarding the window;
#X msg 55 139 0 \, destroy;
#X msg 110 438 create \, 1;
#X text 188 437 ...and create it after;
#X text 133 140 destroy window before setting window properties...
;
#X text 81 104 All of these messages must be sent to [gemwin] before
the window is created in order to take effect:;
#X connect 1 0 14 0;
#X connect 2 0 3 0;
#X connect 3 0 14 0;
#X connect 4 0 3 0;
#X connect 6 0 14 0;
#X connect 7 0 6 0;
#X connect 9 0 10 0;
#X connect 10 0 14 0;
#X connect 12 0 14 0;
#X connect 16 0 14 0;
#X connect 17 0 14 0;
#X restore 30 367 pd more window properties;
#X text 29 558 lighting 0|1 : turn lighting off/on (default:0);
#N canvas 190 228 580 527 more 0;
#X text 105 134 lighting 1/0 : turn lighting on/off;
#X text 263 186 ambient R G B : the ambient lighting color;
#X text 269 240 specular R G B : the specular lighting color;
#X text 197 277 shininess num : the shininess value;
#X text 132 326 fogmode 0/1/2/3 : set the fog mode (OFF/LINEAR/EXP/EXP^2)
;
#X text 298 447 fogcolor R G B : the color of the fog;
#X text 219 367 fog num : the fog density;
#X text 24 11 messages to the [gemwin] regarding lighting effects;
#X obj 24 116 tgl 15 0 empty empty empty 0 -6 0 10 -262144 -1 -1 0
1;
#X msg 24 134 lighting \$1;
#N canvas 714 134 566 458 color 0;
#X obj 103 100 hsl 128 15 0 1 0 0 empty empty R 12 8 1 12 -261689 -1
-1 0 1;
#X obj 236 100 hsl 128 15 0 1 0 0 empty empty G 12 8 1 12 -225271 -1
-1 0 1;
#X obj 370 100 hsl 128 15 0 1 0 0 empty empty B 12 8 1 12 -228992 -1
-1 0 1;
#X obj 100 329 outlet;
#X obj 132 253 list;
#X msg 132 273 set ambient \$1 \$2 \$3;
#X obj 233 144 t b f;
#X obj 367 144 t b f;
#X obj 100 201 pack 0 0 0;
#X obj 100 230 t b a;
#X connect 0 0 8 0;
#X connect 1 0 6 0;
#X connect 2 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 8 0;
#X connect 6 1 8 1;
#X connect 7 0 8 0;
#X connect 7 1 8 2;
#X connect 8 0 9 0;
#X connect 9 0 3 0;
#X connect 9 1 4 0;
#X coords 0 -1 1 1 400 13 1 100 100;
#X restore 35 165 pd color sliders;
#X msg 35 187 ambient 0 0 0;
#N canvas 714 134 566 366 color 0;
#X obj 103 100 hsl 128 15 0 1 0 0 empty empty R 12 8 1 12 -261689 -1
-1 0 1;
#X obj 236 100 hsl 128 15 0 1 0 0 empty empty G 12 8 1 12 -225271 -1
-1 0 1;
#X obj 370 100 hsl 128 15 0 1 0 0 empty empty B 12 8 1 12 -228992 -1
-1 0 1;
#X obj 100 299 outlet;
#X obj 132 223 list;
#X msg 132 242 set specular \$1 \$2 \$3;
#X obj 233 124 t b f;
#X obj 367 124 t b f;
#X obj 100 171 pack 0 0 0;
#X obj 100 199 t b a;
#X connect 0 0 8 0;
#X connect 1 0 6 0;
#X connect 2 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 8 0;
#X connect 6 1 8 1;
#X connect 7 0 8 0;
#X connect 7 1 8 2;
#X connect 8 0 9 0;
#X connect 9 0 3 0;
#X connect 9 1 4 0;
#X coords 0 -1 1 1 400 13 1 100 100;
#X restore 42 219 pd color sliders;
#X msg 42 241 specular 0 0 0;
#N canvas 710 134 570 462 color 0;
#X obj 103 100 hsl 128 15 0 1 0 0 empty empty R 12 8 1 12 -261689 -1
-1 0 1;
#X obj 236 100 hsl 128 15 0 1 0 0 empty empty G 12 8 1 12 -225271 -1
-1 0 1;
#X obj 370 100 hsl 128 15 0 1 0 0 empty empty B 12 8 1 12 -228992 -1
-1 0 1;
#X obj 100 299 outlet;
#X obj 132 223 list;
#X msg 132 242 set fogcolor \$1 \$2 \$3;
#X obj 233 125 t b f;
#X obj 367 125 t b f;
#X obj 100 171 pack 0 0 0;
#X obj 100 200 t b a;
#X connect 0 0 8 0;
#X connect 1 0 6 0;
#X connect 2 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 8 0;
#X connect 6 1 8 1;
#X connect 7 0 8 0;
#X connect 7 1 8 2;
#X connect 8 0 9 0;
#X connect 9 0 3 0;
#X connect 9 1 4 0;
#X coords 0 -1 1 1 400 13 1 100 100;
#X restore 54 426 pd color sliders;
#X msg 54 448 fogcolor 0 0 0;
#X msg 59 338 fogmode 0;
#N canvas 889 134 348 479 fog 0;
#X obj 84 239 outlet;
#X obj 100 101 hradio 15 1 0 4 empty empty empty 0 -6 0 10 -262144
-1 -1 0;
#X msg 207 182 set fogmode \$1;
#X obj 84 140 trigger bang float;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 3 1 2 0;
#X coords 0 -1 1 1 60 13 1 100 100;
#X restore 59 314 pd fog;
#X msg 50 288 shininess 0;
#N canvas 889 134 356 487 fog 0;
#X obj 84 239 outlet;
#X obj 84 140 trigger bang float;
#X msg 207 182 set shininess \$1;
#X obj 103 101 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -262144
-1 -1 0 1;
#X connect 1 0 0 0;
#X connect 1 1 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 0;
#X coords 0 -1 1 1 133 13 1 100 100;
#X restore 50 266 pd fog;
#X msg 60 388 fog 0;
#N canvas 889 134 364 495 fog 0;
#X obj 84 239 outlet;
#X obj 84 140 trigger bang float;
#X obj 103 101 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 10 -262144
-1 -1 0 1;
#X msg 207 182 set fog \$1;
#X connect 1 0 0 0;
#X connect 1 1 3 0;
#X connect 2 0 1 0;
#X connect 3 0 0 0;
#X coords 0 -1 1 1 133 13 1 100 100;
#X restore 60 366 pd fog;
#X obj 24 68 gemhead;
#X obj 24 90 world_light;
#X obj 24 475 s \$0-gemwin-in;
#X text 23 34 Be careful: when you activate lighting \, you must have
some lights to see something \, such as:;
#X connect 8 0 9 0;
#X connect 9 0 24 0;
#X connect 10 0 11 0;
#X connect 11 0 24 0;
#X connect 12 0 13 0;
#X connect 13 0 24 0;
#X connect 14 0 15 0;
#X connect 15 0 24 0;
#X connect 16 0 24 0;
#X connect 17 0 16 0;
#X connect 18 0 24 0;
#X connect 19 0 18 0;
#X connect 20 0 24 0;
#X connect 21 0 20 0;
#X connect 22 0 23 0;
#X restore 30 575 pd more lighting;
#X obj 490 242 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 29 635 stereo 0|1|2|3 : set 3D stereo-mode to off(0) \, 2-screen-mode(1)
\, Red/Green-mode(2);
#N canvas 680 259 468 458 draw_geos 0;
#X obj 64 53 gemhead;
#X obj 244 55 gemhead;
#X obj 244 159 rotateXYZ;
#X obj 398 109 f;
#X obj 398 158 % 360;
#X obj 398 134 + 1;
#X obj 398 86 metro 50;
#X obj 64 92 color 0.8 0.8 0.8;
#X obj 244 92 color 0.8 0.8 0.8;
#X obj 64 188 cube 0.75;
#X obj 64 118 translateXYZ 2 2 0;
#X obj 244 117 translateXYZ 2 -2 0;
#X obj 64 157 rotateXYZ 45 0 0;
#X obj 244 190 square 0.75;
#X obj 63 220 gemhead;
#X obj 243 222 gemhead;
#X obj 63 259 color 0.8 0.8 0.8;
#X obj 243 259 color 0.8 0.8 0.8;
#X obj 63 285 translateXYZ -2 2 0;
#X obj 63 308 sphere 0.75 30;
#X obj 243 284 translateXYZ -2 -2 0;
#X obj 243 310 circle 0.75;
#X obj 398 56 inlet;
#X connect 0 0 7 0;
#X connect 1 0 8 0;
#X connect 2 0 13 0;
#X connect 3 0 5 0;
#X connect 4 0 3 1;
#X connect 4 0 2 3;
#X connect 4 0 12 3;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 7 0 10 0;
#X connect 8 0 11 0;
#X connect 10 0 12 0;
#X connect 11 0 2 0;
#X connect 12 0 9 0;
#X connect 14 0 16 0;
#X connect 15 0 17 0;
#X connect 16 0 18 0;
#X connect 17 0 20 0;
#X connect 18 0 19 0;
#X connect 20 0 21 0;
#X connect 22 0 6 0;
#X restore 455 378 pd draw_geos;
#X msg 472 152 create \, 1;
#N canvas 252 99 539 630 buffering 0;
#X msg 63 127 buffer 1;
#X msg 78 152 buffer 2;
#X text 134 127 single buffering;
#X text 145 150 double buffering;
#X msg 111 244 bang;
#X text 152 254 swap the buffers (double buffer mode);
#X text 151 235 clear the buffer (single buffer mode);
#X text 30 16 messages to [gemwin] concerning the buffer rendering
mode;
#X msg 17 83 0 \, destroy;
#X msg 117 198 create \, 1;
#X text 195 197 ...and create it after;
#X obj 33 283 s \$0-gemwin-in;
#X text 95 84 destroy window before to set buffer mode...;
#X text 30 323 When you are in single buffer mode \, you must bang
the gemhead each time you want to draw. like:;
#X obj 33 383 loadbang;
#X msg 33 407 0;
#X obj 33 436 gemhead;
#X obj 149 383 metro 50;
#X obj 149 364 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 33 519 rotateXYZ;
#X obj 176 426 f;
#X obj 176 472 % 360;
#X obj 33 580 square 0.75;
#X obj 33 550 translateXYZ 2 0 0;
#X text 172 363 toggle to draw;
#X obj 176 448 + 1;
#X obj 33 472 color 0.8 0.8 0.8;
#X text 29 33 Changing the rendering mode must be done before the window
is created in order to take effect.;
#X obj 176 494 t f f;
#X obj 149 405 t b b;
#X msg 279 142 transparent \$1;
#X obj 279 123 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 299 108 use RGBA buffer to have an alpha channel and a transparent
window, f 32;
#X connect 0 0 11 0;
#X connect 1 0 11 0;
#X connect 4 0 11 0;
#X connect 8 0 11 0;
#X connect 9 0 11 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 26 0;
#X connect 17 0 29 0;
#X connect 18 0 17 0;
#X connect 19 0 23 0;
#X connect 20 0 25 0;
#X connect 21 0 28 0;
#X connect 23 0 22 0;
#X connect 25 0 21 0;
#X connect 26 0 19 0;
#X connect 28 0 19 3;
#X connect 28 1 20 1;
#X connect 29 0 16 0;
#X connect 29 1 20 0;
#X connect 30 0 11 0;
#X connect 31 0 30 0;
#X restore 355 405 pd buffering;
#N canvas 556 191 548 430 stereo-3D 0;
#X text 32 18 messages to [gemwin] regarding stereoscopic appearance:
;
#X msg 31 158 stereo \$1;
#X obj 31 398 s \$0-gemwin-in;
#X obj 31 60 vradio 15 1 0 4 empty empty empty 0 -8 0 10 -262144 -1
-1 0;
#X text 54 77 2 screen mode;
#X text 53 91 Red / Green mode;
#X text 105 158 set stereo-mode;
#X text 54 61 off;
#X msg 48 210 stereoSep \$1;
#X floatatom 48 188 5 0 0 0 - - -;
#X text 137 209 set the stereo-separation (default:-15);
#X msg 66 258 stereoFoc \$1;
#X text 150 259 set the stereo-focal;
#X floatatom 66 234 5 0 0 0 - - -;
#X obj 80 283 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 174 297 turn the separation-line between the 2 screens in stereo-mode
1 on/off;
#X msg 79 344 0 \, destroy;
#X msg 79 369 create \, 1;
#X text 157 345 destroy window before to set stereo...;
#X text 157 368 ...and create it after;
#X text 53 106 Crystal Glasses mode (needs hardware support!);
#X msg 80 302 stereoLine \$1;
#X connect 1 0 2 0;
#X connect 3 0 1 0;
#X connect 8 0 2 0;
#X connect 9 0 8 0;
#X connect 11 0 2 0;
#X connect 13 0 11 0;
#X connect 14 0 21 0;
#X connect 16 0 2 0;
#X connect 17 0 2 0;
#X connect 21 0 2 0;
#X restore 354 641 pd stereo-3D;
#X text 464 132 basic create and start rendering;
#X text 513 241 change background color;
#X text 56 538 set the background color of the window (default: 0 0
0);
#X text 30 238 dimen <x> <y>:;
#X text 30 333 offset <x> <y>:;
#X text 29 593 view <x> <y> <z> : translate the camera (default: 0
0 4);
#N canvas 124 233 762 647 more 0;
#X text 43 11 messages to [gemwin] regarding the view-point ("camera")
;
#X text 312 389 perspec <left> <right> <bottom> <top> <front> <back>::
;
#X text 311 407 set the clipping planes of the view-point. this might
be what you need \, if all the objects that re further away than 20
units suddenly disappear;
#X text 311 449 default: -1 1 -1 1 1 20;
#X text 208 51 view <x> <y> <z>::;
#X text 208 70 translate the camera / set the viewpoint:: the viewing-direction
will not be changed.;
#X text 80 119 default: 0 0 4;
#X text 208 98 the viewing direction defaults to "0 0 1" \, with y-axis
as "up";
#X text 303 167 view <x> <y> <z> <azimuth>::;
#X text 303 184 view <x> <y> <z> <azimuth> <elevation>::;
#X text 303 201 translate/rotate camera/viewpoint \; the "up" direction
will still be the y-axis;
#X text 389 284 view <view_x> <view_y> <view_z> <target_x> <target_y>
<target_z> <up_x> <up_y> <up_z>::;
#X text 389 314 set viewpoint (view_X view_Y view_Z). the camera will
look at the target-point (target_X \, target_Y \, target_Z). "up" is
defined via the vector (up_X \, up_Y \, up_Z);
#X text 301 251 default: 0 0 4 0 0;
#X text 389 355 default: 0 0 4 0 0 0 0 1 0;
#X obj 25 588 s \$0-gemwin-in;
#X msg 25 101 view \$1 \$2 \$3;
#X msg 42 190 view \$1 \$2 \$3 \$4;
#X msg 49 250 view \$1 \$2 \$3 \$4 \$5;
#X msg 52 330 view \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9;
#X msg 101 452 perspec \$1 \$2 \$3 \$4 \$5 \$6;
#X text 310 467 if you want to remove perspective \, see [ortho];
#X msg 66 563 view 0 0 20 \, perspec -1 1 -1 1 4 50;
#N canvas 1299 508 544 500 perspec 0;
#X obj 90 428 outlet;
#X obj 268 273 t f f;
#X obj 268 298 * -1;
#X obj 90 268 t f f;
#X obj 90 293 * -1;
#X obj 90 367 pack -1 1 -1 1 1 20;
#X msg 90 389 set perspec \$1 \$2 \$3 \$4 \$5 \$6 \, bang;
#X msg 172 453 set perspec \, adddollar 1 \, adddollar 2 \, adddollar
3 \, adddollar 4 \, adddollar 5 \, adddollar 6;
#X floatatom 103 117 5 0.1 5 1 x_wideness - -;
#X floatatom 103 134 5 0.1 5 1 y_wideness - -;
#X floatatom 103 151 5 0 0 1 z_depth - -;
#X obj 360 196 select 1;
#X obj 405 219 t b f f;
#X obj 249 226 t b f f;
#X obj 204 203 select 0;
#X obj 360 218 f 20;
#X obj 204 224 f 1;
#X msg 204 246 set \$1;
#X msg 360 240 set \$1;
#X obj 134 216 t b f f;
#X obj 89 193 select 0;
#X obj 89 214 f 1;
#X msg 89 236 set \$1;
#X obj 328 97 loadbang;
#X obj 328 119 t b b;
#X obj 328 141 t b b b;
#X connect 1 0 2 0;
#X connect 1 1 5 3;
#X connect 2 0 5 2;
#X connect 3 0 4 0;
#X connect 3 1 5 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 20 0;
#X connect 9 0 14 0;
#X connect 10 0 11 0;
#X connect 11 0 15 0;
#X connect 11 1 12 0;
#X connect 12 0 5 0;
#X connect 12 1 5 5;
#X connect 12 2 15 1;
#X connect 13 0 5 0;
#X connect 13 1 1 0;
#X connect 13 2 16 1;
#X connect 14 0 16 0;
#X connect 14 1 13 0;
#X connect 15 0 18 0;
#X connect 16 0 17 0;
#X connect 17 0 9 0;
#X connect 18 0 10 0;
#X connect 19 1 3 0;
#X connect 19 2 21 1;
#X connect 20 0 21 0;
#X connect 20 1 19 0;
#X connect 21 0 22 0;
#X connect 22 0 8 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 24 1 7 0;
#X connect 25 0 21 0;
#X connect 25 1 16 0;
#X connect 25 2 15 0;
#X coords 0 -1 1 1 100 67 1 100 100;
#X restore 101 380 pd perspec;
#X text 292 554 the default camera has a very wide angle. this message
allows to narrow it.;
#N canvas 506 305 612 484 view 0;
#X floatatom 112 114 5 0 0 0 x - -;
#X floatatom 158 114 5 0 0 0 y - -;
#X floatatom 201 114 5 0 0 0 z - -;
#X floatatom 236 114 5 0 0 2 azimuth - -;
#X obj 369 109 loadbang;
#X obj 140 335 outlet;
#X obj 201 226 t b f;
#X obj 150 227 t b f;
#X obj 369 131 t b b;
#X msg 213 342 set view \, adddollar 1 \, adddollar 2 \, adddollar
3 \, adddollar 4;
#X obj 140 274 pack 0 0 4 0;
#X obj 251 226 t b f;
#X msg 398 196 set 4;
#X msg 140 296 set view \$1 \$2 \$3 \$4 \, bang;
#X connect 0 0 10 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 3 0 11 0;
#X connect 4 0 8 0;
#X connect 6 0 10 0;
#X connect 6 1 10 2;
#X connect 7 0 10 0;
#X connect 7 1 10 1;
#X connect 8 0 12 0;
#X connect 8 1 9 0;
#X connect 9 0 5 0;
#X connect 10 0 13 0;
#X connect 11 0 10 0;
#X connect 11 1 10 3;
#X connect 12 0 2 0;
#X connect 13 0 5 0;
#X coords 0 -1 1 1 180 30 1 100 100;
#X restore 42 156 pd view;
#N canvas 508 299 612 484 view 0;
#X floatatom 112 114 5 0 0 0 x - -;
#X floatatom 158 114 5 0 0 0 y - -;
#X floatatom 201 114 5 0 0 0 z - -;
#X floatatom 236 114 5 0 0 2 azimuth - -;
#X obj 369 109 loadbang;
#X obj 140 335 outlet;
#X obj 201 226 t b f;
#X obj 150 227 t b f;
#X obj 369 131 t b b;
#X obj 251 226 t b f;
#X msg 398 196 set 4;
#X msg 140 296 set view \$1 \$2 \$3 \$4 \$5 \, bang;
#X obj 140 274 pack 0 0 4 0 0;
#X floatatom 286 114 5 0 0 2 elevate - -;
#X obj 291 226 t b f;
#X msg 213 342 set view \, adddollar 1 \, adddollar 2 \, adddollar
3 \, adddollar 4 \, adddollar 5;
#X connect 0 0 12 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 8 0;
#X connect 6 0 12 0;
#X connect 6 1 12 2;
#X connect 7 0 12 0;
#X connect 7 1 12 1;
#X connect 8 0 10 0;
#X connect 8 1 15 0;
#X connect 9 0 12 0;
#X connect 9 1 12 3;
#X connect 10 0 2 0;
#X connect 11 0 5 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
#X connect 14 1 12 4;
#X connect 15 0 5 0;
#X coords 0 -1 1 1 230 30 1 100 100;
#X restore 49 216 pd view;
#N canvas 509 296 612 484 view 0;
#X floatatom 112 114 5 0 0 0 x - -;
#X floatatom 158 114 5 0 0 0 y - -;
#X floatatom 201 114 5 0 0 0 z - -;
#X obj 369 109 loadbang;
#X obj 140 335 outlet;
#X obj 201 226 t b f;
#X obj 150 227 t b f;
#X obj 369 131 t b b;
#X msg 398 196 set 4;
#X obj 140 274 pack 0 0 4;
#X msg 140 296 set view \$1 \$2 \$3 \, bang;
#X msg 213 342 set view \, adddollar 1 \, adddollar 2 \, adddollar
3;
#X connect 0 0 9 0;
#X connect 1 0 6 0;
#X connect 2 0 5 0;
#X connect 3 0 7 0;
#X connect 5 0 9 0;
#X connect 5 1 9 2;
#X connect 6 0 9 0;
#X connect 6 1 9 1;
#X connect 7 0 8 0;
#X connect 7 1 11 0;
#X connect 8 0 2 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X connect 11 0 4 0;
#X coords 0 -1 1 1 140 30 1 100 100;
#X restore 25 65 pd view;
#N canvas 380 50 612 484 view 0;
#X floatatom 214 114 5 0 0 2 X - -;
#X obj 166 22 loadbang;
#X obj 139 335 outlet;
#X obj 174 177 t b f;
#X obj 139 177 t b f;
#X obj 214 177 t b f;
#X msg 174 79 set 4;
#X floatatom 249 114 5 0 0 2 Y - -;
#X obj 249 177 t b f;
#X obj 139 274 pack 0 0 4 0 0 0 0 1 0;
#X floatatom 284 114 5 0 0 2 Z - -;
#X floatatom 104 114 5 0 0 2 x - -;
#X floatatom 139 114 5 0 0 2 y - -;
#X floatatom 174 114 5 0 0 2 z - -;
#X floatatom 324 114 5 0 0 2 upX - -;
#X floatatom 359 114 5 0 0 2 upY - -;
#X floatatom 394 114 5 0 0 2 upZ - -;
#X obj 284 177 t b f;
#X obj 324 177 t b f;
#X obj 359 177 t b f;
#X obj 394 177 t b f;
#X obj 324 199 t b;
#X obj 214 199 t b;
#X msg 139 296 set view \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 \, bang
;
#X msg 251 22 set view \, adddollar 1 \, adddollar 2 \, adddollar 3
\, adddollar 4 \, adddollar 5 \, adddollar 6 \, adddollar 7 \, adddollar
8 \, adddollar 9;
#X obj 166 44 t b b b;
#X msg 359 79 set 1;
#X connect 0 0 5 0;
#X connect 1 0 25 0;
#X connect 3 0 9 0;
#X connect 3 1 9 2;
#X connect 4 0 9 0;
#X connect 4 1 9 1;
#X connect 5 0 22 0;
#X connect 5 1 9 3;
#X connect 6 0 13 0;
#X connect 7 0 8 0;
#X connect 8 0 22 0;
#X connect 8 1 9 4;
#X connect 9 0 23 0;
#X connect 10 0 17 0;
#X connect 11 0 9 0;
#X connect 12 0 4 0;
#X connect 13 0 3 0;
#X connect 14 0 18 0;
#X connect 15 0 19 0;
#X connect 16 0 20 0;
#X connect 17 0 22 0;
#X connect 17 1 9 5;
#X connect 18 0 21 0;
#X connect 18 1 9 6;
#X connect 19 0 21 0;
#X connect 19 1 9 7;
#X connect 20 0 21 0;
#X connect 20 1 9 8;
#X connect 21 0 22 0;
#X connect 22 0 9 0;
#X connect 23 0 2 0;
#X connect 24 0 2 0;
#X connect 25 0 6 0;
#X connect 25 1 26 0;
#X connect 25 2 24 0;
#X connect 26 0 15 0;
#X coords 0 -1 1 1 330 30 2 100 100;
#X restore 52 296 pd view;
#X text 309 229 azimuth and elevation are in degree [°];
#X connect 16 0 15 0;
#X connect 17 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 15 0;
#X connect 20 0 15 0;
#X connect 22 0 15 0;
#X connect 23 0 20 0;
#X connect 25 0 17 0;
#X connect 26 0 18 0;
#X connect 27 0 16 0;
#X connect 28 0 19 0;
#X restore 30 612 pd more viewing;
#X text 17 211 message to send before creation :;
#X text 17 462 message to send after creation :;
#X text 29 387 buffer 2|1 : set buffer-rendering mode to double (default)
or single (not clearing buffer);
#X text 456 60 reset settings and;
#X text 18 417 message regarding creation :;
#X obj 455 356 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 474 357 rotate objects;
#X text 554 196 destroy window;
#X text 484 177 (stop rendering and);
#X text 457 83 and start rendering;
#X text 456 72 create window with specific size;
#X text 29 522 color <r> <g> <b> :;
#X text 30 166 1st argument : number of frames per second (default
20);
#X text 28 69 [gemwin] allows you to interact with Gem's output window.
It passes various messages to the window manager \, controlling the
attributes of the window and controls the render-cycle. Multiple instances
of this object can interact with separate windows.;
#X text 30 177 2d argument : context name;
#X text 443 457 see also examples/14.multiple_windows;
#X msg 490 260 color \$1 \$1 \$1 \$1;
#X obj 558 8 declare -lib Gem;
#X connect 11 0 10 0;
#X connect 12 0 10 0;
#X connect 21 0 10 0;
#X connect 34 0 63 0;
#X connect 37 0 10 0;
#X connect 52 0 36 0;
#X connect 63 0 10 0;
