#N canvas 516 162 809 477 12; #N canvas 361 7 823 746 alltriangles 0; #X obj 90 -47 t a a; #X obj 90 -21 mtx_size; #X obj 90 48 until; #X obj 132 48 f; #X obj 168 49 + 1; #X msg 150 26 1; #X obj 331 370 mtx; #X obj 273 370 mtx; #X obj 216 370 mtx; #X msg 216 348 row \$1; #X obj 132 154 until; #X obj 174 154 f; #X obj 202 154 + 1; #X obj 132 68 + 1; #X obj 132 110 -; #X obj 90 -1 t f b f; #X obj 132 88 t f f f; #X obj 216 283 pack f f f; #X obj 132 132 * -1; #X obj 90 27 - 2; #X obj 186 112 - 1; #X obj 174 262 until; #X obj 216 262 f; #X obj 244 262 + 1; #X obj 174 218 -; #X obj 174 196 t f f f; #X obj 174 240 * -1; #X obj 228 220 - 1; #X obj 174 176 + 1; #X obj 206 176 + 1; #X obj 90 -71 inlet; #X obj 216 508 outlet; #X obj 216 433 list append; #X obj 273 403 list append; #X obj 216 455 mtx 3 3; #X text 218 54 n=1...L; #X text 249 158 m=n+1...L; #X text 302 267 k=m+1...L; #X text 351 285 [k m n(; #X text 312 451 comment; #X obj 216 482 mtx_transpose; #X text 330 482 [ak \, am \, an]; #X obj 462 511 outlet kmn; #X msg 273 348 row \$2; #X msg 331 348 row \$3; #X obj 216 304 t l l l; #X connect 0 0 1 0; #X connect 0 1 6 1; #X connect 0 1 7 1; #X connect 0 1 8 1; #X connect 1 0 15 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 13 0; #X connect 4 0 3 1; #X connect 5 0 3 1; #X connect 6 0 33 1; #X connect 7 0 33 0; #X connect 8 0 32 0; #X connect 9 0 8 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 11 0 17 1; #X connect 11 0 28 0; #X connect 12 0 11 1; #X connect 13 0 16 0; #X connect 14 0 18 0; #X connect 15 0 19 0; #X connect 15 1 5 0; #X connect 15 2 14 1; #X connect 15 2 29 0; #X connect 16 0 14 0; #X connect 16 1 11 1; #X connect 16 2 20 0; #X connect 17 0 42 0; #X connect 17 0 45 0; #X connect 18 0 10 0; #X connect 19 0 2 0; #X connect 20 0 17 2; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 22 0 17 0; #X connect 23 0 22 1; #X connect 24 0 26 0; #X connect 25 0 24 0; #X connect 25 1 22 1; #X connect 25 2 27 0; #X connect 26 0 21 0; #X connect 27 0 22 1; #X connect 28 0 25 0; #X connect 29 0 24 1; #X connect 30 0 0 0; #X connect 32 0 34 0; #X connect 33 0 32 1; #X connect 34 0 40 0; #X connect 40 0 31 0; #X connect 43 0 7 0; #X connect 44 0 6 0; #X connect 45 0 9 0; #X connect 45 1 43 0; #X connect 45 2 44 0; #X restore 107 124 pd alltriangles; #X obj 107 96 t a a; #X obj 16 16 inlet; #X obj 16 389 outlet; #N canvas 0 0 450 474 normalizepoints 0; #X obj 94 39 inlet; #X obj 94 63 t a a; #X obj 139 133 mtx_.^ 2; #X obj 139 156 mtx_sum; #X obj 139 180 t l l; #X obj 139 207 mtx; #X obj 185 180 length; #X obj 94 308 outlet; #X obj 94 282 mtx_./; #X obj 139 230 mtx_.^ 0.5; #X msg 240 180 size \$1 1; #X obj 138 254 mtx_repmat 1 3; #X obj 138 108 mtx_transpose; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 1 1 12 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 4 1 6 0; #X connect 5 0 9 0; #X connect 6 0 10 0; #X connect 8 0 7 0; #X connect 9 0 11 0; #X connect 10 0 5 0; #X connect 11 0 8 1; #X connect 12 0 2 0; #X restore 107 69 pd normalizepoints; #X obj 98 270 t l; #X obj 16 297 list; #X obj 16 321 t l l; #X obj 16 355 mtx; #X obj 70 321 length; #X obj 130 321 / 3; #X msg 164 321 size \$1 3; #X obj 59 270 list; #X obj 16 42 t b a b; #X text 308 55 \$1 allows to specify the algorithmic exactness; #X text 329 73 if \$1>0 \, triangles that are not strictly; #X text 330 91 part of the convex hull can be enclosed; #X text 329 109 it is recommended for numerical reasons to use; #X text 331 126 0.001 to ensure all triangles can be found; #N canvas 25 51 450 300 normal_vector 0; #X obj 47 32 inlet; #X obj 47 228 outlet; #X obj 109 166 mtx_-; #X obj 47 148 t a a; #X obj 47 59 t a a; #X obj 47 171 mtx_-; #X text 128 194 n_kmn = (am-ak) x (am-an); #X obj 95 84 mtx_slice 1 3 end 3; #X obj 79 105 mtx_slice 1 1 end 1; #X obj 47 128 mtx_slice 1 2 end 2; #X obj 47 193 mtx_xprod; #X connect 0 0 4 0; #X connect 2 0 10 1; #X connect 3 0 5 0; #X connect 3 1 2 0; #X connect 4 0 9 0; #X connect 4 1 7 0; #X connect 4 1 8 0; #X connect 5 0 10 0; #X connect 7 0 2 1; #X connect 8 0 5 1; #X connect 9 0 3 0; #X connect 10 0 1 0; #X restore 107 153 pd normal_vector; #N canvas 93 179 470 520 normal_distances 0; #X obj 16 21 inlet; #X obj 16 489 outlet; #X obj 333 24 inlet Punkte; #X obj 214 28 inlet k; #X obj 16 318 mtx_*; #X obj 16 183 t a a; #X obj 333 199 mtx_transpose; #X obj 214 155 mtx; #X msg 214 128 row \$1; #X obj 213 178 mtx 3 1; #X obj 69 349 mtx_*; #X text 30 290 n_kmn^T * P; #X text 116 348 n_kmn^T * ak; #X obj 16 153 mtx_transpose; #X obj 16 438 mtx_- 0; #X msg 69 378 \$3; #N canvas 612 2 450 474 normalizepoints2 0; #X obj 94 19 inlet; #X obj 94 43 t a a; #X obj 139 93 mtx_.^ 2; #X obj 139 116 mtx_sum; #X obj 139 140 t l l; #X obj 139 167 mtx; #X obj 185 140 length; #X obj 94 268 outlet; #X obj 94 242 mtx_./; #X obj 139 190 mtx_.^ 0.5; #X msg 240 141 size 1 \$1; #X obj 138 212 mtx_repmat 3 1; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 1 1 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 4 1 6 0; #X connect 5 0 9 0; #X connect 6 0 10 0; #X connect 8 0 7 0; #X connect 9 0 11 0; #X connect 10 0 5 0; #X connect 11 0 8 1; #X restore 16 98 pd normalizepoints2; #X connect 0 0 16 0; #X connect 2 0 6 0; #X connect 2 0 7 1; #X connect 3 0 8 0; #X connect 4 0 14 0; #X connect 5 0 4 0; #X connect 5 1 10 0; #X connect 6 0 4 1; #X connect 7 0 9 0; #X connect 8 0 7 0; #X connect 9 0 10 1; #X connect 10 0 15 0; #X connect 13 0 5 0; #X connect 14 0 1 0; #X connect 15 0 14 1; #X connect 16 0 13 0; #X restore 107 186 pd normal_distances; #N canvas 0 0 678 377 filter_triangle_of_hull 0; #X obj 23 11 inlet; #X text 32 -8 normalabstaende; #X obj 241 12 inlet; #X text 246 -7 k m n; #X obj 23 58 t a a; #X obj 146 142 mtx_* -1; #X obj 146 188 mtx_prod; #X obj 23 36 mtx_transpose; #X obj 23 178 mtx_prod; #X obj 23 202 sel 1; #X obj 146 211 sel 1; #X obj 146 238 list; #X msg 23 278 \$3 \$2 \$1; #X obj 23 232 list; #X obj 23 325 outlet; #X text 419 40 \$1 adds some inaccuracy; #X text 446 57 to "convex"; #X text 265 202 of the regarded triangle?; #X text 298 265 hull; #X obj 365 14 loadbang; #X obj 146 165 mtx_>= 0; #X obj 23 142 mtx_>= 0; #X obj 365 36 f \$1; #X obj 365 57 abs; #X obj 364 79 * -1; #X text 264 185 are all points on one or the other side; #X text 296 248 then it is part of the convex; #X text 261 218 (or at least close to that); #X connect 0 0 7 0; #X connect 2 0 11 1; #X connect 2 0 13 1; #X connect 4 0 21 0; #X connect 4 1 5 0; #X connect 5 0 20 0; #X connect 6 0 10 0; #X connect 7 0 4 0; #X connect 8 0 9 0; #X connect 9 0 13 0; #X connect 10 0 11 0; #X connect 11 0 14 0; #X connect 12 0 14 0; #X connect 13 0 12 0; #X connect 19 0 22 0; #X connect 20 0 6 0; #X connect 21 0 8 0; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 24 0 20 1; #X connect 24 0 21 1; #X restore 107 218 pd filter_triangle_of_hull; #X connect 0 0 19 0; #X connect 0 1 20 1; #X connect 0 1 21 1; #X connect 1 0 0 0; #X connect 1 1 20 2; #X connect 2 0 13 0; #X connect 4 0 1 0; #X connect 5 0 12 1; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 7 1 9 0; #X connect 8 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 8 0; #X connect 12 0 5 0; #X connect 12 0 6 1; #X connect 13 0 6 0; #X connect 13 1 4 0; #X connect 13 2 6 1; #X connect 13 2 12 1; #X connect 19 0 20 0; #X connect 20 0 21 0; #X connect 21 0 12 0;