00001
00021
00022
00023
00024 #ifndef __VCG_MC_LOOK_UP_TABLE
00025 #define __VCG_MC_LOOK_UP_TABLE
00026
00027 namespace vcg
00028 {
00029 namespace tri
00030 {
00031 class MCLookUpTable
00032 {
00033 public:
00034
00056
00057 static const char Cases(unsigned char cubetype, unsigned char u)
00058 {
00059 static const char cases[256][2] = {
00060 { 0, -1 },
00061 { 1, 0 },
00062 { 1, 1 },
00063 { 2, 0 },
00064 { 1, 2 },
00065 { 3, 0 },
00066 { 2, 3 },
00067 { 5, 0 },
00068 { 1, 3 },
00069 { 2, 1 },
00070 { 3, 3 },
00071 { 5, 1 },
00072 { 2, 5 },
00073 { 5, 4 },
00074 { 5, 9 },
00075 { 8, 0 },
00076 { 1, 4 },
00077 { 2, 2 },
00078 { 3, 4 },
00079 { 5, 2 },
00080 { 4, 2 },
00081 { 6, 2 },
00082 { 6, 9 },
00083 { 11, 0 },
00084 { 3, 8 },
00085 { 5, 5 },
00086 { 7, 3 },
00087 { 9, 1 },
00088 { 6, 16 },
00089 { 14, 3 },
00090 { 12, 12 },
00091 { 5, 24 },
00092 { 1, 5 },
00093 { 3, 1 },
00094 { 2, 4 },
00095 { 5, 3 },
00096 { 3, 6 },
00097 { 7, 0 },
00098 { 5, 10 },
00099 { 9, 0 },
00100 { 4, 3 },
00101 { 6, 4 },
00102 { 6, 11 },
00103 { 14, 1 },
00104 { 6, 17 },
00105 { 12, 4 },
00106 { 11, 6 },
00107 { 5, 25 },
00108 { 2, 8 },
00109 { 5, 7 },
00110 { 5, 12 },
00111 { 8, 1 },
00112 { 6, 18 },
00113 { 12, 5 },
00114 { 14, 7 },
00115 { 5, 28 },
00116 { 6, 21 },
00117 { 11, 4 },
00118 { 12, 15 },
00119 { 5, 30 },
00120 { 10, 5 },
00121 { 6, 32 },
00122 { 6, 39 },
00123 { 2, 12 },
00124 { 1, 6 },
00125 { 4, 0 },
00126 { 3, 5 },
00127 { 6, 0 },
00128 { 2, 6 },
00129 { 6, 3 },
00130 { 5, 11 },
00131 { 14, 0 },
00132 { 3, 9 },
00133 { 6, 5 },
00134 { 7, 4 },
00135 { 12, 1 },
00136 { 5, 14 },
00137 { 11, 3 },
00138 { 9, 4 },
00139 { 5, 26 },
00140 { 3, 10 },
00141 { 6, 6 },
00142 { 7, 5 },
00143 { 12, 2 },
00144 { 6, 19 },
00145 { 10, 1 },
00146 { 12, 13 },
00147 { 6, 24 },
00148 { 7, 7 },
00149 { 12, 9 },
00150 { 13, 1 },
00151 { 7, 9 },
00152 { 12, 20 },
00153 { 6, 33 },
00154 { 7, 13 },
00155 { 3, 12 },
00156 { 2, 10 },
00157 { 6, 7 },
00158 { 5, 13 },
00159 { 11, 2 },
00160 { 5, 16 },
00161 { 12, 7 },
00162 { 8, 3 },
00163 { 5, 29 },
00164 { 6, 22 },
00165 { 10, 2 },
00166 { 12, 17 },
00167 { 6, 27 },
00168 { 14, 9 },
00169 { 6, 34 },
00170 { 5, 39 },
00171 { 2, 14 },
00172 { 5, 20 },
00173 { 14, 5 },
00174 { 9, 5 },
00175 { 5, 32 },
00176 { 11, 10 },
00177 { 6, 35 },
00178 { 5, 41 },
00179 { 2, 16 },
00180 { 12, 23 },
00181 { 6, 37 },
00182 { 7, 14 },
00183 { 3, 16 },
00184 { 6, 46 },
00185 { 4, 6 },
00186 { 3, 21 },
00187 { 1, 8 },
00188 { 1, 7 },
00189 { 3, 2 },
00190 { 4, 1 },
00191 { 6, 1 },
00192 { 3, 7 },
00193 { 7, 1 },
00194 { 6, 10 },
00195 { 12, 0 },
00196 { 2, 7 },
00197 { 5, 6 },
00198 { 6, 12 },
00199 { 11, 1 },
00200 { 5, 15 },
00201 { 9, 2 },
00202 { 14, 6 },
00203 { 5, 27 },
00204 { 2, 9 },
00205 { 5, 8 },
00206 { 6, 13 },
00207 { 14, 2 },
00208 { 6, 20 },
00209 { 12, 6 },
00210 { 10, 3 },
00211 { 6, 25 },
00212 { 5, 18 },
00213 { 8, 2 },
00214 { 12, 16 },
00215 { 5, 31 },
00216 { 11, 9 },
00217 { 5, 34 },
00218 { 6, 40 },
00219 { 2, 13 },
00220 { 3, 11 },
00221 { 7, 2 },
00222 { 6, 14 },
00223 { 12, 3 },
00224 { 7, 6 },
00225 { 13, 0 },
00226 { 12, 14 },
00227 { 7, 8 },
00228 { 6, 23 },
00229 { 12, 10 },
00230 { 10, 4 },
00231 { 6, 28 },
00232 { 12, 21 },
00233 { 7, 10 },
00234 { 6, 41 },
00235 { 3, 13 },
00236 { 5, 21 },
00237 { 9, 3 },
00238 { 11, 8 },
00239 { 5, 33 },
00240 { 12, 22 },
00241 { 7, 11 },
00242 { 6, 42 },
00243 { 3, 14 },
00244 { 14, 11 },
00245 { 5, 36 },
00246 { 6, 44 },
00247 { 2, 17 },
00248 { 6, 47 },
00249 { 3, 18 },
00250 { 4, 7 },
00251 { 1, 9 },
00252 { 2, 11 },
00253 { 6, 8 },
00254 { 6, 15 },
00255 { 10, 0 },
00256 { 5, 17 },
00257 { 12, 8 },
00258 { 11, 7 },
00259 { 6, 26 },
00260 { 5, 19 },
00261 { 14, 4 },
00262 { 12, 18 },
00263 { 6, 29 },
00264 { 8, 4 },
00265 { 5, 35 },
00266 { 5, 40 },
00267 { 2, 15 },
00268 { 5, 22 },
00269 { 11, 5 },
00270 { 12, 19 },
00271 { 6, 30 },
00272 { 14, 10 },
00273 { 6, 36 },
00274 { 6, 43 },
00275 { 4, 4 },
00276 { 9, 7 },
00277 { 5, 37 },
00278 { 7, 15 },
00279 { 3, 17 },
00280 { 5, 44 },
00281 { 2, 19 },
00282 { 3, 22 },
00283 { 1, 10 },
00284 { 5, 23 },
00285 { 12, 11 },
00286 { 14, 8 },
00287 { 6, 31 },
00288 { 9, 6 },
00289 { 7, 12 },
00290 { 5, 42 },
00291 { 3, 15 },
00292 { 11, 11 },
00293 { 6, 38 },
00294 { 6, 45 },
00295 { 4, 5 },
00296 { 5, 45 },
00297 { 3, 19 },
00298 { 2, 21 },
00299 { 1, 11 },
00300 { 8, 5 },
00301 { 5, 38 },
00302 { 5, 43 },
00303 { 2, 18 },
00304 { 5, 46 },
00305 { 3, 20 },
00306 { 2, 22 },
00307 { 1, 12 },
00308 { 5, 47 },
00309 { 2, 20 },
00310 { 3, 23 },
00311 { 1, 13 },
00312 { 2, 23 },
00313 { 1, 14 },
00314 { 1, 15 },
00315 { 0, -1 }
00316 };
00317 return cases[cubetype][u];
00318 };
00319
00320
00321
00322
00332
00333 static const char* Tiling1(unsigned char config)
00334 {
00335 static const char tiling1[16][3] = {
00336 { 0, 8, 3 },
00337 { 0, 1, 9 },
00338 { 1, 2, 10 },
00339 { 3, 11, 2 },
00340 { 4, 7, 8 },
00341 { 9, 5, 4 },
00342 { 10, 6, 5 },
00343 { 7, 6, 11 },
00344 { 7, 11, 6 },
00345 { 10, 5, 6 },
00346 { 9, 4, 5 },
00347 { 4, 8, 7 },
00348 { 3, 2, 11 },
00349 { 1, 10, 2 },
00350 { 0, 9, 1 },
00351 { 0, 3, 8 }
00352 };
00353 return &tiling1[config][0];
00354 };
00355
00356
00357
00358
00368
00369 static const char* Tiling2(unsigned char config)
00370 {
00371 static const char tiling2[24][6] = {
00372 { 1, 8, 3, 9, 8, 1 },
00373 { 0, 11, 2, 8, 11, 0 },
00374 { 4, 3, 0, 7, 3, 4 },
00375 { 9, 2, 10, 0, 2, 9 },
00376 { 0, 5, 4, 1, 5, 0 },
00377 { 3, 10, 1, 11, 10, 3 },
00378 { 1, 6, 5, 2, 6, 1 },
00379 { 7, 2, 3, 6, 2, 7 },
00380 { 9, 7, 8, 5, 7, 9 },
00381 { 6, 8, 4, 11, 8, 6 },
00382 { 10, 4, 9, 6, 4, 10 },
00383 { 11, 5, 10, 7, 5, 11 },
00384 { 11, 10, 5, 7, 11, 5 },
00385 { 10, 9, 4, 6, 10, 4 },
00386 { 6, 4, 8, 11, 6, 8 },
00387 { 9, 8, 7, 5, 9, 7 },
00388 { 7, 3, 2, 6, 7, 2 },
00389 { 1, 5, 6, 2, 1, 6 },
00390 { 3, 1, 10, 11, 3, 10 },
00391 { 0, 4, 5, 1, 0, 5 },
00392 { 9, 10, 2, 0, 9, 2 },
00393 { 4, 0, 3, 7, 4, 3 },
00394 { 0, 2, 11, 8, 0, 11 },
00395 { 1, 3, 8, 9, 1, 8 }
00396 };
00397 return &tiling2[config][0];
00398 };
00399
00400
00401
00402
00403
00404
00405
00419
00420 static const char Test3(unsigned char config)
00421 {
00422 static const char test3[24] = {
00423 5,
00424 1,
00425 4,
00426 5,
00427 1,
00428 2,
00429 2,
00430 3,
00431 4,
00432 3,
00433 6,
00434 6,
00435 -6,
00436 -6,
00437 -3,
00438 -4,
00439 -3,
00440 -2,
00441 -2,
00442 -1,
00443 -5,
00444 -4,
00445 -1,
00446 -5
00447 };
00448 return test3[config];
00449 };
00450
00451
00452
00462
00463 static const char* Tiling3_1(unsigned char config)
00464 {
00465 static const char tiling3_1[24][6] = {
00466 { 0, 8, 3, 1, 2, 10 },
00467 { 9, 5, 4, 0, 8, 3 },
00468 { 3, 0, 8, 11, 7, 6 },
00469 { 1, 9, 0, 2, 3, 11 },
00470 { 0, 1, 9, 8, 4, 7 },
00471 { 9, 0, 1, 5, 10, 6 },
00472 { 1, 2, 10, 9, 5, 4 },
00473 { 10, 1, 2, 6, 11, 7 },
00474 { 8, 4, 7, 3, 11, 2 },
00475 { 2, 3, 11, 10, 6, 5 },
00476 { 5, 10, 6, 4, 7, 8 },
00477 { 4, 9, 5, 7, 6, 11 },
00478 { 5, 9, 4, 11, 6, 7 },
00479 { 6, 10, 5, 8, 7, 4 },
00480 { 11, 3, 2, 5, 6, 10 },
00481 { 7, 4, 8, 2, 11, 3 },
00482 { 2, 1, 10, 7, 11, 6 },
00483 { 10, 2, 1, 4, 5, 9 },
00484 { 1, 0, 9, 6, 10, 5 },
00485 { 9, 1, 0, 7, 4, 8 },
00486 { 0, 9, 1, 11, 3, 2 },
00487 { 8, 0, 3, 6, 7, 11 },
00488 { 4, 5, 9, 3, 8, 0 },
00489 { 3, 8, 0, 10, 2, 1 }
00490 };
00491 return &tiling3_1[config][0];
00492 };
00493
00494
00495
00505
00506 static const char* Tiling3_2(unsigned char config)
00507 {
00508 static const char tiling3_2[24][12] = {
00509 { 10, 3, 2, 10, 8, 3, 10, 1, 0, 8, 10, 0 },
00510 { 3, 4, 8, 3, 5, 4, 3, 0, 9, 5, 3, 9 },
00511 { 6, 8, 7, 6, 0, 8, 6, 11, 3, 0, 6, 3 },
00512 { 11, 0, 3, 11, 9, 0, 11, 2, 1, 9, 11, 1 },
00513 { 7, 9, 4, 7, 1, 9, 7, 8, 0, 1, 7, 0 },
00514 { 6, 1, 10, 6, 0, 1, 9, 0, 6, 9, 6, 5 },
00515 { 4, 10, 5, 4, 2, 10, 4, 9, 1, 2, 4, 1 },
00516 { 7, 2, 11, 7, 1, 2, 7, 6, 10, 1, 7, 10 },
00517 { 2, 7, 11, 2, 4, 7, 2, 3, 8, 4, 2, 8 },
00518 { 5, 11, 6, 5, 3, 11, 5, 10, 2, 3, 5, 2 },
00519 { 8, 6, 7, 8, 10, 6, 8, 4, 5, 10, 8, 5 },
00520 { 11, 5, 6, 11, 9, 5, 11, 7, 4, 9, 11, 4 },
00521 { 6, 5, 11, 5, 9, 11, 4, 7, 11, 4, 11, 9 },
00522 { 7, 6, 8, 6, 10, 8, 5, 4, 8, 5, 8, 10 },
00523 { 6, 11, 5, 11, 3, 5, 2, 10, 5, 2, 5, 3 },
00524 { 11, 7, 2, 7, 4, 2, 8, 3, 2, 8, 2, 4 },
00525 { 11, 2, 7, 2, 1, 7, 10, 6, 7, 10, 7, 1 },
00526 { 5, 10, 4, 10, 2, 4, 1, 9, 4, 1, 4, 2 },
00527 { 10, 1, 6, 1, 0, 6, 6, 0, 9, 5, 6, 9 },
00528 { 4, 9, 7, 9, 1, 7, 0, 8, 7, 0, 7, 1 },
00529 { 3, 0, 11, 0, 9, 11, 1, 2, 11, 1, 11, 9 },
00530 { 7, 8, 6, 8, 0, 6, 3, 11, 6, 3, 6, 0 },
00531 { 8, 4, 3, 4, 5, 3, 9, 0, 3, 9, 3, 5 },
00532 { 2, 3, 10, 3, 8, 10, 0, 1, 10, 0, 10, 8 }
00533 };
00534 return &tiling3_2[config][0];
00535 };
00536
00537
00538
00539
00540
00554
00555 static const char Test4(unsigned char config)
00556 {
00557 static const char test4[8] = {
00558 7,
00559 7,
00560 7,
00561 7,
00562 -7,
00563 -7,
00564 -7,
00565 -7
00566 };
00567 return test4[config];
00568 };
00569
00570
00571
00581
00582 static const char* Tiling4_1(unsigned char config)
00583 {
00584 static const char tiling4_1[8][6] = {
00585 { 0, 8, 3, 5, 10, 6 },
00586 { 0, 1, 9, 11, 7, 6 },
00587 { 1, 2, 10, 8, 4, 7 },
00588 { 9, 5, 4, 2, 3, 11 },
00589 { 4, 5, 9, 11, 3, 2 },
00590 { 10, 2, 1, 7, 4, 8 },
00591 { 9, 1, 0, 6, 7, 11 },
00592 { 3, 8, 0, 6, 10, 5 }
00593 };
00594 return &tiling4_1[config][0];
00595 };
00596
00597
00598
00608
00609 static const char* Tiling4_2(unsigned char config)
00610 {
00611 static const char tiling4_2[8][18] = {
00612 { 8, 5, 0, 5, 8, 6, 3, 6, 8, 6, 3, 10, 0, 10, 3, 10, 0, 5 },
00613 { 9, 6, 1, 6, 9, 7, 0, 7, 9, 7, 0, 11, 1, 11, 0, 11, 1, 6 },
00614 { 10, 7, 2, 7, 10, 4, 1, 4, 10, 4, 1, 8, 2, 8, 1, 8, 2, 7 },
00615 { 11, 4, 3, 4, 11, 5, 2, 5, 11, 5, 2, 9, 3, 9, 2, 9, 3, 4 },
00616 { 3, 4, 11, 5, 11, 4, 11, 5, 2, 9, 2, 5, 2, 9, 3, 4, 3, 9 },
00617 { 2, 7, 10, 4, 10, 7, 10, 4, 1, 8, 1, 4, 1, 8, 2, 7, 2, 8 },
00618 { 1, 6, 9, 7, 9, 6, 9, 7, 0, 11, 0, 7, 0, 11, 1, 6, 1, 11 },
00619 { 0, 5, 8, 6, 8, 5, 8, 6, 3, 10, 3, 6, 3, 10, 0, 5, 0, 10 }
00620 };
00621 return &tiling4_2[config][0];
00622 };
00623
00624
00625
00626
00627
00637
00638 static const char* Tiling5(unsigned char config)
00639 {
00640 static const char tiling5[48][9] = {
00641 { 2, 8, 3, 2, 10, 8, 10, 9, 8 },
00642 { 1, 11, 2, 1, 9, 11, 9, 8, 11 },
00643 { 4, 1, 9, 4, 7, 1, 7, 3, 1 },
00644 { 8, 5, 4, 8, 3, 5, 3, 1, 5 },
00645 { 0, 10, 1, 0, 8, 10, 8, 11, 10 },
00646 { 11, 4, 7, 11, 2, 4, 2, 0, 4 },
00647 { 7, 0, 8, 7, 6, 0, 6, 2, 0 },
00648 { 9, 3, 0, 9, 5, 3, 5, 7, 3 },
00649 { 3, 6, 11, 3, 0, 6, 0, 4, 6 },
00650 { 3, 9, 0, 3, 11, 9, 11, 10, 9 },
00651 { 5, 2, 10, 5, 4, 2, 4, 0, 2 },
00652 { 9, 6, 5, 9, 0, 6, 0, 2, 6 },
00653 { 0, 7, 8, 0, 1, 7, 1, 5, 7 },
00654 { 10, 0, 1, 10, 6, 0, 6, 4, 0 },
00655 { 6, 3, 11, 6, 5, 3, 5, 1, 3 },
00656 { 10, 7, 6, 10, 1, 7, 1, 3, 7 },
00657 { 1, 4, 9, 1, 2, 4, 2, 6, 4 },
00658 { 11, 1, 2, 11, 7, 1, 7, 5, 1 },
00659 { 8, 2, 3, 8, 4, 2, 4, 6, 2 },
00660 { 2, 5, 10, 2, 3, 5, 3, 7, 5 },
00661 { 7, 10, 6, 7, 8, 10, 8, 9, 10 },
00662 { 6, 9, 5, 6, 11, 9, 11, 8, 9 },
00663 { 5, 8, 4, 5, 10, 8, 10, 11, 8 },
00664 { 4, 11, 7, 4, 9, 11, 9, 10, 11 },
00665 { 4, 7, 11, 4, 11, 9, 9, 11, 10 },
00666 { 5, 4, 8, 5, 8, 10, 10, 8, 11 },
00667 { 6, 5, 9, 6, 9, 11, 11, 9, 8 },
00668 { 7, 6, 10, 7, 10, 8, 8, 10, 9 },
00669 { 2, 10, 5, 2, 5, 3, 3, 5, 7 },
00670 { 8, 3, 2, 8, 2, 4, 4, 2, 6 },
00671 { 11, 2, 1, 11, 1, 7, 7, 1, 5 },
00672 { 1, 9, 4, 1, 4, 2, 2, 4, 6 },
00673 { 10, 6, 7, 10, 7, 1, 1, 7, 3 },
00674 { 6, 11, 3, 6, 3, 5, 5, 3, 1 },
00675 { 10, 1, 0, 10, 0, 6, 6, 0, 4 },
00676 { 0, 8, 7, 0, 7, 1, 1, 7, 5 },
00677 { 9, 5, 6, 9, 6, 0, 0, 6, 2 },
00678 { 5, 10, 2, 5, 2, 4, 4, 2, 0 },
00679 { 3, 0, 9, 3, 9, 11, 11, 9, 10 },
00680 { 3, 11, 6, 3, 6, 0, 0, 6, 4 },
00681 { 9, 0, 3, 9, 3, 5, 5, 3, 7 },
00682 { 7, 8, 0, 7, 0, 6, 6, 0, 2 },
00683 { 11, 7, 4, 11, 4, 2, 2, 4, 0 },
00684 { 0, 1, 10, 0, 10, 8, 8, 10, 11 },
00685 { 8, 4, 5, 8, 5, 3, 3, 5, 1 },
00686 { 4, 9, 1, 4, 1, 7, 7, 1, 3 },
00687 { 1, 2, 11, 1, 11, 9, 9, 11, 8 },
00688 { 2, 3, 8, 2, 8, 10, 10, 8, 9 }
00689 };
00690 return &tiling5[config][0];
00691 };
00692
00693
00694
00695
00712
00713 static const char Test6(unsigned char config, int u)
00714 {
00715 static const char test6[48][3] = {
00716 { 2, 7, 10 },
00717 { 4, 7, 11 },
00718 { 5, 7, 1 },
00719 { 5, 7, 3 },
00720 { 1, 7, 9 },
00721 { 3, 7, 10 },
00722 { 6, 7, 5 },
00723 { 1, 7, 8 },
00724 { 4, 7, 8 },
00725 { 1, 7, 8 },
00726 { 3, 7, 11 },
00727 { 5, 7, 2 },
00728 { 5, 7, 0 },
00729 { 1, 7, 9 },
00730 { 6, 7, 6 },
00731 { 2, 7, 9 },
00732 { 4, 7, 8 },
00733 { 2, 7, 9 },
00734 { 2, 7, 10 },
00735 { 6, 7, 7 },
00736 { 3, 7, 10 },
00737 { 4, 7, 11 },
00738 { 3, 7, 11 },
00739 { 6, 7, 4 },
00740 { -6, -7, 4 },
00741 { -3, -7, 11 },
00742 { -4, -7, 11 },
00743 { -3, -7, 10 },
00744 { -6, -7, 7 },
00745 { -2, -7, 10 },
00746 { -2, -7, 9 },
00747 { -4, -7, 8 },
00748 { -2, -7, 9 },
00749 { -6, -7, 6 },
00750 { -1, -7, 9 },
00751 { -5, -7, 0 },
00752 { -5, -7, 2 },
00753 { -3, -7, 11 },
00754 { -1, -7, 8 },
00755 { -4, -7, 8 },
00756 { -1, -7, 8 },
00757 { -6, -7, 5 },
00758 { -3, -7, 10 },
00759 { -1, -7, 9 },
00760 { -5, -7, 3 },
00761 { -5, -7, 1 },
00762 { -4, -7, 11 },
00763 { -2, -7, 10 }
00764 };
00765 return test6[config][u];
00766 };
00767
00768
00769
00779
00780 static const char* Tiling6_1_1(unsigned char config)
00781 {
00782 static const char tiling6_1_1[48][9] = {
00783 { 6, 5, 10, 3, 1, 8, 9, 8, 1 },
00784 { 11, 7, 6, 9, 3, 1, 3, 9, 8 },
00785 { 1, 2, 10, 7, 0, 4, 0, 7, 3 },
00786 { 3, 0, 8, 5, 2, 6, 2, 5, 1 },
00787 { 5, 4, 9, 2, 0, 11, 8, 11, 0 },
00788 { 10, 6, 5, 8, 2, 0, 2, 8, 11 },
00789 { 10, 6, 5, 0, 4, 3, 7, 3, 4 },
00790 { 3, 0, 8, 6, 4, 10, 9, 10, 4 },
00791 { 8, 3, 0, 10, 7, 5, 7, 10, 11 },
00792 { 8, 4, 7, 10, 0, 2, 0, 10, 9 },
00793 { 7, 6, 11, 0, 2, 9, 10, 9, 2 },
00794 { 2, 3, 11, 4, 1, 5, 1, 4, 0 },
00795 { 0, 1, 9, 6, 3, 7, 3, 6, 2 },
00796 { 9, 0, 1, 11, 4, 6, 4, 11, 8 },
00797 { 11, 7, 6, 1, 5, 0, 4, 0, 5 },
00798 { 0, 1, 9, 7, 5, 11, 10, 11, 5 },
00799 { 4, 7, 8, 1, 3, 10, 11, 10, 3 },
00800 { 9, 5, 4, 11, 1, 3, 1, 11, 10 },
00801 { 10, 1, 2, 8, 5, 7, 5, 8, 9 },
00802 { 8, 4, 7, 2, 6, 1, 5, 1, 6 },
00803 { 1, 2, 10, 4, 6, 8, 11, 8, 6 },
00804 { 2, 3, 11, 5, 7, 9, 8, 9, 7 },
00805 { 11, 2, 3, 9, 6, 4, 6, 9, 10 },
00806 { 9, 5, 4, 3, 7, 2, 6, 2, 7 },
00807 { 4, 5, 9, 2, 7, 3, 7, 2, 6 },
00808 { 3, 2, 11, 4, 6, 9, 10, 9, 6 },
00809 { 11, 3, 2, 9, 7, 5, 7, 9, 8 },
00810 { 10, 2, 1, 8, 6, 4, 6, 8, 11 },
00811 { 7, 4, 8, 1, 6, 2, 6, 1, 5 },
00812 { 2, 1, 10, 7, 5, 8, 9, 8, 5 },
00813 { 4, 5, 9, 3, 1, 11, 10, 11, 1 },
00814 { 8, 7, 4, 10, 3, 1, 3, 10, 11 },
00815 { 9, 1, 0, 11, 5, 7, 5, 11, 10 },
00816 { 6, 7, 11, 0, 5, 1, 5, 0, 4 },
00817 { 1, 0, 9, 6, 4, 11, 8, 11, 4 },
00818 { 9, 1, 0, 7, 3, 6, 2, 6, 3 },
00819 { 11, 3, 2, 5, 1, 4, 0, 4, 1 },
00820 { 11, 6, 7, 9, 2, 0, 2, 9, 10 },
00821 { 7, 4, 8, 2, 0, 10, 9, 10, 0 },
00822 { 0, 3, 8, 5, 7, 10, 11, 10, 7 },
00823 { 8, 0, 3, 10, 4, 6, 4, 10, 9 },
00824 { 5, 6, 10, 3, 4, 0, 4, 3, 7 },
00825 { 5, 6, 10, 0, 2, 8, 11, 8, 2 },
00826 { 9, 4, 5, 11, 0, 2, 0, 11, 8 },
00827 { 8, 0, 3, 6, 2, 5, 1, 5, 2 },
00828 { 10, 2, 1, 4, 0, 7, 3, 7, 0 },
00829 { 6, 7, 11, 1, 3, 9, 8, 9, 3 },
00830 { 10, 5, 6, 8, 1, 3, 1, 8, 9 }
00831 };
00832 return &tiling6_1_1[config][0];
00833 };
00834
00835
00836
00846
00847 static const char* Tiling6_1_2(unsigned char config)
00848 {
00849 static const char tiling6_1_2[48][21] = {
00850 { 1, 10, 3, 6, 3, 10, 3, 6, 8, 5, 8, 6, 8, 5, 9, 1, 9, 5, 10, 1, 5 },
00851 { 1, 11, 3, 11, 1, 6, 9, 6, 1, 6, 9, 7, 8, 7, 9, 7, 8, 3, 7, 3, 11 },
00852 { 4, 1, 0, 1, 4, 10, 7, 10, 4, 10, 7, 2, 3, 2, 7, 2, 3, 0, 2, 0, 1 },
00853 { 6, 3, 2, 3, 6, 8, 5, 8, 6, 8, 5, 0, 1, 0, 5, 0, 1, 2, 0, 2, 3 },
00854 { 0, 9, 2, 5, 2, 9, 2, 5, 11, 4, 11, 5, 11, 4, 8, 0, 8, 4, 9, 0, 4 },
00855 { 0, 10, 2, 10, 0, 5, 8, 5, 0, 5, 8, 6, 11, 6, 8, 6, 11, 2, 6, 2, 10 },
00856 { 4, 5, 0, 10, 0, 5, 0, 10, 3, 6, 3, 10, 3, 6, 7, 4, 7, 6, 5, 4, 6 },
00857 { 4, 8, 6, 3, 6, 8, 6, 3, 10, 0, 10, 3, 10, 0, 9, 4, 9, 0, 8, 4, 0 },
00858 { 5, 8, 7, 8, 5, 0, 10, 0, 5, 0, 10, 3, 11, 3, 10, 3, 11, 7, 3, 7, 8 },
00859 { 2, 8, 0, 8, 2, 7, 10, 7, 2, 7, 10, 4, 9, 4, 10, 4, 9, 0, 4, 0, 8 },
00860 { 2, 11, 0, 7, 0, 11, 0, 7, 9, 6, 9, 7, 9, 6, 10, 2, 10, 6, 11, 2, 6 },
00861 { 5, 2, 1, 2, 5, 11, 4, 11, 5, 11, 4, 3, 0, 3, 4, 3, 0, 1, 3, 1, 2 },
00862 { 7, 0, 3, 0, 7, 9, 6, 9, 7, 9, 6, 1, 2, 1, 6, 1, 2, 3, 1, 3, 0 },
00863 { 6, 9, 4, 9, 6, 1, 11, 1, 6, 1, 11, 0, 8, 0, 11, 0, 8, 4, 0, 4, 9 },
00864 { 5, 6, 1, 11, 1, 6, 1, 11, 0, 7, 0, 11, 0, 7, 4, 5, 4, 7, 6, 5, 7 },
00865 { 5, 9, 7, 0, 7, 9, 7, 0, 11, 1, 11, 0, 11, 1, 10, 5, 10, 1, 9, 5, 1 },
00866 { 3, 8, 1, 4, 1, 8, 1, 4, 10, 7, 10, 4, 10, 7, 11, 3, 11, 7, 8, 3, 7 },
00867 { 3, 9, 1, 9, 3, 4, 11, 4, 3, 4, 11, 5, 10, 5, 11, 5, 10, 1, 5, 1, 9 },
00868 { 7, 10, 5, 10, 7, 2, 8, 2, 7, 2, 8, 1, 9, 1, 8, 1, 9, 5, 1, 5, 10 },
00869 { 6, 7, 2, 8, 2, 7, 2, 8, 1, 4, 1, 8, 1, 4, 5, 6, 5, 4, 7, 6, 4 },
00870 { 6, 10, 4, 1, 4, 10, 4, 1, 8, 2, 8, 1, 8, 2, 11, 6, 11, 2, 10, 6, 2 },
00871 { 7, 11, 5, 2, 5, 11, 5, 2, 9, 3, 9, 2, 9, 3, 8, 7, 8, 3, 11, 7, 3 },
00872 { 4, 11, 6, 11, 4, 3, 9, 3, 4, 3, 9, 2, 10, 2, 9, 2, 10, 6, 2, 6, 11 },
00873 { 7, 4, 3, 9, 3, 4, 3, 9, 2, 5, 2, 9, 2, 5, 6, 7, 6, 5, 4, 7, 5 },
00874 { 3, 4, 7, 4, 3, 9, 2, 9, 3, 9, 2, 5, 6, 5, 2, 5, 6, 7, 5, 7, 4 },
00875 { 6, 11, 4, 3, 4, 11, 4, 3, 9, 2, 9, 3, 9, 2, 10, 6, 10, 2, 11, 6, 2 },
00876 { 5, 11, 7, 11, 5, 2, 9, 2, 5, 2, 9, 3, 8, 3, 9, 3, 8, 7, 3, 7, 11 },
00877 { 4, 10, 6, 10, 4, 1, 8, 1, 4, 1, 8, 2, 11, 2, 8, 2, 11, 6, 2, 6, 10 },
00878 { 2, 7, 6, 7, 2, 8, 1, 8, 2, 8, 1, 4, 5, 4, 1, 4, 5, 6, 4, 6, 7 },
00879 { 5, 10, 7, 2, 7, 10, 7, 2, 8, 1, 8, 2, 8, 1, 9, 5, 9, 1, 10, 5, 1 },
00880 { 1, 9, 3, 4, 3, 9, 3, 4, 11, 5, 11, 4, 11, 5, 10, 1, 10, 5, 9, 1, 5 },
00881 { 1, 8, 3, 8, 1, 4, 10, 4, 1, 4, 10, 7, 11, 7, 10, 7, 11, 3, 7, 3, 8 },
00882 { 7, 9, 5, 9, 7, 0, 11, 0, 7, 0, 11, 1, 10, 1, 11, 1, 10, 5, 1, 5, 9 },
00883 { 1, 6, 5, 6, 1, 11, 0, 11, 1, 11, 0, 7, 4, 7, 0, 7, 4, 5, 7, 5, 6 },
00884 { 4, 9, 6, 1, 6, 9, 6, 1, 11, 0, 11, 1, 11, 0, 8, 4, 8, 0, 9, 4, 0 },
00885 { 3, 0, 7, 9, 7, 0, 7, 9, 6, 1, 6, 9, 6, 1, 2, 3, 2, 1, 0, 3, 1 },
00886 { 1, 2, 5, 11, 5, 2, 5, 11, 4, 3, 4, 11, 4, 3, 0, 1, 0, 3, 2, 1, 3 },
00887 { 0, 11, 2, 11, 0, 7, 9, 7, 0, 7, 9, 6, 10, 6, 9, 6, 10, 2, 6, 2, 11 },
00888 { 0, 8, 2, 7, 2, 8, 2, 7, 10, 4, 10, 7, 10, 4, 9, 0, 9, 4, 8, 0, 4 },
00889 { 7, 8, 5, 0, 5, 8, 5, 0, 10, 3, 10, 0, 10, 3, 11, 7, 11, 3, 8, 7, 3 },
00890 { 6, 8, 4, 8, 6, 3, 10, 3, 6, 3, 10, 0, 9, 0, 10, 0, 9, 4, 0, 4, 8 },
00891 { 0, 5, 4, 5, 0, 10, 3, 10, 0, 10, 3, 6, 7, 6, 3, 6, 7, 4, 6, 4, 5 },
00892 { 2, 10, 0, 5, 0, 10, 0, 5, 8, 6, 8, 5, 8, 6, 11, 2, 11, 6, 10, 2, 6 },
00893 { 2, 9, 0, 9, 2, 5, 11, 5, 2, 5, 11, 4, 8, 4, 11, 4, 8, 0, 4, 0, 9 },
00894 { 2, 3, 6, 8, 6, 3, 6, 8, 5, 0, 5, 8, 5, 0, 1, 2, 1, 0, 3, 2, 0 },
00895 { 0, 1, 4, 10, 4, 1, 4, 10, 7, 2, 7, 10, 7, 2, 3, 0, 3, 2, 1, 0, 2 },
00896 { 3, 11, 1, 6, 1, 11, 1, 6, 9, 7, 9, 6, 9, 7, 8, 3, 8, 7, 11, 3, 7 },
00897 { 3, 10, 1, 10, 3, 6, 8, 6, 3, 6, 8, 5, 9, 5, 8, 5, 9, 1, 5, 1, 10 }
00898 };
00899 return &tiling6_1_2[config][0];
00900 };
00901
00902
00903
00904
00914
00915 static const char* Tiling6_2(unsigned char config)
00916 {
00917 static const char tiling6_2[48][15] = {
00918 { 1, 10, 3, 6, 3, 10, 3, 6, 8, 5, 8, 6, 8, 5, 9 },
00919 { 1, 11, 3, 11, 1, 6, 9, 6, 1, 6, 9, 7, 8, 7, 9 },
00920 { 4, 1, 0, 1, 4, 10, 7, 10, 4, 10, 7, 2, 3, 2, 7 },
00921 { 6, 3, 2, 3, 6, 8, 5, 8, 6, 8, 5, 0, 1, 0, 5 },
00922 { 0, 9, 2, 5, 2, 9, 2, 5, 11, 4, 11, 5, 11, 4, 8 },
00923 { 0, 10, 2, 10, 0, 5, 8, 5, 0, 5, 8, 6, 11, 6, 8 },
00924 { 4, 5, 0, 10, 0, 5, 0, 10, 3, 6, 3, 10, 3, 6, 7 },
00925 { 4, 8, 6, 3, 6, 8, 6, 3, 10, 0, 10, 3, 10, 0, 9 },
00926 { 5, 8, 7, 8, 5, 0, 10, 0, 5, 0, 10, 3, 11, 3, 10 },
00927 { 2, 8, 0, 8, 2, 7, 10, 7, 2, 7, 10, 4, 9, 4, 10 },
00928 { 2, 11, 0, 7, 0, 11, 0, 7, 9, 6, 9, 7, 9, 6, 10 },
00929 { 5, 2, 1, 2, 5, 11, 4, 11, 5, 11, 4, 3, 0, 3, 4 },
00930 { 7, 0, 3, 0, 7, 9, 6, 9, 7, 9, 6, 1, 2, 1, 6 },
00931 { 6, 9, 4, 9, 6, 1, 11, 1, 6, 1, 11, 0, 8, 0, 11 },
00932 { 5, 6, 1, 11, 1, 6, 1, 11, 0, 7, 0, 11, 0, 7, 4 },
00933 { 5, 9, 7, 0, 7, 9, 7, 0, 11, 1, 11, 0, 11, 1, 10 },
00934 { 3, 8, 1, 4, 1, 8, 1, 4, 10, 7, 10, 4, 10, 7, 11 },
00935 { 3, 9, 1, 9, 3, 4, 11, 4, 3, 4, 11, 5, 10, 5, 11 },
00936 { 7, 10, 5, 10, 7, 2, 8, 2, 7, 2, 8, 1, 9, 1, 8 },
00937 { 6, 7, 2, 8, 2, 7, 2, 8, 1, 4, 1, 8, 1, 4, 5 },
00938 { 6, 10, 4, 1, 4, 10, 4, 1, 8, 2, 8, 1, 8, 2, 11 },
00939 { 7, 11, 5, 2, 5, 11, 5, 2, 9, 3, 9, 2, 9, 3, 8 },
00940 { 4, 11, 6, 11, 4, 3, 9, 3, 4, 3, 9, 2, 10, 2, 9 },
00941 { 7, 4, 3, 9, 3, 4, 3, 9, 2, 5, 2, 9, 2, 5, 6 },
00942 { 3, 4, 7, 4, 3, 9, 2, 9, 3, 9, 2, 5, 6, 5, 2 },
00943 { 6, 11, 4, 3, 4, 11, 4, 3, 9, 2, 9, 3, 9, 2, 10 },
00944 { 5, 11, 7, 11, 5, 2, 9, 2, 5, 2, 9, 3, 8, 3, 9 },
00945 { 4, 10, 6, 10, 4, 1, 8, 1, 4, 1, 8, 2, 11, 2, 8 },
00946 { 2, 7, 6, 7, 2, 8, 1, 8, 2, 8, 1, 4, 5, 4, 1 },
00947 { 5, 10, 7, 2, 7, 10, 7, 2, 8, 1, 8, 2, 8, 1, 9 },
00948 { 1, 9, 3, 4, 3, 9, 3, 4, 11, 5, 11, 4, 11, 5, 10 },
00949 { 1, 8, 3, 8, 1, 4, 10, 4, 1, 4, 10, 7, 11, 7, 10 },
00950 { 7, 9, 5, 9, 7, 0, 11, 0, 7, 0, 11, 1, 10, 1, 11 },
00951 { 1, 6, 5, 6, 1, 11, 0, 11, 1, 11, 0, 7, 4, 7, 0 },
00952 { 4, 9, 6, 1, 6, 9, 6, 1, 11, 0, 11, 1, 11, 0, 8 },
00953 { 3, 0, 7, 9, 7, 0, 7, 9, 6, 1, 6, 9, 6, 1, 2 },
00954 { 1, 2, 5, 11, 5, 2, 5, 11, 4, 3, 4, 11, 4, 3, 0 },
00955 { 0, 11, 2, 11, 0, 7, 9, 7, 0, 7, 9, 6, 10, 6, 9 },
00956 { 0, 8, 2, 7, 2, 8, 2, 7, 10, 4, 10, 7, 10, 4, 9 },
00957 { 7, 8, 5, 0, 5, 8, 5, 0, 10, 3, 10, 0, 10, 3, 11 },
00958 { 6, 8, 4, 8, 6, 3, 10, 3, 6, 3, 10, 0, 9, 0, 10 },
00959 { 0, 5, 4, 5, 0, 10, 3, 10, 0, 10, 3, 6, 7, 6, 3 },
00960 { 2, 10, 0, 5, 0, 10, 0, 5, 8, 6, 8, 5, 8, 6, 11 },
00961 { 2, 9, 0, 9, 2, 5, 11, 5, 2, 5, 11, 4, 8, 4, 11 },
00962 { 2, 3, 6, 8, 6, 3, 6, 8, 5, 0, 5, 8, 5, 0, 1 },
00963 { 0, 1, 4, 10, 4, 1, 4, 10, 7, 2, 7, 10, 7, 2, 3 },
00964 { 3, 11, 1, 6, 1, 11, 1, 6, 9, 7, 9, 6, 9, 7, 8 },
00965 { 3, 10, 1, 10, 3, 6, 8, 6, 3, 6, 8, 5, 9, 5, 8 }
00966 };
00967 return &tiling6_2[config][0];
00968 };
00969
00970
00971
00972
00995
00996 static const char Test7(unsigned char config, int u)
00997 {
00998 static const char test7[16][5] = {
00999 { 1, 2, 5, 7, 1 },
01000 { 3, 4, 5, 7, 3 },
01001 { 4, 1, 6, 7, 4 },
01002 { 4, 1, 5, 7, 0 },
01003 { 2, 3, 5, 7, 2 },
01004 { 1, 2, 6, 7, 5 },
01005 { 2, 3, 6, 7, 6 },
01006 { 3, 4, 6, 7, 7 },
01007 { -3, -4, -6, -7, 7 },
01008 { -2, -3, -6, -7, 6 },
01009 { -1, -2, -6, -7, 5 },
01010 { -2, -3, -5, -7, 2 },
01011 { -4, -1, -5, -7, 0 },
01012 { -4, -1, -6, -7, 4 },
01013 { -3, -4, -5, -7, 3 },
01014 { -1, -2, -5, -7, 1 }
01015 };
01016 return test7[config][u];
01017 };
01018
01019
01020
01030
01031 static const char* Tiling7_1(unsigned char config)
01032 {
01033 static const char tiling7_1[16][9] = {
01034 { 9, 5, 4, 10, 1, 2, 8, 3, 0 },
01035 { 11, 7, 6, 8, 3, 0, 10, 1, 2 },
01036 { 3, 0, 8, 5, 4, 9, 7, 6, 11 },
01037 { 8, 4, 7, 9, 0, 1, 11, 2, 3 },
01038 { 10, 6, 5, 11, 2, 3, 9, 0, 1 },
01039 { 0, 1, 9, 6, 5, 10, 4, 7, 8 },
01040 { 1, 2, 10, 7, 6, 11, 5, 4, 9 },
01041 { 2, 3, 11, 4, 7, 8, 6, 5, 10 },
01042 { 11, 3, 2, 8, 7, 4, 10, 5, 6 },
01043 { 10, 2, 1, 11, 6, 7, 9, 4, 5 },
01044 { 9, 1, 0, 10, 5, 6, 8, 7, 4 },
01045 { 5, 6, 10, 3, 2, 11, 1, 0, 9 },
01046 { 7, 4, 8, 1, 0, 9, 3, 2, 11 },
01047 { 8, 0, 3, 9, 4, 5, 11, 6, 7 },
01048 { 6, 7, 11, 0, 3, 8, 2, 1, 10 },
01049 { 4, 5, 9, 2, 1, 10, 0, 3, 8 }
01050 };
01051 return &tiling7_1[config][0];
01052 };
01053
01054
01055
01065
01066 static const char* Tiling7_2(unsigned char config, int u)
01067 {
01068 static const char tiling7_2[16][3][15] = {
01069 {
01070 { 1, 2, 10, 3, 4, 8, 4, 3, 5, 0, 5, 3, 5, 0, 9 },
01071 { 3, 0, 8, 9, 1, 4, 2, 4, 1, 4, 2, 5, 10, 5, 2 },
01072 { 9, 5, 4, 0, 10, 1, 10, 0, 8, 10, 8, 2, 3, 2, 8 }
01073 },
01074 {
01075 { 3, 0, 8, 1, 6, 10, 6, 1, 7, 2, 7, 1, 7, 2, 11 },
01076 { 1, 2, 10, 11, 3, 6, 0, 6, 3, 6, 0, 7, 8, 7, 0 },
01077 { 11, 7, 6, 2, 8, 3, 8, 2, 10, 8, 10, 0, 1, 0, 10 }
01078 },
01079 {
01080 { 9, 5, 4, 11, 3, 6, 0, 6, 3, 6, 0, 7, 8, 7, 0 },
01081 { 11, 7, 6, 3, 4, 8, 4, 3, 5, 0, 5, 3, 5, 0, 9 },
01082 { 3, 0, 8, 4, 9, 7, 11, 7, 9, 5, 11, 9, 11, 5, 6 }
01083 },
01084 {
01085 { 0, 1, 9, 2, 7, 11, 7, 2, 4, 3, 4, 2, 4, 3, 8 },
01086 { 2, 3, 11, 8, 0, 7, 1, 7, 0, 7, 1, 4, 9, 4, 1 },
01087 { 8, 4, 7, 3, 9, 0, 9, 3, 11, 9, 11, 1, 2, 1, 11 }
01088 },
01089 {
01090 { 2, 3, 11, 0, 5, 9, 5, 0, 6, 1, 6, 0, 6, 1, 10 },
01091 { 0, 1, 9, 10, 2, 5, 3, 5, 2, 5, 3, 6, 11, 6, 3 },
01092 { 6, 5, 10, 1, 11, 2, 11, 1, 9, 11, 9, 3, 0, 3, 9 }
01093 },
01094 {
01095 { 6, 5, 10, 8, 0, 7, 1, 7, 0, 7, 1, 4, 9, 4, 1 },
01096 { 8, 4, 7, 0, 5, 9, 5, 0, 6, 1, 6, 0, 6, 1, 10 },
01097 { 0, 1, 9, 5, 10, 4, 8, 4, 10, 6, 8, 10, 8, 6, 7 }
01098 },
01099 {
01100 { 11, 7, 6, 9, 1, 4, 2, 4, 1, 4, 2, 5, 10, 5, 2 },
01101 { 9, 5, 4, 1, 6, 10, 6, 1, 7, 2, 7, 1, 7, 2, 11 },
01102 { 1, 2, 10, 6, 11, 5, 9, 5, 11, 7, 9, 11, 9, 7, 4 }
01103 },
01104 {
01105 { 8, 4, 7, 10, 2, 5, 3, 5, 2, 5, 3, 6, 11, 6, 3 },
01106 { 6, 5, 10, 2, 7, 11, 7, 2, 4, 3, 4, 2, 4, 3, 8 },
01107 { 2, 3, 11, 7, 8, 6, 10, 6, 8, 4, 10, 8, 10, 4, 5 }
01108 },
01109 {
01110 { 7, 4, 8, 5, 2, 10, 2, 5, 3, 6, 3, 5, 3, 6, 11 },
01111 { 10, 5, 6, 11, 7, 2, 4, 2, 7, 2, 4, 3, 8, 3, 4 },
01112 { 11, 3, 2, 6, 8, 7, 8, 6, 10, 8, 10, 4, 5, 4, 10 }
01113 },
01114 {
01115 { 6, 7, 11, 4, 1, 9, 1, 4, 2, 5, 2, 4, 2, 5, 10 },
01116 { 4, 5, 9, 10, 6, 1, 7, 1, 6, 1, 7, 2, 11, 2, 7 },
01117 { 10, 2, 1, 5, 11, 6, 11, 5, 9, 11, 9, 7, 4, 7, 9 }
01118 },
01119 {
01120 { 10, 5, 6, 7, 0, 8, 0, 7, 1, 4, 1, 7, 1, 4, 9 },
01121 { 7, 4, 8, 9, 5, 0, 6, 0, 5, 0, 6, 1, 10, 1, 6 },
01122 { 9, 1, 0, 4, 10, 5, 10, 4, 8, 10, 8, 6, 7, 6, 8 }
01123 },
01124 {
01125 { 11, 3, 2, 9, 5, 0, 6, 0, 5, 0, 6, 1, 10, 1, 6 },
01126 { 9, 1, 0, 5, 2, 10, 2, 5, 3, 6, 3, 5, 3, 6, 11 },
01127 { 10, 5, 6, 2, 11, 1, 9, 1, 11, 3, 9, 11, 9, 3, 0 }
01128 },
01129 {
01130 { 9, 1, 0, 11, 7, 2, 4, 2, 7, 2, 4, 3, 8, 3, 4 },
01131 { 11, 3, 2, 7, 0, 8, 0, 7, 1, 4, 1, 7, 1, 4, 9 },
01132 { 7, 4, 8, 0, 9, 3, 11, 3, 9, 1, 11, 9, 11, 1, 2 }
01133 },
01134 {
01135 { 4, 5, 9, 6, 3, 11, 3, 6, 0, 7, 0, 6, 0, 7, 8 },
01136 { 6, 7, 11, 8, 4, 3, 5, 3, 4, 3, 5, 0, 9, 0, 5 },
01137 { 8, 0, 3, 7, 9, 4, 9, 7, 11, 9, 11, 5, 6, 5, 11 }
01138 },
01139 {
01140 { 8, 0, 3, 10, 6, 1, 7, 1, 6, 1, 7, 2, 11, 2, 7 },
01141 { 10, 2, 1, 6, 3, 11, 3, 6, 0, 7, 0, 6, 0, 7, 8 },
01142 { 6, 7, 11, 3, 8, 2, 10, 2, 8, 0, 10, 8, 10, 0, 1 }
01143 },
01144 {
01145 { 10, 2, 1, 8, 4, 3, 5, 3, 4, 3, 5, 0, 9, 0, 5 },
01146 { 8, 0, 3, 4, 1, 9, 1, 4, 2, 5, 2, 4, 2, 5, 10 },
01147 { 4, 5, 9, 1, 10, 0, 8, 0, 10, 2, 8, 10, 8, 2, 3 } }
01148 };
01149 return &tiling7_2[config][u][0];
01150 };
01151
01152
01153
01163
01164 static const char* Tiling7_3(unsigned char config, unsigned char u)
01165 {
01166 static const char tiling7_3[16][3][27] = {
01167 {
01168 { 12, 2, 10, 12, 10, 5, 12, 5, 4, 12, 4, 8, 12, 8, 3, 12, 3, 0, 12, 0, 9, 12, 9, 1, 12, 1, 2 },
01169 { 12, 5, 4, 12, 4, 8, 12, 8, 3, 12, 3, 2, 12, 2, 10, 12, 10, 1, 12, 1, 0, 12, 0, 9, 12, 9, 5 },
01170 { 5, 4, 12, 10, 5, 12, 2, 10, 12, 3, 2, 12, 8, 3, 12, 0, 8, 12, 1, 0, 12, 9, 1, 12, 4, 9, 12 }
01171 },
01172 {
01173 { 12, 0, 8, 12, 8, 7, 12, 7, 6, 12, 6, 10, 12, 10, 1, 12, 1, 2, 12, 2, 11, 12, 11, 3, 12, 3, 0 },
01174 { 12, 7, 6, 12, 6, 10, 12, 10, 1, 12, 1, 0, 12, 0, 8, 12, 8, 3, 12, 3, 2, 12, 2, 11, 12, 11, 7 },
01175 { 7, 6, 12, 8, 7, 12, 0, 8, 12, 1, 0, 12, 10, 1, 12, 2, 10, 12, 3, 2, 12, 11, 3, 12, 6, 11, 12 }
01176 },
01177 {
01178 { 9, 5, 12, 0, 9, 12, 3, 0, 12, 11, 3, 12, 6, 11, 12, 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12 },
01179 { 3, 0, 12, 11, 3, 12, 6, 11, 12, 5, 6, 12, 9, 5, 12, 4, 9, 12, 7, 4, 12, 8, 7, 12, 0, 8, 12 },
01180 { 12, 3, 0, 12, 0, 9, 12, 9, 5, 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4, 12, 4, 8, 12, 8, 3 }
01181 },
01182 {
01183 { 12, 1, 9, 12, 9, 4, 12, 4, 7, 12, 7, 11, 12, 11, 2, 12, 2, 3, 12, 3, 8, 12, 8, 0, 12, 0, 1 },
01184 { 12, 4, 7, 12, 7, 11, 12, 11, 2, 12, 2, 1, 12, 1, 9, 12, 9, 0, 12, 0, 3, 12, 3, 8, 12, 8, 4 },
01185 { 4, 7, 12, 9, 4, 12, 1, 9, 12, 2, 1, 12, 11, 2, 12, 3, 11, 12, 0, 3, 12, 8, 0, 12, 7, 8, 12 }
01186 },
01187 {
01188 { 12, 3, 11, 12, 11, 6, 12, 6, 5, 12, 5, 9, 12, 9, 0, 12, 0, 1, 12, 1, 10, 12, 10, 2, 12, 2, 3 },
01189 { 12, 6, 5, 12, 5, 9, 12, 9, 0, 12, 0, 3, 12, 3, 11, 12, 11, 2, 12, 2, 1, 12, 1, 10, 12, 10, 6 },
01190 { 6, 5, 12, 11, 6, 12, 3, 11, 12, 0, 3, 12, 9, 0, 12, 1, 9, 12, 2, 1, 12, 10, 2, 12, 5, 10, 12 }
01191 },
01192 {
01193 { 10, 6, 12, 1, 10, 12, 0, 1, 12, 8, 0, 12, 7, 8, 12, 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12 },
01194 { 0, 1, 12, 8, 0, 12, 7, 8, 12, 6, 7, 12, 10, 6, 12, 5, 10, 12, 4, 5, 12, 9, 4, 12, 1, 9, 12 },
01195 { 12, 0, 1, 12, 1, 10, 12, 10, 6, 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5, 12, 5, 9, 12, 9, 0 }
01196 },
01197 {
01198 { 11, 7, 12, 2, 11, 12, 1, 2, 12, 9, 1, 12, 4, 9, 12, 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12 },
01199 { 1, 2, 12, 9, 1, 12, 4, 9, 12, 7, 4, 12, 11, 7, 12, 6, 11, 12, 5, 6, 12, 10, 5, 12, 2, 10, 12 },
01200 { 12, 1, 2, 12, 2, 11, 12, 11, 7, 12, 7, 4, 12, 4, 9, 12, 9, 5, 12, 5, 6, 12, 6, 10, 12, 10, 1 }
01201 },
01202 {
01203 { 8, 4, 12, 3, 8, 12, 2, 3, 12, 10, 2, 12, 5, 10, 12, 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12 },
01204 { 2, 3, 12, 10, 2, 12, 5, 10, 12, 4, 5, 12, 8, 4, 12, 7, 8, 12, 6, 7, 12, 11, 6, 12, 3, 11, 12 },
01205 { 12, 2, 3, 12, 3, 8, 12, 8, 4, 12, 4, 5, 12, 5, 10, 12, 10, 6, 12, 6, 7, 12, 7, 11, 12, 11, 2 }
01206 },
01207 {
01208 { 12, 4, 8, 12, 8, 3, 12, 3, 2, 12, 2, 10, 12, 10, 5, 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4 },
01209 { 12, 3, 2, 12, 2, 10, 12, 10, 5, 12, 5, 4, 12, 4, 8, 12, 8, 7, 12, 7, 6, 12, 6, 11, 12, 11, 3 },
01210 { 3, 2, 12, 8, 3, 12, 4, 8, 12, 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12, 11, 7, 12, 2, 11, 12 }
01211 },
01212 {
01213 { 12, 7, 11, 12, 11, 2, 12, 2, 1, 12, 1, 9, 12, 9, 4, 12, 4, 5, 12, 5, 10, 12, 10, 6, 12, 6, 7 },
01214 { 12, 2, 1, 12, 1, 9, 12, 9, 4, 12, 4, 7, 12, 7, 11, 12, 11, 6, 12, 6, 5, 12, 5, 10, 12, 10, 2 },
01215 { 2, 1, 12, 11, 2, 12, 7, 11, 12, 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12, 10, 6, 12, 1, 10, 12 }
01216 },
01217 {
01218 { 12, 6, 10, 12, 10, 1, 12, 1, 0, 12, 0, 8, 12, 8, 7, 12, 7, 4, 12, 4, 9, 12, 9, 5, 12, 5, 6 },
01219 { 12, 1, 0, 12, 0, 8, 12, 8, 7, 12, 7, 6, 12, 6, 10, 12, 10, 5, 12, 5, 4, 12, 4, 9, 12, 9, 1 },
01220 { 1, 0, 12, 10, 1, 12, 6, 10, 12, 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12, 9, 5, 12, 0, 9, 12 }
01221 },
01222 {
01223 { 11, 3, 12, 6, 11, 12, 5, 6, 12, 9, 5, 12, 0, 9, 12, 1, 0, 12, 10, 1, 12, 2, 10, 12, 3, 2, 12 },
01224 { 5, 6, 12, 9, 5, 12, 0, 9, 12, 3, 0, 12, 11, 3, 12, 2, 11, 12, 1, 2, 12, 10, 1, 12, 6, 10, 12 },
01225 { 12, 5, 6, 12, 6, 11, 12, 11, 3, 12, 3, 0, 12, 0, 9, 12, 9, 1, 12, 1, 2, 12, 2, 10, 12, 10, 5 }
01226 },
01227 {
01228 { 9, 1, 12, 4, 9, 12, 7, 4, 12, 11, 7, 12, 2, 11, 12, 3, 2, 12, 8, 3, 12, 0, 8, 12, 1, 0, 12 },
01229 { 7, 4, 12, 11, 7, 12, 2, 11, 12, 1, 2, 12, 9, 1, 12, 0, 9, 12, 3, 0, 12, 8, 3, 12, 4, 8, 12 },
01230 { 12, 7, 4, 12, 4, 9, 12, 9, 1, 12, 1, 2, 12, 2, 11, 12, 11, 3, 12, 3, 0, 12, 0, 8, 12, 8, 7 }
01231 },
01232 {
01233 { 12, 5, 9, 12, 9, 0, 12, 0, 3, 12, 3, 11, 12, 11, 6, 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5 },
01234 { 12, 0, 3, 12, 3, 11, 12, 11, 6, 12, 6, 5, 12, 5, 9, 12, 9, 4, 12, 4, 7, 12, 7, 8, 12, 8, 0 },
01235 { 0, 3, 12, 9, 0, 12, 5, 9, 12, 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12, 8, 4, 12, 3, 8, 12 }
01236 },
01237 {
01238 { 8, 0, 12, 7, 8, 12, 6, 7, 12, 10, 6, 12, 1, 10, 12, 2, 1, 12, 11, 2, 12, 3, 11, 12, 0, 3, 12 },
01239 { 6, 7, 12, 10, 6, 12, 1, 10, 12, 0, 1, 12, 8, 0, 12, 3, 8, 12, 2, 3, 12, 11, 2, 12, 7, 11, 12 },
01240 { 12, 6, 7, 12, 7, 8, 12, 8, 0, 12, 0, 1, 12, 1, 10, 12, 10, 2, 12, 2, 3, 12, 3, 11, 12, 11, 6 }
01241 },
01242 {
01243 { 10, 2, 12, 5, 10, 12, 4, 5, 12, 8, 4, 12, 3, 8, 12, 0, 3, 12, 9, 0, 12, 1, 9, 12, 2, 1, 12 },
01244 { 4, 5, 12, 8, 4, 12, 3, 8, 12, 2, 3, 12, 10, 2, 12, 1, 10, 12, 0, 1, 12, 9, 0, 12, 5, 9, 12 },
01245 { 12, 4, 5, 12, 5, 10, 12, 10, 2, 12, 2, 3, 12, 3, 8, 12, 8, 0, 12, 0, 1, 12, 1, 9, 12, 9, 4 } }
01246 };
01247 return &tiling7_3[config][u][0];
01248 };
01249
01250
01251
01261
01262 static const char* Tiling7_4_1(unsigned char config)
01263 {
01264 static const char tiling7_4_1[16][15] = {
01265 { 3, 4, 8, 4, 3, 10, 2, 10, 3, 4, 10, 5, 9, 1, 0 },
01266 { 1, 6, 10, 6, 1, 8, 0, 8, 1, 6, 8, 7, 11, 3, 2 },
01267 { 11, 3, 6, 9, 6, 3, 6, 9, 5, 0, 9, 3, 7, 4, 8 },
01268 { 2, 7, 11, 7, 2, 9, 1, 9, 2, 7, 9, 4, 8, 0, 3 },
01269 { 0, 5, 9, 5, 0, 11, 3, 11, 0, 5, 11, 6, 10, 2, 1 },
01270 { 8, 0, 7, 10, 7, 0, 7, 10, 6, 1, 10, 0, 4, 5, 9 },
01271 { 9, 1, 4, 11, 4, 1, 4, 11, 7, 2, 11, 1, 5, 6, 10 },
01272 { 10, 2, 5, 8, 5, 2, 5, 8, 4, 3, 8, 2, 6, 7, 11 },
01273 { 5, 2, 10, 2, 5, 8, 4, 8, 5, 2, 8, 3, 11, 7, 6 },
01274 { 4, 1, 9, 1, 4, 11, 7, 11, 4, 1, 11, 2, 10, 6, 5 },
01275 { 7, 0, 8, 0, 7, 10, 6, 10, 7, 0, 10, 1, 9, 5, 4 },
01276 { 9, 5, 0, 11, 0, 5, 0, 11, 3, 6, 11, 5, 1, 2, 10 },
01277 { 11, 7, 2, 9, 2, 7, 2, 9, 1, 4, 9, 7, 3, 0, 8 },
01278 { 6, 3, 11, 3, 6, 9, 5, 9, 6, 3, 9, 0, 8, 4, 7 },
01279 { 10, 6, 1, 8, 1, 6, 1, 8, 0, 7, 8, 6, 2, 3, 11 },
01280 { 8, 4, 3, 10, 3, 4, 3, 10, 2, 5, 10, 4, 0, 1, 9 }
01281 };
01282 return &tiling7_4_1[config][0];
01283 };
01284
01285
01295
01296 static const char* Tiling7_4_2(unsigned char config)
01297 {
01298 static const char tiling7_4_2[16][27] = {
01299 { 9, 4, 8, 4, 9, 5, 10, 5, 9, 1, 10, 9, 10, 1, 2, 0, 2, 1, 2, 0, 3, 8, 3, 0, 9, 8, 0 },
01300 { 11, 6, 10, 6, 11, 7, 8, 7, 11, 3, 8, 11, 8, 3, 0, 2, 0, 3, 0, 2, 1, 10, 1, 2, 11, 10, 2 },
01301 { 11, 3, 8, 0, 8, 3, 8, 0, 9, 8, 9, 4, 5, 4, 9, 4, 5, 7, 6, 7, 5, 7, 6, 11, 7, 11, 8 },
01302 { 8, 7, 11, 7, 8, 4, 9, 4, 8, 0, 9, 8, 9, 0, 1, 3, 1, 0, 1, 3, 2, 11, 2, 3, 8, 11, 3 },
01303 { 10, 5, 9, 5, 10, 6, 11, 6, 10, 2, 11, 10, 11, 2, 3, 1, 3, 2, 3, 1, 0, 9, 0, 1, 10, 9, 1 },
01304 { 8, 0, 9, 1, 9, 0, 9, 1, 10, 9, 10, 5, 6, 5, 10, 5, 6, 4, 7, 4, 6, 4, 7, 8, 4, 8, 9 },
01305 { 9, 1, 10, 2, 10, 1, 10, 2, 11, 10, 11, 6, 7, 6, 11, 6, 7, 5, 4, 5, 7, 5, 4, 9, 5, 9, 10 },
01306 { 10, 2, 11, 3, 11, 2, 11, 3, 8, 11, 8, 7, 4, 7, 8, 7, 4, 6, 5, 6, 4, 6, 5, 10, 6, 10, 11 },
01307 { 11, 2, 10, 2, 11, 3, 8, 3, 11, 7, 8, 11, 8, 7, 4, 6, 4, 7, 4, 6, 5, 10, 5, 6, 11, 10, 6 },
01308 { 10, 1, 9, 1, 10, 2, 11, 2, 10, 6, 11, 10, 11, 6, 7, 5, 7, 6, 7, 5, 4, 9, 4, 5, 10, 9, 5 },
01309 { 9, 0, 8, 0, 9, 1, 10, 1, 9, 5, 10, 9, 10, 5, 6, 4, 6, 5, 6, 4, 7, 8, 7, 4, 9, 8, 4 },
01310 { 9, 5, 10, 6, 10, 5, 10, 6, 11, 10, 11, 2, 3, 2, 11, 2, 3, 1, 0, 1, 3, 1, 0, 9, 1, 9, 10 },
01311 { 11, 7, 8, 4, 8, 7, 8, 4, 9, 8, 9, 0, 1, 0, 9, 0, 1, 3, 2, 3, 1, 3, 2, 11, 3, 11, 8 },
01312 { 8, 3, 11, 3, 8, 0, 9, 0, 8, 4, 9, 8, 9, 4, 5, 7, 5, 4, 5, 7, 6, 11, 6, 7, 8, 11, 7 },
01313 { 10, 6, 11, 7, 11, 6, 11, 7, 8, 11, 8, 3, 0, 3, 8, 3, 0, 2, 1, 2, 0, 2, 1, 10, 2, 10, 11 },
01314 { 8, 4, 9, 5, 9, 4, 9, 5, 10, 9, 10, 1, 2, 1, 10, 1, 2, 0, 3, 0, 2, 0, 3, 8, 0, 8, 9 }
01315 };
01316 return &tiling7_4_2[config][0];
01317 };
01318
01319
01320
01321
01331
01332 static const char* Tiling8(unsigned char config)
01333 {
01334 static const char tiling8[6][6] = {
01335 { 9, 8, 10, 10, 8, 11 },
01336 { 1, 5, 3, 3, 5, 7 },
01337 { 0, 4, 2, 4, 6, 2 },
01338 { 0, 2, 4, 4, 2, 6 },
01339 { 1, 3, 5, 3, 7, 5 },
01340 { 9, 10, 8, 10, 11, 8 }
01341 };
01342 return &tiling8[config][0];
01343 };
01344
01345
01346
01356
01357 static const char* Tiling9(unsigned char config)
01358 {
01359 static const char tiling9[8][12] = {
01360 { 2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8 },
01361 { 4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1 },
01362 { 10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8 },
01363 { 3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5 },
01364 { 3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9 },
01365 { 10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0 },
01366 { 4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2 },
01367 { 2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4 }
01368 };
01369 return &tiling9[config][0];
01370 };
01371
01372
01373
01374
01392
01393 static const char Test10(unsigned char config, int u)
01394 {
01395 static const char test10[6][3] = {
01396 { 2, 4, 7 },
01397 { 5, 6, 7 },
01398 { 1, 3, 7 },
01399 { 1, 3, 7 },
01400 { 5, 6, 7 },
01401 { 2, 4, 7 }
01402 };
01403 return test10[config][u];
01404 };
01405
01406
01407
01417
01418 static const char* Tiling10_1_1(unsigned char config)
01419 {
01420 static const char tiling10_1_1[6][12] = {
01421 { 5, 10, 7, 11, 7, 10, 8, 1, 9, 1, 8, 3 },
01422 { 1, 2, 5, 6, 5, 2, 4, 3, 0, 3, 4, 7 },
01423 { 11, 0, 8, 0, 11, 2, 4, 9, 6, 10, 6, 9 },
01424 { 9, 0, 10, 2, 10, 0, 6, 8, 4, 8, 6, 11 },
01425 { 7, 2, 3, 2, 7, 6, 0, 1, 4, 5, 4, 1 },
01426 { 7, 9, 5, 9, 7, 8, 10, 1, 11, 3, 11, 1 }
01427 };
01428 return &tiling10_1_1[config][0];
01429 };
01430
01431
01432
01442
01443 static const char* Tiling10_1_1_(unsigned char config)
01444 {
01445 static const char tiling10_1_1_[6][12] = {
01446 { 5, 9, 7, 8, 7, 9, 11, 1, 10, 1, 11, 3 },
01447 { 3, 2, 7, 6, 7, 2, 4, 1, 0, 1, 4, 5 },
01448 { 10, 0, 9, 0, 10, 2, 4, 8, 6, 11, 6, 8 },
01449 { 8, 0, 11, 2, 11, 0, 6, 9, 4, 9, 6, 10 },
01450 { 5, 2, 1, 2, 5, 6, 0, 3, 4, 7, 4, 3 },
01451 { 7, 10, 5, 10, 7, 11, 9, 1, 8, 3, 8, 1 }
01452 };
01453 return &tiling10_1_1_[config][0];
01454 };
01455
01456
01457
01467
01468 static const char* Tiling10_1_2(unsigned char config)
01469 {
01470 static const char tiling10_1_2[6][24] = {
01471 { 3, 11, 7, 3, 7, 8, 9, 8, 7, 5, 9, 7, 9, 5, 10, 9, 10, 1, 3, 1, 10, 11, 3, 10 },
01472 { 7, 6, 5, 7, 5, 4, 0, 4, 5, 1, 0, 5, 0, 1, 2, 0, 2, 3, 7, 3, 2, 6, 7, 2 },
01473 { 11, 2, 10, 6, 11, 10, 11, 6, 4, 11, 4, 8, 0, 8, 4, 9, 0, 4, 0, 9, 10, 0, 10, 2 },
01474 { 11, 2, 10, 11, 10, 6, 4, 6, 10, 9, 4, 10, 4, 9, 0, 4, 0, 8, 11, 8, 0, 2, 11, 0 },
01475 { 7, 6, 5, 4, 7, 5, 7, 4, 0, 7, 0, 3, 2, 3, 0, 1, 2, 0, 2, 1, 5, 2, 5, 6 },
01476 { 7, 8, 3, 11, 7, 3, 7, 11, 10, 7, 10, 5, 9, 5, 10, 1, 9, 10, 9, 1, 3, 9, 3, 8 }
01477 };
01478 return &tiling10_1_2[config][0];
01479 };
01480
01481
01491
01492 static const char* Tiling10_2(unsigned char config)
01493 {
01494 static const char tiling10_2[6][24] = {
01495 { 12, 5, 9, 12, 9, 8, 12, 8, 3, 12, 3, 1, 12, 1, 10, 12, 10, 11, 12, 11, 7, 12, 7, 5 },
01496 { 12, 1, 0, 12, 0, 4, 12, 4, 7, 12, 7, 3, 12, 3, 2, 12, 2, 6, 12, 6, 5, 12, 5, 1 },
01497 { 4, 8, 12, 6, 4, 12, 10, 6, 12, 9, 10, 12, 0, 9, 12, 2, 0, 12, 11, 2, 12, 8, 11, 12 },
01498 { 12, 9, 4, 12, 4, 6, 12, 6, 11, 12, 11, 8, 12, 8, 0, 12, 0, 2, 12, 2, 10, 12, 10, 9 },
01499 { 0, 3, 12, 4, 0, 12, 5, 4, 12, 1, 5, 12, 2, 1, 12, 6, 2, 12, 7, 6, 12, 3, 7, 12 },
01500 { 10, 5, 12, 11, 10, 12, 3, 11, 12, 1, 3, 12, 9, 1, 12, 8, 9, 12, 7, 8, 12, 5, 7, 12 }
01501 };
01502 return &tiling10_2[config][0];
01503 };
01504
01505
01506
01507
01517
01518 static const char* Tiling10_2_(unsigned char config)
01519 {
01520 static const char tiling10_2_[6][24] = {
01521 { 8, 7, 12, 9, 8, 12, 1, 9, 12, 3, 1, 12, 11, 3, 12, 10, 11, 12, 5, 10, 12, 7, 5, 12 },
01522 { 4, 5, 12, 0, 4, 12, 3, 0, 12, 7, 3, 12, 6, 7, 12, 2, 6, 12, 1, 2, 12, 5, 1, 12 },
01523 { 12, 11, 6, 12, 6, 4, 12, 4, 9, 12, 9, 10, 12, 10, 2, 12, 2, 0, 12, 0, 8, 12, 8, 11 },
01524 { 6, 10, 12, 4, 6, 12, 8, 4, 12, 11, 8, 12, 2, 11, 12, 0, 2, 12, 9, 0, 12, 10, 9, 12 },
01525 { 12, 7, 4, 12, 4, 0, 12, 0, 1, 12, 1, 5, 12, 5, 6, 12, 6, 2, 12, 2, 3, 12, 3, 7 },
01526 { 12, 7, 11, 12, 11, 10, 12, 10, 1, 12, 1, 3, 12, 3, 8, 12, 8, 9, 12, 9, 5, 12, 5, 7 }
01527 };
01528 return &tiling10_2_[config][0];
01529 };
01530
01531
01532
01533
01543
01544 static const char* Tiling11(unsigned char config)
01545 {
01546 static const char tiling11[12][12] = {
01547 { 2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4 },
01548 { 1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6 },
01549 { 8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10 },
01550 { 0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6 },
01551 { 9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11 },
01552 { 5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0 },
01553 { 5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3 },
01554 { 9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7 },
01555 { 0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11 },
01556 { 8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1 },
01557 { 1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7 },
01558 { 2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9 }
01559 };
01560 return &tiling11[config][0];
01561 };
01562
01563
01564
01565
01566
01585
01586 static const char Test12(unsigned char config, int u)
01587 {
01588 static const char test12[24][4] = {
01589 { 4, 3, 7, 11 },
01590 { 3, 2, 7, 10 },
01591 { 2, 6, 7, 5 },
01592 { 6, 4, 7, 7 },
01593 { 2, 1, 7, 9 },
01594 { 5, 2, 7, 1 },
01595 { 5, 3, 7, 2 },
01596 { 5, 1, 7, 0 },
01597 { 5, 4, 7, 3 },
01598 { 6, 3, 7, 6 },
01599 { 1, 6, 7, 4 },
01600 { 1, 4, 7, 8 },
01601 { 4, 1, 7, 8 },
01602 { 6, 1, 7, 4 },
01603 { 3, 6, 7, 6 },
01604 { 4, 5, 7, 3 },
01605 { 1, 5, 7, 0 },
01606 { 3, 5, 7, 2 },
01607 { 2, 5, 7, 1 },
01608 { 1, 2, 7, 9 },
01609 { 4, 6, 7, 7 },
01610 { 6, 2, 7, 5 },
01611 { 2, 3, 7, 10 },
01612 { 3, 4, 7, 11 }
01613 };
01614 return test12[config][u];
01615 };
01616
01617
01618
01628
01629 static const char* Tiling12_1_1(unsigned char config)
01630 {
01631 static const char tiling12_1_1[24][12] = {
01632 { 7, 6, 11, 10, 3, 2, 3, 10, 8, 9, 8, 10 },
01633 { 6, 5, 10, 9, 2, 1, 2, 9, 11, 8, 11, 9 },
01634 { 10, 6, 5, 7, 9, 4, 9, 7, 1, 3, 1, 7 },
01635 { 7, 6, 11, 4, 8, 5, 3, 5, 8, 5, 3, 1 },
01636 { 5, 4, 9, 8, 1, 0, 1, 8, 10, 11, 10, 8 },
01637 { 1, 2, 10, 0, 9, 3, 5, 3, 9, 3, 5, 7 },
01638 { 10, 1, 2, 0, 11, 3, 11, 0, 6, 4, 6, 0 },
01639 { 8, 3, 0, 2, 9, 1, 9, 2, 4, 6, 4, 2 },
01640 { 3, 0, 8, 2, 11, 1, 7, 1, 11, 1, 7, 5 },
01641 { 6, 5, 10, 7, 11, 4, 2, 4, 11, 4, 2, 0 },
01642 { 9, 5, 4, 6, 8, 7, 8, 6, 0, 2, 0, 6 },
01643 { 8, 3, 0, 7, 4, 11, 9, 11, 4, 11, 9, 10 },
01644 { 4, 7, 8, 11, 0, 3, 0, 11, 9, 10, 9, 11 },
01645 { 4, 7, 8, 5, 9, 6, 0, 6, 9, 6, 0, 2 },
01646 { 11, 7, 6, 4, 10, 5, 10, 4, 2, 0, 2, 4 },
01647 { 11, 2, 3, 1, 8, 0, 8, 1, 7, 5, 7, 1 },
01648 { 0, 1, 9, 3, 8, 2, 4, 2, 8, 2, 4, 6 },
01649 { 2, 3, 11, 1, 10, 0, 6, 0, 10, 0, 6, 4 },
01650 { 9, 0, 1, 3, 10, 2, 10, 3, 5, 7, 5, 3 },
01651 { 9, 0, 1, 4, 5, 8, 10, 8, 5, 8, 10, 11 },
01652 { 8, 4, 7, 5, 11, 6, 11, 5, 3, 1, 3, 5 },
01653 { 5, 4, 9, 6, 10, 7, 1, 7, 10, 7, 1, 3 },
01654 { 10, 1, 2, 5, 6, 9, 11, 9, 6, 9, 11, 8 },
01655 { 11, 2, 3, 6, 7, 10, 8, 10, 7, 10, 8, 9 }
01656 };
01657 return &tiling12_1_1[config][0];
01658 };
01659
01660
01661
01671
01672 static const char* Tiling12_1_1_(unsigned char config)
01673 {
01674 static const char tiling12_1_1_[24][12] = {
01675 { 3, 2, 11, 10, 7, 6, 7, 10, 8, 9, 8, 10 },
01676 { 2, 1, 10, 9, 6, 5, 6, 9, 11, 8, 11, 9 },
01677 { 9, 4, 5, 7, 10, 6, 10, 7, 1, 3, 1, 7 },
01678 { 7, 4, 8, 6, 11, 5, 3, 5, 11, 5, 3, 1 },
01679 { 1, 0, 9, 8, 5, 4, 5, 8, 10, 11, 10, 8 },
01680 { 1, 0, 9, 2, 10, 3, 5, 3, 10, 3, 5, 7 },
01681 { 11, 3, 2, 0, 10, 1, 10, 0, 6, 4, 6, 0 },
01682 { 9, 1, 0, 2, 8, 3, 8, 2, 4, 6, 4, 2 },
01683 { 3, 2, 11, 0, 8, 1, 7, 1, 8, 1, 7, 5 },
01684 { 6, 7, 11, 5, 10, 4, 2, 4, 10, 4, 2, 0 },
01685 { 8, 7, 4, 6, 9, 5, 9, 6, 0, 2, 0, 6 },
01686 { 8, 7, 4, 3, 0, 11, 9, 11, 0, 11, 9, 10 },
01687 { 0, 3, 8, 11, 4, 7, 4, 11, 9, 10, 9, 11 },
01688 { 4, 5, 9, 7, 8, 6, 0, 6, 8, 6, 0, 2 },
01689 { 10, 5, 6, 4, 11, 7, 11, 4, 2, 0, 2, 4 },
01690 { 8, 0, 3, 1, 11, 2, 11, 1, 7, 5, 7, 1 },
01691 { 0, 3, 8, 1, 9, 2, 4, 2, 9, 2, 4, 6 },
01692 { 2, 1, 10, 3, 11, 0, 6, 0, 11, 0, 6, 4 },
01693 { 10, 2, 1, 3, 9, 0, 9, 3, 5, 7, 5, 3 },
01694 { 9, 4, 5, 0, 1, 8, 10, 8, 1, 8, 10, 11 },
01695 { 11, 6, 7, 5, 8, 4, 8, 5, 3, 1, 3, 5 },
01696 { 5, 6, 10, 4, 9, 7, 1, 7, 9, 7, 1, 3 },
01697 { 10, 5, 6, 1, 2, 9, 11, 9, 2, 9, 11, 8 },
01698 { 11, 6, 7, 2, 3, 10, 8, 10, 3, 10, 8, 9 }
01699 };
01700 return &tiling12_1_1_[config][0];
01701 };
01702
01703
01704
01714
01715 static const char* Tiling12_1_2(unsigned char config)
01716 {
01717 static const char tiling12_1_2[24][24] = {
01718 { 7, 3, 11, 3, 7, 8, 9, 8, 7, 6, 9, 7, 9, 6, 10, 2, 10, 6, 11, 2, 6, 2, 11, 3 },
01719 { 6, 2, 10, 2, 6, 11, 8, 11, 6, 5, 8, 6, 8, 5, 9, 1, 9, 5, 10, 1, 5, 1, 10, 2 },
01720 { 10, 9, 5, 9, 10, 1, 3, 1, 10, 6, 3, 10, 3, 6, 7, 4, 7, 6, 5, 4, 6, 4, 5, 9 },
01721 { 7, 8, 11, 3, 11, 8, 11, 3, 1, 11, 1, 6, 5, 6, 1, 6, 5, 4, 6, 4, 7, 8, 7, 4 },
01722 { 5, 1, 9, 1, 5, 10, 11, 10, 5, 4, 11, 5, 11, 4, 8, 0, 8, 4, 9, 0, 4, 0, 9, 1 },
01723 { 1, 9, 10, 5, 10, 9, 10, 5, 7, 10, 7, 2, 3, 2, 7, 2, 3, 0, 2, 0, 1, 9, 1, 0 },
01724 { 10, 11, 2, 11, 10, 6, 4, 6, 10, 1, 4, 10, 4, 1, 0, 3, 0, 1, 2, 3, 1, 3, 2, 11 },
01725 { 8, 9, 0, 9, 8, 4, 6, 4, 8, 3, 6, 8, 6, 3, 2, 1, 2, 3, 0, 1, 3, 1, 0, 9 },
01726 { 3, 11, 8, 7, 8, 11, 8, 7, 5, 8, 5, 0, 1, 0, 5, 0, 1, 2, 0, 2, 3, 11, 3, 2 },
01727 { 6, 11, 10, 2, 10, 11, 10, 2, 0, 10, 0, 5, 4, 5, 0, 5, 4, 7, 5, 7, 6, 11, 6, 7 },
01728 { 9, 8, 4, 8, 9, 0, 2, 0, 9, 5, 2, 9, 2, 5, 6, 7, 6, 5, 4, 7, 5, 7, 4, 8 },
01729 { 8, 4, 0, 9, 0, 4, 0, 9, 10, 0, 10, 3, 11, 3, 10, 3, 11, 7, 3, 7, 8, 4, 8, 7 },
01730 { 4, 0, 8, 0, 4, 9, 10, 9, 4, 7, 10, 4, 10, 7, 11, 3, 11, 7, 8, 3, 7, 3, 8, 0 },
01731 { 4, 9, 8, 0, 8, 9, 8, 0, 2, 8, 2, 7, 6, 7, 2, 7, 6, 5, 7, 5, 4, 9, 4, 5 },
01732 { 11, 10, 6, 10, 11, 2, 0, 2, 11, 7, 0, 11, 0, 7, 4, 5, 4, 7, 6, 5, 7, 5, 6, 10 },
01733 { 11, 8, 3, 8, 11, 7, 5, 7, 11, 2, 5, 11, 5, 2, 1, 0, 1, 2, 3, 0, 2, 0, 3, 8 },
01734 { 0, 8, 9, 4, 9, 8, 9, 4, 6, 9, 6, 1, 2, 1, 6, 1, 2, 3, 1, 3, 0, 8, 0, 3 },
01735 { 2, 10, 11, 6, 11, 10, 11, 6, 4, 11, 4, 3, 0, 3, 4, 3, 0, 1, 3, 1, 2, 10, 2, 1 },
01736 { 9, 10, 1, 10, 9, 5, 7, 5, 9, 0, 7, 9, 7, 0, 3, 2, 3, 0, 1, 2, 0, 2, 1, 10 },
01737 { 9, 5, 1, 10, 1, 5, 1, 10, 11, 1, 11, 0, 8, 0, 11, 0, 8, 4, 0, 4, 9, 5, 9, 4 },
01738 { 8, 11, 7, 11, 8, 3, 1, 3, 8, 4, 1, 8, 1, 4, 5, 6, 5, 4, 7, 6, 4, 6, 7, 11 },
01739 { 5, 10, 9, 1, 9, 10, 9, 1, 3, 9, 3, 4, 7, 4, 3, 4, 7, 6, 4, 6, 5, 10, 5, 6 },
01740 { 10, 6, 2, 11, 2, 6, 2, 11, 8, 2, 8, 1, 9, 1, 8, 1, 9, 5, 1, 5, 10, 6, 10, 5 },
01741 { 11, 7, 3, 8, 3, 7, 3, 8, 9, 3, 9, 2, 10, 2, 9, 2, 10, 6, 2, 6, 11, 7, 11, 6 }
01742 };
01743 return &tiling12_1_2[config][0];
01744 };
01745
01746
01747
01757
01758 static const char* Tiling12_2(unsigned char config)
01759 {
01760 static const char tiling12_2[24][24] = {
01761 { 9, 8, 12, 10, 9, 12, 2, 10, 12, 3, 2, 12, 11, 3, 12, 6, 11, 12, 7, 6, 12, 8, 7, 12 },
01762 { 8, 11, 12, 9, 8, 12, 1, 9, 12, 2, 1, 12, 10, 2, 12, 5, 10, 12, 6, 5, 12, 11, 6, 12 },
01763 { 3, 1, 12, 7, 3, 12, 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12, 10, 6, 12, 1, 10, 12 },
01764 { 12, 3, 1, 12, 1, 5, 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4, 12, 4, 8, 12, 8, 3 },
01765 { 11, 10, 12, 8, 11, 12, 0, 8, 12, 1, 0, 12, 9, 1, 12, 4, 9, 12, 5, 4, 12, 10, 5, 12 },
01766 { 12, 5, 7, 12, 7, 3, 12, 3, 2, 12, 2, 10, 12, 10, 1, 12, 1, 0, 12, 0, 9, 12, 9, 5 },
01767 { 4, 6, 12, 0, 4, 12, 1, 0, 12, 10, 1, 12, 2, 10, 12, 3, 2, 12, 11, 3, 12, 6, 11, 12 },
01768 { 6, 4, 12, 2, 6, 12, 3, 2, 12, 8, 3, 12, 0, 8, 12, 1, 0, 12, 9, 1, 12, 4, 9, 12 },
01769 { 12, 7, 5, 12, 5, 1, 12, 1, 0, 12, 0, 8, 12, 8, 3, 12, 3, 2, 12, 2, 11, 12, 11, 7 },
01770 { 12, 2, 0, 12, 0, 4, 12, 4, 5, 12, 5, 10, 12, 10, 6, 12, 6, 7, 12, 7, 11, 12, 11, 2 },
01771 { 2, 0, 12, 6, 2, 12, 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12, 9, 5, 12, 0, 9, 12 },
01772 { 12, 9, 10, 12, 10, 11, 12, 11, 7, 12, 7, 4, 12, 4, 8, 12, 8, 3, 12, 3, 0, 12, 0, 9 },
01773 { 10, 9, 12, 11, 10, 12, 7, 11, 12, 4, 7, 12, 8, 4, 12, 3, 8, 12, 0, 3, 12, 9, 0, 12 },
01774 { 12, 0, 2, 12, 2, 6, 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5, 12, 5, 9, 12, 9, 0 },
01775 { 0, 2, 12, 4, 0, 12, 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12, 11, 7, 12, 2, 11, 12 },
01776 { 5, 7, 12, 1, 5, 12, 0, 1, 12, 8, 0, 12, 3, 8, 12, 2, 3, 12, 11, 2, 12, 7, 11, 12 },
01777 { 12, 4, 6, 12, 6, 2, 12, 2, 3, 12, 3, 8, 12, 8, 0, 12, 0, 1, 12, 1, 9, 12, 9, 4 },
01778 { 12, 6, 4, 12, 4, 0, 12, 0, 1, 12, 1, 10, 12, 10, 2, 12, 2, 3, 12, 3, 11, 12, 11, 6 },
01779 { 7, 5, 12, 3, 7, 12, 2, 3, 12, 10, 2, 12, 1, 10, 12, 0, 1, 12, 9, 0, 12, 5, 9, 12 },
01780 { 12, 10, 11, 12, 11, 8, 12, 8, 0, 12, 0, 1, 12, 1, 9, 12, 9, 4, 12, 4, 5, 12, 5, 10 },
01781 { 1, 3, 12, 5, 1, 12, 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12, 8, 4, 12, 3, 8, 12 },
01782 { 12, 1, 3, 12, 3, 7, 12, 7, 4, 12, 4, 9, 12, 9, 5, 12, 5, 6, 12, 6, 10, 12, 10, 1 },
01783 { 12, 11, 8, 12, 8, 9, 12, 9, 1, 12, 1, 2, 12, 2, 10, 12, 10, 5, 12, 5, 6, 12, 6, 11 },
01784 { 12, 8, 9, 12, 9, 10, 12, 10, 2, 12, 2, 3, 12, 3, 11, 12, 11, 6, 12, 6, 7, 12, 7, 8 }
01785 };
01786 return &tiling12_2[config][0];
01787 };
01788
01789
01790
01800
01801 static const char* Tiling12_2_(unsigned char config)
01802 {
01803 static const char tiling12_2_[24][24] = {
01804 { 12, 2, 11, 12, 11, 7, 12, 7, 6, 12, 6, 10, 12, 10, 9, 12, 9, 8, 12, 8, 3, 12, 3, 2 },
01805 { 12, 1, 10, 12, 10, 6, 12, 6, 5, 12, 5, 9, 12, 9, 8, 12, 8, 11, 12, 11, 2, 12, 2, 1 },
01806 { 12, 4, 5, 12, 5, 10, 12, 10, 6, 12, 6, 7, 12, 7, 3, 12, 3, 1, 12, 1, 9, 12, 9, 4 },
01807 { 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12, 1, 5, 12, 3, 1, 12, 11, 3, 12, 6, 11, 12 },
01808 { 12, 0, 9, 12, 9, 5, 12, 5, 4, 12, 4, 8, 12, 8, 11, 12, 11, 10, 12, 10, 1, 12, 1, 0 },
01809 { 1, 2, 12, 9, 1, 12, 0, 9, 12, 3, 0, 12, 7, 3, 12, 5, 7, 12, 10, 5, 12, 2, 10, 12 },
01810 { 12, 1, 2, 12, 2, 11, 12, 11, 3, 12, 3, 0, 12, 0, 4, 12, 4, 6, 12, 6, 10, 12, 10, 1 },
01811 { 12, 3, 0, 12, 0, 9, 12, 9, 1, 12, 1, 2, 12, 2, 6, 12, 6, 4, 12, 4, 8, 12, 8, 3 },
01812 { 3, 0, 12, 11, 3, 12, 2, 11, 12, 1, 2, 12, 5, 1, 12, 7, 5, 12, 8, 7, 12, 0, 8, 12 },
01813 { 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12, 0, 4, 12, 2, 0, 12, 10, 2, 12, 5, 10, 12 },
01814 { 12, 7, 4, 12, 4, 9, 12, 9, 5, 12, 5, 6, 12, 6, 2, 12, 2, 0, 12, 0, 8, 12, 8, 7 },
01815 { 8, 7, 12, 0, 8, 12, 3, 0, 12, 11, 3, 12, 10, 11, 12, 9, 10, 12, 4, 9, 12, 7, 4, 12 },
01816 { 12, 7, 8, 12, 8, 0, 12, 0, 3, 12, 3, 11, 12, 11, 10, 12, 10, 9, 12, 9, 4, 12, 4, 7 },
01817 { 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12, 2, 6, 12, 0, 2, 12, 8, 0, 12, 7, 8, 12 },
01818 { 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4, 12, 4, 0, 12, 0, 2, 12, 2, 10, 12, 10, 5 },
01819 { 12, 0, 3, 12, 3, 11, 12, 11, 2, 12, 2, 1, 12, 1, 5, 12, 5, 7, 12, 7, 8, 12, 8, 0 },
01820 { 0, 3, 12, 9, 0, 12, 1, 9, 12, 2, 1, 12, 6, 2, 12, 4, 6, 12, 8, 4, 12, 3, 8, 12 },
01821 { 2, 1, 12, 11, 2, 12, 3, 11, 12, 0, 3, 12, 4, 0, 12, 6, 4, 12, 10, 6, 12, 1, 10, 12 },
01822 { 12, 2, 1, 12, 1, 9, 12, 9, 0, 12, 0, 3, 12, 3, 7, 12, 7, 5, 12, 5, 10, 12, 10, 2 },
01823 { 9, 0, 12, 5, 9, 12, 4, 5, 12, 8, 4, 12, 11, 8, 12, 10, 11, 12, 1, 10, 12, 0, 1, 12 },
01824 { 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5, 12, 5, 1, 12, 1, 3, 12, 3, 11, 12, 11, 6 },
01825 { 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12, 3, 7, 12, 1, 3, 12, 9, 1, 12, 4, 9, 12 },
01826 { 10, 1, 12, 6, 10, 12, 5, 6, 12, 9, 5, 12, 8, 9, 12, 11, 8, 12, 2, 11, 12, 1, 2, 12 },
01827 { 11, 2, 12, 7, 11, 12, 6, 7, 12, 10, 6, 12, 9, 10, 12, 8, 9, 12, 3, 8, 12, 2, 3, 12 }
01828 };
01829 return &tiling12_2_[config][0];
01830 };
01831
01832
01833
01834
01846
01847
01848 static const char Test13(unsigned char config, int u)
01849 {
01850 static const char test13[2][7] = {
01851 { 1,2,3,4,5,6,7 },
01852 { 2,3,4,1,5,6,7 },
01853 };
01854 return test13[config][u];
01855 };
01856
01857
01869
01870
01871 static const char Subconfig13(unsigned char config)
01872 {
01873 static const char subconfig13[64] = {
01874 0,
01875 1,
01876 2,
01877 7,
01878 3,
01879 -1,
01880 11,
01881 -1,
01882 4,
01883 8,
01884 -1,
01885 -1,
01886 14,
01887 -1,
01888 -1,
01889 -1,
01890 5,
01891 9,
01892 12,
01893 23,
01894 15,
01895 -1,
01896 21,
01897 38,
01898 17,
01899 20,
01900 -1,
01901 36,
01902 26,
01903 33,
01904 30,
01905 44,
01906 6,
01907 10,
01908 13,
01909 19,
01910 16,
01911 -1,
01912 25,
01913 37,
01914 18,
01915 24,
01916 -1,
01917 35,
01918 22,
01919 32,
01920 29,
01921 43,
01922 -1,
01923 -1,
01924 -1,
01925 34,
01926 -1,
01927 -1,
01928 28,
01929 42,
01930 -1,
01931 31,
01932 -1,
01933 41,
01934 27,
01935 40,
01936 39,
01937 45,
01938 };
01939 return subconfig13[config];
01940 };
01941
01942
01952
01953
01954 static const char* Tiling13_1(unsigned char config)
01955 {
01956 static const char tiling13_1[2][12] = {
01957 { 11, 7, 6, 1, 2, 10, 8, 3, 0, 9, 5, 4 },
01958 { 8, 4, 7, 2, 3, 11, 9, 0, 1, 10, 6, 5 }
01959 };
01960 return &tiling13_1[config][0];
01961 };
01962
01963
01964
01974
01975
01976 static const char* Tiling13_1_(unsigned char config)
01977 {
01978 static const char tiling13_1_[2][12] = {
01979 { 7, 4, 8, 11, 3, 2, 1, 0, 9, 5, 6, 10 },
01980 { 6, 7, 11, 10, 2, 1, 0, 3, 8, 4, 5, 9 }
01981 };
01982 return &tiling13_1_[config][0];
01983 };
01984
01985
01986
01987
01997
01998
01999 static const char* Tiling13_2(unsigned char config, unsigned char u)
02000 {
02001 static const char tiling13_2[2][6][18] = {
02002 {
02003 { 1, 2, 10, 11, 7, 6, 3, 4, 8, 4, 3, 5, 0, 5, 3, 5, 0, 9 },
02004 { 8, 3, 0, 11, 7, 6, 9, 1, 4, 2, 4, 1, 4, 2, 5, 10, 5, 2 },
02005 { 9, 5, 4, 8, 3, 0, 1, 6, 10, 6, 1, 7, 2, 7, 1, 7, 2, 11 },
02006 { 9, 5, 4, 1, 2, 10, 11, 3, 6, 0, 6, 3, 6, 0, 7, 8, 7, 0 },
02007 { 9, 5, 4, 11, 7, 6, 0, 10, 1, 10, 0, 8, 10, 8, 2, 3, 2, 8 },
02008 { 1, 2, 10, 3, 0, 8, 4, 9, 7, 11, 7, 9, 5, 11, 9, 11, 5, 6 }
02009 },
02010 {
02011 { 2, 3, 11, 8, 4, 7, 0, 5, 9, 5, 0, 6, 1, 6, 0, 6, 1, 10 },
02012 { 9, 0, 1, 8, 4, 7, 10, 2, 5, 3, 5, 2, 5, 3, 6, 11, 6, 3 },
02013 { 6, 5, 10, 9, 0, 1, 2, 7, 11, 7, 2, 4, 3, 4, 2, 4, 3, 8 },
02014 { 6, 5, 10, 2, 3, 11, 8, 0, 7, 1, 7, 0, 7, 1, 4, 9, 4, 1 },
02015 { 6, 5, 10, 8, 4, 7, 1, 11, 2, 11, 1, 9, 11, 9, 3, 0, 3, 9 },
02016 { 2, 3, 11, 0, 1, 9, 5, 10, 4, 8, 4, 10, 6, 8, 10, 8, 6, 7 }
02017 } };
02018 return &tiling13_2[config][u][0];
02019 };
02020
02021
02022
02032
02033
02034 static const char* Tiling13_2_(unsigned char config, unsigned char u)
02035 {
02036 static const char tiling13_2_[2][6][18] = {
02037 {
02038 { 10, 5, 6, 11, 3, 2, 7, 0, 8, 0, 7, 1, 4, 1, 7, 1, 4, 9 },
02039 { 11, 3, 2, 7, 4, 8, 9, 5, 0, 6, 0, 5, 0, 6, 1, 10, 1, 6 },
02040 { 1, 0, 9, 7, 4, 8, 5, 2, 10, 2, 5, 3, 6, 3, 5, 3, 6, 11 },
02041 { 10, 5, 6, 1, 0, 9, 11, 7, 2, 4, 2, 7, 2, 4, 3, 8, 3, 4 },
02042 { 10, 5, 6, 7, 4, 8, 2, 11, 1, 9, 1, 11, 3, 9, 11, 9, 3, 0 },
02043 { 11, 3, 2, 9, 1, 0, 4, 10, 5, 10, 4, 8, 10, 8, 6, 7, 6, 8 }
02044 },
02045 {
02046 { 6, 7, 11, 8, 0, 3, 4, 1, 9, 1, 4, 2, 5, 2, 4, 2, 5, 10 },
02047 { 8, 0, 3, 4, 5, 9, 10, 6, 1, 7, 1, 6, 1, 7, 2, 11, 2, 7 },
02048 { 2, 1, 10, 4, 5, 9, 6, 3, 11, 3, 6, 0, 7, 0, 6, 0, 7, 8 },
02049 { 6, 7, 11, 2, 1, 10, 8, 4, 3, 5, 3, 4, 3, 5, 0, 9, 0, 5 },
02050 { 6, 7, 11, 4, 5, 9, 3, 8, 2, 10, 2, 8, 0, 10, 8, 10, 0, 1 },
02051 { 8, 0, 3, 10, 2, 1, 5, 11, 6, 11, 5, 9, 11, 9, 7, 4, 7, 9 }
02052 } };
02053 return &tiling13_2_[config][u][0];
02054 };
02055
02056
02057
02058
02068
02069
02070 static const char* Tiling13_3(unsigned char config, unsigned int u)
02071 {
02072 static const char tiling13_3[2][12][30] = {
02073 {
02074 { 11, 7, 6, 12, 2, 10, 12, 10, 5, 12, 5, 4, 12, 4, 8, 12, 8, 3, 12, 3, 0, 12, 0, 9, 12, 9, 1, 12, 1, 2 },
02075 { 1, 2, 10, 9, 5, 12, 0, 9, 12, 3, 0, 12, 11, 3, 12, 6, 11, 12, 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12 },
02076 { 11, 7, 6, 12, 5, 4, 12, 4, 8, 12, 8, 3, 12, 3, 2, 12, 2, 10, 12, 10, 1, 12, 1, 0, 12, 0, 9, 12, 9, 5 },
02077 { 1, 2, 10, 12, 3, 0, 12, 0, 9, 12, 9, 5, 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4, 12, 4, 8, 12, 8, 3 },
02078 { 8, 3, 0, 11, 7, 12, 2, 11, 12, 1, 2, 12, 9, 1, 12, 4, 9, 12, 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12 },
02079 { 11, 7, 6, 5, 4, 12, 10, 5, 12, 2, 10, 12, 3, 2, 12, 8, 3, 12, 0, 8, 12, 1, 0, 12, 9, 1, 12, 4, 9, 12 },
02080 { 8, 3, 0, 1, 2, 12, 9, 1, 12, 4, 9, 12, 7, 4, 12, 11, 7, 12, 6, 11, 12, 5, 6, 12, 10, 5, 12, 2, 10, 12 },
02081 { 9, 5, 4, 12, 0, 8, 12, 8, 7, 12, 7, 6, 12, 6, 10, 12, 10, 1, 12, 1, 2, 12, 2, 11, 12, 11, 3, 12, 3, 0 },
02082 { 9, 5, 4, 12, 7, 6, 12, 6, 10, 12, 10, 1, 12, 1, 0, 12, 0, 8, 12, 8, 3, 12, 3, 2, 12, 2, 11, 12, 11, 7 },
02083 { 8, 3, 0, 12, 1, 2, 12, 2, 11, 12, 11, 7, 12, 7, 4, 12, 4, 9, 12, 9, 5, 12, 5, 6, 12, 6, 10, 12, 10, 1 },
02084 { 9, 5, 4, 7, 6, 12, 8, 7, 12, 0, 8, 12, 1, 0, 12, 10, 1, 12, 2, 10, 12, 3, 2, 12, 11, 3, 12, 6, 11, 12 },
02085 { 1, 2, 10, 3, 0, 12, 11, 3, 12, 6, 11, 12, 5, 6, 12, 9, 5, 12, 4, 9, 12, 7, 4, 12, 8, 7, 12, 0, 8, 12 }
02086 },
02087 {
02088 { 8, 4, 7, 12, 3, 11, 12, 11, 6, 12, 6, 5, 12, 5, 9, 12, 9, 0, 12, 0, 1, 12, 1, 10, 12, 10, 2, 12, 2, 3 },
02089 { 2, 3, 11, 10, 6, 12, 1, 10, 12, 0, 1, 12, 8, 0, 12, 7, 8, 12, 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12 },
02090 { 8, 4, 7, 12, 6, 5, 12, 5, 9, 12, 9, 0, 12, 0, 3, 12, 3, 11, 12, 11, 2, 12, 2, 1, 12, 1, 10, 12, 10, 6 },
02091 { 2, 3, 11, 12, 0, 1, 12, 1, 10, 12, 10, 6, 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5, 12, 5, 9, 12, 9, 0 },
02092 { 0, 1, 9, 8, 4, 12, 3, 8, 12, 2, 3, 12, 10, 2, 12, 5, 10, 12, 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12 },
02093 { 8, 4, 7, 6, 5, 12, 11, 6, 12, 3, 11, 12, 0, 3, 12, 9, 0, 12, 1, 9, 12, 2, 1, 12, 10, 2, 12, 5, 10, 12 },
02094 { 9, 0, 1, 2, 3, 12, 10, 2, 12, 5, 10, 12, 4, 5, 12, 8, 4, 12, 7, 8, 12, 6, 7, 12, 11, 6, 12, 3, 11, 12 },
02095 { 6, 5, 10, 12, 1, 9, 12, 9, 4, 12, 4, 7, 12, 7, 11, 12, 11, 2, 12, 2, 3, 12, 3, 8, 12, 8, 0, 12, 0, 1 },
02096 { 6, 5, 10, 12, 4, 7, 12, 7, 11, 12, 11, 2, 12, 2, 1, 12, 1, 9, 12, 9, 0, 12, 0, 3, 12, 3, 8, 12, 8, 4 },
02097 { 9, 0, 1, 12, 2, 3, 12, 3, 8, 12, 8, 4, 12, 4, 5, 12, 5, 10, 12, 10, 6, 12, 6, 7, 12, 7, 11, 12, 11, 2 },
02098 { 6, 5, 10, 4, 7, 12, 9, 4, 12, 1, 9, 12, 2, 1, 12, 11, 2, 12, 3, 11, 12, 0, 3, 12, 8, 0, 12, 7, 8, 12 },
02099 { 2, 3, 11, 0, 1, 12, 8, 0, 12, 7, 8, 12, 6, 7, 12, 10, 6, 12, 5, 10, 12, 4, 5, 12, 9, 4, 12, 1, 9, 12 }
02100 } };
02101 return &tiling13_3[config][u][0];
02102 };
02103
02104
02105
02115
02116
02117 static const char* Tiling13_3_(unsigned char config, unsigned char u)
02118 {
02119 static const char tiling13_3_[2][12][30] = {
02120 {
02121 { 3, 2, 11, 8, 7, 12, 0, 8, 12, 1, 0, 12, 10, 1, 12, 6, 10, 12, 5, 6, 12, 9, 5, 12, 4, 9, 12, 7, 4, 12 },
02122 { 5, 6, 10, 12, 2, 11, 12, 11, 7, 12, 7, 4, 12, 4, 9, 12, 9, 1, 12, 1, 0, 12, 0, 8, 12, 8, 3, 12, 3, 2 },
02123 { 10, 5, 6, 12, 7, 4, 12, 4, 9, 12, 9, 1, 12, 1, 2, 12, 2, 11, 12, 11, 3, 12, 3, 0, 12, 0, 8, 12, 8, 7 },
02124 { 11, 3, 2, 12, 1, 0, 12, 0, 8, 12, 8, 7, 12, 7, 6, 12, 6, 10, 12, 10, 5, 12, 5, 4, 12, 4, 9, 12, 9, 1 },
02125 { 7, 4, 8, 11, 3, 12, 6, 11, 12, 5, 6, 12, 9, 5, 12, 0, 9, 12, 1, 0, 12, 10, 1, 12, 2, 10, 12, 3, 2, 12 },
02126 { 7, 4, 8, 5, 6, 12, 9, 5, 12, 0, 9, 12, 3, 0, 12, 11, 3, 12, 2, 11, 12, 1, 2, 12, 10, 1, 12, 6, 10, 12 },
02127 { 11, 3, 2, 1, 0, 12, 10, 1, 12, 6, 10, 12, 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12, 9, 5, 12, 0, 9, 12 },
02128 { 1, 0, 9, 12, 4, 8, 12, 8, 3, 12, 3, 2, 12, 2, 10, 12, 10, 5, 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4 },
02129 { 7, 4, 8, 12, 5, 6, 12, 6, 11, 12, 11, 3, 12, 3, 0, 12, 0, 9, 12, 9, 1, 12, 1, 2, 12, 2, 10, 12, 10, 5 },
02130 { 1, 0, 9, 12, 3, 2, 12, 2, 10, 12, 10, 5, 12, 5, 4, 12, 4, 8, 12, 8, 7, 12, 7, 6, 12, 6, 11, 12, 11, 3 },
02131 { 10, 5, 6, 7, 4, 12, 11, 7, 12, 2, 11, 12, 1, 2, 12, 9, 1, 12, 0, 9, 12, 3, 0, 12, 8, 3, 12, 4, 8, 12 },
02132 { 9, 1, 0, 3, 2, 12, 8, 3, 12, 4, 8, 12, 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12, 11, 7, 12, 2, 11, 12 }
02133 },
02134 {
02135 { 0, 3, 8, 9, 4, 12, 1, 9, 12, 2, 1, 12, 11, 2, 12, 7, 11, 12, 6, 7, 12, 10, 6, 12, 5, 10, 12, 4, 5, 12 },
02136 { 11, 6, 7, 12, 3, 8, 12, 8, 4, 12, 4, 5, 12, 5, 10, 12, 10, 2, 12, 2, 1, 12, 1, 9, 12, 9, 0, 12, 0, 3 },
02137 { 6, 7, 11, 12, 4, 5, 12, 5, 10, 12, 10, 2, 12, 2, 3, 12, 3, 8, 12, 8, 0, 12, 0, 1, 12, 1, 9, 12, 9, 4 },
02138 { 8, 0, 3, 12, 2, 1, 12, 1, 9, 12, 9, 4, 12, 4, 7, 12, 7, 11, 12, 11, 6, 12, 6, 5, 12, 5, 10, 12, 10, 2 },
02139 { 4, 5, 9, 8, 0, 12, 7, 8, 12, 6, 7, 12, 10, 6, 12, 1, 10, 12, 2, 1, 12, 11, 2, 12, 3, 11, 12, 0, 3, 12 },
02140 { 4, 5, 9, 6, 7, 12, 10, 6, 12, 1, 10, 12, 0, 1, 12, 8, 0, 12, 3, 8, 12, 2, 3, 12, 11, 2, 12, 7, 11, 12 },
02141 { 8, 0, 3, 2, 1, 12, 11, 2, 12, 7, 11, 12, 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12, 10, 6, 12, 1, 10, 12 },
02142 { 2, 1, 10, 12, 5, 9, 12, 9, 0, 12, 0, 3, 12, 3, 11, 12, 11, 6, 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5 },
02143 { 4, 5, 9, 12, 6, 7, 12, 7, 8, 12, 8, 0, 12, 0, 1, 12, 1, 10, 12, 10, 2, 12, 2, 3, 12, 3, 11, 12, 11, 6 },
02144 { 2, 1, 10, 12, 0, 3, 12, 3, 11, 12, 11, 6, 12, 6, 5, 12, 5, 9, 12, 9, 4, 12, 4, 7, 12, 7, 8, 12, 8, 0 },
02145 { 6, 7, 11, 4, 5, 12, 8, 4, 12, 3, 8, 12, 2, 3, 12, 10, 2, 12, 1, 10, 12, 0, 1, 12, 9, 0, 12, 5, 9, 12 },
02146 { 10, 2, 1, 0, 3, 12, 9, 0, 12, 5, 9, 12, 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12, 8, 4, 12, 3, 8, 12 }
02147 } };
02148 return &tiling13_3_[config][u][0];
02149 };
02150
02151
02152
02162
02163
02164 static const char* Tiling13_4(unsigned char config, unsigned int u)
02165 {
02166 static const char tiling13_4[2][4][36] = {
02167 {
02168 { 12, 2, 10, 12, 10, 5, 12, 5, 6, 12, 6, 11, 12, 11, 7, 12, 7, 4, 12, 4, 8, 12, 8, 3, 12, 3, 0, 12, 0, 9, 12, 9, 1, 12, 1, 2 },
02169 { 11, 3, 12, 6, 11, 12, 7, 6, 12, 8, 7, 12, 4, 8, 12, 5, 4, 12, 9, 5, 12, 0, 9, 12, 1, 0, 12, 10, 1, 12, 2, 10, 12, 3, 2, 12 },
02170 { 9, 1, 12, 4, 9, 12, 5, 4, 12, 10, 5, 12, 6, 10, 12, 7, 6, 12, 11, 7, 12, 2, 11, 12, 3, 2, 12, 8, 3, 12, 0, 8, 12, 1, 0, 12 },
02171 { 12, 0, 8, 12, 8, 7, 12, 7, 4, 12, 4, 9, 12, 9, 5, 12, 5, 6, 12, 6, 10, 12, 10, 1, 12, 1, 2, 12, 2, 11, 12, 11, 3, 12, 3, 0 }
02172 },
02173 {
02174 { 12, 3, 11, 12, 11, 6, 12, 6, 7, 12, 7, 8, 12, 8, 4, 12, 4, 5, 12, 5, 9, 12, 9, 0, 12, 0, 1, 12, 1, 10, 12, 10, 2, 12, 2, 3 },
02175 { 8, 0, 12, 7, 8, 12, 4, 7, 12, 9, 4, 12, 5, 9, 12, 6, 5, 12, 10, 6, 12, 1, 10, 12, 2, 1, 12, 11, 2, 12, 3, 11, 12, 0, 3, 12 },
02176 { 10, 2, 12, 5, 10, 12, 6, 5, 12, 11, 6, 12, 7, 11, 12, 4, 7, 12, 8, 4, 12, 3, 8, 12, 0, 3, 12, 9, 0, 12, 1, 9, 12, 2, 1, 12 },
02177 { 12, 1, 9, 12, 9, 4, 12, 4, 5, 12, 5, 10, 12, 10, 6, 12, 6, 7, 12, 7, 11, 12, 11, 2, 12, 2, 3, 12, 3, 8, 12, 8, 0, 12, 0, 1 }
02178 } };
02179 return &tiling13_4[config][u][0];
02180 };
02181
02182
02183
02194
02195
02196 static const char* Tiling13_5_1(unsigned char config, int u)
02197 {
02198 static const char tiling13_5_1[2][4][18] = {
02199 {
02200 { 7, 6, 11, 1, 0, 9, 10, 3, 2, 3, 10, 5, 3, 5, 8, 4, 8, 5 },
02201 { 1, 2, 10, 7, 4, 8, 3, 0, 11, 6, 11, 0, 9, 6, 0, 6, 9, 5 },
02202 { 3, 0, 8, 5, 6, 10, 1, 2, 9, 4, 9, 2, 11, 4, 2, 4, 11, 7 },
02203 { 5, 4, 9, 3, 2, 11, 8, 1, 0, 1, 8, 7, 1, 7, 10, 6, 10, 7 }
02204 },
02205 {
02206 { 4, 7, 8, 2, 1, 10, 11, 0, 3, 0, 11, 6, 0, 6, 9, 5, 9, 6 },
02207 { 2, 3, 11, 4, 5, 9, 0, 1, 8, 7, 8, 1, 10, 7, 1, 7, 10, 6 },
02208 { 0, 1, 9, 6, 7, 11, 2, 3, 10, 5, 10, 3, 8, 5, 3, 5, 8, 4 },
02209 { 6, 5, 10, 0, 3, 8, 9, 2, 1, 2, 9, 4, 2, 4, 11, 7, 11, 4 }
02210 } };
02211 return &tiling13_5_1[config][u][0];
02212 };
02213
02214
02224
02225
02226 static const char* Tiling13_5_2(unsigned char config, int u)
02227 {
02228 static const char tiling13_5_2[2][4][30] = {
02229 {
02230 { 1, 0, 9, 7, 4, 8, 7, 8, 3, 7, 3, 11, 2, 11, 3, 11, 2, 10, 11, 10, 6, 5, 6, 10, 6, 5, 7, 4, 7, 5 },
02231 { 7, 4, 8, 11, 3, 2, 6, 11, 2, 10, 6, 2, 6, 10, 5, 9, 5, 10, 1, 9, 10, 9, 1, 0, 2, 0, 1, 0, 2, 3 },
02232 { 5, 6, 10, 9, 1, 0, 4, 9, 0, 8, 4, 0, 4, 8, 7, 11, 7, 8, 3, 11, 8, 11, 3, 2, 0, 2, 3, 2, 0, 1 },
02233 { 3, 2, 11, 5, 6, 10, 5, 10, 1, 5, 1, 9, 0, 9, 1, 9, 0, 8, 9, 8, 4, 4, 8, 7, 4, 7, 5, 6, 5, 7 }
02234 },
02235 {
02236 { 2, 1, 10, 4, 5, 9, 4, 9, 0, 4, 0, 8, 3, 8, 0, 8, 3, 11, 8, 11, 7, 6, 7, 11, 7, 6, 4, 5, 4, 6 },
02237 { 4, 5, 9, 8, 0, 3, 7, 8, 3, 11, 7, 3, 7, 11, 6, 10, 6, 11, 2, 10, 11, 10, 2, 1, 3, 1, 2, 1, 3, 0 },
02238 { 6, 7, 11, 10, 2, 1, 5, 10, 1, 9, 5, 1, 5, 9, 4, 8, 4, 9, 0, 8, 9, 8, 0, 3, 1, 3, 0, 3, 1, 2 },
02239 { 0, 3, 8, 6, 7, 11, 6, 11, 2, 6, 2, 10, 1, 10, 2, 10, 1, 9, 10, 9, 5, 5, 9, 4, 5, 4, 6, 7, 6, 4 }
02240 } };
02241 return &tiling13_5_2[config][u][0];
02242 };
02243
02244
02245
02246
02256
02257 static const char* Tiling14(unsigned char config)
02258 {
02259 static const char tiling14[12][12] = {
02260 { 5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8 },
02261 { 2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5 },
02262 { 9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6 },
02263 { 1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4 },
02264 { 8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5 },
02265 { 0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10 },
02266 { 0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7 },
02267 { 8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2 },
02268 { 1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11 },
02269 { 9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3 },
02270 { 2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8 },
02271 { 5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2 }
02272 };
02273 return &tiling14[config][0];
02274 };
02275
02276
02277
02278
02279
02289
02290 static const char CasesClassic(unsigned char u, unsigned char w)
02291 {
02292 static const char casesClassic[256][16] = {
02293 { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02294 { 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02295 { 0, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02296 { 1, 8, 3, 9, 8, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02297 { 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02298 { 0, 8, 3, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02299 { 9, 2, 10, 0, 2, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02300 { 2, 8, 3, 2, 10, 8, 10, 9, 8, -1, -1, -1, -1, -1, -1, -1 },
02301 { 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02302 { 0, 11, 2, 8, 11, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02303 { 1, 9, 0, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02304 { 1, 11, 2, 1, 9, 11, 9, 8, 11, -1, -1, -1, -1, -1, -1, -1 },
02305 { 3, 10, 1, 11, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02306 { 0, 10, 1, 0, 8, 10, 8, 11, 10, -1, -1, -1, -1, -1, -1, -1 },
02307 { 3, 9, 0, 3, 11, 9, 11, 10, 9, -1, -1, -1, -1, -1, -1, -1 },
02308 { 9, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02309 { 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02310 { 4, 3, 0, 7, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02311 { 0, 1, 9, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02312 { 4, 1, 9, 4, 7, 1, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1 },
02313 { 1, 2, 10, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02314 { 3, 4, 7, 3, 0, 4, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1 },
02315 { 9, 2, 10, 9, 0, 2, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1 },
02316 { 2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4, -1, -1, -1, -1 },
02317 { 8, 4, 7, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02318 { 11, 4, 7, 11, 2, 4, 2, 0, 4, -1, -1, -1, -1, -1, -1, -1 },
02319 { 9, 0, 1, 8, 4, 7, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1 },
02320 { 4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1, -1, -1, -1, -1 },
02321 { 3, 10, 1, 3, 11, 10, 7, 8, 4, -1, -1, -1, -1, -1, -1, -1 },
02322 { 1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4, -1, -1, -1, -1 },
02323 { 4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3, -1, -1, -1, -1 },
02324 { 4, 7, 11, 4, 11, 9, 9, 11, 10, -1, -1, -1, -1, -1, -1, -1 },
02325 { 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02326 { 9, 5, 4, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02327 { 0, 5, 4, 1, 5, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02328 { 8, 5, 4, 8, 3, 5, 3, 1, 5, -1, -1, -1, -1, -1, -1, -1 },
02329 { 1, 2, 10, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02330 { 3, 0, 8, 1, 2, 10, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1 },
02331 { 5, 2, 10, 5, 4, 2, 4, 0, 2, -1, -1, -1, -1, -1, -1, -1 },
02332 { 2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8, -1, -1, -1, -1 },
02333 { 9, 5, 4, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02334 { 0, 11, 2, 0, 8, 11, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1 },
02335 { 0, 5, 4, 0, 1, 5, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1 },
02336 { 2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5, -1, -1, -1, -1 },
02337 { 10, 3, 11, 10, 1, 3, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1 },
02338 { 4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10, -1, -1, -1, -1 },
02339 { 5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3, -1, -1, -1, -1 },
02340 { 5, 4, 8, 5, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1 },
02341 { 9, 7, 8, 5, 7, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02342 { 9, 3, 0, 9, 5, 3, 5, 7, 3, -1, -1, -1, -1, -1, -1, -1 },
02343 { 0, 7, 8, 0, 1, 7, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1 },
02344 { 1, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02345 { 9, 7, 8, 9, 5, 7, 10, 1, 2, -1, -1, -1, -1, -1, -1, -1 },
02346 { 10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3, -1, -1, -1, -1 },
02347 { 8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2, -1, -1, -1, -1 },
02348 { 2, 10, 5, 2, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1 },
02349 { 7, 9, 5, 7, 8, 9, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1 },
02350 { 9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11, -1, -1, -1, -1 },
02351 { 2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7, -1, -1, -1, -1 },
02352 { 11, 2, 1, 11, 1, 7, 7, 1, 5, -1, -1, -1, -1, -1, -1, -1 },
02353 { 9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11, -1, -1, -1, -1 },
02354 { 5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0, -1 },
02355 { 11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0, -1 },
02356 { 11, 10, 5, 7, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02357 { 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02358 { 0, 8, 3, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02359 { 9, 0, 1, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02360 { 1, 8, 3, 1, 9, 8, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1 },
02361 { 1, 6, 5, 2, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02362 { 1, 6, 5, 1, 2, 6, 3, 0, 8, -1, -1, -1, -1, -1, -1, -1 },
02363 { 9, 6, 5, 9, 0, 6, 0, 2, 6, -1, -1, -1, -1, -1, -1, -1 },
02364 { 5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8, -1, -1, -1, -1 },
02365 { 2, 3, 11, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02366 { 11, 0, 8, 11, 2, 0, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1 },
02367 { 0, 1, 9, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1 },
02368 { 5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11, -1, -1, -1, -1 },
02369 { 6, 3, 11, 6, 5, 3, 5, 1, 3, -1, -1, -1, -1, -1, -1, -1 },
02370 { 0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6, -1, -1, -1, -1 },
02371 { 3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9, -1, -1, -1, -1 },
02372 { 6, 5, 9, 6, 9, 11, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1 },
02373 { 5, 10, 6, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02374 { 4, 3, 0, 4, 7, 3, 6, 5, 10, -1, -1, -1, -1, -1, -1, -1 },
02375 { 1, 9, 0, 5, 10, 6, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1 },
02376 { 10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4, -1, -1, -1, -1 },
02377 { 6, 1, 2, 6, 5, 1, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1 },
02378 { 1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7, -1, -1, -1, -1 },
02379 { 8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6, -1, -1, -1, -1 },
02380 { 7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9, -1 },
02381 { 3, 11, 2, 7, 8, 4, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1 },
02382 { 5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11, -1, -1, -1, -1 },
02383 { 0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1 },
02384 { 9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6, -1 },
02385 { 8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6, -1, -1, -1, -1 },
02386 { 5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11, -1 },
02387 { 0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7, -1 },
02388 { 6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9, -1, -1, -1, -1 },
02389 { 10, 4, 9, 6, 4, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02390 { 4, 10, 6, 4, 9, 10, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1 },
02391 { 10, 0, 1, 10, 6, 0, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1 },
02392 { 8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10, -1, -1, -1, -1 },
02393 { 1, 4, 9, 1, 2, 4, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1 },
02394 { 3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4, -1, -1, -1, -1 },
02395 { 0, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02396 { 8, 3, 2, 8, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1 },
02397 { 10, 4, 9, 10, 6, 4, 11, 2, 3, -1, -1, -1, -1, -1, -1, -1 },
02398 { 0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6, -1, -1, -1, -1 },
02399 { 3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10, -1, -1, -1, -1 },
02400 { 6, 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1, -1 },
02401 { 9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3, -1, -1, -1, -1 },
02402 { 8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1, -1 },
02403 { 3, 11, 6, 3, 6, 0, 0, 6, 4, -1, -1, -1, -1, -1, -1, -1 },
02404 { 6, 4, 8, 11, 6, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02405 { 7, 10, 6, 7, 8, 10, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1 },
02406 { 0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10, -1, -1, -1, -1 },
02407 { 10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0, -1, -1, -1, -1 },
02408 { 10, 6, 7, 10, 7, 1, 1, 7, 3, -1, -1, -1, -1, -1, -1, -1 },
02409 { 1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7, -1, -1, -1, -1 },
02410 { 2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9, -1 },
02411 { 7, 8, 0, 7, 0, 6, 6, 0, 2, -1, -1, -1, -1, -1, -1, -1 },
02412 { 7, 3, 2, 6, 7, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02413 { 2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7, -1, -1, -1, -1 },
02414 { 2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7, -1 },
02415 { 1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11, -1 },
02416 { 11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1, -1, -1, -1, -1 },
02417 { 8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3, 6, -1 },
02418 { 0, 9, 1, 11, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02419 { 7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0, -1, -1, -1, -1 },
02420 { 7, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02421 { 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02422 { 3, 0, 8, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02423 { 0, 1, 9, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02424 { 8, 1, 9, 8, 3, 1, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1 },
02425 { 10, 1, 2, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02426 { 1, 2, 10, 3, 0, 8, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1 },
02427 { 2, 9, 0, 2, 10, 9, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1 },
02428 { 6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8, -1, -1, -1, -1 },
02429 { 7, 2, 3, 6, 2, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02430 { 7, 0, 8, 7, 6, 0, 6, 2, 0, -1, -1, -1, -1, -1, -1, -1 },
02431 { 2, 7, 6, 2, 3, 7, 0, 1, 9, -1, -1, -1, -1, -1, -1, -1 },
02432 { 1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6, -1, -1, -1, -1 },
02433 { 10, 7, 6, 10, 1, 7, 1, 3, 7, -1, -1, -1, -1, -1, -1, -1 },
02434 { 10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8, -1, -1, -1, -1 },
02435 { 0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7, -1, -1, -1, -1 },
02436 { 7, 6, 10, 7, 10, 8, 8, 10, 9, -1, -1, -1, -1, -1, -1, -1 },
02437 { 6, 8, 4, 11, 8, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02438 { 3, 6, 11, 3, 0, 6, 0, 4, 6, -1, -1, -1, -1, -1, -1, -1 },
02439 { 8, 6, 11, 8, 4, 6, 9, 0, 1, -1, -1, -1, -1, -1, -1, -1 },
02440 { 9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6, -1, -1, -1, -1 },
02441 { 6, 8, 4, 6, 11, 8, 2, 10, 1, -1, -1, -1, -1, -1, -1, -1 },
02442 { 1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6, -1, -1, -1, -1 },
02443 { 4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9, -1, -1, -1, -1 },
02444 { 10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3, -1 },
02445 { 8, 2, 3, 8, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1 },
02446 { 0, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02447 { 1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8, -1, -1, -1, -1 },
02448 { 1, 9, 4, 1, 4, 2, 2, 4, 6, -1, -1, -1, -1, -1, -1, -1 },
02449 { 8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1, -1, -1, -1, -1 },
02450 { 10, 1, 0, 10, 0, 6, 6, 0, 4, -1, -1, -1, -1, -1, -1, -1 },
02451 { 4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3, -1 },
02452 { 10, 9, 4, 6, 10, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02453 { 4, 9, 5, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02454 { 0, 8, 3, 4, 9, 5, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1 },
02455 { 5, 0, 1, 5, 4, 0, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1 },
02456 { 11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5, -1, -1, -1, -1 },
02457 { 9, 5, 4, 10, 1, 2, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1 },
02458 { 6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5, -1, -1, -1, -1 },
02459 { 7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2, -1, -1, -1, -1 },
02460 { 3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6, -1 },
02461 { 7, 2, 3, 7, 6, 2, 5, 4, 9, -1, -1, -1, -1, -1, -1, -1 },
02462 { 9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7, -1, -1, -1, -1 },
02463 { 3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0, -1, -1, -1, -1 },
02464 { 6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8, -1 },
02465 { 9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7, -1, -1, -1, -1 },
02466 { 1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4, -1 },
02467 { 4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10, -1 },
02468 { 7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10, -1, -1, -1, -1 },
02469 { 6, 9, 5, 6, 11, 9, 11, 8, 9, -1, -1, -1, -1, -1, -1, -1 },
02470 { 3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5, -1, -1, -1, -1 },
02471 { 0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11, -1, -1, -1, -1 },
02472 { 6, 11, 3, 6, 3, 5, 5, 3, 1, -1, -1, -1, -1, -1, -1, -1 },
02473 { 1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6, -1, -1, -1, -1 },
02474 { 0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10, -1 },
02475 { 11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5, -1 },
02476 { 6, 11, 3, 6, 3, 5, 2, 10, 3, 10, 5, 3, -1, -1, -1, -1 },
02477 { 5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2, -1, -1, -1, -1 },
02478 { 9, 5, 6, 9, 6, 0, 0, 6, 2, -1, -1, -1, -1, -1, -1, -1 },
02479 { 1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8, -1 },
02480 { 1, 5, 6, 2, 1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02481 { 1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6, -1 },
02482 { 10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0, -1, -1, -1, -1 },
02483 { 0, 3, 8, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02484 { 10, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02485 { 11, 5, 10, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02486 { 11, 5, 10, 11, 7, 5, 8, 3, 0, -1, -1, -1, -1, -1, -1, -1 },
02487 { 5, 11, 7, 5, 10, 11, 1, 9, 0, -1, -1, -1, -1, -1, -1, -1 },
02488 { 10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1, -1, -1, -1, -1 },
02489 { 11, 1, 2, 11, 7, 1, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1 },
02490 { 0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11, -1, -1, -1, -1 },
02491 { 9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7, -1, -1, -1, -1 },
02492 { 7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2, -1 },
02493 { 2, 5, 10, 2, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1 },
02494 { 8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5, -1, -1, -1, -1 },
02495 { 9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2, -1, -1, -1, -1 },
02496 { 9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2, -1 },
02497 { 1, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02498 { 0, 8, 7, 0, 7, 1, 1, 7, 5, -1, -1, -1, -1, -1, -1, -1 },
02499 { 9, 0, 3, 9, 3, 5, 5, 3, 7, -1, -1, -1, -1, -1, -1, -1 },
02500 { 9, 8, 7, 5, 9, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02501 { 5, 8, 4, 5, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1 },
02502 { 5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0, -1, -1, -1, -1 },
02503 { 0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5, -1, -1, -1, -1 },
02504 { 10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4, -1 },
02505 { 2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8, -1, -1, -1, -1 },
02506 { 0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11, -1 },
02507 { 0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5, -1 },
02508 { 9, 4, 5, 2, 11, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02509 { 2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4, -1, -1, -1, -1 },
02510 { 5, 10, 2, 5, 2, 4, 4, 2, 0, -1, -1, -1, -1, -1, -1, -1 },
02511 { 3, 10, 2, 3, 5, 10, 3, 8, 5, 4, 5, 8, 0, 1, 9, -1 },
02512 { 5, 10, 2, 5, 2, 4, 1, 9, 2, 9, 4, 2, -1, -1, -1, -1 },
02513 { 8, 4, 5, 8, 5, 3, 3, 5, 1, -1, -1, -1, -1, -1, -1, -1 },
02514 { 0, 4, 5, 1, 0, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02515 { 8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3, 5, -1, -1, -1, -1 },
02516 { 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02517 { 4, 11, 7, 4, 9, 11, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1 },
02518 { 0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11, -1, -1, -1, -1 },
02519 { 1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11, -1, -1, -1, -1 },
02520 { 3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4, -1 },
02521 { 4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2, -1, -1, -1, -1 },
02522 { 9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3, -1 },
02523 { 11, 7, 4, 11, 4, 2, 2, 4, 0, -1, -1, -1, -1, -1, -1, -1 },
02524 { 11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4, -1, -1, -1, -1 },
02525 { 2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9, -1, -1, -1, -1 },
02526 { 9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7, -1 },
02527 { 3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10, -1 },
02528 { 1, 10, 2, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02529 { 4, 9, 1, 4, 1, 7, 7, 1, 3, -1, -1, -1, -1, -1, -1, -1 },
02530 { 4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1, -1, -1, -1, -1 },
02531 { 4, 0, 3, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02532 { 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02533 { 9, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02534 { 3, 0, 9, 3, 9, 11, 11, 9, 10, -1, -1, -1, -1, -1, -1, -1 },
02535 { 0, 1, 10, 0, 10, 8, 8, 10, 11, -1, -1, -1, -1, -1, -1, -1 },
02536 { 3, 1, 10, 11, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02537 { 1, 2, 11, 1, 11, 9, 9, 11, 8, -1, -1, -1, -1, -1, -1, -1 },
02538 { 3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9, -1, -1, -1, -1 },
02539 { 0, 2, 11, 8, 0, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02540 { 3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02541 { 2, 3, 8, 2, 8, 10, 10, 8, 9, -1, -1, -1, -1, -1, -1, -1 },
02542 { 9, 10, 2, 0, 9, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02543 { 2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8, -1, -1, -1, -1 },
02544 { 1, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02545 { 1, 3, 8, 9, 1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02546 { 0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02547 { 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 },
02548 { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }
02549 };
02550 return casesClassic[u][w];
02551 };
02552
02553
02554 };
02555 };
02556 };
02557
02558
02559
02560 #endif // __VCG_MC_LOOK_UP_TABLE