#N canvas 189 90 1107 668 10; #X declare -lib Gem; #X msg 17 131 create \, 1; #X msg 30 154 0 \, destroy; #X obj 160 445 pix_texture; #X obj 169 205 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 38 51 792 790 glsl 0; #X obj 78 339 glsl_vertex; #X msg 32 338 print; #X obj 78 626 glsl_program; #X obj 163 555 pack 0 0; #X msg 30 476 print; #X obj 163 511 change; #X obj 150 358 change; #X msg 163 579 link \$1 \$2; #X msg 32 620 print; #X obj 77 490 glsl_fragment; #X floatatom 163 535 2 0 0 0 ID - -; #X floatatom 150 381 2 0 0 0 ID - -; #X obj 181 600 print linking; #X obj 15 21 inlet; #X obj 78 662 outlet; #X obj 577 95 inlet; #X obj 15 44 route bang; #X obj 255 11 gemhead 1; #X msg 255 33 1; #X obj 255 57 change; #X obj 255 81 t b; #X obj 157 647 change; #X obj 157 668 t b; #X obj 158 690 outlet; #X obj 90 426 symbol; #X obj 90 401 t b; #X msg 287 598 0; #X obj 15 65 t b b b; #X msg 118 307 open panoramique.vert; #X msg 90 453 open panoramique.frag; #X connect 0 0 9 0; #X connect 0 1 6 0; #X connect 1 0 0 0; #X connect 2 0 14 0; #X connect 2 1 21 0; #X connect 3 0 7 0; #X connect 4 0 9 0; #X connect 5 0 10 0; #X connect 6 0 11 0; #X connect 6 0 25 0; #X connect 7 0 2 0; #X connect 7 0 12 0; #X connect 8 0 2 0; #X connect 9 0 2 0; #X connect 9 1 5 0; #X connect 10 0 3 0; #X connect 11 0 3 1; #X connect 13 0 16 0; #X connect 15 0 2 0; #X connect 16 0 27 0; #X connect 16 1 0 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 20 0 28 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 24 0 29 0; #X connect 25 0 24 0; #X connect 26 0 21 0; #X connect 27 0 10 0; #X connect 27 1 28 0; #X connect 27 2 26 0; #X connect 28 0 0 0; #X connect 29 0 9 0; #X restore 160 222 pd glsl; #X obj 175 285 loadbang; #X obj 160 328 pix_image; #X msg 174 419 rectangle 1; #X obj 174 398 loadbang; #X obj 160 357 pix_info 0 0 0; #X msg 238 188 sizeX \$1; #X msg 253 209 sizeY \$1; #X obj 353 446 pix_texture; #X obj 362 206 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 38 51 792 790 glsl 0; #X obj 78 339 glsl_vertex; #X msg 32 338 print; #X obj 78 626 glsl_program; #X obj 163 555 pack 0 0; #X msg 30 476 print; #X obj 163 511 change; #X obj 150 358 change; #X msg 163 579 link \$1 \$2; #X msg 32 620 print; #X obj 77 490 glsl_fragment; #X floatatom 163 535 2 0 0 0 ID - -; #X floatatom 150 381 2 0 0 0 ID - -; #X obj 181 600 print linking; #X obj 15 21 inlet; #X obj 78 662 outlet; #X obj 577 95 inlet; #X obj 15 44 route bang; #X obj 255 11 gemhead 1; #X msg 255 33 1; #X obj 255 57 change; #X obj 255 81 t b; #X obj 157 647 change; #X obj 157 668 t b; #X obj 158 690 outlet; #X obj 90 426 symbol; #X obj 90 401 t b; #X msg 287 598 0; #X obj 15 65 t b b b; #X msg 118 307 open panoramique.vert; #X msg 90 453 open panoramique.frag; #X connect 0 0 9 0; #X connect 0 1 6 0; #X connect 1 0 0 0; #X connect 2 0 14 0; #X connect 2 1 21 0; #X connect 3 0 7 0; #X connect 4 0 9 0; #X connect 5 0 10 0; #X connect 6 0 11 0; #X connect 6 0 25 0; #X connect 7 0 2 0; #X connect 7 0 12 0; #X connect 8 0 2 0; #X connect 9 0 2 0; #X connect 9 1 5 0; #X connect 10 0 3 0; #X connect 11 0 3 1; #X connect 13 0 16 0; #X connect 15 0 2 0; #X connect 16 0 27 0; #X connect 16 1 0 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 20 0 28 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 24 0 29 0; #X connect 25 0 24 0; #X connect 26 0 21 0; #X connect 27 0 10 0; #X connect 27 1 28 0; #X connect 27 2 26 0; #X connect 28 0 0 0; #X connect 29 0 9 0; #X restore 353 223 pd glsl; #X obj 368 286 loadbang; #X obj 353 329 pix_image; #X msg 367 418 rectangle 1; #X obj 367 399 loadbang; #X obj 353 358 pix_info 0 0 0; #X msg 431 184 sizeX \$1; #X msg 446 210 sizeY \$1; #X obj 552 447 pix_texture; #X obj 561 207 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 38 51 792 790 glsl 0; #X obj 78 339 glsl_vertex; #X msg 32 338 print; #X obj 78 626 glsl_program; #X obj 163 555 pack 0 0; #X msg 30 476 print; #X obj 163 511 change; #X obj 150 358 change; #X msg 163 579 link \$1 \$2; #X msg 32 620 print; #X obj 77 490 glsl_fragment; #X floatatom 163 535 2 0 0 0 ID - -; #X floatatom 150 381 2 0 0 0 ID - -; #X obj 181 600 print linking; #X obj 15 21 inlet; #X obj 78 662 outlet; #X obj 577 95 inlet; #X obj 15 44 route bang; #X obj 255 11 gemhead 1; #X msg 255 33 1; #X obj 255 57 change; #X obj 255 81 t b; #X obj 157 647 change; #X obj 157 668 t b; #X obj 158 690 outlet; #X obj 90 426 symbol; #X obj 90 401 t b; #X msg 287 598 0; #X obj 15 65 t b b b; #X msg 118 307 open panoramique.vert; #X msg 90 453 open panoramique.frag; #X connect 0 0 9 0; #X connect 0 1 6 0; #X connect 1 0 0 0; #X connect 2 0 14 0; #X connect 2 1 21 0; #X connect 3 0 7 0; #X connect 4 0 9 0; #X connect 5 0 10 0; #X connect 6 0 11 0; #X connect 6 0 25 0; #X connect 7 0 2 0; #X connect 7 0 12 0; #X connect 8 0 2 0; #X connect 9 0 2 0; #X connect 9 1 5 0; #X connect 10 0 3 0; #X connect 11 0 3 1; #X connect 13 0 16 0; #X connect 15 0 2 0; #X connect 16 0 27 0; #X connect 16 1 0 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 20 0 28 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 24 0 29 0; #X connect 25 0 24 0; #X connect 26 0 21 0; #X connect 27 0 10 0; #X connect 27 1 28 0; #X connect 27 2 26 0; #X connect 28 0 0 0; #X connect 29 0 9 0; #X restore 552 224 pd glsl; #X obj 567 287 loadbang; #X obj 552 330 pix_image; #X msg 566 419 rectangle 1; #X obj 566 400 loadbang; #X obj 552 359 pix_info 0 0 0; #X msg 614 188 sizeX \$1; #X msg 633 206 sizeY \$1; #X obj 160 467 translateXYZ -3 0 0; #X obj 352 466 translateXYZ -1 0 0; #X obj 551 467 translateXYZ 1 0 0; #X obj 747 448 pix_texture; #X obj 756 208 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #N canvas 38 51 792 790 glsl 0; #X obj 78 339 glsl_vertex; #X msg 32 338 print; #X obj 78 626 glsl_program; #X obj 163 555 pack 0 0; #X msg 30 476 print; #X obj 163 511 change; #X obj 150 358 change; #X msg 163 579 link \$1 \$2; #X msg 32 620 print; #X obj 77 490 glsl_fragment; #X floatatom 163 535 2 0 0 0 ID - -; #X floatatom 150 381 2 0 0 0 ID - -; #X obj 181 600 print linking; #X obj 15 21 inlet; #X obj 78 662 outlet; #X obj 577 95 inlet; #X obj 15 44 route bang; #X obj 255 11 gemhead 1; #X msg 255 33 1; #X obj 255 57 change; #X obj 255 81 t b; #X obj 157 647 change; #X obj 157 668 t b; #X obj 158 690 outlet; #X obj 90 426 symbol; #X obj 90 401 t b; #X msg 287 598 0; #X obj 15 65 t b b b; #X msg 118 307 open panoramique.vert; #X msg 90 452 open panoramique.frag; #X connect 0 0 9 0; #X connect 0 1 6 0; #X connect 1 0 0 0; #X connect 2 0 14 0; #X connect 2 1 21 0; #X connect 3 0 7 0; #X connect 4 0 9 0; #X connect 5 0 10 0; #X connect 6 0 11 0; #X connect 6 0 25 0; #X connect 7 0 2 0; #X connect 7 0 12 0; #X connect 8 0 2 0; #X connect 9 0 2 0; #X connect 9 1 5 0; #X connect 10 0 3 0; #X connect 11 0 3 1; #X connect 13 0 16 0; #X connect 15 0 2 0; #X connect 16 0 27 0; #X connect 16 1 0 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 20 0 28 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 24 0 29 0; #X connect 25 0 24 0; #X connect 26 0 21 0; #X connect 27 0 10 0; #X connect 27 1 28 0; #X connect 27 2 26 0; #X connect 28 0 0 0; #X connect 29 0 9 0; #X restore 747 225 pd glsl; #X obj 762 288 loadbang; #X obj 747 331 pix_image; #X msg 761 420 rectangle 1; #X obj 761 401 loadbang; #X obj 747 360 pix_info 0 0 0; #X msg 825 186 sizeX \$1; #X msg 840 212 sizeY \$1; #X obj 746 468 translateXYZ 3 0 0; #X floatatom 199 108 5 0 0 0 - - -; #X msg 199 127 dZ \$1; #X obj 17 470 s shaders; #X obj 206 245 s init_shader; #X obj 399 244 s init_shader; #X obj 600 244 s init_shader; #X obj 794 246 s init_shader; #X obj 399 164 r shaders; #X obj 598 166 r shaders; #X obj 793 167 r shaders; #X obj 160 546 rectangle 1 0.75; #X obj 352 547 rectangle 1 0.75; #X obj 551 548 rectangle 1 0.75; #X obj 746 549 rectangle 1 0.75; #X obj 160 503 translateXYZ 0 0 0; #X obj 201 486 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 0.12 256; #X obj 259 486 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 -0.06 256; #X obj 352 505 translateXYZ 0 0 0; #X obj 393 488 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 451 488 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 551 506 translateXYZ 0 0 0; #X obj 592 489 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 -0.11 256; #X obj 650 489 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 -0.03 256; #X obj 746 505 translateXYZ 0 0 0; #X obj 787 488 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 -0.18 256; #X obj 845 488 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 -0.05 256; #X obj 160 10 gemhead 10; #X obj 353 11 gemhead 20; #X obj 552 12 gemhead 30; #X obj 747 13 gemhead 40; #X obj 160 144 alpha; #X obj 353 143 alpha; #X obj 552 139 alpha; #X obj 747 142 alpha; #X msg 256 153 ShadeL \$1; #X obj 199 65 r init_shader; #X obj 256 132 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X msg 447 133 ShadeL \$1; #X obj 447 112 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 39 256; #X msg 634 135 ShadeL \$1; #X obj 634 114 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 35 256; #X msg 831 133 ShadeL \$1; #X obj 831 112 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10 -262144 -1 -1 23 256; #X msg 212 526 -1; #X msg 269 525 -0.75; #X text 163 526 invert; #X msg 406 525 -1; #X msg 463 524 -0.75; #X text 357 525 invert; #X msg 605 528 -1; #X msg 662 527 -0.75; #X text 556 528 invert; #X msg 800 529 -1; #X msg 857 528 -0.75; #X text 751 529 invert; #X obj 17 258 gemwin; #X obj 37 208 loadbang; #X obj 160 32 scaleXYZ 4 4 1; #X obj 353 32 scaleXYZ 4 4 1; #X obj 552 36 scaleXYZ 4 4 1; #X obj 747 35 scaleXYZ 4 4 1; #X text 21 588 This patch allow multiples images to be assembled in order to create a panoramic image.; #X text 20 615 A shader distord the image to correct distance distortion \, and allow a fade between 2 images; #X text 17 642 "dz" depend on the angles between images.; #X text 462 619 copyright cyrille Henry and iem.; #X text 463 636 This development was supported by the COMEDIA project ; #X floatatom 18 394 5 0 0 0 - - -; #X msg 18 413 dZ \$1; #X obj 18 351 r init_shader; #X msg 18 373 1.62; #X msg 199 87 1.38; #X msg 37 232 dimen 1024 256; #X msg 177 304 thread 0 \, open cam1.jpg; #X msg 370 305 thread 0 \, open cam2.jpg; #X msg 569 306 thread 0 \, open cam3.jpg; #X msg 764 307 thread 0 \, open cam4.jpg; #X obj 964 623 declare -lib Gem; #X connect 0 0 101 0; #X connect 1 0 101 0; #X connect 2 0 32 0; #X connect 3 0 4 0; #X connect 4 0 6 0; #X connect 4 1 49 0; #X connect 4 1 82 0; #X connect 5 0 118 0; #X connect 6 0 9 0; #X connect 7 0 2 0; #X connect 8 0 7 0; #X connect 9 0 2 0; #X connect 9 1 10 0; #X connect 9 2 11 0; #X connect 10 0 4 1; #X connect 11 0 4 1; #X connect 12 0 33 0; #X connect 13 0 14 0; #X connect 14 0 16 0; #X connect 14 1 50 0; #X connect 14 1 84 0; #X connect 15 0 119 0; #X connect 16 0 19 0; #X connect 17 0 12 0; #X connect 18 0 17 0; #X connect 19 0 12 0; #X connect 19 1 20 0; #X connect 19 2 21 0; #X connect 20 0 14 1; #X connect 21 0 14 1; #X connect 22 0 34 0; #X connect 23 0 24 0; #X connect 24 0 26 0; #X connect 24 1 51 0; #X connect 24 1 86 0; #X connect 25 0 120 0; #X connect 26 0 29 0; #X connect 27 0 22 0; #X connect 28 0 27 0; #X connect 29 0 22 0; #X connect 29 1 30 0; #X connect 29 2 31 0; #X connect 30 0 24 1; #X connect 31 0 24 1; #X connect 32 0 60 0; #X connect 33 0 63 0; #X connect 34 0 66 0; #X connect 35 0 45 0; #X connect 36 0 37 0; #X connect 37 0 39 0; #X connect 37 1 52 0; #X connect 37 1 88 0; #X connect 38 0 121 0; #X connect 39 0 42 0; #X connect 40 0 35 0; #X connect 41 0 40 0; #X connect 42 0 35 0; #X connect 42 1 43 0; #X connect 42 2 44 0; #X connect 43 0 37 1; #X connect 44 0 37 1; #X connect 45 0 69 0; #X connect 46 0 47 0; #X connect 47 0 4 1; #X connect 53 0 14 1; #X connect 54 0 24 1; #X connect 55 0 37 1; #X connect 60 0 56 0; #X connect 61 0 60 1; #X connect 62 0 60 2; #X connect 63 0 57 0; #X connect 64 0 63 1; #X connect 65 0 63 2; #X connect 66 0 58 0; #X connect 67 0 66 1; #X connect 68 0 66 2; #X connect 69 0 59 0; #X connect 70 0 69 1; #X connect 71 0 69 2; #X connect 72 0 103 0; #X connect 73 0 104 0; #X connect 74 0 105 0; #X connect 75 0 106 0; #X connect 76 0 4 0; #X connect 77 0 14 0; #X connect 78 0 24 0; #X connect 79 0 37 0; #X connect 80 0 4 1; #X connect 81 0 116 0; #X connect 82 0 80 0; #X connect 83 0 14 1; #X connect 84 0 83 0; #X connect 85 0 24 1; #X connect 86 0 85 0; #X connect 87 0 37 1; #X connect 88 0 87 0; #X connect 89 0 56 1; #X connect 90 0 56 2; #X connect 92 0 57 1; #X connect 93 0 57 2; #X connect 95 0 58 1; #X connect 96 0 58 2; #X connect 98 0 59 1; #X connect 99 0 59 2; #X connect 102 0 117 0; #X connect 103 0 76 0; #X connect 104 0 77 0; #X connect 105 0 78 0; #X connect 106 0 79 0; #X connect 112 0 113 0; #X connect 113 0 48 0; #X connect 114 0 115 0; #X connect 115 0 112 0; #X connect 116 0 46 0; #X connect 117 0 101 0; #X connect 118 0 6 0; #X connect 119 0 16 0; #X connect 120 0 26 0; #X connect 121 0 39 0;