#N canvas 102 92 647 538 10;
#X declare -lib Gem;
#X text 452 8 GEM object;
#X obj 7 206 cnv 15 430 280 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X text 11 208 Inlets:;
#X text 11 458 Outlets:;
#X obj 8 166 cnv 15 430 30 empty empty empty 20 12 0 14 #bcbcbc #404040 0;
#X text 17 168 Arguments:;
#X obj 8 56 cnv 15 430 100 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X obj 447 85 cnv 15 190 400 empty empty empty 20 12 0 14 #dce4fc #404040 0;
#X text 451 68 Example:;
#X obj 531 420 cnv 15 100 60 empty empty empty 20 12 0 14 #bcbcbc #404040 0;
#X obj 456 146 cnv 15 175 215 empty empty empty 20 12 0 14 #64e864 #404040 0;
#X text 71 31 Class: pix object;
#X text 63 179 <none>;
#X text 29 471 Outlet 1: gemlist;
#X text 22 226 Inlet 1: gemlist;
#X text 50 12 Synopsis: [pix_kaleidoscope];
#X text 28 56 Description: kaleidoscope effect;
#X text 13 72 This effect is similar to a traditional kaleidoscope \, and allows you to reflect a part of the image multiple times around a centre point. You can set how many segments you want the image reflected as \, how the mirrors are rotated \, where the center of the output images is \, and what part of the source image is used as the source.;
#X obj 446 364 cnv 15 120 25 empty empty empty 20 12 0 14 #14e814 #404040 0;
#X obj 449 92 gemhead;
#X floatatom 464 149 5 0 64 1 segments - - 0;
#X floatatom 479 169 5 0 0 1 sourceAngle - - 0;
#X obj 449 369 pix_kaleidoscope;
#X floatatom 510 245 5 0 0 1 outputAngle - - 0;
#X floatatom 556 341 5 0.1 10 1 sap - - 0;
#X floatatom 540 325 5 0 1 1 rlp - - 0;
#X obj 525 304 pack;
#X obj 579 304 t b f;
#X floatatom 525 265 4 0 100 0 - - - 0;
#X floatatom 577 265 4 0 100 0 - - - 0;
#X text 22 243 Inlet 2: float: number of segments (0..64 \, default: 7);
#X text 22 260 Inlet 3: float: rotation of the input-segment (in degree);
#X text 22 277 Inlet 4: list <x> <y>: normalized center-position of the of the segment of the input image. (0..1 \, default 0.5);
#X text 22 307 Inlet 5: float: rotation of the output-segment (in degree);
#X text 22 325 Inlet 6: list <x> <y>: normalized center-position of the of the segments in the output image. (0..1 \, default 0.5);
#X text 22 353 Inlet 7: float: reflection line proportion \, controls the relative sizes of each pair of adjacent segments in the output image (0..1 \, default 0.5);
#X text 22 400 Inlet 8: float: source angle proportion \, sets the angular size of the source segment \, relative to the size of the output segment \; altering this value will squash or expand (0.1..10 \, default: 1);
#X obj 71 498 cnv 15 370 20 empty empty empty 20 12 0 14 #fcac44 #404040 0;
#X text 80 501 (ported from "pete's_plugins" \, www.petewarden.com);
#X obj 525 284 * 0.01;
#X obj 577 284 * 0.01;
#X obj 495 226 pack;
#X obj 549 226 t b f;
#X floatatom 495 187 4 0 100 0 - - - 0;
#X floatatom 547 187 4 0 100 0 - - - 0;
#X obj 495 206 * 0.01;
#X obj 547 206 * 0.01;
#N canvas 484 243 450 300 META 0;
#X obj 10 25 declare -lib Gem;
#X text 10 45 DESCRIPTION kaleidoscope effect;
#X text 10 65 KEYWORDS Gem pix image;
#X text 20 85 INLET_0 gemlist;
#X text 20 105 INLET_1 float;
#X text 20 125 INLET_2 float;
#X text 20 145 INLET_3 list;
#X text 20 165 INLET_4 float;
#X text 20 185 INLET_5 list;
#X text 20 205 INLET_6 float;
#X text 20 225 INLET_7 float;
#X text 20 245 OUTLET_0 gemlist;
#X text 10 265 AUTHOR IOhannes m zmölnig;
#X text 10 285 LICENSE GPL-2.0-or-later;
#X restore 538 8 pd META;
#X obj 540 425 _gemwin;
#X obj 449 121 pix_test;
#X obj 449 391 _pix2rectangle 3;
#X connect 19 0 49 0;
#X connect 20 0 22 1;
#X connect 21 0 22 2;
#X connect 22 0 50 0;
#X connect 23 0 22 4;
#X connect 24 0 22 7;
#X connect 25 0 22 6;
#X connect 26 0 22 5;
#X connect 27 0 26 0;
#X connect 27 1 26 1;
#X connect 28 0 39 0;
#X connect 29 0 40 0;
#X connect 39 0 26 0;
#X connect 40 0 27 0;
#X connect 41 0 22 3;
#X connect 42 0 41 0;
#X connect 42 1 41 1;
#X connect 43 0 45 0;
#X connect 44 0 46 0;
#X connect 45 0 41 0;
#X connect 46 0 42 0;
#X connect 49 0 22 0;
