#N canvas 189 90 1107 660 10;
#X msg 17 91 create \, 1;
#X msg 30 114 0 \, destroy;
#X obj 160 405 pix_texture;
#X obj 169 165 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 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 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 160 182 pd glsl;
#X obj 175 245 loadbang;
#X obj 160 288 pix_image;
#X msg 174 379 rectangle 1;
#X obj 174 358 loadbang;
#X obj 160 317 pix_info 0 0 0;
#X msg 238 148 sizeX \$1;
#X msg 253 169 sizeY \$1;
#X obj 353 406 pix_texture;
#X obj 362 166 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 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 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 353 183 pd glsl;
#X obj 368 246 loadbang;
#X obj 353 289 pix_image;
#X msg 367 378 rectangle 1;
#X obj 367 359 loadbang;
#X obj 353 318 pix_info 0 0 0;
#X msg 431 144 sizeX \$1;
#X msg 446 170 sizeY \$1;
#X obj 552 407 pix_texture;
#X obj 561 167 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 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 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 552 184 pd glsl;
#X obj 567 247 loadbang;
#X obj 552 290 pix_image;
#X msg 566 379 rectangle 1;
#X obj 566 360 loadbang;
#X obj 552 319 pix_info 0 0 0;
#X msg 614 148 sizeX \$1;
#X msg 633 166 sizeY \$1;
#X obj 160 427 translateXYZ -3 0 0;
#X obj 352 426 translateXYZ -1 0 0;
#X obj 551 427 translateXYZ 1 0 0;
#X obj 747 408 pix_texture;
#X obj 756 168 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1338 29 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 26 0;
#X connect 27 1 10 0;
#X connect 27 2 28 0;
#X connect 28 0 0 0;
#X connect 29 0 9 0;
#X restore 747 185 pd glsl;
#X obj 762 248 loadbang;
#X obj 747 291 pix_image;
#X msg 761 380 rectangle 1;
#X obj 761 361 loadbang;
#X obj 747 320 pix_info 0 0 0;
#X msg 825 146 sizeX \$1;
#X msg 840 172 sizeY \$1;
#X obj 746 428 translateXYZ 3 0 0;
#X floatatom 199 68 5 0 0 0 - - -;
#X msg 199 87 dZ \$1;
#X obj 17 430 s shaders;
#X obj 206 205 s init_shader;
#X obj 399 204 s init_shader;
#X obj 600 204 s init_shader;
#X obj 794 206 s init_shader;
#X obj 399 124 r shaders;
#X obj 598 126 r shaders;
#X obj 793 127 r shaders;
#X obj 160 506 rectangle 1 0.75;
#X obj 352 507 rectangle 1 0.75;
#X obj 551 508 rectangle 1 0.75;
#X obj 746 509 rectangle 1 0.75;
#X obj 160 463 translateXYZ 0 0 0;
#X obj 201 446 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 446 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 465 translateXYZ 0 0 0;
#X obj 393 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 451 448 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 551 466 translateXYZ 0 0 0;
#X obj 592 449 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 449 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 465 translateXYZ 0 0 0;
#X obj 787 448 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 448 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 -30 gemhead 10;
#X obj 353 -29 gemhead 20;
#X obj 552 -28 gemhead 30;
#X obj 747 -27 gemhead 40;
#X obj 160 104 alpha;
#X obj 353 103 alpha;
#X obj 552 99 alpha;
#X obj 747 102 alpha;
#X msg 256 113 ShadeL \$1;
#X obj 199 25 r init_shader;
#X obj 256 92 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X msg 447 93 ShadeL \$1;
#X obj 447 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 39 256;
#X msg 634 95 ShadeL \$1;
#X obj 634 74 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 35 256;
#X msg 831 93 ShadeL \$1;
#X obj 831 72 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -8 0 10
-262144 -1 -1 23 256;
#X msg 212 486 -1;
#X msg 269 485 -0.75;
#X text 163 486 invert;
#X msg 406 485 -1;
#X msg 463 484 -0.75;
#X text 357 485 invert;
#X msg 605 488 -1;
#X msg 662 487 -0.75;
#X text 556 488 invert;
#X msg 800 489 -1;
#X msg 857 488 -0.75;
#X text 751 489 invert;
#X obj 17 218 gemwin;
#X obj 37 168 loadbang;
#X obj 160 -8 scaleXYZ 4 4 1;
#X obj 353 -8 scaleXYZ 4 4 1;
#X obj 552 -4 scaleXYZ 4 4 1;
#X obj 747 -5 scaleXYZ 4 4 1;
#X text 21 548 This patch allow multiples images to be assembled in
order to dreate a panoramic image.;
#X text 20 575 A shader distord the image to correct distance distortion
\, and allow a fade between 2 images;
#X text 17 602 "dz" depend on the angles between images.;
#X text 462 579 copyright cyrille Henry and iem.;
#X text 463 596 This developement was suported by the COMEDIA project
;
#X floatatom 18 354 5 0 0 0 - - -;
#X msg 18 373 dZ \$1;
#X obj 18 311 r init_shader;
#X msg 18 333 1.62;
#X msg 199 47 1.38;
#X msg 37 192 dimen 1024 256;
#X msg 177 264 thread 0 \, open cam1.jpg;
#X msg 370 265 thread 0 \, open cam2.jpg;
#X msg 569 266 thread 0 \, open cam3.jpg;
#X msg 764 267 thread 0 \, open cam4.jpg;
#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;
