#N canvas 50 151 946 464 10;
#X declare -lib Gem;
#N canvas 50 173 290 229 Gem.init 0;
#X obj 71 191 outlet;
#X obj 71 81 loadbang;
#X msg 101 134 reset;
#X obj 71 109 t b b;
#X msg 71 164 lighting 1;
#X msg 155 164 lighting 0;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 3 1 2 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X restore 48 98 pd Gem.init;
#X obj 249 195 cube;
#X msg 249 121 set \$1;
#X floatatom 249 98 5 0 0 0 - - -;
#X obj 249 169 translateXYZ 1 2 -3;
#X obj 77 130 r view_mess;
#N canvas 298 685 450 300 lighting 0;
#X obj 214 196 world_light;
#X obj 214 136 gemhead 1;
#X obj 65 157 world_light;
#X obj 65 105 gemhead 1;
#X msg 278 97 0.5 0.8 0.6;
#X obj 271 67 loadbang;
#X obj 65 129 rotateXYZ -104 160 0;
#X obj 214 164 rotateXYZ 104 -100 0;
#X msg 137 98 1 1 1;
#X obj 65 44 - 1;
#X obj 65 18 inlet;
#X msg 65 68 set \$1;
#X connect 1 0 7 0;
#X connect 3 0 6 0;
#X connect 4 0 0 1;
#X connect 5 0 8 0;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X connect 7 0 0 0;
#X connect 8 0 2 1;
#X connect 9 0 11 0;
#X connect 10 0 9 0;
#X connect 11 0 3 0;
#X connect 11 0 1 0;
#X restore 604 108 pd lighting;
#X obj 271 291 translateXYZ 0 -2 -2;
#X obj 271 265 gemhead -50;
#X obj 550 108 gemhead;
#X obj 550 131 model ../data/venus.obj;
#X obj 249 145 gemhead -50;
#X obj 271 315 text2d;
#N canvas 6 51 381 205 textinit 0;
#X obj 85 140 outlet;
#X obj 94 63 loadbang;
#X msg 100 107 text press left button and move mouse;
#X msg 82 86 font ../data/vera.ttf;
#X connect 1 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X restore 469 297 pd textinit;
#X obj 249 56 tgl 15 0 empty stay_cube empty 0 -6 0 8 -262144 -1 -1
0 100;
#X obj 249 76 - 50;
#X text 125 6 change the view-point \, but keep some objects at a fixed
position;
#X text 307 120 set the priority for rendering;
#X text 431 188 a priority<0 will be rendered AFTER all other things
\, and with viewpoint set to the origin! (objects will not be affected
by a change of view);
#X text 431 240 this is good for displaying logos \, help messages
and cetera...;
#X obj 588 282 gemhead -50;
#N canvas 108 327 419 265 textinit 0;
#X obj 82 198 outlet;
#X obj 78 82 loadbang;
#X msg 97 165 text occasionally press right button;
#X obj 225 10 gemhead -1;
#X obj 225 80 spigot;
#X obj 225 39 t b b;
#X obj 225 102 t b f;
#X obj 264 60 f 1;
#X msg 225 126 font ../data/vera.ttf;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 5 1 7 0;
#X connect 6 0 8 0;
#X connect 6 1 7 1;
#X connect 7 0 4 1;
#X connect 8 0 0 0;
#X restore 786 389 pd textinit;
#X obj 588 407 text3d;
#X obj 588 380 rotateXYZ;
#X obj 588 332 render_trigger;
#X obj 634 353 i;
#X obj 687 353 % 360;
#X obj 660 353 - 5;
#X obj 588 308 translateXYZ 0 -7 -10;
#N canvas 231 652 445 426 mousemove 0;
#X obj 129 8 gemmouse;
#X obj 136 88 pack;
#X obj 136 110 spigot;
#X obj 136 131 unpack;
#X obj 136 196 t f f;
#X obj 36 16 gemkeyname;
#X obj 36 39 pack 0 s;
#X obj 36 62 route 1;
#X msg 36 107 0;
#X msg 136 365 view \$2 \$3 \$1 0 0 0 0 1 0;
#X obj 136 173 +;
#X obj 136 221 * -1;
#X obj 201 237 t f f;
#X obj 201 174 +;
#X obj 201 262 * -1;
#X obj 36 129 t f f f;
#X obj 136 388 s view_mess;
#X text 61 106 reset;
#N canvas 292 198 304 356 coordinates 0;
#X obj 89 52 inlet;
#X obj 94 331 outlet;
#X obj 193 62 atan;
#X msg 193 41 1;
#X obj 193 84 / 45;
#X obj 193 20 loadbang;
#X text 94 29 r phi theta;
#X obj 89 78 unpack 0 0 0;
#X obj 128 123 *;
#X obj 168 123 *;
#X obj 120 197 cos;
#X obj 150 198 sin;
#X obj 120 166 t f f;
#X obj 183 198 cos;
#X obj 213 199 sin;
#X obj 183 167 t f f;
#X obj 120 230 *;
#X obj 150 231 *;
#X obj 85 275 *;
#X obj 125 275 *;
#X obj 174 277 *;
#X obj 66 242 t f f f;
#X obj 91 308 pack 0 0 0;
#X connect 0 0 7 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 9 1;
#X connect 4 0 8 1;
#X connect 5 0 3 0;
#X connect 7 0 21 0;
#X connect 7 1 8 0;
#X connect 7 2 9 0;
#X connect 8 0 12 0;
#X connect 9 0 15 0;
#X connect 10 0 16 0;
#X connect 11 0 17 0;
#X connect 12 0 10 0;
#X connect 12 1 11 0;
#X connect 13 0 16 1;
#X connect 13 0 17 1;
#X connect 14 0 20 1;
#X connect 15 0 13 0;
#X connect 15 1 14 0;
#X connect 16 0 18 1;
#X connect 17 0 19 1;
#X connect 18 0 22 0;
#X connect 19 0 22 1;
#X connect 20 0 22 2;
#X connect 21 0 18 0;
#X connect 21 1 19 0;
#X connect 21 2 20 0;
#X connect 22 0 1 0;
#X restore 136 310 pd coordinates;
#X obj 136 249 t b f;
#X obj 136 289 pack 4 0 0;
#X obj 177 46 t f f;
#X obj 177 67 -;
#X obj 136 45 t f f;
#X obj 136 66 -;
#X obj 278 57 s stay_cube;
#X obj 278 35 select 1;
#X obj 201 151 * 0.5;
#X obj 136 153 * 0.5;
#X obj 201 209 clip -90 90;
#N canvas 20 394 450 300 space 0;
#X obj 42 13 inlet;
#X obj 42 35 symbol;
#X obj 42 87 select space;
#X obj 123 111 select space;
#X obj 204 87 makefilename %c;
#X msg 204 59 32;
#X obj 42 57 t s b;
#X obj 42 159 t b;
#X obj 42 181 outlet;
#X connect 0 0 1 0;
#X connect 1 0 6 0;
#X connect 2 0 7 0;
#X connect 2 1 3 0;
#X connect 3 0 7 0;
#X connect 4 0 3 1;
#X connect 5 0 4 0;
#X connect 6 0 2 0;
#X connect 6 1 5 0;
#X connect 7 0 8 0;
#X restore 36 85 pd space;
#X connect 0 0 23 0;
#X connect 0 1 21 0;
#X connect 0 2 2 1;
#X connect 0 4 26 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 28 0;
#X connect 3 1 27 0;
#X connect 4 0 11 0;
#X connect 4 1 10 1;
#X connect 5 0 6 0;
#X connect 5 1 6 1;
#X connect 6 0 7 0;
#X connect 7 0 30 0;
#X connect 8 0 15 0;
#X connect 9 0 16 0;
#X connect 10 0 4 0;
#X connect 11 0 19 0;
#X connect 12 0 14 0;
#X connect 12 1 13 1;
#X connect 13 0 29 0;
#X connect 14 0 20 2;
#X connect 15 0 10 0;
#X connect 15 1 10 1;
#X connect 15 1 13 0;
#X connect 15 2 13 1;
#X connect 18 0 9 0;
#X connect 19 0 20 0;
#X connect 19 1 20 1;
#X connect 20 0 18 0;
#X connect 21 0 22 1;
#X connect 21 1 22 0;
#X connect 22 0 1 1;
#X connect 23 0 24 1;
#X connect 23 1 24 0;
#X connect 24 0 1 0;
#X connect 26 0 25 0;
#X connect 27 0 13 0;
#X connect 28 0 10 0;
#X connect 29 0 12 0;
#X connect 30 0 8 0;
#X restore 731 34 pd mousemove;
#X text 275 48 0...[cube] is rendered OSD;
#X text 275 60 1...[cube] is rendered at "view";
#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 48 204 pd gemwin;
#X obj 604 88 tgl 15 1 empty empty empty 17 7 0 10 -262144 -1 -1 2
2;
#X text 632 87 <- should the view affect light position or not;
#X obj 828 8 declare -lib Gem;
#X connect 0 0 32 0;
#X connect 2 0 11 0;
#X connect 3 0 2 0;
#X connect 4 0 1 0;
#X connect 5 0 32 0;
#X connect 7 0 12 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 11 0 4 0;
#X connect 13 0 12 0;
#X connect 14 0 15 0;
#X connect 15 0 3 0;
#X connect 20 0 28 0;
#X connect 21 0 22 0;
#X connect 23 0 22 0;
#X connect 24 0 23 0;
#X connect 24 1 25 0;
#X connect 25 0 27 0;
#X connect 25 0 23 1;
#X connect 26 0 25 1;
#X connect 27 0 26 0;
#X connect 28 0 24 0;
#X connect 33 0 6 0;
