test_senc2d_some_enclosures.c (49636B)
1 /* Copyright (C) 2018-2021, 2023, 2024 |Méso|Star> (contact@meso-star.com) 2 * 3 * This program is free software: you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License as published by 5 * the Free Software Foundation, either version 3 of the License, or 6 * (at your option) any later version. 7 * 8 * This program is distributed in the hope that it will be useful, 9 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * GNU General Public License for more details. 12 * 13 * You should have received a copy of the GNU General Public License 14 * along with this program. If not, see <http://www.gnu.org/licenses/>. */ 15 16 /* This test has been created using the sg2_geometry_dump_as_C_code feature 17 * of star-geometry-2D-2D. It uses output from test_sg2_some_enclosures. 18 * This test is similar to test_senc2d_many_enclosures that creates a huge 19 * geometry by program. */ 20 21 #include "senc2d.h" 22 #include "test_senc2d_utils.h" 23 24 #include <rsys/double2.h> 25 26 /* Dump of star-geometry-2D 'some_enclosures'. */ 27 static const unsigned some_enclosures_vertices_count = 1024; 28 static const double some_enclosures_vertices[2048] = 29 { 30 -19, -20, 31 -19.0761, -19.6173, 32 -19.2929, -19.2929, 33 -19.6173, -19.0761, 34 -20, -19, 35 -20.3827, -19.0761, 36 -20.7071, -19.2929, 37 -20.9239, -19.6173, 38 -21, -20, 39 -20.9239, -20.3827, 40 -20.7071, -20.7071, 41 -20.3827, -20.9239, 42 -20, -21, 43 -19.6173, -20.9239, 44 -19.2929, -20.7071, 45 -19.0761, -20.3827, 46 -18, -20, 47 -18.1522, -19.2346, 48 -18.5858, -18.5858, 49 -19.2346, -18.1522, 50 -20, -18, 51 -20.7654, -18.1522, 52 -21.4142, -18.5858, 53 -21.8478, -19.2346, 54 -22, -20, 55 -21.8478, -20.7654, 56 -21.4142, -21.4142, 57 -20.7654, -21.8478, 58 -20, -22, 59 -19.2346, -21.8478, 60 -18.5858, -21.4142, 61 -18.1522, -20.7654, 62 -17, -20, 63 -17.2284, -18.8519, 64 -17.8787, -17.8787, 65 -18.8519, -17.2284, 66 -20, -17, 67 -21.1481, -17.2284, 68 -22.1213, -17.8787, 69 -22.7716, -18.8519, 70 -23, -20, 71 -22.7716, -21.1481, 72 -22.1213, -22.1213, 73 -21.1481, -22.7716, 74 -20, -23, 75 -18.8519, -22.7716, 76 -17.8787, -22.1213, 77 -17.2284, -21.1481, 78 -16, -20, 79 -16.3045, -18.4693, 80 -17.1716, -17.1716, 81 -18.4693, -16.3045, 82 -20, -16, 83 -21.5307, -16.3045, 84 -22.8284, -17.1716, 85 -23.6955, -18.4693, 86 -24, -20, 87 -23.6955, -21.5307, 88 -22.8284, -22.8284, 89 -21.5307, -23.6955, 90 -20, -24, 91 -18.4693, -23.6955, 92 -17.1716, -22.8284, 93 -16.3045, -21.5307, 94 -19, -10, 95 -19.0761, -9.61732, 96 -19.2929, -9.29289, 97 -19.6173, -9.07612, 98 -20, -9, 99 -20.3827, -9.07612, 100 -20.7071, -9.29289, 101 -20.9239, -9.61732, 102 -21, -10, 103 -20.9239, -10.3827, 104 -20.7071, -10.7071, 105 -20.3827, -10.9239, 106 -20, -11, 107 -19.6173, -10.9239, 108 -19.2929, -10.7071, 109 -19.0761, -10.3827, 110 -18, -10, 111 -18.1522, -9.23463, 112 -18.5858, -8.58579, 113 -19.2346, -8.15224, 114 -20, -8, 115 -20.7654, -8.15224, 116 -21.4142, -8.58579, 117 -21.8478, -9.23463, 118 -22, -10, 119 -21.8478, -10.7654, 120 -21.4142, -11.4142, 121 -20.7654, -11.8478, 122 -20, -12, 123 -19.2346, -11.8478, 124 -18.5858, -11.4142, 125 -18.1522, -10.7654, 126 -17, -10, 127 -17.2284, -8.85195, 128 -17.8787, -7.87868, 129 -18.8519, -7.22836, 130 -20, -7, 131 -21.1481, -7.22836, 132 -22.1213, -7.87868, 133 -22.7716, -8.85195, 134 -23, -10, 135 -22.7716, -11.1481, 136 -22.1213, -12.1213, 137 -21.1481, -12.7716, 138 -20, -13, 139 -18.8519, -12.7716, 140 -17.8787, -12.1213, 141 -17.2284, -11.1481, 142 -16, -10, 143 -16.3045, -8.46927, 144 -17.1716, -7.17157, 145 -18.4693, -6.30448, 146 -20, -6, 147 -21.5307, -6.30448, 148 -22.8284, -7.17157, 149 -23.6955, -8.46927, 150 -24, -10, 151 -23.6955, -11.5307, 152 -22.8284, -12.8284, 153 -21.5307, -13.6955, 154 -20, -14, 155 -18.4693, -13.6955, 156 -17.1716, -12.8284, 157 -16.3045, -11.5307, 158 -19, 0, 159 -19.0761, 0.382683, 160 -19.2929, 0.707107, 161 -19.6173, 0.92388, 162 -20, 1, 163 -20.3827, 0.92388, 164 -20.7071, 0.707107, 165 -20.9239, 0.382683, 166 -21, 1.22465e-16, 167 -20.9239, -0.382683, 168 -20.7071, -0.707107, 169 -20.3827, -0.92388, 170 -20, -1, 171 -19.6173, -0.92388, 172 -19.2929, -0.707107, 173 -19.0761, -0.382683, 174 -18, 0, 175 -18.1522, 0.765367, 176 -18.5858, 1.41421, 177 -19.2346, 1.84776, 178 -20, 2, 179 -20.7654, 1.84776, 180 -21.4142, 1.41421, 181 -21.8478, 0.765367, 182 -22, 2.44929e-16, 183 -21.8478, -0.765367, 184 -21.4142, -1.41421, 185 -20.7654, -1.84776, 186 -20, -2, 187 -19.2346, -1.84776, 188 -18.5858, -1.41421, 189 -18.1522, -0.765367, 190 -17, 0, 191 -17.2284, 1.14805, 192 -17.8787, 2.12132, 193 -18.8519, 2.77164, 194 -20, 3, 195 -21.1481, 2.77164, 196 -22.1213, 2.12132, 197 -22.7716, 1.14805, 198 -23, 3.67394e-16, 199 -22.7716, -1.14805, 200 -22.1213, -2.12132, 201 -21.1481, -2.77164, 202 -20, -3, 203 -18.8519, -2.77164, 204 -17.8787, -2.12132, 205 -17.2284, -1.14805, 206 -16, 0, 207 -16.3045, 1.53073, 208 -17.1716, 2.82843, 209 -18.4693, 3.69552, 210 -20, 4, 211 -21.5307, 3.69552, 212 -22.8284, 2.82843, 213 -23.6955, 1.53073, 214 -24, 4.89859e-16, 215 -23.6955, -1.53073, 216 -22.8284, -2.82843, 217 -21.5307, -3.69552, 218 -20, -4, 219 -18.4693, -3.69552, 220 -17.1716, -2.82843, 221 -16.3045, -1.53073, 222 -19, 10, 223 -19.0761, 10.3827, 224 -19.2929, 10.7071, 225 -19.6173, 10.9239, 226 -20, 11, 227 -20.3827, 10.9239, 228 -20.7071, 10.7071, 229 -20.9239, 10.3827, 230 -21, 10, 231 -20.9239, 9.61732, 232 -20.7071, 9.29289, 233 -20.3827, 9.07612, 234 -20, 9, 235 -19.6173, 9.07612, 236 -19.2929, 9.29289, 237 -19.0761, 9.61732, 238 -18, 10, 239 -18.1522, 10.7654, 240 -18.5858, 11.4142, 241 -19.2346, 11.8478, 242 -20, 12, 243 -20.7654, 11.8478, 244 -21.4142, 11.4142, 245 -21.8478, 10.7654, 246 -22, 10, 247 -21.8478, 9.23463, 248 -21.4142, 8.58579, 249 -20.7654, 8.15224, 250 -20, 8, 251 -19.2346, 8.15224, 252 -18.5858, 8.58579, 253 -18.1522, 9.23463, 254 -17, 10, 255 -17.2284, 11.1481, 256 -17.8787, 12.1213, 257 -18.8519, 12.7716, 258 -20, 13, 259 -21.1481, 12.7716, 260 -22.1213, 12.1213, 261 -22.7716, 11.1481, 262 -23, 10, 263 -22.7716, 8.85195, 264 -22.1213, 7.87868, 265 -21.1481, 7.22836, 266 -20, 7, 267 -18.8519, 7.22836, 268 -17.8787, 7.87868, 269 -17.2284, 8.85195, 270 -16, 10, 271 -16.3045, 11.5307, 272 -17.1716, 12.8284, 273 -18.4693, 13.6955, 274 -20, 14, 275 -21.5307, 13.6955, 276 -22.8284, 12.8284, 277 -23.6955, 11.5307, 278 -24, 10, 279 -23.6955, 8.46927, 280 -22.8284, 7.17157, 281 -21.5307, 6.30448, 282 -20, 6, 283 -18.4693, 6.30448, 284 -17.1716, 7.17157, 285 -16.3045, 8.46927, 286 -9, -20, 287 -9.07612, -19.6173, 288 -9.29289, -19.2929, 289 -9.61732, -19.0761, 290 -10, -19, 291 -10.3827, -19.0761, 292 -10.7071, -19.2929, 293 -10.9239, -19.6173, 294 -11, -20, 295 -10.9239, -20.3827, 296 -10.7071, -20.7071, 297 -10.3827, -20.9239, 298 -10, -21, 299 -9.61732, -20.9239, 300 -9.29289, -20.7071, 301 -9.07612, -20.3827, 302 -8, -20, 303 -8.15224, -19.2346, 304 -8.58579, -18.5858, 305 -9.23463, -18.1522, 306 -10, -18, 307 -10.7654, -18.1522, 308 -11.4142, -18.5858, 309 -11.8478, -19.2346, 310 -12, -20, 311 -11.8478, -20.7654, 312 -11.4142, -21.4142, 313 -10.7654, -21.8478, 314 -10, -22, 315 -9.23463, -21.8478, 316 -8.58579, -21.4142, 317 -8.15224, -20.7654, 318 -7, -20, 319 -7.22836, -18.8519, 320 -7.87868, -17.8787, 321 -8.85195, -17.2284, 322 -10, -17, 323 -11.1481, -17.2284, 324 -12.1213, -17.8787, 325 -12.7716, -18.8519, 326 -13, -20, 327 -12.7716, -21.1481, 328 -12.1213, -22.1213, 329 -11.1481, -22.7716, 330 -10, -23, 331 -8.85195, -22.7716, 332 -7.87868, -22.1213, 333 -7.22836, -21.1481, 334 -6, -20, 335 -6.30448, -18.4693, 336 -7.17157, -17.1716, 337 -8.46927, -16.3045, 338 -10, -16, 339 -11.5307, -16.3045, 340 -12.8284, -17.1716, 341 -13.6955, -18.4693, 342 -14, -20, 343 -13.6955, -21.5307, 344 -12.8284, -22.8284, 345 -11.5307, -23.6955, 346 -10, -24, 347 -8.46927, -23.6955, 348 -7.17157, -22.8284, 349 -6.30448, -21.5307, 350 -9, -10, 351 -9.07612, -9.61732, 352 -9.29289, -9.29289, 353 -9.61732, -9.07612, 354 -10, -9, 355 -10.3827, -9.07612, 356 -10.7071, -9.29289, 357 -10.9239, -9.61732, 358 -11, -10, 359 -10.9239, -10.3827, 360 -10.7071, -10.7071, 361 -10.3827, -10.9239, 362 -10, -11, 363 -9.61732, -10.9239, 364 -9.29289, -10.7071, 365 -9.07612, -10.3827, 366 -8, -10, 367 -8.15224, -9.23463, 368 -8.58579, -8.58579, 369 -9.23463, -8.15224, 370 -10, -8, 371 -10.7654, -8.15224, 372 -11.4142, -8.58579, 373 -11.8478, -9.23463, 374 -12, -10, 375 -11.8478, -10.7654, 376 -11.4142, -11.4142, 377 -10.7654, -11.8478, 378 -10, -12, 379 -9.23463, -11.8478, 380 -8.58579, -11.4142, 381 -8.15224, -10.7654, 382 -7, -10, 383 -7.22836, -8.85195, 384 -7.87868, -7.87868, 385 -8.85195, -7.22836, 386 -10, -7, 387 -11.1481, -7.22836, 388 -12.1213, -7.87868, 389 -12.7716, -8.85195, 390 -13, -10, 391 -12.7716, -11.1481, 392 -12.1213, -12.1213, 393 -11.1481, -12.7716, 394 -10, -13, 395 -8.85195, -12.7716, 396 -7.87868, -12.1213, 397 -7.22836, -11.1481, 398 -6, -10, 399 -6.30448, -8.46927, 400 -7.17157, -7.17157, 401 -8.46927, -6.30448, 402 -10, -6, 403 -11.5307, -6.30448, 404 -12.8284, -7.17157, 405 -13.6955, -8.46927, 406 -14, -10, 407 -13.6955, -11.5307, 408 -12.8284, -12.8284, 409 -11.5307, -13.6955, 410 -10, -14, 411 -8.46927, -13.6955, 412 -7.17157, -12.8284, 413 -6.30448, -11.5307, 414 -9, 0, 415 -9.07612, 0.382683, 416 -9.29289, 0.707107, 417 -9.61732, 0.92388, 418 -10, 1, 419 -10.3827, 0.92388, 420 -10.7071, 0.707107, 421 -10.9239, 0.382683, 422 -11, 1.22465e-16, 423 -10.9239, -0.382683, 424 -10.7071, -0.707107, 425 -10.3827, -0.92388, 426 -10, -1, 427 -9.61732, -0.92388, 428 -9.29289, -0.707107, 429 -9.07612, -0.382683, 430 -8, 0, 431 -8.15224, 0.765367, 432 -8.58579, 1.41421, 433 -9.23463, 1.84776, 434 -10, 2, 435 -10.7654, 1.84776, 436 -11.4142, 1.41421, 437 -11.8478, 0.765367, 438 -12, 2.44929e-16, 439 -11.8478, -0.765367, 440 -11.4142, -1.41421, 441 -10.7654, -1.84776, 442 -10, -2, 443 -9.23463, -1.84776, 444 -8.58579, -1.41421, 445 -8.15224, -0.765367, 446 -7, 0, 447 -7.22836, 1.14805, 448 -7.87868, 2.12132, 449 -8.85195, 2.77164, 450 -10, 3, 451 -11.1481, 2.77164, 452 -12.1213, 2.12132, 453 -12.7716, 1.14805, 454 -13, 3.67394e-16, 455 -12.7716, -1.14805, 456 -12.1213, -2.12132, 457 -11.1481, -2.77164, 458 -10, -3, 459 -8.85195, -2.77164, 460 -7.87868, -2.12132, 461 -7.22836, -1.14805, 462 -6, 0, 463 -6.30448, 1.53073, 464 -7.17157, 2.82843, 465 -8.46927, 3.69552, 466 -10, 4, 467 -11.5307, 3.69552, 468 -12.8284, 2.82843, 469 -13.6955, 1.53073, 470 -14, 4.89859e-16, 471 -13.6955, -1.53073, 472 -12.8284, -2.82843, 473 -11.5307, -3.69552, 474 -10, -4, 475 -8.46927, -3.69552, 476 -7.17157, -2.82843, 477 -6.30448, -1.53073, 478 -9, 10, 479 -9.07612, 10.3827, 480 -9.29289, 10.7071, 481 -9.61732, 10.9239, 482 -10, 11, 483 -10.3827, 10.9239, 484 -10.7071, 10.7071, 485 -10.9239, 10.3827, 486 -11, 10, 487 -10.9239, 9.61732, 488 -10.7071, 9.29289, 489 -10.3827, 9.07612, 490 -10, 9, 491 -9.61732, 9.07612, 492 -9.29289, 9.29289, 493 -9.07612, 9.61732, 494 -8, 10, 495 -8.15224, 10.7654, 496 -8.58579, 11.4142, 497 -9.23463, 11.8478, 498 -10, 12, 499 -10.7654, 11.8478, 500 -11.4142, 11.4142, 501 -11.8478, 10.7654, 502 -12, 10, 503 -11.8478, 9.23463, 504 -11.4142, 8.58579, 505 -10.7654, 8.15224, 506 -10, 8, 507 -9.23463, 8.15224, 508 -8.58579, 8.58579, 509 -8.15224, 9.23463, 510 -7, 10, 511 -7.22836, 11.1481, 512 -7.87868, 12.1213, 513 -8.85195, 12.7716, 514 -10, 13, 515 -11.1481, 12.7716, 516 -12.1213, 12.1213, 517 -12.7716, 11.1481, 518 -13, 10, 519 -12.7716, 8.85195, 520 -12.1213, 7.87868, 521 -11.1481, 7.22836, 522 -10, 7, 523 -8.85195, 7.22836, 524 -7.87868, 7.87868, 525 -7.22836, 8.85195, 526 -6, 10, 527 -6.30448, 11.5307, 528 -7.17157, 12.8284, 529 -8.46927, 13.6955, 530 -10, 14, 531 -11.5307, 13.6955, 532 -12.8284, 12.8284, 533 -13.6955, 11.5307, 534 -14, 10, 535 -13.6955, 8.46927, 536 -12.8284, 7.17157, 537 -11.5307, 6.30448, 538 -10, 6, 539 -8.46927, 6.30448, 540 -7.17157, 7.17157, 541 -6.30448, 8.46927, 542 1, -20, 543 0.92388, -19.6173, 544 0.707107, -19.2929, 545 0.382683, -19.0761, 546 6.12323e-17, -19, 547 -0.382683, -19.0761, 548 -0.707107, -19.2929, 549 -0.92388, -19.6173, 550 -1, -20, 551 -0.92388, -20.3827, 552 -0.707107, -20.7071, 553 -0.382683, -20.9239, 554 -1.83697e-16, -21, 555 0.382683, -20.9239, 556 0.707107, -20.7071, 557 0.92388, -20.3827, 558 2, -20, 559 1.84776, -19.2346, 560 1.41421, -18.5858, 561 0.765367, -18.1522, 562 1.22465e-16, -18, 563 -0.765367, -18.1522, 564 -1.41421, -18.5858, 565 -1.84776, -19.2346, 566 -2, -20, 567 -1.84776, -20.7654, 568 -1.41421, -21.4142, 569 -0.765367, -21.8478, 570 -3.67394e-16, -22, 571 0.765367, -21.8478, 572 1.41421, -21.4142, 573 1.84776, -20.7654, 574 3, -20, 575 2.77164, -18.8519, 576 2.12132, -17.8787, 577 1.14805, -17.2284, 578 1.83697e-16, -17, 579 -1.14805, -17.2284, 580 -2.12132, -17.8787, 581 -2.77164, -18.8519, 582 -3, -20, 583 -2.77164, -21.1481, 584 -2.12132, -22.1213, 585 -1.14805, -22.7716, 586 -5.51091e-16, -23, 587 1.14805, -22.7716, 588 2.12132, -22.1213, 589 2.77164, -21.1481, 590 4, -20, 591 3.69552, -18.4693, 592 2.82843, -17.1716, 593 1.53073, -16.3045, 594 2.44929e-16, -16, 595 -1.53073, -16.3045, 596 -2.82843, -17.1716, 597 -3.69552, -18.4693, 598 -4, -20, 599 -3.69552, -21.5307, 600 -2.82843, -22.8284, 601 -1.53073, -23.6955, 602 -7.34788e-16, -24, 603 1.53073, -23.6955, 604 2.82843, -22.8284, 605 3.69552, -21.5307, 606 1, -10, 607 0.92388, -9.61732, 608 0.707107, -9.29289, 609 0.382683, -9.07612, 610 6.12323e-17, -9, 611 -0.382683, -9.07612, 612 -0.707107, -9.29289, 613 -0.92388, -9.61732, 614 -1, -10, 615 -0.92388, -10.3827, 616 -0.707107, -10.7071, 617 -0.382683, -10.9239, 618 -1.83697e-16, -11, 619 0.382683, -10.9239, 620 0.707107, -10.7071, 621 0.92388, -10.3827, 622 2, -10, 623 1.84776, -9.23463, 624 1.41421, -8.58579, 625 0.765367, -8.15224, 626 1.22465e-16, -8, 627 -0.765367, -8.15224, 628 -1.41421, -8.58579, 629 -1.84776, -9.23463, 630 -2, -10, 631 -1.84776, -10.7654, 632 -1.41421, -11.4142, 633 -0.765367, -11.8478, 634 -3.67394e-16, -12, 635 0.765367, -11.8478, 636 1.41421, -11.4142, 637 1.84776, -10.7654, 638 3, -10, 639 2.77164, -8.85195, 640 2.12132, -7.87868, 641 1.14805, -7.22836, 642 1.83697e-16, -7, 643 -1.14805, -7.22836, 644 -2.12132, -7.87868, 645 -2.77164, -8.85195, 646 -3, -10, 647 -2.77164, -11.1481, 648 -2.12132, -12.1213, 649 -1.14805, -12.7716, 650 -5.51091e-16, -13, 651 1.14805, -12.7716, 652 2.12132, -12.1213, 653 2.77164, -11.1481, 654 4, -10, 655 3.69552, -8.46927, 656 2.82843, -7.17157, 657 1.53073, -6.30448, 658 2.44929e-16, -6, 659 -1.53073, -6.30448, 660 -2.82843, -7.17157, 661 -3.69552, -8.46927, 662 -4, -10, 663 -3.69552, -11.5307, 664 -2.82843, -12.8284, 665 -1.53073, -13.6955, 666 -7.34788e-16, -14, 667 1.53073, -13.6955, 668 2.82843, -12.8284, 669 3.69552, -11.5307, 670 1, 0, 671 0.92388, 0.382683, 672 0.707107, 0.707107, 673 0.382683, 0.92388, 674 6.12323e-17, 1, 675 -0.382683, 0.92388, 676 -0.707107, 0.707107, 677 -0.92388, 0.382683, 678 -1, 1.22465e-16, 679 -0.92388, -0.382683, 680 -0.707107, -0.707107, 681 -0.382683, -0.92388, 682 -1.83697e-16, -1, 683 0.382683, -0.92388, 684 0.707107, -0.707107, 685 0.92388, -0.382683, 686 2, 0, 687 1.84776, 0.765367, 688 1.41421, 1.41421, 689 0.765367, 1.84776, 690 1.22465e-16, 2, 691 -0.765367, 1.84776, 692 -1.41421, 1.41421, 693 -1.84776, 0.765367, 694 -2, 2.44929e-16, 695 -1.84776, -0.765367, 696 -1.41421, -1.41421, 697 -0.765367, -1.84776, 698 -3.67394e-16, -2, 699 0.765367, -1.84776, 700 1.41421, -1.41421, 701 1.84776, -0.765367, 702 3, 0, 703 2.77164, 1.14805, 704 2.12132, 2.12132, 705 1.14805, 2.77164, 706 1.83697e-16, 3, 707 -1.14805, 2.77164, 708 -2.12132, 2.12132, 709 -2.77164, 1.14805, 710 -3, 3.67394e-16, 711 -2.77164, -1.14805, 712 -2.12132, -2.12132, 713 -1.14805, -2.77164, 714 -5.51091e-16, -3, 715 1.14805, -2.77164, 716 2.12132, -2.12132, 717 2.77164, -1.14805, 718 4, 0, 719 3.69552, 1.53073, 720 2.82843, 2.82843, 721 1.53073, 3.69552, 722 2.44929e-16, 4, 723 -1.53073, 3.69552, 724 -2.82843, 2.82843, 725 -3.69552, 1.53073, 726 -4, 4.89859e-16, 727 -3.69552, -1.53073, 728 -2.82843, -2.82843, 729 -1.53073, -3.69552, 730 -7.34788e-16, -4, 731 1.53073, -3.69552, 732 2.82843, -2.82843, 733 3.69552, -1.53073, 734 1, 10, 735 0.92388, 10.3827, 736 0.707107, 10.7071, 737 0.382683, 10.9239, 738 6.12323e-17, 11, 739 -0.382683, 10.9239, 740 -0.707107, 10.7071, 741 -0.92388, 10.3827, 742 -1, 10, 743 -0.92388, 9.61732, 744 -0.707107, 9.29289, 745 -0.382683, 9.07612, 746 -1.83697e-16, 9, 747 0.382683, 9.07612, 748 0.707107, 9.29289, 749 0.92388, 9.61732, 750 2, 10, 751 1.84776, 10.7654, 752 1.41421, 11.4142, 753 0.765367, 11.8478, 754 1.22465e-16, 12, 755 -0.765367, 11.8478, 756 -1.41421, 11.4142, 757 -1.84776, 10.7654, 758 -2, 10, 759 -1.84776, 9.23463, 760 -1.41421, 8.58579, 761 -0.765367, 8.15224, 762 -3.67394e-16, 8, 763 0.765367, 8.15224, 764 1.41421, 8.58579, 765 1.84776, 9.23463, 766 3, 10, 767 2.77164, 11.1481, 768 2.12132, 12.1213, 769 1.14805, 12.7716, 770 1.83697e-16, 13, 771 -1.14805, 12.7716, 772 -2.12132, 12.1213, 773 -2.77164, 11.1481, 774 -3, 10, 775 -2.77164, 8.85195, 776 -2.12132, 7.87868, 777 -1.14805, 7.22836, 778 -5.51091e-16, 7, 779 1.14805, 7.22836, 780 2.12132, 7.87868, 781 2.77164, 8.85195, 782 4, 10, 783 3.69552, 11.5307, 784 2.82843, 12.8284, 785 1.53073, 13.6955, 786 2.44929e-16, 14, 787 -1.53073, 13.6955, 788 -2.82843, 12.8284, 789 -3.69552, 11.5307, 790 -4, 10, 791 -3.69552, 8.46927, 792 -2.82843, 7.17157, 793 -1.53073, 6.30448, 794 -7.34788e-16, 6, 795 1.53073, 6.30448, 796 2.82843, 7.17157, 797 3.69552, 8.46927, 798 11, -20, 799 10.9239, -19.6173, 800 10.7071, -19.2929, 801 10.3827, -19.0761, 802 10, -19, 803 9.61732, -19.0761, 804 9.29289, -19.2929, 805 9.07612, -19.6173, 806 9, -20, 807 9.07612, -20.3827, 808 9.29289, -20.7071, 809 9.61732, -20.9239, 810 10, -21, 811 10.3827, -20.9239, 812 10.7071, -20.7071, 813 10.9239, -20.3827, 814 12, -20, 815 11.8478, -19.2346, 816 11.4142, -18.5858, 817 10.7654, -18.1522, 818 10, -18, 819 9.23463, -18.1522, 820 8.58579, -18.5858, 821 8.15224, -19.2346, 822 8, -20, 823 8.15224, -20.7654, 824 8.58579, -21.4142, 825 9.23463, -21.8478, 826 10, -22, 827 10.7654, -21.8478, 828 11.4142, -21.4142, 829 11.8478, -20.7654, 830 13, -20, 831 12.7716, -18.8519, 832 12.1213, -17.8787, 833 11.1481, -17.2284, 834 10, -17, 835 8.85195, -17.2284, 836 7.87868, -17.8787, 837 7.22836, -18.8519, 838 7, -20, 839 7.22836, -21.1481, 840 7.87868, -22.1213, 841 8.85195, -22.7716, 842 10, -23, 843 11.1481, -22.7716, 844 12.1213, -22.1213, 845 12.7716, -21.1481, 846 14, -20, 847 13.6955, -18.4693, 848 12.8284, -17.1716, 849 11.5307, -16.3045, 850 10, -16, 851 8.46927, -16.3045, 852 7.17157, -17.1716, 853 6.30448, -18.4693, 854 6, -20, 855 6.30448, -21.5307, 856 7.17157, -22.8284, 857 8.46927, -23.6955, 858 10, -24, 859 11.5307, -23.6955, 860 12.8284, -22.8284, 861 13.6955, -21.5307, 862 11, -10, 863 10.9239, -9.61732, 864 10.7071, -9.29289, 865 10.3827, -9.07612, 866 10, -9, 867 9.61732, -9.07612, 868 9.29289, -9.29289, 869 9.07612, -9.61732, 870 9, -10, 871 9.07612, -10.3827, 872 9.29289, -10.7071, 873 9.61732, -10.9239, 874 10, -11, 875 10.3827, -10.9239, 876 10.7071, -10.7071, 877 10.9239, -10.3827, 878 12, -10, 879 11.8478, -9.23463, 880 11.4142, -8.58579, 881 10.7654, -8.15224, 882 10, -8, 883 9.23463, -8.15224, 884 8.58579, -8.58579, 885 8.15224, -9.23463, 886 8, -10, 887 8.15224, -10.7654, 888 8.58579, -11.4142, 889 9.23463, -11.8478, 890 10, -12, 891 10.7654, -11.8478, 892 11.4142, -11.4142, 893 11.8478, -10.7654, 894 13, -10, 895 12.7716, -8.85195, 896 12.1213, -7.87868, 897 11.1481, -7.22836, 898 10, -7, 899 8.85195, -7.22836, 900 7.87868, -7.87868, 901 7.22836, -8.85195, 902 7, -10, 903 7.22836, -11.1481, 904 7.87868, -12.1213, 905 8.85195, -12.7716, 906 10, -13, 907 11.1481, -12.7716, 908 12.1213, -12.1213, 909 12.7716, -11.1481, 910 14, -10, 911 13.6955, -8.46927, 912 12.8284, -7.17157, 913 11.5307, -6.30448, 914 10, -6, 915 8.46927, -6.30448, 916 7.17157, -7.17157, 917 6.30448, -8.46927, 918 6, -10, 919 6.30448, -11.5307, 920 7.17157, -12.8284, 921 8.46927, -13.6955, 922 10, -14, 923 11.5307, -13.6955, 924 12.8284, -12.8284, 925 13.6955, -11.5307, 926 11, 0, 927 10.9239, 0.382683, 928 10.7071, 0.707107, 929 10.3827, 0.92388, 930 10, 1, 931 9.61732, 0.92388, 932 9.29289, 0.707107, 933 9.07612, 0.382683, 934 9, 1.22465e-16, 935 9.07612, -0.382683, 936 9.29289, -0.707107, 937 9.61732, -0.92388, 938 10, -1, 939 10.3827, -0.92388, 940 10.7071, -0.707107, 941 10.9239, -0.382683, 942 12, 0, 943 11.8478, 0.765367, 944 11.4142, 1.41421, 945 10.7654, 1.84776, 946 10, 2, 947 9.23463, 1.84776, 948 8.58579, 1.41421, 949 8.15224, 0.765367, 950 8, 2.44929e-16, 951 8.15224, -0.765367, 952 8.58579, -1.41421, 953 9.23463, -1.84776, 954 10, -2, 955 10.7654, -1.84776, 956 11.4142, -1.41421, 957 11.8478, -0.765367, 958 13, 0, 959 12.7716, 1.14805, 960 12.1213, 2.12132, 961 11.1481, 2.77164, 962 10, 3, 963 8.85195, 2.77164, 964 7.87868, 2.12132, 965 7.22836, 1.14805, 966 7, 3.67394e-16, 967 7.22836, -1.14805, 968 7.87868, -2.12132, 969 8.85195, -2.77164, 970 10, -3, 971 11.1481, -2.77164, 972 12.1213, -2.12132, 973 12.7716, -1.14805, 974 14, 0, 975 13.6955, 1.53073, 976 12.8284, 2.82843, 977 11.5307, 3.69552, 978 10, 4, 979 8.46927, 3.69552, 980 7.17157, 2.82843, 981 6.30448, 1.53073, 982 6, 4.89859e-16, 983 6.30448, -1.53073, 984 7.17157, -2.82843, 985 8.46927, -3.69552, 986 10, -4, 987 11.5307, -3.69552, 988 12.8284, -2.82843, 989 13.6955, -1.53073, 990 11, 10, 991 10.9239, 10.3827, 992 10.7071, 10.7071, 993 10.3827, 10.9239, 994 10, 11, 995 9.61732, 10.9239, 996 9.29289, 10.7071, 997 9.07612, 10.3827, 998 9, 10, 999 9.07612, 9.61732, 1000 9.29289, 9.29289, 1001 9.61732, 9.07612, 1002 10, 9, 1003 10.3827, 9.07612, 1004 10.7071, 9.29289, 1005 10.9239, 9.61732, 1006 12, 10, 1007 11.8478, 10.7654, 1008 11.4142, 11.4142, 1009 10.7654, 11.8478, 1010 10, 12, 1011 9.23463, 11.8478, 1012 8.58579, 11.4142, 1013 8.15224, 10.7654, 1014 8, 10, 1015 8.15224, 9.23463, 1016 8.58579, 8.58579, 1017 9.23463, 8.15224, 1018 10, 8, 1019 10.7654, 8.15224, 1020 11.4142, 8.58579, 1021 11.8478, 9.23463, 1022 13, 10, 1023 12.7716, 11.1481, 1024 12.1213, 12.1213, 1025 11.1481, 12.7716, 1026 10, 13, 1027 8.85195, 12.7716, 1028 7.87868, 12.1213, 1029 7.22836, 11.1481, 1030 7, 10, 1031 7.22836, 8.85195, 1032 7.87868, 7.87868, 1033 8.85195, 7.22836, 1034 10, 7, 1035 11.1481, 7.22836, 1036 12.1213, 7.87868, 1037 12.7716, 8.85195, 1038 14, 10, 1039 13.6955, 11.5307, 1040 12.8284, 12.8284, 1041 11.5307, 13.6955, 1042 10, 14, 1043 8.46927, 13.6955, 1044 7.17157, 12.8284, 1045 6.30448, 11.5307, 1046 6, 10, 1047 6.30448, 8.46927, 1048 7.17157, 7.17157, 1049 8.46927, 6.30448, 1050 10, 6, 1051 11.5307, 6.30448, 1052 12.8284, 7.17157, 1053 13.6955, 8.46927 1054 }; 1055 static const unsigned some_enclosures_segments_count = 1024; 1056 static const unsigned some_enclosures_segments[2048] = 1057 { 1058 0, 1, 1059 1, 2, 1060 2, 3, 1061 3, 4, 1062 4, 5, 1063 5, 6, 1064 6, 7, 1065 7, 8, 1066 8, 9, 1067 9, 10, 1068 10, 11, 1069 11, 12, 1070 12, 13, 1071 13, 14, 1072 14, 15, 1073 15, 0, 1074 16, 17, 1075 17, 18, 1076 18, 19, 1077 19, 20, 1078 20, 21, 1079 21, 22, 1080 22, 23, 1081 23, 24, 1082 24, 25, 1083 25, 26, 1084 26, 27, 1085 27, 28, 1086 28, 29, 1087 29, 30, 1088 30, 31, 1089 31, 16, 1090 32, 33, 1091 33, 34, 1092 34, 35, 1093 35, 36, 1094 36, 37, 1095 37, 38, 1096 38, 39, 1097 39, 40, 1098 40, 41, 1099 41, 42, 1100 42, 43, 1101 43, 44, 1102 44, 45, 1103 45, 46, 1104 46, 47, 1105 47, 32, 1106 48, 49, 1107 49, 50, 1108 50, 51, 1109 51, 52, 1110 52, 53, 1111 53, 54, 1112 54, 55, 1113 55, 56, 1114 56, 57, 1115 57, 58, 1116 58, 59, 1117 59, 60, 1118 60, 61, 1119 61, 62, 1120 62, 63, 1121 63, 48, 1122 64, 65, 1123 65, 66, 1124 66, 67, 1125 67, 68, 1126 68, 69, 1127 69, 70, 1128 70, 71, 1129 71, 72, 1130 72, 73, 1131 73, 74, 1132 74, 75, 1133 75, 76, 1134 76, 77, 1135 77, 78, 1136 78, 79, 1137 79, 64, 1138 80, 81, 1139 81, 82, 1140 82, 83, 1141 83, 84, 1142 84, 85, 1143 85, 86, 1144 86, 87, 1145 87, 88, 1146 88, 89, 1147 89, 90, 1148 90, 91, 1149 91, 92, 1150 92, 93, 1151 93, 94, 1152 94, 95, 1153 95, 80, 1154 96, 97, 1155 97, 98, 1156 98, 99, 1157 99, 100, 1158 100, 101, 1159 101, 102, 1160 102, 103, 1161 103, 104, 1162 104, 105, 1163 105, 106, 1164 106, 107, 1165 107, 108, 1166 108, 109, 1167 109, 110, 1168 110, 111, 1169 111, 96, 1170 112, 113, 1171 113, 114, 1172 114, 115, 1173 115, 116, 1174 116, 117, 1175 117, 118, 1176 118, 119, 1177 119, 120, 1178 120, 121, 1179 121, 122, 1180 122, 123, 1181 123, 124, 1182 124, 125, 1183 125, 126, 1184 126, 127, 1185 127, 112, 1186 128, 129, 1187 129, 130, 1188 130, 131, 1189 131, 132, 1190 132, 133, 1191 133, 134, 1192 134, 135, 1193 135, 136, 1194 136, 137, 1195 137, 138, 1196 138, 139, 1197 139, 140, 1198 140, 141, 1199 141, 142, 1200 142, 143, 1201 143, 128, 1202 144, 145, 1203 145, 146, 1204 146, 147, 1205 147, 148, 1206 148, 149, 1207 149, 150, 1208 150, 151, 1209 151, 152, 1210 152, 153, 1211 153, 154, 1212 154, 155, 1213 155, 156, 1214 156, 157, 1215 157, 158, 1216 158, 159, 1217 159, 144, 1218 160, 161, 1219 161, 162, 1220 162, 163, 1221 163, 164, 1222 164, 165, 1223 165, 166, 1224 166, 167, 1225 167, 168, 1226 168, 169, 1227 169, 170, 1228 170, 171, 1229 171, 172, 1230 172, 173, 1231 173, 174, 1232 174, 175, 1233 175, 160, 1234 176, 177, 1235 177, 178, 1236 178, 179, 1237 179, 180, 1238 180, 181, 1239 181, 182, 1240 182, 183, 1241 183, 184, 1242 184, 185, 1243 185, 186, 1244 186, 187, 1245 187, 188, 1246 188, 189, 1247 189, 190, 1248 190, 191, 1249 191, 176, 1250 192, 193, 1251 193, 194, 1252 194, 195, 1253 195, 196, 1254 196, 197, 1255 197, 198, 1256 198, 199, 1257 199, 200, 1258 200, 201, 1259 201, 202, 1260 202, 203, 1261 203, 204, 1262 204, 205, 1263 205, 206, 1264 206, 207, 1265 207, 192, 1266 208, 209, 1267 209, 210, 1268 210, 211, 1269 211, 212, 1270 212, 213, 1271 213, 214, 1272 214, 215, 1273 215, 216, 1274 216, 217, 1275 217, 218, 1276 218, 219, 1277 219, 220, 1278 220, 221, 1279 221, 222, 1280 222, 223, 1281 223, 208, 1282 224, 225, 1283 225, 226, 1284 226, 227, 1285 227, 228, 1286 228, 229, 1287 229, 230, 1288 230, 231, 1289 231, 232, 1290 232, 233, 1291 233, 234, 1292 234, 235, 1293 235, 236, 1294 236, 237, 1295 237, 238, 1296 238, 239, 1297 239, 224, 1298 240, 241, 1299 241, 242, 1300 242, 243, 1301 243, 244, 1302 244, 245, 1303 245, 246, 1304 246, 247, 1305 247, 248, 1306 248, 249, 1307 249, 250, 1308 250, 251, 1309 251, 252, 1310 252, 253, 1311 253, 254, 1312 254, 255, 1313 255, 240, 1314 256, 257, 1315 257, 258, 1316 258, 259, 1317 259, 260, 1318 260, 261, 1319 261, 262, 1320 262, 263, 1321 263, 264, 1322 264, 265, 1323 265, 266, 1324 266, 267, 1325 267, 268, 1326 268, 269, 1327 269, 270, 1328 270, 271, 1329 271, 256, 1330 272, 273, 1331 273, 274, 1332 274, 275, 1333 275, 276, 1334 276, 277, 1335 277, 278, 1336 278, 279, 1337 279, 280, 1338 280, 281, 1339 281, 282, 1340 282, 283, 1341 283, 284, 1342 284, 285, 1343 285, 286, 1344 286, 287, 1345 287, 272, 1346 288, 289, 1347 289, 290, 1348 290, 291, 1349 291, 292, 1350 292, 293, 1351 293, 294, 1352 294, 295, 1353 295, 296, 1354 296, 297, 1355 297, 298, 1356 298, 299, 1357 299, 300, 1358 300, 301, 1359 301, 302, 1360 302, 303, 1361 303, 288, 1362 304, 305, 1363 305, 306, 1364 306, 307, 1365 307, 308, 1366 308, 309, 1367 309, 310, 1368 310, 311, 1369 311, 312, 1370 312, 313, 1371 313, 314, 1372 314, 315, 1373 315, 316, 1374 316, 317, 1375 317, 318, 1376 318, 319, 1377 319, 304, 1378 320, 321, 1379 321, 322, 1380 322, 323, 1381 323, 324, 1382 324, 325, 1383 325, 326, 1384 326, 327, 1385 327, 328, 1386 328, 329, 1387 329, 330, 1388 330, 331, 1389 331, 332, 1390 332, 333, 1391 333, 334, 1392 334, 335, 1393 335, 320, 1394 336, 337, 1395 337, 338, 1396 338, 339, 1397 339, 340, 1398 340, 341, 1399 341, 342, 1400 342, 343, 1401 343, 344, 1402 344, 345, 1403 345, 346, 1404 346, 347, 1405 347, 348, 1406 348, 349, 1407 349, 350, 1408 350, 351, 1409 351, 336, 1410 352, 353, 1411 353, 354, 1412 354, 355, 1413 355, 356, 1414 356, 357, 1415 357, 358, 1416 358, 359, 1417 359, 360, 1418 360, 361, 1419 361, 362, 1420 362, 363, 1421 363, 364, 1422 364, 365, 1423 365, 366, 1424 366, 367, 1425 367, 352, 1426 368, 369, 1427 369, 370, 1428 370, 371, 1429 371, 372, 1430 372, 373, 1431 373, 374, 1432 374, 375, 1433 375, 376, 1434 376, 377, 1435 377, 378, 1436 378, 379, 1437 379, 380, 1438 380, 381, 1439 381, 382, 1440 382, 383, 1441 383, 368, 1442 384, 385, 1443 385, 386, 1444 386, 387, 1445 387, 388, 1446 388, 389, 1447 389, 390, 1448 390, 391, 1449 391, 392, 1450 392, 393, 1451 393, 394, 1452 394, 395, 1453 395, 396, 1454 396, 397, 1455 397, 398, 1456 398, 399, 1457 399, 384, 1458 400, 401, 1459 401, 402, 1460 402, 403, 1461 403, 404, 1462 404, 405, 1463 405, 406, 1464 406, 407, 1465 407, 408, 1466 408, 409, 1467 409, 410, 1468 410, 411, 1469 411, 412, 1470 412, 413, 1471 413, 414, 1472 414, 415, 1473 415, 400, 1474 416, 417, 1475 417, 418, 1476 418, 419, 1477 419, 420, 1478 420, 421, 1479 421, 422, 1480 422, 423, 1481 423, 424, 1482 424, 425, 1483 425, 426, 1484 426, 427, 1485 427, 428, 1486 428, 429, 1487 429, 430, 1488 430, 431, 1489 431, 416, 1490 432, 433, 1491 433, 434, 1492 434, 435, 1493 435, 436, 1494 436, 437, 1495 437, 438, 1496 438, 439, 1497 439, 440, 1498 440, 441, 1499 441, 442, 1500 442, 443, 1501 443, 444, 1502 444, 445, 1503 445, 446, 1504 446, 447, 1505 447, 432, 1506 448, 449, 1507 449, 450, 1508 450, 451, 1509 451, 452, 1510 452, 453, 1511 453, 454, 1512 454, 455, 1513 455, 456, 1514 456, 457, 1515 457, 458, 1516 458, 459, 1517 459, 460, 1518 460, 461, 1519 461, 462, 1520 462, 463, 1521 463, 448, 1522 464, 465, 1523 465, 466, 1524 466, 467, 1525 467, 468, 1526 468, 469, 1527 469, 470, 1528 470, 471, 1529 471, 472, 1530 472, 473, 1531 473, 474, 1532 474, 475, 1533 475, 476, 1534 476, 477, 1535 477, 478, 1536 478, 479, 1537 479, 464, 1538 480, 481, 1539 481, 482, 1540 482, 483, 1541 483, 484, 1542 484, 485, 1543 485, 486, 1544 486, 487, 1545 487, 488, 1546 488, 489, 1547 489, 490, 1548 490, 491, 1549 491, 492, 1550 492, 493, 1551 493, 494, 1552 494, 495, 1553 495, 480, 1554 496, 497, 1555 497, 498, 1556 498, 499, 1557 499, 500, 1558 500, 501, 1559 501, 502, 1560 502, 503, 1561 503, 504, 1562 504, 505, 1563 505, 506, 1564 506, 507, 1565 507, 508, 1566 508, 509, 1567 509, 510, 1568 510, 511, 1569 511, 496, 1570 512, 513, 1571 513, 514, 1572 514, 515, 1573 515, 516, 1574 516, 517, 1575 517, 518, 1576 518, 519, 1577 519, 520, 1578 520, 521, 1579 521, 522, 1580 522, 523, 1581 523, 524, 1582 524, 525, 1583 525, 526, 1584 526, 527, 1585 527, 512, 1586 528, 529, 1587 529, 530, 1588 530, 531, 1589 531, 532, 1590 532, 533, 1591 533, 534, 1592 534, 535, 1593 535, 536, 1594 536, 537, 1595 537, 538, 1596 538, 539, 1597 539, 540, 1598 540, 541, 1599 541, 542, 1600 542, 543, 1601 543, 528, 1602 544, 545, 1603 545, 546, 1604 546, 547, 1605 547, 548, 1606 548, 549, 1607 549, 550, 1608 550, 551, 1609 551, 552, 1610 552, 553, 1611 553, 554, 1612 554, 555, 1613 555, 556, 1614 556, 557, 1615 557, 558, 1616 558, 559, 1617 559, 544, 1618 560, 561, 1619 561, 562, 1620 562, 563, 1621 563, 564, 1622 564, 565, 1623 565, 566, 1624 566, 567, 1625 567, 568, 1626 568, 569, 1627 569, 570, 1628 570, 571, 1629 571, 572, 1630 572, 573, 1631 573, 574, 1632 574, 575, 1633 575, 560, 1634 576, 577, 1635 577, 578, 1636 578, 579, 1637 579, 580, 1638 580, 581, 1639 581, 582, 1640 582, 583, 1641 583, 584, 1642 584, 585, 1643 585, 586, 1644 586, 587, 1645 587, 588, 1646 588, 589, 1647 589, 590, 1648 590, 591, 1649 591, 576, 1650 592, 593, 1651 593, 594, 1652 594, 595, 1653 595, 596, 1654 596, 597, 1655 597, 598, 1656 598, 599, 1657 599, 600, 1658 600, 601, 1659 601, 602, 1660 602, 603, 1661 603, 604, 1662 604, 605, 1663 605, 606, 1664 606, 607, 1665 607, 592, 1666 608, 609, 1667 609, 610, 1668 610, 611, 1669 611, 612, 1670 612, 613, 1671 613, 614, 1672 614, 615, 1673 615, 616, 1674 616, 617, 1675 617, 618, 1676 618, 619, 1677 619, 620, 1678 620, 621, 1679 621, 622, 1680 622, 623, 1681 623, 608, 1682 624, 625, 1683 625, 626, 1684 626, 627, 1685 627, 628, 1686 628, 629, 1687 629, 630, 1688 630, 631, 1689 631, 632, 1690 632, 633, 1691 633, 634, 1692 634, 635, 1693 635, 636, 1694 636, 637, 1695 637, 638, 1696 638, 639, 1697 639, 624, 1698 640, 641, 1699 641, 642, 1700 642, 643, 1701 643, 644, 1702 644, 645, 1703 645, 646, 1704 646, 647, 1705 647, 648, 1706 648, 649, 1707 649, 650, 1708 650, 651, 1709 651, 652, 1710 652, 653, 1711 653, 654, 1712 654, 655, 1713 655, 640, 1714 656, 657, 1715 657, 658, 1716 658, 659, 1717 659, 660, 1718 660, 661, 1719 661, 662, 1720 662, 663, 1721 663, 664, 1722 664, 665, 1723 665, 666, 1724 666, 667, 1725 667, 668, 1726 668, 669, 1727 669, 670, 1728 670, 671, 1729 671, 656, 1730 672, 673, 1731 673, 674, 1732 674, 675, 1733 675, 676, 1734 676, 677, 1735 677, 678, 1736 678, 679, 1737 679, 680, 1738 680, 681, 1739 681, 682, 1740 682, 683, 1741 683, 684, 1742 684, 685, 1743 685, 686, 1744 686, 687, 1745 687, 672, 1746 688, 689, 1747 689, 690, 1748 690, 691, 1749 691, 692, 1750 692, 693, 1751 693, 694, 1752 694, 695, 1753 695, 696, 1754 696, 697, 1755 697, 698, 1756 698, 699, 1757 699, 700, 1758 700, 701, 1759 701, 702, 1760 702, 703, 1761 703, 688, 1762 704, 705, 1763 705, 706, 1764 706, 707, 1765 707, 708, 1766 708, 709, 1767 709, 710, 1768 710, 711, 1769 711, 712, 1770 712, 713, 1771 713, 714, 1772 714, 715, 1773 715, 716, 1774 716, 717, 1775 717, 718, 1776 718, 719, 1777 719, 704, 1778 720, 721, 1779 721, 722, 1780 722, 723, 1781 723, 724, 1782 724, 725, 1783 725, 726, 1784 726, 727, 1785 727, 728, 1786 728, 729, 1787 729, 730, 1788 730, 731, 1789 731, 732, 1790 732, 733, 1791 733, 734, 1792 734, 735, 1793 735, 720, 1794 736, 737, 1795 737, 738, 1796 738, 739, 1797 739, 740, 1798 740, 741, 1799 741, 742, 1800 742, 743, 1801 743, 744, 1802 744, 745, 1803 745, 746, 1804 746, 747, 1805 747, 748, 1806 748, 749, 1807 749, 750, 1808 750, 751, 1809 751, 736, 1810 752, 753, 1811 753, 754, 1812 754, 755, 1813 755, 756, 1814 756, 757, 1815 757, 758, 1816 758, 759, 1817 759, 760, 1818 760, 761, 1819 761, 762, 1820 762, 763, 1821 763, 764, 1822 764, 765, 1823 765, 766, 1824 766, 767, 1825 767, 752, 1826 768, 769, 1827 769, 770, 1828 770, 771, 1829 771, 772, 1830 772, 773, 1831 773, 774, 1832 774, 775, 1833 775, 776, 1834 776, 777, 1835 777, 778, 1836 778, 779, 1837 779, 780, 1838 780, 781, 1839 781, 782, 1840 782, 783, 1841 783, 768, 1842 784, 785, 1843 785, 786, 1844 786, 787, 1845 787, 788, 1846 788, 789, 1847 789, 790, 1848 790, 791, 1849 791, 792, 1850 792, 793, 1851 793, 794, 1852 794, 795, 1853 795, 796, 1854 796, 797, 1855 797, 798, 1856 798, 799, 1857 799, 784, 1858 800, 801, 1859 801, 802, 1860 802, 803, 1861 803, 804, 1862 804, 805, 1863 805, 806, 1864 806, 807, 1865 807, 808, 1866 808, 809, 1867 809, 810, 1868 810, 811, 1869 811, 812, 1870 812, 813, 1871 813, 814, 1872 814, 815, 1873 815, 800, 1874 816, 817, 1875 817, 818, 1876 818, 819, 1877 819, 820, 1878 820, 821, 1879 821, 822, 1880 822, 823, 1881 823, 824, 1882 824, 825, 1883 825, 826, 1884 826, 827, 1885 827, 828, 1886 828, 829, 1887 829, 830, 1888 830, 831, 1889 831, 816, 1890 832, 833, 1891 833, 834, 1892 834, 835, 1893 835, 836, 1894 836, 837, 1895 837, 838, 1896 838, 839, 1897 839, 840, 1898 840, 841, 1899 841, 842, 1900 842, 843, 1901 843, 844, 1902 844, 845, 1903 845, 846, 1904 846, 847, 1905 847, 832, 1906 848, 849, 1907 849, 850, 1908 850, 851, 1909 851, 852, 1910 852, 853, 1911 853, 854, 1912 854, 855, 1913 855, 856, 1914 856, 857, 1915 857, 858, 1916 858, 859, 1917 859, 860, 1918 860, 861, 1919 861, 862, 1920 862, 863, 1921 863, 848, 1922 864, 865, 1923 865, 866, 1924 866, 867, 1925 867, 868, 1926 868, 869, 1927 869, 870, 1928 870, 871, 1929 871, 872, 1930 872, 873, 1931 873, 874, 1932 874, 875, 1933 875, 876, 1934 876, 877, 1935 877, 878, 1936 878, 879, 1937 879, 864, 1938 880, 881, 1939 881, 882, 1940 882, 883, 1941 883, 884, 1942 884, 885, 1943 885, 886, 1944 886, 887, 1945 887, 888, 1946 888, 889, 1947 889, 890, 1948 890, 891, 1949 891, 892, 1950 892, 893, 1951 893, 894, 1952 894, 895, 1953 895, 880, 1954 896, 897, 1955 897, 898, 1956 898, 899, 1957 899, 900, 1958 900, 901, 1959 901, 902, 1960 902, 903, 1961 903, 904, 1962 904, 905, 1963 905, 906, 1964 906, 907, 1965 907, 908, 1966 908, 909, 1967 909, 910, 1968 910, 911, 1969 911, 896, 1970 912, 913, 1971 913, 914, 1972 914, 915, 1973 915, 916, 1974 916, 917, 1975 917, 918, 1976 918, 919, 1977 919, 920, 1978 920, 921, 1979 921, 922, 1980 922, 923, 1981 923, 924, 1982 924, 925, 1983 925, 926, 1984 926, 927, 1985 927, 912, 1986 928, 929, 1987 929, 930, 1988 930, 931, 1989 931, 932, 1990 932, 933, 1991 933, 934, 1992 934, 935, 1993 935, 936, 1994 936, 937, 1995 937, 938, 1996 938, 939, 1997 939, 940, 1998 940, 941, 1999 941, 942, 2000 942, 943, 2001 943, 928, 2002 944, 945, 2003 945, 946, 2004 946, 947, 2005 947, 948, 2006 948, 949, 2007 949, 950, 2008 950, 951, 2009 951, 952, 2010 952, 953, 2011 953, 954, 2012 954, 955, 2013 955, 956, 2014 956, 957, 2015 957, 958, 2016 958, 959, 2017 959, 944, 2018 960, 961, 2019 961, 962, 2020 962, 963, 2021 963, 964, 2022 964, 965, 2023 965, 966, 2024 966, 967, 2025 967, 968, 2026 968, 969, 2027 969, 970, 2028 970, 971, 2029 971, 972, 2030 972, 973, 2031 973, 974, 2032 974, 975, 2033 975, 960, 2034 976, 977, 2035 977, 978, 2036 978, 979, 2037 979, 980, 2038 980, 981, 2039 981, 982, 2040 982, 983, 2041 983, 984, 2042 984, 985, 2043 985, 986, 2044 986, 987, 2045 987, 988, 2046 988, 989, 2047 989, 990, 2048 990, 991, 2049 991, 976, 2050 992, 993, 2051 993, 994, 2052 994, 995, 2053 995, 996, 2054 996, 997, 2055 997, 998, 2056 998, 999, 2057 999, 1000, 2058 1000, 1001, 2059 1001, 1002, 2060 1002, 1003, 2061 1003, 1004, 2062 1004, 1005, 2063 1005, 1006, 2064 1006, 1007, 2065 1007, 992, 2066 1008, 1009, 2067 1009, 1010, 2068 1010, 1011, 2069 1011, 1012, 2070 1012, 1013, 2071 1013, 1014, 2072 1014, 1015, 2073 1015, 1016, 2074 1016, 1017, 2075 1017, 1018, 2076 1018, 1019, 2077 1019, 1020, 2078 1020, 1021, 2079 1021, 1022, 2080 1022, 1023, 2081 1023, 1008 2082 }; 2083 static const unsigned some_enclosures_properties[3072] = 2084 { 2085 0, 1, 0, 2086 0, 1, 0, 2087 0, 1, 0, 2088 0, 1, 0, 2089 0, 1, 0, 2090 0, 1, 0, 2091 0, 1, 0, 2092 0, 1, 0, 2093 0, 1, 0, 2094 0, 1, 0, 2095 0, 1, 0, 2096 0, 1, 0, 2097 0, 1, 0, 2098 0, 1, 0, 2099 0, 1, 0, 2100 0, 1, 0, 2101 1, 2, 0, 2102 1, 2, 0, 2103 1, 2, 0, 2104 1, 2, 0, 2105 1, 2, 0, 2106 1, 2, 0, 2107 1, 2, 0, 2108 1, 2, 0, 2109 1, 2, 0, 2110 1, 2, 0, 2111 1, 2, 0, 2112 1, 2, 0, 2113 1, 2, 0, 2114 1, 2, 0, 2115 1, 2, 0, 2116 1, 2, 0, 2117 2, 3, 0, 2118 2, 3, 0, 2119 2, 3, 0, 2120 2, 3, 0, 2121 2, 3, 0, 2122 2, 3, 0, 2123 2, 3, 0, 2124 2, 3, 0, 2125 2, 3, 0, 2126 2, 3, 0, 2127 2, 3, 0, 2128 2, 3, 0, 2129 2, 3, 0, 2130 2, 3, 0, 2131 2, 3, 0, 2132 2, 3, 0, 2133 3, 4, 0, 2134 3, 4, 0, 2135 3, 4, 0, 2136 3, 4, 0, 2137 3, 4, 0, 2138 3, 4, 0, 2139 3, 4, 0, 2140 3, 4, 0, 2141 3, 4, 0, 2142 3, 4, 0, 2143 3, 4, 0, 2144 3, 4, 0, 2145 3, 4, 0, 2146 3, 4, 0, 2147 3, 4, 0, 2148 3, 4, 0, 2149 0, 1, 0, 2150 0, 1, 0, 2151 0, 1, 0, 2152 0, 1, 0, 2153 0, 1, 0, 2154 0, 1, 0, 2155 0, 1, 0, 2156 0, 1, 0, 2157 0, 1, 0, 2158 0, 1, 0, 2159 0, 1, 0, 2160 0, 1, 0, 2161 0, 1, 0, 2162 0, 1, 0, 2163 0, 1, 0, 2164 0, 1, 0, 2165 1, 2, 0, 2166 1, 2, 0, 2167 1, 2, 0, 2168 1, 2, 0, 2169 1, 2, 0, 2170 1, 2, 0, 2171 1, 2, 0, 2172 1, 2, 0, 2173 1, 2, 0, 2174 1, 2, 0, 2175 1, 2, 0, 2176 1, 2, 0, 2177 1, 2, 0, 2178 1, 2, 0, 2179 1, 2, 0, 2180 1, 2, 0, 2181 2, 3, 0, 2182 2, 3, 0, 2183 2, 3, 0, 2184 2, 3, 0, 2185 2, 3, 0, 2186 2, 3, 0, 2187 2, 3, 0, 2188 2, 3, 0, 2189 2, 3, 0, 2190 2, 3, 0, 2191 2, 3, 0, 2192 2, 3, 0, 2193 2, 3, 0, 2194 2, 3, 0, 2195 2, 3, 0, 2196 2, 3, 0, 2197 3, 4, 0, 2198 3, 4, 0, 2199 3, 4, 0, 2200 3, 4, 0, 2201 3, 4, 0, 2202 3, 4, 0, 2203 3, 4, 0, 2204 3, 4, 0, 2205 3, 4, 0, 2206 3, 4, 0, 2207 3, 4, 0, 2208 3, 4, 0, 2209 3, 4, 0, 2210 3, 4, 0, 2211 3, 4, 0, 2212 3, 4, 0, 2213 0, 1, 0, 2214 0, 1, 0, 2215 0, 1, 0, 2216 0, 1, 0, 2217 0, 1, 0, 2218 0, 1, 0, 2219 0, 1, 0, 2220 0, 1, 0, 2221 0, 1, 0, 2222 0, 1, 0, 2223 0, 1, 0, 2224 0, 1, 0, 2225 0, 1, 0, 2226 0, 1, 0, 2227 0, 1, 0, 2228 0, 1, 0, 2229 1, 2, 0, 2230 1, 2, 0, 2231 1, 2, 0, 2232 1, 2, 0, 2233 1, 2, 0, 2234 1, 2, 0, 2235 1, 2, 0, 2236 1, 2, 0, 2237 1, 2, 0, 2238 1, 2, 0, 2239 1, 2, 0, 2240 1, 2, 0, 2241 1, 2, 0, 2242 1, 2, 0, 2243 1, 2, 0, 2244 1, 2, 0, 2245 2, 3, 0, 2246 2, 3, 0, 2247 2, 3, 0, 2248 2, 3, 0, 2249 2, 3, 0, 2250 2, 3, 0, 2251 2, 3, 0, 2252 2, 3, 0, 2253 2, 3, 0, 2254 2, 3, 0, 2255 2, 3, 0, 2256 2, 3, 0, 2257 2, 3, 0, 2258 2, 3, 0, 2259 2, 3, 0, 2260 2, 3, 0, 2261 3, 4, 0, 2262 3, 4, 0, 2263 3, 4, 0, 2264 3, 4, 0, 2265 3, 4, 0, 2266 3, 4, 0, 2267 3, 4, 0, 2268 3, 4, 0, 2269 3, 4, 0, 2270 3, 4, 0, 2271 3, 4, 0, 2272 3, 4, 0, 2273 3, 4, 0, 2274 3, 4, 0, 2275 3, 4, 0, 2276 3, 4, 0, 2277 0, 1, 0, 2278 0, 1, 0, 2279 0, 1, 0, 2280 0, 1, 0, 2281 0, 1, 0, 2282 0, 1, 0, 2283 0, 1, 0, 2284 0, 1, 0, 2285 0, 1, 0, 2286 0, 1, 0, 2287 0, 1, 0, 2288 0, 1, 0, 2289 0, 1, 0, 2290 0, 1, 0, 2291 0, 1, 0, 2292 0, 1, 0, 2293 1, 2, 0, 2294 1, 2, 0, 2295 1, 2, 0, 2296 1, 2, 0, 2297 1, 2, 0, 2298 1, 2, 0, 2299 1, 2, 0, 2300 1, 2, 0, 2301 1, 2, 0, 2302 1, 2, 0, 2303 1, 2, 0, 2304 1, 2, 0, 2305 1, 2, 0, 2306 1, 2, 0, 2307 1, 2, 0, 2308 1, 2, 0, 2309 2, 3, 0, 2310 2, 3, 0, 2311 2, 3, 0, 2312 2, 3, 0, 2313 2, 3, 0, 2314 2, 3, 0, 2315 2, 3, 0, 2316 2, 3, 0, 2317 2, 3, 0, 2318 2, 3, 0, 2319 2, 3, 0, 2320 2, 3, 0, 2321 2, 3, 0, 2322 2, 3, 0, 2323 2, 3, 0, 2324 2, 3, 0, 2325 3, 4, 0, 2326 3, 4, 0, 2327 3, 4, 0, 2328 3, 4, 0, 2329 3, 4, 0, 2330 3, 4, 0, 2331 3, 4, 0, 2332 3, 4, 0, 2333 3, 4, 0, 2334 3, 4, 0, 2335 3, 4, 0, 2336 3, 4, 0, 2337 3, 4, 0, 2338 3, 4, 0, 2339 3, 4, 0, 2340 3, 4, 0, 2341 0, 1, 0, 2342 0, 1, 0, 2343 0, 1, 0, 2344 0, 1, 0, 2345 0, 1, 0, 2346 0, 1, 0, 2347 0, 1, 0, 2348 0, 1, 0, 2349 0, 1, 0, 2350 0, 1, 0, 2351 0, 1, 0, 2352 0, 1, 0, 2353 0, 1, 0, 2354 0, 1, 0, 2355 0, 1, 0, 2356 0, 1, 0, 2357 1, 2, 0, 2358 1, 2, 0, 2359 1, 2, 0, 2360 1, 2, 0, 2361 1, 2, 0, 2362 1, 2, 0, 2363 1, 2, 0, 2364 1, 2, 0, 2365 1, 2, 0, 2366 1, 2, 0, 2367 1, 2, 0, 2368 1, 2, 0, 2369 1, 2, 0, 2370 1, 2, 0, 2371 1, 2, 0, 2372 1, 2, 0, 2373 2, 3, 0, 2374 2, 3, 0, 2375 2, 3, 0, 2376 2, 3, 0, 2377 2, 3, 0, 2378 2, 3, 0, 2379 2, 3, 0, 2380 2, 3, 0, 2381 2, 3, 0, 2382 2, 3, 0, 2383 2, 3, 0, 2384 2, 3, 0, 2385 2, 3, 0, 2386 2, 3, 0, 2387 2, 3, 0, 2388 2, 3, 0, 2389 3, 4, 0, 2390 3, 4, 0, 2391 3, 4, 0, 2392 3, 4, 0, 2393 3, 4, 0, 2394 3, 4, 0, 2395 3, 4, 0, 2396 3, 4, 0, 2397 3, 4, 0, 2398 3, 4, 0, 2399 3, 4, 0, 2400 3, 4, 0, 2401 3, 4, 0, 2402 3, 4, 0, 2403 3, 4, 0, 2404 3, 4, 0, 2405 0, 1, 0, 2406 0, 1, 0, 2407 0, 1, 0, 2408 0, 1, 0, 2409 0, 1, 0, 2410 0, 1, 0, 2411 0, 1, 0, 2412 0, 1, 0, 2413 0, 1, 0, 2414 0, 1, 0, 2415 0, 1, 0, 2416 0, 1, 0, 2417 0, 1, 0, 2418 0, 1, 0, 2419 0, 1, 0, 2420 0, 1, 0, 2421 1, 2, 0, 2422 1, 2, 0, 2423 1, 2, 0, 2424 1, 2, 0, 2425 1, 2, 0, 2426 1, 2, 0, 2427 1, 2, 0, 2428 1, 2, 0, 2429 1, 2, 0, 2430 1, 2, 0, 2431 1, 2, 0, 2432 1, 2, 0, 2433 1, 2, 0, 2434 1, 2, 0, 2435 1, 2, 0, 2436 1, 2, 0, 2437 2, 3, 0, 2438 2, 3, 0, 2439 2, 3, 0, 2440 2, 3, 0, 2441 2, 3, 0, 2442 2, 3, 0, 2443 2, 3, 0, 2444 2, 3, 0, 2445 2, 3, 0, 2446 2, 3, 0, 2447 2, 3, 0, 2448 2, 3, 0, 2449 2, 3, 0, 2450 2, 3, 0, 2451 2, 3, 0, 2452 2, 3, 0, 2453 3, 4, 0, 2454 3, 4, 0, 2455 3, 4, 0, 2456 3, 4, 0, 2457 3, 4, 0, 2458 3, 4, 0, 2459 3, 4, 0, 2460 3, 4, 0, 2461 3, 4, 0, 2462 3, 4, 0, 2463 3, 4, 0, 2464 3, 4, 0, 2465 3, 4, 0, 2466 3, 4, 0, 2467 3, 4, 0, 2468 3, 4, 0, 2469 0, 1, 0, 2470 0, 1, 0, 2471 0, 1, 0, 2472 0, 1, 0, 2473 0, 1, 0, 2474 0, 1, 0, 2475 0, 1, 0, 2476 0, 1, 0, 2477 0, 1, 0, 2478 0, 1, 0, 2479 0, 1, 0, 2480 0, 1, 0, 2481 0, 1, 0, 2482 0, 1, 0, 2483 0, 1, 0, 2484 0, 1, 0, 2485 1, 2, 0, 2486 1, 2, 0, 2487 1, 2, 0, 2488 1, 2, 0, 2489 1, 2, 0, 2490 1, 2, 0, 2491 1, 2, 0, 2492 1, 2, 0, 2493 1, 2, 0, 2494 1, 2, 0, 2495 1, 2, 0, 2496 1, 2, 0, 2497 1, 2, 0, 2498 1, 2, 0, 2499 1, 2, 0, 2500 1, 2, 0, 2501 2, 3, 0, 2502 2, 3, 0, 2503 2, 3, 0, 2504 2, 3, 0, 2505 2, 3, 0, 2506 2, 3, 0, 2507 2, 3, 0, 2508 2, 3, 0, 2509 2, 3, 0, 2510 2, 3, 0, 2511 2, 3, 0, 2512 2, 3, 0, 2513 2, 3, 0, 2514 2, 3, 0, 2515 2, 3, 0, 2516 2, 3, 0, 2517 3, 4, 0, 2518 3, 4, 0, 2519 3, 4, 0, 2520 3, 4, 0, 2521 3, 4, 0, 2522 3, 4, 0, 2523 3, 4, 0, 2524 3, 4, 0, 2525 3, 4, 0, 2526 3, 4, 0, 2527 3, 4, 0, 2528 3, 4, 0, 2529 3, 4, 0, 2530 3, 4, 0, 2531 3, 4, 0, 2532 3, 4, 0, 2533 0, 1, 0, 2534 0, 1, 0, 2535 0, 1, 0, 2536 0, 1, 0, 2537 0, 1, 0, 2538 0, 1, 0, 2539 0, 1, 0, 2540 0, 1, 0, 2541 0, 1, 0, 2542 0, 1, 0, 2543 0, 1, 0, 2544 0, 1, 0, 2545 0, 1, 0, 2546 0, 1, 0, 2547 0, 1, 0, 2548 0, 1, 0, 2549 1, 2, 0, 2550 1, 2, 0, 2551 1, 2, 0, 2552 1, 2, 0, 2553 1, 2, 0, 2554 1, 2, 0, 2555 1, 2, 0, 2556 1, 2, 0, 2557 1, 2, 0, 2558 1, 2, 0, 2559 1, 2, 0, 2560 1, 2, 0, 2561 1, 2, 0, 2562 1, 2, 0, 2563 1, 2, 0, 2564 1, 2, 0, 2565 2, 3, 0, 2566 2, 3, 0, 2567 2, 3, 0, 2568 2, 3, 0, 2569 2, 3, 0, 2570 2, 3, 0, 2571 2, 3, 0, 2572 2, 3, 0, 2573 2, 3, 0, 2574 2, 3, 0, 2575 2, 3, 0, 2576 2, 3, 0, 2577 2, 3, 0, 2578 2, 3, 0, 2579 2, 3, 0, 2580 2, 3, 0, 2581 3, 4, 0, 2582 3, 4, 0, 2583 3, 4, 0, 2584 3, 4, 0, 2585 3, 4, 0, 2586 3, 4, 0, 2587 3, 4, 0, 2588 3, 4, 0, 2589 3, 4, 0, 2590 3, 4, 0, 2591 3, 4, 0, 2592 3, 4, 0, 2593 3, 4, 0, 2594 3, 4, 0, 2595 3, 4, 0, 2596 3, 4, 0, 2597 0, 1, 0, 2598 0, 1, 0, 2599 0, 1, 0, 2600 0, 1, 0, 2601 0, 1, 0, 2602 0, 1, 0, 2603 0, 1, 0, 2604 0, 1, 0, 2605 0, 1, 0, 2606 0, 1, 0, 2607 0, 1, 0, 2608 0, 1, 0, 2609 0, 1, 0, 2610 0, 1, 0, 2611 0, 1, 0, 2612 0, 1, 0, 2613 1, 2, 0, 2614 1, 2, 0, 2615 1, 2, 0, 2616 1, 2, 0, 2617 1, 2, 0, 2618 1, 2, 0, 2619 1, 2, 0, 2620 1, 2, 0, 2621 1, 2, 0, 2622 1, 2, 0, 2623 1, 2, 0, 2624 1, 2, 0, 2625 1, 2, 0, 2626 1, 2, 0, 2627 1, 2, 0, 2628 1, 2, 0, 2629 2, 3, 0, 2630 2, 3, 0, 2631 2, 3, 0, 2632 2, 3, 0, 2633 2, 3, 0, 2634 2, 3, 0, 2635 2, 3, 0, 2636 2, 3, 0, 2637 2, 3, 0, 2638 2, 3, 0, 2639 2, 3, 0, 2640 2, 3, 0, 2641 2, 3, 0, 2642 2, 3, 0, 2643 2, 3, 0, 2644 2, 3, 0, 2645 3, 4, 0, 2646 3, 4, 0, 2647 3, 4, 0, 2648 3, 4, 0, 2649 3, 4, 0, 2650 3, 4, 0, 2651 3, 4, 0, 2652 3, 4, 0, 2653 3, 4, 0, 2654 3, 4, 0, 2655 3, 4, 0, 2656 3, 4, 0, 2657 3, 4, 0, 2658 3, 4, 0, 2659 3, 4, 0, 2660 3, 4, 0, 2661 0, 1, 0, 2662 0, 1, 0, 2663 0, 1, 0, 2664 0, 1, 0, 2665 0, 1, 0, 2666 0, 1, 0, 2667 0, 1, 0, 2668 0, 1, 0, 2669 0, 1, 0, 2670 0, 1, 0, 2671 0, 1, 0, 2672 0, 1, 0, 2673 0, 1, 0, 2674 0, 1, 0, 2675 0, 1, 0, 2676 0, 1, 0, 2677 1, 2, 0, 2678 1, 2, 0, 2679 1, 2, 0, 2680 1, 2, 0, 2681 1, 2, 0, 2682 1, 2, 0, 2683 1, 2, 0, 2684 1, 2, 0, 2685 1, 2, 0, 2686 1, 2, 0, 2687 1, 2, 0, 2688 1, 2, 0, 2689 1, 2, 0, 2690 1, 2, 0, 2691 1, 2, 0, 2692 1, 2, 0, 2693 2, 3, 0, 2694 2, 3, 0, 2695 2, 3, 0, 2696 2, 3, 0, 2697 2, 3, 0, 2698 2, 3, 0, 2699 2, 3, 0, 2700 2, 3, 0, 2701 2, 3, 0, 2702 2, 3, 0, 2703 2, 3, 0, 2704 2, 3, 0, 2705 2, 3, 0, 2706 2, 3, 0, 2707 2, 3, 0, 2708 2, 3, 0, 2709 3, 4, 0, 2710 3, 4, 0, 2711 3, 4, 0, 2712 3, 4, 0, 2713 3, 4, 0, 2714 3, 4, 0, 2715 3, 4, 0, 2716 3, 4, 0, 2717 3, 4, 0, 2718 3, 4, 0, 2719 3, 4, 0, 2720 3, 4, 0, 2721 3, 4, 0, 2722 3, 4, 0, 2723 3, 4, 0, 2724 3, 4, 0, 2725 0, 1, 0, 2726 0, 1, 0, 2727 0, 1, 0, 2728 0, 1, 0, 2729 0, 1, 0, 2730 0, 1, 0, 2731 0, 1, 0, 2732 0, 1, 0, 2733 0, 1, 0, 2734 0, 1, 0, 2735 0, 1, 0, 2736 0, 1, 0, 2737 0, 1, 0, 2738 0, 1, 0, 2739 0, 1, 0, 2740 0, 1, 0, 2741 1, 2, 0, 2742 1, 2, 0, 2743 1, 2, 0, 2744 1, 2, 0, 2745 1, 2, 0, 2746 1, 2, 0, 2747 1, 2, 0, 2748 1, 2, 0, 2749 1, 2, 0, 2750 1, 2, 0, 2751 1, 2, 0, 2752 1, 2, 0, 2753 1, 2, 0, 2754 1, 2, 0, 2755 1, 2, 0, 2756 1, 2, 0, 2757 2, 3, 0, 2758 2, 3, 0, 2759 2, 3, 0, 2760 2, 3, 0, 2761 2, 3, 0, 2762 2, 3, 0, 2763 2, 3, 0, 2764 2, 3, 0, 2765 2, 3, 0, 2766 2, 3, 0, 2767 2, 3, 0, 2768 2, 3, 0, 2769 2, 3, 0, 2770 2, 3, 0, 2771 2, 3, 0, 2772 2, 3, 0, 2773 3, 4, 0, 2774 3, 4, 0, 2775 3, 4, 0, 2776 3, 4, 0, 2777 3, 4, 0, 2778 3, 4, 0, 2779 3, 4, 0, 2780 3, 4, 0, 2781 3, 4, 0, 2782 3, 4, 0, 2783 3, 4, 0, 2784 3, 4, 0, 2785 3, 4, 0, 2786 3, 4, 0, 2787 3, 4, 0, 2788 3, 4, 0, 2789 0, 1, 0, 2790 0, 1, 0, 2791 0, 1, 0, 2792 0, 1, 0, 2793 0, 1, 0, 2794 0, 1, 0, 2795 0, 1, 0, 2796 0, 1, 0, 2797 0, 1, 0, 2798 0, 1, 0, 2799 0, 1, 0, 2800 0, 1, 0, 2801 0, 1, 0, 2802 0, 1, 0, 2803 0, 1, 0, 2804 0, 1, 0, 2805 1, 2, 0, 2806 1, 2, 0, 2807 1, 2, 0, 2808 1, 2, 0, 2809 1, 2, 0, 2810 1, 2, 0, 2811 1, 2, 0, 2812 1, 2, 0, 2813 1, 2, 0, 2814 1, 2, 0, 2815 1, 2, 0, 2816 1, 2, 0, 2817 1, 2, 0, 2818 1, 2, 0, 2819 1, 2, 0, 2820 1, 2, 0, 2821 2, 3, 0, 2822 2, 3, 0, 2823 2, 3, 0, 2824 2, 3, 0, 2825 2, 3, 0, 2826 2, 3, 0, 2827 2, 3, 0, 2828 2, 3, 0, 2829 2, 3, 0, 2830 2, 3, 0, 2831 2, 3, 0, 2832 2, 3, 0, 2833 2, 3, 0, 2834 2, 3, 0, 2835 2, 3, 0, 2836 2, 3, 0, 2837 3, 4, 0, 2838 3, 4, 0, 2839 3, 4, 0, 2840 3, 4, 0, 2841 3, 4, 0, 2842 3, 4, 0, 2843 3, 4, 0, 2844 3, 4, 0, 2845 3, 4, 0, 2846 3, 4, 0, 2847 3, 4, 0, 2848 3, 4, 0, 2849 3, 4, 0, 2850 3, 4, 0, 2851 3, 4, 0, 2852 3, 4, 0, 2853 0, 1, 0, 2854 0, 1, 0, 2855 0, 1, 0, 2856 0, 1, 0, 2857 0, 1, 0, 2858 0, 1, 0, 2859 0, 1, 0, 2860 0, 1, 0, 2861 0, 1, 0, 2862 0, 1, 0, 2863 0, 1, 0, 2864 0, 1, 0, 2865 0, 1, 0, 2866 0, 1, 0, 2867 0, 1, 0, 2868 0, 1, 0, 2869 1, 2, 0, 2870 1, 2, 0, 2871 1, 2, 0, 2872 1, 2, 0, 2873 1, 2, 0, 2874 1, 2, 0, 2875 1, 2, 0, 2876 1, 2, 0, 2877 1, 2, 0, 2878 1, 2, 0, 2879 1, 2, 0, 2880 1, 2, 0, 2881 1, 2, 0, 2882 1, 2, 0, 2883 1, 2, 0, 2884 1, 2, 0, 2885 2, 3, 0, 2886 2, 3, 0, 2887 2, 3, 0, 2888 2, 3, 0, 2889 2, 3, 0, 2890 2, 3, 0, 2891 2, 3, 0, 2892 2, 3, 0, 2893 2, 3, 0, 2894 2, 3, 0, 2895 2, 3, 0, 2896 2, 3, 0, 2897 2, 3, 0, 2898 2, 3, 0, 2899 2, 3, 0, 2900 2, 3, 0, 2901 3, 4, 0, 2902 3, 4, 0, 2903 3, 4, 0, 2904 3, 4, 0, 2905 3, 4, 0, 2906 3, 4, 0, 2907 3, 4, 0, 2908 3, 4, 0, 2909 3, 4, 0, 2910 3, 4, 0, 2911 3, 4, 0, 2912 3, 4, 0, 2913 3, 4, 0, 2914 3, 4, 0, 2915 3, 4, 0, 2916 3, 4, 0, 2917 0, 1, 0, 2918 0, 1, 0, 2919 0, 1, 0, 2920 0, 1, 0, 2921 0, 1, 0, 2922 0, 1, 0, 2923 0, 1, 0, 2924 0, 1, 0, 2925 0, 1, 0, 2926 0, 1, 0, 2927 0, 1, 0, 2928 0, 1, 0, 2929 0, 1, 0, 2930 0, 1, 0, 2931 0, 1, 0, 2932 0, 1, 0, 2933 1, 2, 0, 2934 1, 2, 0, 2935 1, 2, 0, 2936 1, 2, 0, 2937 1, 2, 0, 2938 1, 2, 0, 2939 1, 2, 0, 2940 1, 2, 0, 2941 1, 2, 0, 2942 1, 2, 0, 2943 1, 2, 0, 2944 1, 2, 0, 2945 1, 2, 0, 2946 1, 2, 0, 2947 1, 2, 0, 2948 1, 2, 0, 2949 2, 3, 0, 2950 2, 3, 0, 2951 2, 3, 0, 2952 2, 3, 0, 2953 2, 3, 0, 2954 2, 3, 0, 2955 2, 3, 0, 2956 2, 3, 0, 2957 2, 3, 0, 2958 2, 3, 0, 2959 2, 3, 0, 2960 2, 3, 0, 2961 2, 3, 0, 2962 2, 3, 0, 2963 2, 3, 0, 2964 2, 3, 0, 2965 3, 4, 0, 2966 3, 4, 0, 2967 3, 4, 0, 2968 3, 4, 0, 2969 3, 4, 0, 2970 3, 4, 0, 2971 3, 4, 0, 2972 3, 4, 0, 2973 3, 4, 0, 2974 3, 4, 0, 2975 3, 4, 0, 2976 3, 4, 0, 2977 3, 4, 0, 2978 3, 4, 0, 2979 3, 4, 0, 2980 3, 4, 0, 2981 0, 1, 0, 2982 0, 1, 0, 2983 0, 1, 0, 2984 0, 1, 0, 2985 0, 1, 0, 2986 0, 1, 0, 2987 0, 1, 0, 2988 0, 1, 0, 2989 0, 1, 0, 2990 0, 1, 0, 2991 0, 1, 0, 2992 0, 1, 0, 2993 0, 1, 0, 2994 0, 1, 0, 2995 0, 1, 0, 2996 0, 1, 0, 2997 1, 2, 0, 2998 1, 2, 0, 2999 1, 2, 0, 3000 1, 2, 0, 3001 1, 2, 0, 3002 1, 2, 0, 3003 1, 2, 0, 3004 1, 2, 0, 3005 1, 2, 0, 3006 1, 2, 0, 3007 1, 2, 0, 3008 1, 2, 0, 3009 1, 2, 0, 3010 1, 2, 0, 3011 1, 2, 0, 3012 1, 2, 0, 3013 2, 3, 0, 3014 2, 3, 0, 3015 2, 3, 0, 3016 2, 3, 0, 3017 2, 3, 0, 3018 2, 3, 0, 3019 2, 3, 0, 3020 2, 3, 0, 3021 2, 3, 0, 3022 2, 3, 0, 3023 2, 3, 0, 3024 2, 3, 0, 3025 2, 3, 0, 3026 2, 3, 0, 3027 2, 3, 0, 3028 2, 3, 0, 3029 3, 4, 0, 3030 3, 4, 0, 3031 3, 4, 0, 3032 3, 4, 0, 3033 3, 4, 0, 3034 3, 4, 0, 3035 3, 4, 0, 3036 3, 4, 0, 3037 3, 4, 0, 3038 3, 4, 0, 3039 3, 4, 0, 3040 3, 4, 0, 3041 3, 4, 0, 3042 3, 4, 0, 3043 3, 4, 0, 3044 3, 4, 0, 3045 0, 1, 0, 3046 0, 1, 0, 3047 0, 1, 0, 3048 0, 1, 0, 3049 0, 1, 0, 3050 0, 1, 0, 3051 0, 1, 0, 3052 0, 1, 0, 3053 0, 1, 0, 3054 0, 1, 0, 3055 0, 1, 0, 3056 0, 1, 0, 3057 0, 1, 0, 3058 0, 1, 0, 3059 0, 1, 0, 3060 0, 1, 0, 3061 1, 2, 0, 3062 1, 2, 0, 3063 1, 2, 0, 3064 1, 2, 0, 3065 1, 2, 0, 3066 1, 2, 0, 3067 1, 2, 0, 3068 1, 2, 0, 3069 1, 2, 0, 3070 1, 2, 0, 3071 1, 2, 0, 3072 1, 2, 0, 3073 1, 2, 0, 3074 1, 2, 0, 3075 1, 2, 0, 3076 1, 2, 0, 3077 2, 3, 0, 3078 2, 3, 0, 3079 2, 3, 0, 3080 2, 3, 0, 3081 2, 3, 0, 3082 2, 3, 0, 3083 2, 3, 0, 3084 2, 3, 0, 3085 2, 3, 0, 3086 2, 3, 0, 3087 2, 3, 0, 3088 2, 3, 0, 3089 2, 3, 0, 3090 2, 3, 0, 3091 2, 3, 0, 3092 2, 3, 0, 3093 3, 4, 0, 3094 3, 4, 0, 3095 3, 4, 0, 3096 3, 4, 0, 3097 3, 4, 0, 3098 3, 4, 0, 3099 3, 4, 0, 3100 3, 4, 0, 3101 3, 4, 0, 3102 3, 4, 0, 3103 3, 4, 0, 3104 3, 4, 0, 3105 3, 4, 0, 3106 3, 4, 0, 3107 3, 4, 0, 3108 3, 4, 0 3109 }; 3110 3111 #define NB_CIRC_X 4 3112 #define NB_CIRC_Y 4 3113 #define NB_CIRC_Z 4 3114 #define NB_CIRC (NB_CIRC_X * NB_CIRC_Y * NB_CIRC_Z) 3115 #define CIRC_VRTX_COUNT 16u 3116 #define CIRC_SEG_COUNT 16u 3117 3118 int 3119 main(int argc, char** argv) 3120 { 3121 struct mem_allocator allocator; 3122 struct senc2d_device* dev = NULL; 3123 struct senc2d_scene* scn = NULL; 3124 struct context ctx = CONTEXT_NULL__; 3125 unsigned e, count; 3126 (void)argc, (void)argv; 3127 3128 OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator)); 3129 OK(senc2d_device_create(NULL, &allocator, SENC2D_NTHREADS_DEFAULT, 1, &dev)); 3130 3131 /* Create a scene */ 3132 ctx.positions = some_enclosures_vertices; 3133 ctx.indices = some_enclosures_segments; 3134 ctx.properties = some_enclosures_properties; 3135 OK(senc2d_scene_create(dev, 3136 SENC2D_CONVENTION_NORMAL_FRONT | SENC2D_CONVENTION_NORMAL_INSIDE, 3137 some_enclosures_segments_count, get_indices, get_media_from_properties, 3138 some_enclosures_vertices_count, get_position, &ctx, &scn)); 3139 3140 OK(senc2d_scene_get_vertices_count(scn, &count)); 3141 CHK(count == some_enclosures_vertices_count); 3142 CHK(count == NB_CIRC * CIRC_VRTX_COUNT); 3143 OK(senc2d_scene_get_segments_count(scn, &count)); 3144 CHK(count == some_enclosures_segments_count); 3145 CHK(count == NB_CIRC * CIRC_SEG_COUNT); 3146 3147 OK(senc2d_scene_get_enclosure_count(scn, &count)); 3148 CHK(count == 1 + NB_CIRC); 3149 FOR_EACH(e, 0, count) { 3150 struct senc2d_enclosure* enclosure; 3151 struct senc2d_enclosure_header header; 3152 unsigned m; 3153 OK(senc2d_scene_get_enclosure(scn, e, &enclosure)); 3154 OK(senc2d_enclosure_get_header(enclosure, &header)); 3155 CHK(header.enclosed_media_count == 1); 3156 OK(senc2d_enclosure_get_medium(enclosure, 0, &m)); 3157 CHK(header.primitives_count == 3158 (header.is_infinite /* Outermost enclosure: NB_CIRC_X*NB_CIRC_Y circles */ 3159 ? NB_CIRC_X * NB_CIRC_Y * CIRC_SEG_COUNT 3160 : (m == 0 3161 ? CIRC_SEG_COUNT /* Innermost enclosures: 1 circle */ 3162 : 2 * CIRC_SEG_COUNT))); /* Other enclosures: 2 circles */ 3163 OK(senc2d_enclosure_ref_put(enclosure)); 3164 } 3165 3166 OK(senc2d_scene_ref_put(scn)); 3167 OK(senc2d_device_ref_put(dev)); 3168 3169 check_memory_allocator(&allocator); 3170 mem_shutdown_proxy_allocator(&allocator); 3171 CHK(mem_allocated_size() == 0); 3172 return 0; 3173 }