1
0

Removed the subdir.

This commit is contained in:
2022-07-20 15:01:07 +02:00
parent aee5e8bbd9
commit e03f1c8be8
234 changed files with 21562 additions and 456 deletions

View File

View File

@ -0,0 +1,376 @@
OFF
122 252 0
0 0.5257311121191336 0.85065080835204
0 0.5257311121191336 -0.85065080835204
0 -0.5257311121191336 0.85065080835204
0 -0.5257311121191336 -0.85065080835204
0.5257311121191336 0.85065080835204 0
0.5257311121191336 -0.85065080835204 0
-0.5257311121191336 0.85065080835204 0
-0.5257311121191336 -0.85065080835204 0
0.85065080835204 0 0.5257311121191336
0.85065080835204 0 -0.5257311121191336
-0.85065080835204 0 0.5257311121191336
-0.85065080835204 0 -0.5257311121191336
2.175242402100701e-16 -1.643460219210441e-32 1
0.3090169943749475 0.8090169943749472 0.5000000000000002
-0.3090169943749475 0.8090169943749472 0.5000000000000002
0.4999999999999999 0.3090169943749474 0.8090169943749472
-0.5000000000000001 0.3090169943749475 0.8090169943749472
2.175242402100701e-16 1.643460219210441e-32 -1
0.3090169943749475 0.8090169943749472 -0.5000000000000002
-0.3090169943749475 0.8090169943749472 -0.5000000000000002
0.5 0.3090169943749473 -0.8090169943749475
-0.4999999999999999 0.3090169943749474 -0.8090169943749472
0.3090169943749473 -0.8090169943749475 0.5
-0.3090169943749475 -0.8090169943749472 0.5000000000000002
0.5 -0.3090169943749473 0.8090169943749475
-0.4999999999999999 -0.3090169943749474 0.8090169943749472
0.3090169943749473 -0.8090169943749475 -0.5
-0.3090169943749473 -0.8090169943749475 -0.5
0.5 -0.3090169943749472 -0.8090169943749475
-0.5000000000000001 -0.3090169943749475 -0.8090169943749472
0 1 4.350484804201401e-17
0.8090169943749475 0.5 0.3090169943749472
0.8090169943749472 0.4999999999999999 -0.3090169943749473
0 -1 -4.350484804201401e-17
0.8090169943749472 -0.4999999999999999 0.3090169943749473
0.8090169943749475 -0.5 -0.3090169943749472
-0.8090169943749472 0.4999999999999999 0.3090169943749473
-0.8090169943749472 0.4999999999999999 -0.3090169943749475
-0.8090169943749475 -0.5 0.3090169943749472
-0.8090169943749472 -0.4999999999999999 -0.3090169943749473
1 2.175242402100701e-16 -1.643460219210441e-32
-1 -2.175242402100701e-16 -1.643460219210441e-32
-0.1803319730021167 0.289241011911498 -0.9401170227910867
-0.35682208977309 -3.124513936890529e-17 -0.9341723589627157
-0.1803319730021166 -0.2892410119114981 -0.9401170227910867
-0.6483337612153338 -5.436311068297173e-17 -0.7613562464893677
-0.1803319730021166 0.2892410119114981 0.9401170227910867
-0.35682208977309 3.09531117213564e-17 0.9341723589627158
-0.6483337612153338 5.402340711901317e-17 0.7613562464893677
-0.1803319730021167 -0.289241011911498 0.9401170227910867
0.291783261575753 -0.5810242734872509 0.7597850497889703
0.5773502691896258 -0.5773502691896256 0.5773502691896258
0.5810242734872511 -0.7597850497889701 0.291783261575753
0.7597850497889702 -0.291783261575753 0.5810242734872511
-0.291783261575753 -0.5810242734872509 -0.7597850497889703
-0.5773502691896258 -0.5773502691896256 -0.5773502691896258
-0.5810242734872511 -0.7597850497889701 -0.291783261575753
-0.7597850497889702 -0.291783261575753 -0.5810242734872511
-2.313323858849861e-18 0.7613562464893674 -0.6483337612153339
3.124513936890529e-17 0.9341723589627158 -0.3568220897730901
-0.2892410119114981 0.9401170227910867 -0.1803319730021165
0.2892410119114981 0.9401170227910867 -0.1803319730021165
-2.313323858849861e-18 -0.7613562464893674 0.6483337612153339
3.124513936890529e-17 -0.9341723589627158 0.3568220897730901
-0.2892410119114981 -0.9401170227910867 0.1803319730021165
0.2892410119114981 -0.9401170227910867 0.1803319730021165
0.2917832615757529 -0.5810242734872509 -0.7597850497889704
0.5773502691896258 -0.5773502691896257 -0.5773502691896258
0.7597850497889701 -0.2917832615757531 -0.5810242734872512
0.5810242734872511 -0.7597850497889701 -0.291783261575753
2.313323858849861e-18 0.7613562464893674 0.6483337612153339
-3.124513936890529e-17 0.9341723589627158 0.3568220897730901
0.2892410119114981 0.9401170227910867 0.1803319730021165
-0.2892410119114981 0.9401170227910867 0.1803319730021165
-0.2917832615757529 -0.5810242734872509 0.7597850497889704
-0.5773502691896258 -0.5773502691896257 0.5773502691896258
-0.7597850497889701 -0.2917832615757531 0.5810242734872512
-0.5810242734872511 -0.7597850497889701 0.291783261575753
2.313323858849861e-18 -0.7613562464893674 -0.6483337612153339
-3.124513936890529e-17 -0.9341723589627158 -0.3568220897730901
0.2892410119114981 -0.9401170227910867 -0.1803319730021165
-0.2892410119114981 -0.9401170227910867 -0.1803319730021165
0.1803319730021167 0.289241011911498 0.9401170227910867
0.35682208977309 -3.124513936890529e-17 0.9341723589627157
0.1803319730021166 -0.2892410119114981 0.9401170227910867
0.6483337612153338 -5.436311068297173e-17 0.7613562464893677
0.2917832615757529 0.5810242734872509 0.7597850497889704
0.5773502691896258 0.5773502691896257 0.5773502691896258
0.7597850497889701 0.2917832615757531 0.5810242734872512
0.5810242734872511 0.7597850497889701 0.291783261575753
0.7613562464893677 -0.6483337612153338 5.436311068297173e-17
0.9341723589627157 -0.35682208977309 3.124513936890529e-17
0.9401170227910867 -0.1803319730021167 -0.289241011911498
0.9401170227910867 -0.1803319730021166 0.2892410119114981
0.291783261575753 0.5810242734872509 -0.7597850497889703
0.5773502691896258 0.5773502691896256 -0.5773502691896258
0.5810242734872511 0.7597850497889701 -0.291783261575753
0.7597850497889702 0.291783261575753 -0.5810242734872511
0.1803319730021166 0.2892410119114981 -0.9401170227910867
0.35682208977309 3.09531117213564e-17 -0.9341723589627158
0.6483337612153338 5.402340711901317e-17 -0.7613562464893677
0.1803319730021167 -0.289241011911498 -0.9401170227910867
0.7613562464893677 0.6483337612153338 -5.436311068297173e-17
0.9341723589627157 0.35682208977309 -3.124513936890529e-17
0.9401170227910867 0.1803319730021167 0.289241011911498
0.9401170227910867 0.1803319730021166 -0.2892410119114981
-0.291783261575753 0.5810242734872509 0.7597850497889703
-0.5773502691896258 0.5773502691896256 0.5773502691896258
-0.5810242734872511 0.7597850497889701 0.291783261575753
-0.7597850497889702 0.291783261575753 0.5810242734872511
-0.7613562464893677 0.6483337612153338 5.436311068297173e-17
-0.9341723589627157 0.35682208977309 3.124513936890529e-17
-0.9401170227910867 0.1803319730021167 -0.289241011911498
-0.9401170227910867 0.1803319730021166 0.2892410119114981
-0.2917832615757529 0.5810242734872509 -0.7597850497889704
-0.5773502691896258 0.5773502691896257 -0.5773502691896258
-0.7597850497889701 0.2917832615757531 -0.5810242734872512
-0.5810242734872511 0.7597850497889701 -0.291783261575753
-0.7613562464893677 -0.6483337612153338 -5.436311068297173e-17
-0.9341723589627157 -0.35682208977309 -3.124513936890529e-17
-0.9401170227910867 -0.1803319730021167 0.289241011911498
-0.9401170227910867 -0.1803319730021166 -0.2892410119114981
3 42 1 98 0.90196 0.45098 0.00000
3 21 114 42 0.90196 0.45098 0.00000
3 42 43 21 0.90196 0.45098 0.00000
3 43 42 17 0.90196 0.45098 0.00000
3 17 44 43 0.90196 0.45098 0.00000
3 44 17 101 0.90196 0.45098 0.00000
3 45 21 43 0.90196 0.45098 0.00000
3 43 29 45 0.90196 0.45098 0.00000
3 29 43 44 0.90196 0.45098 0.00000
3 54 44 3 0.90196 0.45098 0.00000
3 11 116 45 0.90196 0.45098 0.00000
3 57 45 29 0.90196 0.45098 0.00000
3 46 0 106 0.90196 0.45098 0.00000
3 12 82 46 0.90196 0.45098 0.00000
3 46 47 12 0.90196 0.45098 0.00000
3 47 46 16 0.90196 0.45098 0.00000
3 16 48 47 0.90196 0.45098 0.00000
3 48 16 109 0.90196 0.45098 0.00000
3 49 12 47 0.90196 0.45098 0.00000
3 47 25 49 0.90196 0.45098 0.00000
3 25 47 48 0.90196 0.45098 0.00000
3 76 48 10 0.90196 0.45098 0.00000
3 2 84 49 0.90196 0.45098 0.00000
3 74 49 25 0.90196 0.45098 0.00000
3 50 2 62 0.90196 0.45098 0.00000
3 24 84 50 0.90196 0.45098 0.00000
3 50 51 24 0.90196 0.45098 0.00000
3 51 50 22 0.90196 0.45098 0.00000
3 22 52 51 0.90196 0.45098 0.00000
3 52 22 65 0.90196 0.45098 0.00000
3 53 24 51 0.90196 0.45098 0.00000
3 51 34 53 0.90196 0.45098 0.00000
3 34 51 52 0.90196 0.45098 0.00000
3 90 52 5 0.90196 0.45098 0.00000
3 8 85 53 0.90196 0.45098 0.00000
3 93 53 34 0.90196 0.45098 0.00000
3 54 3 78 0.90196 0.45098 0.00000
3 29 44 54 0.90196 0.45098 0.00000
3 54 55 29 0.90196 0.45098 0.00000
3 55 54 27 0.90196 0.45098 0.00000
3 27 56 55 0.90196 0.45098 0.00000
3 56 27 81 0.90196 0.45098 0.00000
3 57 29 55 0.90196 0.45098 0.00000
3 55 39 57 0.90196 0.45098 0.00000
3 39 55 56 0.90196 0.45098 0.00000
3 118 56 7 0.90196 0.45098 0.00000
3 11 45 57 0.90196 0.45098 0.00000
3 121 57 39 0.90196 0.45098 0.00000
3 58 1 114 0.90196 0.45098 0.00000
3 18 94 58 0.90196 0.45098 0.00000
3 58 59 18 0.90196 0.45098 0.00000
3 59 58 19 0.90196 0.45098 0.00000
3 19 60 59 0.90196 0.45098 0.00000
3 60 19 117 0.90196 0.45098 0.00000
3 61 18 59 0.90196 0.45098 0.00000
3 59 30 61 0.90196 0.45098 0.00000
3 30 59 60 0.90196 0.45098 0.00000
3 73 60 6 0.90196 0.45098 0.00000
3 4 96 61 0.90196 0.45098 0.00000
3 72 61 30 0.90196 0.45098 0.00000
3 62 2 74 0.90196 0.45098 0.00000
3 22 50 62 0.90196 0.45098 0.00000
3 62 63 22 0.90196 0.45098 0.00000
3 63 62 23 0.90196 0.45098 0.00000
3 23 64 63 0.90196 0.45098 0.00000
3 64 23 77 0.90196 0.45098 0.00000
3 65 22 63 0.90196 0.45098 0.00000
3 63 33 65 0.90196 0.45098 0.00000
3 33 63 64 0.90196 0.45098 0.00000
3 81 64 7 0.90196 0.45098 0.00000
3 5 52 65 0.90196 0.45098 0.00000
3 80 65 33 0.90196 0.45098 0.00000
3 66 3 101 0.90196 0.45098 0.00000
3 26 78 66 0.90196 0.45098 0.00000
3 66 67 26 0.90196 0.45098 0.00000
3 67 66 28 0.90196 0.45098 0.00000
3 28 68 67 0.90196 0.45098 0.00000
3 68 28 100 0.90196 0.45098 0.00000
3 69 26 67 0.90196 0.45098 0.00000
3 67 35 69 0.90196 0.45098 0.00000
3 35 67 68 0.90196 0.45098 0.00000
3 92 68 9 0.90196 0.45098 0.00000
3 5 80 69 0.90196 0.45098 0.00000
3 90 69 35 0.90196 0.45098 0.00000
3 70 0 86 0.90196 0.45098 0.00000
3 14 106 70 0.90196 0.45098 0.00000
3 70 71 14 0.90196 0.45098 0.00000
3 71 70 13 0.90196 0.45098 0.00000
3 13 72 71 0.90196 0.45098 0.00000
3 72 13 89 0.90196 0.45098 0.00000
3 73 14 71 0.90196 0.45098 0.00000
3 71 30 73 0.90196 0.45098 0.00000
3 30 71 72 0.90196 0.45098 0.00000
3 61 72 4 0.90196 0.45098 0.00000
3 6 108 73 0.90196 0.45098 0.00000
3 60 73 30 0.90196 0.45098 0.00000
3 74 2 49 0.90196 0.45098 0.00000
3 23 62 74 0.90196 0.45098 0.00000
3 74 75 23 0.90196 0.45098 0.00000
3 75 74 25 0.90196 0.45098 0.00000
3 25 76 75 0.90196 0.45098 0.00000
3 76 25 48 0.90196 0.45098 0.00000
3 77 23 75 0.90196 0.45098 0.00000
3 75 38 77 0.90196 0.45098 0.00000
3 38 75 76 0.90196 0.45098 0.00000
3 120 76 10 0.90196 0.45098 0.00000
3 7 64 77 0.90196 0.45098 0.00000
3 118 77 38 0.90196 0.45098 0.00000
3 78 3 66 0.90196 0.45098 0.00000
3 27 54 78 0.90196 0.45098 0.00000
3 78 79 27 0.90196 0.45098 0.00000
3 79 78 26 0.90196 0.45098 0.00000
3 26 80 79 0.90196 0.45098 0.00000
3 80 26 69 0.90196 0.45098 0.00000
3 81 27 79 0.90196 0.45098 0.00000
3 79 33 81 0.90196 0.45098 0.00000
3 33 79 80 0.90196 0.45098 0.00000
3 65 80 5 0.90196 0.45098 0.00000
3 7 56 81 0.90196 0.45098 0.00000
3 64 81 33 0.90196 0.45098 0.00000
3 82 0 46 0.90196 0.45098 0.00000
3 15 86 82 0.90196 0.45098 0.00000
3 82 83 15 0.90196 0.45098 0.00000
3 83 82 12 0.90196 0.45098 0.00000
3 12 84 83 0.90196 0.45098 0.00000
3 84 12 49 0.90196 0.45098 0.00000
3 85 15 83 0.90196 0.45098 0.00000
3 83 24 85 0.90196 0.45098 0.00000
3 24 83 84 0.90196 0.45098 0.00000
3 50 84 2 0.90196 0.45098 0.00000
3 8 88 85 0.90196 0.45098 0.00000
3 53 85 24 0.90196 0.45098 0.00000
3 86 0 82 0.90196 0.45098 0.00000
3 13 70 86 0.90196 0.45098 0.00000
3 86 87 13 0.90196 0.45098 0.00000
3 87 86 15 0.90196 0.45098 0.00000
3 15 88 87 0.90196 0.45098 0.00000
3 88 15 85 0.90196 0.45098 0.00000
3 89 13 87 0.90196 0.45098 0.00000
3 87 31 89 0.90196 0.45098 0.00000
3 31 87 88 0.90196 0.45098 0.00000
3 104 88 8 0.90196 0.45098 0.00000
3 4 72 89 0.90196 0.45098 0.00000
3 102 89 31 0.90196 0.45098 0.00000
3 90 5 69 0.90196 0.45098 0.00000
3 34 52 90 0.90196 0.45098 0.00000
3 90 91 34 0.90196 0.45098 0.00000
3 91 90 35 0.90196 0.45098 0.00000
3 35 92 91 0.90196 0.45098 0.00000
3 92 35 68 0.90196 0.45098 0.00000
3 93 34 91 0.90196 0.45098 0.00000
3 91 40 93 0.90196 0.45098 0.00000
3 40 91 92 0.90196 0.45098 0.00000
3 105 92 9 0.90196 0.45098 0.00000
3 8 53 93 0.90196 0.45098 0.00000
3 104 93 40 0.90196 0.45098 0.00000
3 94 1 58 0.90196 0.45098 0.00000
3 20 98 94 0.90196 0.45098 0.00000
3 94 95 20 0.90196 0.45098 0.00000
3 95 94 18 0.90196 0.45098 0.00000
3 18 96 95 0.90196 0.45098 0.00000
3 96 18 61 0.90196 0.45098 0.00000
3 97 20 95 0.90196 0.45098 0.00000
3 95 32 97 0.90196 0.45098 0.00000
3 32 95 96 0.90196 0.45098 0.00000
3 102 96 4 0.90196 0.45098 0.00000
3 9 100 97 0.90196 0.45098 0.00000
3 105 97 32 0.90196 0.45098 0.00000
3 98 1 94 0.90196 0.45098 0.00000
3 17 42 98 0.90196 0.45098 0.00000
3 98 99 17 0.90196 0.45098 0.00000
3 99 98 20 0.90196 0.45098 0.00000
3 20 100 99 0.90196 0.45098 0.00000
3 100 20 97 0.90196 0.45098 0.00000
3 101 17 99 0.90196 0.45098 0.00000
3 99 28 101 0.90196 0.45098 0.00000
3 28 99 100 0.90196 0.45098 0.00000
3 68 100 9 0.90196 0.45098 0.00000
3 3 44 101 0.90196 0.45098 0.00000
3 66 101 28 0.90196 0.45098 0.00000
3 102 4 89 0.90196 0.45098 0.00000
3 32 96 102 0.90196 0.45098 0.00000
3 102 103 32 0.90196 0.45098 0.00000
3 103 102 31 0.90196 0.45098 0.00000
3 31 104 103 0.90196 0.45098 0.00000
3 104 31 88 0.90196 0.45098 0.00000
3 105 32 103 0.90196 0.45098 0.00000
3 103 40 105 0.90196 0.45098 0.00000
3 40 103 104 0.90196 0.45098 0.00000
3 93 104 8 0.90196 0.45098 0.00000
3 9 97 105 0.90196 0.45098 0.00000
3 92 105 40 0.90196 0.45098 0.00000
3 106 0 70 0.90196 0.45098 0.00000
3 16 46 106 0.90196 0.45098 0.00000
3 106 107 16 0.90196 0.45098 0.00000
3 107 106 14 0.90196 0.45098 0.00000
3 14 108 107 0.90196 0.45098 0.00000
3 108 14 73 0.90196 0.45098 0.00000
3 109 16 107 0.90196 0.45098 0.00000
3 107 36 109 0.90196 0.45098 0.00000
3 36 107 108 0.90196 0.45098 0.00000
3 110 108 6 0.90196 0.45098 0.00000
3 10 48 109 0.90196 0.45098 0.00000
3 113 109 36 0.90196 0.45098 0.00000
3 110 6 117 0.90196 0.45098 0.00000
3 36 108 110 0.90196 0.45098 0.00000
3 110 111 36 0.90196 0.45098 0.00000
3 111 110 37 0.90196 0.45098 0.00000
3 37 112 111 0.90196 0.45098 0.00000
3 112 37 116 0.90196 0.45098 0.00000
3 113 36 111 0.90196 0.45098 0.00000
3 111 41 113 0.90196 0.45098 0.00000
3 41 111 112 0.90196 0.45098 0.00000
3 121 112 11 0.90196 0.45098 0.00000
3 10 109 113 0.90196 0.45098 0.00000
3 120 113 41 0.90196 0.45098 0.00000
3 114 1 42 0.90196 0.45098 0.00000
3 19 58 114 0.90196 0.45098 0.00000
3 114 115 19 0.90196 0.45098 0.00000
3 115 114 21 0.90196 0.45098 0.00000
3 21 116 115 0.90196 0.45098 0.00000
3 116 21 45 0.90196 0.45098 0.00000
3 117 19 115 0.90196 0.45098 0.00000
3 115 37 117 0.90196 0.45098 0.00000
3 37 115 116 0.90196 0.45098 0.00000
3 112 116 11 0.90196 0.45098 0.00000
3 6 60 117 0.90196 0.45098 0.00000
3 110 117 37 0.90196 0.45098 0.00000
3 118 7 77 0.90196 0.45098 0.00000
3 39 56 118 0.90196 0.45098 0.00000
3 118 119 39 0.90196 0.45098 0.00000
3 119 118 38 0.90196 0.45098 0.00000
3 38 120 119 0.90196 0.45098 0.00000
3 120 38 76 0.90196 0.45098 0.00000
3 121 39 119 0.90196 0.45098 0.00000
3 119 41 121 0.90196 0.45098 0.00000
3 41 119 120 0.90196 0.45098 0.00000
3 113 120 10 0.90196 0.45098 0.00000
3 11 57 121 0.90196 0.45098 0.00000
3 112 121 41 0.90196 0.45098 0.00000
1 0 0.38824 0.60000 0.30196
1 1 0.38824 0.60000 0.30196
1 2 0.38824 0.60000 0.30196
1 3 0.38824 0.60000 0.30196
1 4 0.38824 0.60000 0.30196
1 5 0.38824 0.60000 0.30196
1 6 0.38824 0.60000 0.30196
1 7 0.38824 0.60000 0.30196
1 8 0.38824 0.60000 0.30196
1 9 0.38824 0.60000 0.30196
1 10 0.38824 0.60000 0.30196
1 11 0.38824 0.60000 0.30196

View File

@ -0,0 +1,826 @@
OFF
272 552 0
0 0.5257311121191336 0.85065080835204
0 0.5257311121191336 -0.85065080835204
0 -0.5257311121191336 0.85065080835204
0 -0.5257311121191336 -0.85065080835204
0.5257311121191336 0.85065080835204 0
0.5257311121191336 -0.85065080835204 0
-0.5257311121191336 0.85065080835204 0
-0.5257311121191336 -0.85065080835204 0
0.85065080835204 0 0.5257311121191336
0.85065080835204 0 -0.5257311121191336
-0.85065080835204 0 0.5257311121191336
-0.85065080835204 0 -0.5257311121191336
2.267469933117213e-16 0.1834794080019837 0.9830235535526306
1.92245706721902e-16 -0.1834794080019837 0.9830235535526306
0.2120312799176223 0.7385845055044615 0.6399497359677749
0.395510687919606 0.8519810158853969 0.3430738175848559
-0.2120312799176222 0.7385845055044614 0.639949735967775
-0.395510687919606 0.851981015885397 0.3430738175848558
0.3430738175848558 0.395510687919606 0.851981015885397
0.6399497359677748 0.2120312799176223 0.7385845055044618
-0.3430738175848559 0.3955106879196059 0.851981015885397
-0.6399497359677748 0.2120312799176223 0.7385845055044615
1.922457067219021e-16 0.1834794080019837 -0.9830235535526306
2.267469933117213e-16 -0.1834794080019837 -0.9830235535526306
0.2120312799176222 0.7385845055044614 -0.639949735967775
0.395510687919606 0.851981015885397 -0.3430738175848558
-0.2120312799176223 0.7385845055044615 -0.6399497359677749
-0.395510687919606 0.8519810158853969 -0.3430738175848559
0.3430738175848558 0.3955106879196059 -0.8519810158853971
0.6399497359677748 0.2120312799176222 -0.7385845055044618
-0.3430738175848558 0.395510687919606 -0.851981015885397
-0.6399497359677748 0.2120312799176223 -0.7385845055044618
0.2120312799176222 -0.7385845055044615 0.639949735967775
0.3955106879196058 -0.851981015885397 0.3430738175848558
-0.2120312799176223 -0.7385845055044615 0.6399497359677749
-0.395510687919606 -0.8519810158853969 0.3430738175848559
0.3430738175848558 -0.3955106879196059 0.8519810158853971
0.6399497359677748 -0.2120312799176222 0.7385845055044618
-0.3430738175848558 -0.395510687919606 0.851981015885397
-0.6399497359677748 -0.2120312799176223 0.7385845055044618
0.2120312799176222 -0.7385845055044615 -0.639949735967775
0.3955106879196059 -0.851981015885397 -0.3430738175848558
-0.2120312799176222 -0.7385845055044615 -0.639949735967775
-0.3955106879196058 -0.851981015885397 -0.3430738175848558
0.3430738175848558 -0.3955106879196056 -0.851981015885397
0.6399497359677748 -0.2120312799176221 -0.7385845055044618
-0.3430738175848559 -0.3955106879196059 -0.851981015885397
-0.6399497359677748 -0.2120312799176223 -0.7385845055044615
0.1834794080019837 0.9830235535526306 3.4096087162373e-17
-0.1834794080019837 0.9830235535526306 3.4096087162373e-17
0.7385845055044618 0.6399497359677748 0.2120312799176221
0.8519810158853971 0.3430738175848559 0.3955106879196058
0.7385845055044618 0.6399497359677748 -0.2120312799176222
0.851981015885397 0.3430738175848557 -0.3955106879196058
0.1834794080019837 -0.9830235535526306 -3.4096087162373e-17
-0.1834794080019837 -0.9830235535526306 -3.4096087162373e-17
0.7385845055044618 -0.6399497359677748 0.2120312799176222
0.851981015885397 -0.3430738175848557 0.3955106879196058
0.7385845055044618 -0.6399497359677748 -0.2120312799176221
0.8519810158853971 -0.3430738175848559 -0.3955106879196058
-0.7385845055044618 0.6399497359677748 0.2120312799176222
-0.851981015885397 0.3430738175848557 0.3955106879196058
-0.7385845055044615 0.6399497359677748 -0.2120312799176224
-0.8519810158853969 0.3430738175848559 -0.395510687919606
-0.7385845055044618 -0.6399497359677748 0.2120312799176221
-0.8519810158853971 -0.3430738175848559 0.3955106879196058
-0.7385845055044618 -0.6399497359677748 -0.2120312799176222
-0.851981015885397 -0.3430738175848557 -0.3955106879196058
0.9830235535526306 2.267469933117213e-16 0.1834794080019836
0.9830235535526306 1.92245706721902e-16 -0.1834794080019837
-0.9830235535526306 -2.267469933117213e-16 0.1834794080019836
-0.9830235535526306 -1.92245706721902e-16 -0.1834794080019837
-0.1194960329361959 0.374843742971558 -0.919354592345948
-0.2408723836637745 0.1975414971827028 -0.9502409440131212
-0.1235792137159473 -4.626953174201564e-17 -0.9923347106381738
-0.4579792781293658 0.2066706056476467 -0.8646052518724022
-0.35682208977309 -3.124513936890529e-17 -0.9341723589627157
-0.2408723836637744 -0.1975414971827028 -0.9502409440131212
-0.1194960329361959 -0.3748437429715579 -0.919354592345948
-0.5605012402939293 1.966702600323942e-17 -0.8281535845656691
-0.4579792781293658 -0.2066706056476469 -0.8646052518724022
-0.7260059495344062 -6.939177849948745e-18 -0.6876884187192956
-0.1194960329361959 0.3748437429715579 0.919354592345948
-0.2408723836637744 0.1975414971827029 0.9502409440131212
-0.4579792781293657 0.2066706056476468 0.8646052518724022
-0.1235792137159473 4.574573400785218e-17 0.9923347106381738
-0.35682208977309 3.09531117213564e-17 0.9341723589627158
-0.5605012402939293 -1.986949146301587e-17 0.8281535845656691
-0.7260059495344062 7.000242466867724e-18 0.6876884187192956
-0.2408723836637744 -0.1975414971827029 0.9502409440131212
-0.4579792781293658 -0.2066706056476467 0.8646052518724022
-0.1194960329361959 -0.374843742971558 0.919354592345948
0.1933486428115418 -0.5681923857830995 0.7998585594097523
0.3897397037191919 -0.5872812009018947 0.7093685603493469
0.4066259737430365 -0.741026038156455 0.5343554325088083
0.5343554325088083 -0.4066259737430364 0.7410260381564551
0.5773502691896258 -0.5773502691896256 0.5773502691896258
0.5872812009018947 -0.7093685603493469 0.389739703719192
0.5681923857830998 -0.799858559409752 0.1933486428115418
0.7093685603493468 -0.3897397037191919 0.5872812009018948
0.741026038156455 -0.5343554325088083 0.4066259737430364
0.799858559409752 -0.1933486428115418 0.5681923857830997
-0.1933486428115418 -0.5681923857830995 -0.7998585594097523
-0.3897397037191919 -0.5872812009018947 -0.7093685603493469
-0.4066259737430365 -0.741026038156455 -0.5343554325088083
-0.5343554325088083 -0.4066259737430364 -0.7410260381564551
-0.5773502691896258 -0.5773502691896256 -0.5773502691896258
-0.5872812009018947 -0.7093685603493469 -0.389739703719192
-0.5681923857830998 -0.799858559409752 -0.1933486428115418
-0.7093685603493468 -0.3897397037191919 -0.5872812009018948
-0.741026038156455 -0.5343554325088083 -0.4066259737430364
-0.799858559409752 -0.1933486428115418 -0.5681923857830997
2.949150586228217e-17 0.6876884187192956 -0.7260059495344064
-1.966702600323942e-17 0.8281535845656691 -0.5605012402939293
-0.2066706056476468 0.8646052518724022 -0.4579792781293658
0.2066706056476469 0.8646052518724022 -0.4579792781293658
3.124513936890529e-17 0.9341723589627158 -0.3568220897730901
-0.1975414971827029 0.9502409440131212 -0.2408723836637746
-0.374843742971558 0.919354592345948 -0.1194960329361958
0.1975414971827029 0.9502409440131212 -0.2408723836637745
2.197802757745743e-17 0.9923347106381738 -0.1235792137159472
0.374843742971558 0.919354592345948 -0.1194960329361959
2.949150586228217e-17 -0.6876884187192956 0.7260059495344064
-1.966702600323942e-17 -0.8281535845656691 0.5605012402939293
-0.2066706056476468 -0.8646052518724022 0.4579792781293658
0.2066706056476469 -0.8646052518724022 0.4579792781293658
3.124513936890529e-17 -0.9341723589627158 0.3568220897730901
-0.1975414971827029 -0.9502409440131212 0.2408723836637746
-0.374843742971558 -0.919354592345948 0.1194960329361958
0.1975414971827029 -0.9502409440131212 0.2408723836637745
2.197802757745743e-17 -0.9923347106381738 0.1235792137159472
0.374843742971558 -0.919354592345948 0.1194960329361959
0.1933486428115418 -0.5681923857830995 -0.7998585594097523
0.3897397037191918 -0.5872812009018947 -0.7093685603493468
0.5343554325088081 -0.4066259737430364 -0.7410260381564551
0.4066259737430364 -0.741026038156455 -0.5343554325088083
0.5773502691896258 -0.5773502691896257 -0.5773502691896258
0.7093685603493467 -0.389739703719192 -0.5872812009018948
0.799858559409752 -0.1933486428115418 -0.5681923857830997
0.5872812009018947 -0.7093685603493468 -0.3897397037191921
0.7410260381564551 -0.5343554325088083 -0.4066259737430366
0.5681923857830998 -0.799858559409752 -0.1933486428115418
-2.949150586228217e-17 0.6876884187192956 0.7260059495344064
1.966702600323942e-17 0.8281535845656691 0.5605012402939293
0.2066706056476468 0.8646052518724022 0.4579792781293658
-0.2066706056476469 0.8646052518724022 0.4579792781293658
-3.124513936890529e-17 0.9341723589627158 0.3568220897730901
0.1975414971827029 0.9502409440131212 0.2408723836637746
0.374843742971558 0.919354592345948 0.1194960329361958
-0.1975414971827029 0.9502409440131212 0.2408723836637745
-2.197802757745743e-17 0.9923347106381738 0.1235792137159472
-0.374843742971558 0.919354592345948 0.1194960329361959
-0.1933486428115418 -0.5681923857830995 0.7998585594097523
-0.3897397037191918 -0.5872812009018947 0.7093685603493468
-0.5343554325088081 -0.4066259737430364 0.7410260381564551
-0.4066259737430364 -0.741026038156455 0.5343554325088083
-0.5773502691896258 -0.5773502691896257 0.5773502691896258
-0.7093685603493467 -0.389739703719192 0.5872812009018948
-0.799858559409752 -0.1933486428115418 0.5681923857830997
-0.5872812009018947 -0.7093685603493468 0.3897397037191921
-0.7410260381564551 -0.5343554325088083 0.4066259737430366
-0.5681923857830998 -0.799858559409752 0.1933486428115418
-2.949150586228217e-17 -0.6876884187192956 -0.7260059495344064
1.966702600323942e-17 -0.8281535845656691 -0.5605012402939293
0.2066706056476468 -0.8646052518724022 -0.4579792781293658
-0.2066706056476469 -0.8646052518724022 -0.4579792781293658
-3.124513936890529e-17 -0.9341723589627158 -0.3568220897730901
0.1975414971827029 -0.9502409440131212 -0.2408723836637746
0.374843742971558 -0.919354592345948 -0.1194960329361958
-0.1975414971827029 -0.9502409440131212 -0.2408723836637745
-2.197802757745743e-17 -0.9923347106381738 -0.1235792137159472
-0.374843742971558 -0.919354592345948 -0.1194960329361959
0.1194960329361959 0.374843742971558 0.919354592345948
0.2408723836637745 0.1975414971827028 0.9502409440131212
0.1235792137159473 -4.626953174201564e-17 0.9923347106381738
0.4579792781293658 0.2066706056476467 0.8646052518724022
0.35682208977309 -3.124513936890529e-17 0.9341723589627157
0.2408723836637744 -0.1975414971827028 0.9502409440131212
0.1194960329361959 -0.3748437429715579 0.919354592345948
0.5605012402939293 1.966702600323942e-17 0.8281535845656691
0.4579792781293658 -0.2066706056476469 0.8646052518724022
0.7260059495344062 -6.939177849948745e-18 0.6876884187192956
0.1933486428115418 0.5681923857830995 0.7998585594097523
0.3897397037191918 0.5872812009018947 0.7093685603493468
0.5343554325088081 0.4066259737430364 0.7410260381564551
0.4066259737430364 0.741026038156455 0.5343554325088083
0.5773502691896258 0.5773502691896257 0.5773502691896258
0.7093685603493467 0.389739703719192 0.5872812009018948
0.799858559409752 0.1933486428115418 0.5681923857830997
0.5872812009018947 0.7093685603493468 0.3897397037191921
0.7410260381564551 0.5343554325088083 0.4066259737430366
0.5681923857830998 0.799858559409752 0.1933486428115418
0.6876884187192954 -0.7260059495344061 6.939177849948745e-18
0.8281535845656691 -0.5605012402939293 -1.966702600323942e-17
0.8646052518724022 -0.4579792781293658 -0.2066706056476467
0.8646052518724022 -0.4579792781293658 0.2066706056476468
0.9341723589627157 -0.35682208977309 3.124513936890529e-17
0.9502409440131212 -0.2408723836637745 -0.1975414971827029
0.919354592345948 -0.1194960329361959 -0.374843742971558
0.9502409440131212 -0.2408723836637745 0.1975414971827029
0.992334710638174 -0.1235792137159473 4.511279344846526e-17
0.919354592345948 -0.1194960329361959 0.3748437429715579
0.1933486428115418 0.5681923857830995 -0.7998585594097523
0.3897397037191919 0.5872812009018947 -0.7093685603493469
0.4066259737430365 0.741026038156455 -0.5343554325088083
0.5343554325088083 0.4066259737430364 -0.7410260381564551
0.5773502691896258 0.5773502691896256 -0.5773502691896258
0.5872812009018947 0.7093685603493469 -0.389739703719192
0.5681923857830998 0.799858559409752 -0.1933486428115418
0.7093685603493468 0.3897397037191919 -0.5872812009018948
0.741026038156455 0.5343554325088083 -0.4066259737430364
0.799858559409752 0.1933486428115418 -0.5681923857830997
0.1194960329361959 0.3748437429715579 -0.919354592345948
0.2408723836637744 0.1975414971827029 -0.9502409440131212
0.4579792781293657 0.2066706056476468 -0.8646052518724022
0.1235792137159473 4.574573400785218e-17 -0.9923347106381738
0.35682208977309 3.09531117213564e-17 -0.9341723589627158
0.5605012402939293 -1.986949146301587e-17 -0.8281535845656691
0.7260059495344062 7.000242466867724e-18 -0.6876884187192956
0.2408723836637744 -0.1975414971827029 -0.9502409440131212
0.4579792781293658 -0.2066706056476467 -0.8646052518724022
0.1194960329361959 -0.374843742971558 -0.919354592345948
0.6876884187192954 0.7260059495344061 -6.939177849948745e-18
0.8281535845656691 0.5605012402939293 1.966702600323942e-17
0.8646052518724022 0.4579792781293658 0.2066706056476467
0.8646052518724022 0.4579792781293658 -0.2066706056476468
0.9341723589627157 0.35682208977309 -3.124513936890529e-17
0.9502409440131212 0.2408723836637745 0.1975414971827029
0.919354592345948 0.1194960329361959 0.374843742971558
0.9502409440131212 0.2408723836637745 -0.1975414971827029
0.992334710638174 0.1235792137159473 -4.511279344846526e-17
0.919354592345948 0.1194960329361959 -0.3748437429715579
-0.1933486428115418 0.5681923857830995 0.7998585594097523
-0.3897397037191919 0.5872812009018947 0.7093685603493469
-0.4066259737430365 0.741026038156455 0.5343554325088083
-0.5343554325088083 0.4066259737430364 0.7410260381564551
-0.5773502691896258 0.5773502691896256 0.5773502691896258
-0.5872812009018947 0.7093685603493469 0.389739703719192
-0.5681923857830998 0.799858559409752 0.1933486428115418
-0.7093685603493468 0.3897397037191919 0.5872812009018948
-0.741026038156455 0.5343554325088083 0.4066259737430364
-0.799858559409752 0.1933486428115418 0.5681923857830997
-0.6876884187192954 0.7260059495344061 6.939177849948745e-18
-0.8281535845656691 0.5605012402939293 -1.966702600323942e-17
-0.8646052518724022 0.4579792781293658 -0.2066706056476467
-0.8646052518724022 0.4579792781293658 0.2066706056476468
-0.9341723589627157 0.35682208977309 3.124513936890529e-17
-0.9502409440131212 0.2408723836637745 -0.1975414971827029
-0.919354592345948 0.1194960329361959 -0.374843742971558
-0.9502409440131212 0.2408723836637745 0.1975414971827029
-0.992334710638174 0.1235792137159473 4.511279344846526e-17
-0.919354592345948 0.1194960329361959 0.3748437429715579
-0.1933486428115418 0.5681923857830995 -0.7998585594097523
-0.3897397037191918 0.5872812009018947 -0.7093685603493468
-0.5343554325088081 0.4066259737430364 -0.7410260381564551
-0.4066259737430364 0.741026038156455 -0.5343554325088083
-0.5773502691896258 0.5773502691896257 -0.5773502691896258
-0.7093685603493467 0.389739703719192 -0.5872812009018948
-0.799858559409752 0.1933486428115418 -0.5681923857830997
-0.5872812009018947 0.7093685603493468 -0.3897397037191921
-0.7410260381564551 0.5343554325088083 -0.4066259737430366
-0.5681923857830998 0.799858559409752 -0.1933486428115418
-0.6876884187192954 -0.7260059495344061 -6.939177849948745e-18
-0.8281535845656691 -0.5605012402939293 1.966702600323942e-17
-0.8646052518724022 -0.4579792781293658 0.2066706056476467
-0.8646052518724022 -0.4579792781293658 -0.2066706056476468
-0.9341723589627157 -0.35682208977309 -3.124513936890529e-17
-0.9502409440131212 -0.2408723836637745 0.1975414971827029
-0.919354592345948 -0.1194960329361959 0.374843742971558
-0.9502409440131212 -0.2408723836637745 -0.1975414971827029
-0.992334710638174 -0.1235792137159473 -4.511279344846526e-17
-0.919354592345948 -0.1194960329361959 -0.3748437429715579
3 72 1 212 0.90196 0.45098 0.00000
3 30 252 72 0.90196 0.45098 0.00000
3 72 73 30 0.90196 0.45098 0.00000
3 73 72 22 0.90196 0.45098 0.00000
3 22 74 73 0.90196 0.45098 0.00000
3 74 22 215 0.90196 0.45098 0.00000
3 75 30 73 0.90196 0.45098 0.00000
3 73 76 75 0.90196 0.45098 0.00000
3 76 73 74 0.90196 0.45098 0.00000
3 74 77 76 0.90196 0.45098 0.00000
3 77 74 23 0.90196 0.45098 0.00000
3 23 78 77 0.90196 0.45098 0.00000
3 78 23 221 0.90196 0.45098 0.00000
3 31 254 75 0.90196 0.45098 0.00000
3 75 79 31 0.90196 0.45098 0.00000
3 79 75 76 0.90196 0.45098 0.00000
3 76 80 79 0.90196 0.45098 0.00000
3 80 76 77 0.90196 0.45098 0.00000
3 77 46 80 0.90196 0.45098 0.00000
3 46 77 78 0.90196 0.45098 0.00000
3 102 78 3 0.90196 0.45098 0.00000
3 81 31 79 0.90196 0.45098 0.00000
3 79 47 81 0.90196 0.45098 0.00000
3 47 79 80 0.90196 0.45098 0.00000
3 105 80 46 0.90196 0.45098 0.00000
3 11 258 81 0.90196 0.45098 0.00000
3 111 81 47 0.90196 0.45098 0.00000
3 82 0 232 0.90196 0.45098 0.00000
3 12 172 82 0.90196 0.45098 0.00000
3 82 83 12 0.90196 0.45098 0.00000
3 83 82 20 0.90196 0.45098 0.00000
3 20 84 83 0.90196 0.45098 0.00000
3 84 20 235 0.90196 0.45098 0.00000
3 85 12 83 0.90196 0.45098 0.00000
3 83 86 85 0.90196 0.45098 0.00000
3 86 83 84 0.90196 0.45098 0.00000
3 84 87 86 0.90196 0.45098 0.00000
3 87 84 21 0.90196 0.45098 0.00000
3 21 88 87 0.90196 0.45098 0.00000
3 88 21 241 0.90196 0.45098 0.00000
3 13 174 85 0.90196 0.45098 0.00000
3 85 89 13 0.90196 0.45098 0.00000
3 89 85 86 0.90196 0.45098 0.00000
3 86 90 89 0.90196 0.45098 0.00000
3 90 86 87 0.90196 0.45098 0.00000
3 87 39 90 0.90196 0.45098 0.00000
3 39 87 88 0.90196 0.45098 0.00000
3 158 88 10 0.90196 0.45098 0.00000
3 91 13 89 0.90196 0.45098 0.00000
3 89 38 91 0.90196 0.45098 0.00000
3 38 89 90 0.90196 0.45098 0.00000
3 154 90 39 0.90196 0.45098 0.00000
3 2 178 91 0.90196 0.45098 0.00000
3 152 91 38 0.90196 0.45098 0.00000
3 92 2 122 0.90196 0.45098 0.00000
3 36 178 92 0.90196 0.45098 0.00000
3 92 93 36 0.90196 0.45098 0.00000
3 93 92 32 0.90196 0.45098 0.00000
3 32 94 93 0.90196 0.45098 0.00000
3 94 32 125 0.90196 0.45098 0.00000
3 95 36 93 0.90196 0.45098 0.00000
3 93 96 95 0.90196 0.45098 0.00000
3 96 93 94 0.90196 0.45098 0.00000
3 94 97 96 0.90196 0.45098 0.00000
3 97 94 33 0.90196 0.45098 0.00000
3 33 98 97 0.90196 0.45098 0.00000
3 98 33 131 0.90196 0.45098 0.00000
3 37 180 95 0.90196 0.45098 0.00000
3 95 99 37 0.90196 0.45098 0.00000
3 99 95 96 0.90196 0.45098 0.00000
3 96 100 99 0.90196 0.45098 0.00000
3 100 96 97 0.90196 0.45098 0.00000
3 97 56 100 0.90196 0.45098 0.00000
3 56 97 98 0.90196 0.45098 0.00000
3 192 98 5 0.90196 0.45098 0.00000
3 101 37 99 0.90196 0.45098 0.00000
3 99 57 101 0.90196 0.45098 0.00000
3 57 99 100 0.90196 0.45098 0.00000
3 195 100 56 0.90196 0.45098 0.00000
3 8 181 101 0.90196 0.45098 0.00000
3 201 101 57 0.90196 0.45098 0.00000
3 102 3 162 0.90196 0.45098 0.00000
3 46 78 102 0.90196 0.45098 0.00000
3 102 103 46 0.90196 0.45098 0.00000
3 103 102 42 0.90196 0.45098 0.00000
3 42 104 103 0.90196 0.45098 0.00000
3 104 42 165 0.90196 0.45098 0.00000
3 105 46 103 0.90196 0.45098 0.00000
3 103 106 105 0.90196 0.45098 0.00000
3 106 103 104 0.90196 0.45098 0.00000
3 104 107 106 0.90196 0.45098 0.00000
3 107 104 43 0.90196 0.45098 0.00000
3 43 108 107 0.90196 0.45098 0.00000
3 108 43 171 0.90196 0.45098 0.00000
3 47 80 105 0.90196 0.45098 0.00000
3 105 109 47 0.90196 0.45098 0.00000
3 109 105 106 0.90196 0.45098 0.00000
3 106 110 109 0.90196 0.45098 0.00000
3 110 106 107 0.90196 0.45098 0.00000
3 107 66 110 0.90196 0.45098 0.00000
3 66 107 108 0.90196 0.45098 0.00000
3 262 108 7 0.90196 0.45098 0.00000
3 111 47 109 0.90196 0.45098 0.00000
3 109 67 111 0.90196 0.45098 0.00000
3 67 109 110 0.90196 0.45098 0.00000
3 265 110 66 0.90196 0.45098 0.00000
3 11 81 111 0.90196 0.45098 0.00000
3 271 111 67 0.90196 0.45098 0.00000
3 112 1 252 0.90196 0.45098 0.00000
3 24 202 112 0.90196 0.45098 0.00000
3 112 113 24 0.90196 0.45098 0.00000
3 113 112 26 0.90196 0.45098 0.00000
3 26 114 113 0.90196 0.45098 0.00000
3 114 26 255 0.90196 0.45098 0.00000
3 115 24 113 0.90196 0.45098 0.00000
3 113 116 115 0.90196 0.45098 0.00000
3 116 113 114 0.90196 0.45098 0.00000
3 114 117 116 0.90196 0.45098 0.00000
3 117 114 27 0.90196 0.45098 0.00000
3 27 118 117 0.90196 0.45098 0.00000
3 118 27 261 0.90196 0.45098 0.00000
3 25 204 115 0.90196 0.45098 0.00000
3 115 119 25 0.90196 0.45098 0.00000
3 119 115 116 0.90196 0.45098 0.00000
3 116 120 119 0.90196 0.45098 0.00000
3 120 116 117 0.90196 0.45098 0.00000
3 117 49 120 0.90196 0.45098 0.00000
3 49 117 118 0.90196 0.45098 0.00000
3 151 118 6 0.90196 0.45098 0.00000
3 121 25 119 0.90196 0.45098 0.00000
3 119 48 121 0.90196 0.45098 0.00000
3 48 119 120 0.90196 0.45098 0.00000
3 150 120 49 0.90196 0.45098 0.00000
3 4 208 121 0.90196 0.45098 0.00000
3 148 121 48 0.90196 0.45098 0.00000
3 122 2 152 0.90196 0.45098 0.00000
3 32 92 122 0.90196 0.45098 0.00000
3 122 123 32 0.90196 0.45098 0.00000
3 123 122 34 0.90196 0.45098 0.00000
3 34 124 123 0.90196 0.45098 0.00000
3 124 34 155 0.90196 0.45098 0.00000
3 125 32 123 0.90196 0.45098 0.00000
3 123 126 125 0.90196 0.45098 0.00000
3 126 123 124 0.90196 0.45098 0.00000
3 124 127 126 0.90196 0.45098 0.00000
3 127 124 35 0.90196 0.45098 0.00000
3 35 128 127 0.90196 0.45098 0.00000
3 128 35 161 0.90196 0.45098 0.00000
3 33 94 125 0.90196 0.45098 0.00000
3 125 129 33 0.90196 0.45098 0.00000
3 129 125 126 0.90196 0.45098 0.00000
3 126 130 129 0.90196 0.45098 0.00000
3 130 126 127 0.90196 0.45098 0.00000
3 127 55 130 0.90196 0.45098 0.00000
3 55 127 128 0.90196 0.45098 0.00000
3 171 128 7 0.90196 0.45098 0.00000
3 131 33 129 0.90196 0.45098 0.00000
3 129 54 131 0.90196 0.45098 0.00000
3 54 129 130 0.90196 0.45098 0.00000
3 170 130 55 0.90196 0.45098 0.00000
3 5 98 131 0.90196 0.45098 0.00000
3 168 131 54 0.90196 0.45098 0.00000
3 132 3 221 0.90196 0.45098 0.00000
3 40 162 132 0.90196 0.45098 0.00000
3 132 133 40 0.90196 0.45098 0.00000
3 133 132 44 0.90196 0.45098 0.00000
3 44 134 133 0.90196 0.45098 0.00000
3 134 44 220 0.90196 0.45098 0.00000
3 135 40 133 0.90196 0.45098 0.00000
3 133 136 135 0.90196 0.45098 0.00000
3 136 133 134 0.90196 0.45098 0.00000
3 134 137 136 0.90196 0.45098 0.00000
3 137 134 45 0.90196 0.45098 0.00000
3 45 138 137 0.90196 0.45098 0.00000
3 138 45 218 0.90196 0.45098 0.00000
3 41 164 135 0.90196 0.45098 0.00000
3 135 139 41 0.90196 0.45098 0.00000
3 139 135 136 0.90196 0.45098 0.00000
3 136 140 139 0.90196 0.45098 0.00000
3 140 136 137 0.90196 0.45098 0.00000
3 137 59 140 0.90196 0.45098 0.00000
3 59 137 138 0.90196 0.45098 0.00000
3 198 138 9 0.90196 0.45098 0.00000
3 141 41 139 0.90196 0.45098 0.00000
3 139 58 141 0.90196 0.45098 0.00000
3 58 139 140 0.90196 0.45098 0.00000
3 194 140 59 0.90196 0.45098 0.00000
3 5 168 141 0.90196 0.45098 0.00000
3 192 141 58 0.90196 0.45098 0.00000
3 142 0 182 0.90196 0.45098 0.00000
3 16 232 142 0.90196 0.45098 0.00000
3 142 143 16 0.90196 0.45098 0.00000
3 143 142 14 0.90196 0.45098 0.00000
3 14 144 143 0.90196 0.45098 0.00000
3 144 14 185 0.90196 0.45098 0.00000
3 145 16 143 0.90196 0.45098 0.00000
3 143 146 145 0.90196 0.45098 0.00000
3 146 143 144 0.90196 0.45098 0.00000
3 144 147 146 0.90196 0.45098 0.00000
3 147 144 15 0.90196 0.45098 0.00000
3 15 148 147 0.90196 0.45098 0.00000
3 148 15 191 0.90196 0.45098 0.00000
3 17 234 145 0.90196 0.45098 0.00000
3 145 149 17 0.90196 0.45098 0.00000
3 149 145 146 0.90196 0.45098 0.00000
3 146 150 149 0.90196 0.45098 0.00000
3 150 146 147 0.90196 0.45098 0.00000
3 147 48 150 0.90196 0.45098 0.00000
3 48 147 148 0.90196 0.45098 0.00000
3 121 148 4 0.90196 0.45098 0.00000
3 151 17 149 0.90196 0.45098 0.00000
3 149 49 151 0.90196 0.45098 0.00000
3 49 149 150 0.90196 0.45098 0.00000
3 120 150 48 0.90196 0.45098 0.00000
3 6 238 151 0.90196 0.45098 0.00000
3 118 151 49 0.90196 0.45098 0.00000
3 152 2 91 0.90196 0.45098 0.00000
3 34 122 152 0.90196 0.45098 0.00000
3 152 153 34 0.90196 0.45098 0.00000
3 153 152 38 0.90196 0.45098 0.00000
3 38 154 153 0.90196 0.45098 0.00000
3 154 38 90 0.90196 0.45098 0.00000
3 155 34 153 0.90196 0.45098 0.00000
3 153 156 155 0.90196 0.45098 0.00000
3 156 153 154 0.90196 0.45098 0.00000
3 154 157 156 0.90196 0.45098 0.00000
3 157 154 39 0.90196 0.45098 0.00000
3 39 158 157 0.90196 0.45098 0.00000
3 158 39 88 0.90196 0.45098 0.00000
3 35 124 155 0.90196 0.45098 0.00000
3 155 159 35 0.90196 0.45098 0.00000
3 159 155 156 0.90196 0.45098 0.00000
3 156 160 159 0.90196 0.45098 0.00000
3 160 156 157 0.90196 0.45098 0.00000
3 157 65 160 0.90196 0.45098 0.00000
3 65 157 158 0.90196 0.45098 0.00000
3 268 158 10 0.90196 0.45098 0.00000
3 161 35 159 0.90196 0.45098 0.00000
3 159 64 161 0.90196 0.45098 0.00000
3 64 159 160 0.90196 0.45098 0.00000
3 264 160 65 0.90196 0.45098 0.00000
3 7 128 161 0.90196 0.45098 0.00000
3 262 161 64 0.90196 0.45098 0.00000
3 162 3 132 0.90196 0.45098 0.00000
3 42 102 162 0.90196 0.45098 0.00000
3 162 163 42 0.90196 0.45098 0.00000
3 163 162 40 0.90196 0.45098 0.00000
3 40 164 163 0.90196 0.45098 0.00000
3 164 40 135 0.90196 0.45098 0.00000
3 165 42 163 0.90196 0.45098 0.00000
3 163 166 165 0.90196 0.45098 0.00000
3 166 163 164 0.90196 0.45098 0.00000
3 164 167 166 0.90196 0.45098 0.00000
3 167 164 41 0.90196 0.45098 0.00000
3 41 168 167 0.90196 0.45098 0.00000
3 168 41 141 0.90196 0.45098 0.00000
3 43 104 165 0.90196 0.45098 0.00000
3 165 169 43 0.90196 0.45098 0.00000
3 169 165 166 0.90196 0.45098 0.00000
3 166 170 169 0.90196 0.45098 0.00000
3 170 166 167 0.90196 0.45098 0.00000
3 167 54 170 0.90196 0.45098 0.00000
3 54 167 168 0.90196 0.45098 0.00000
3 131 168 5 0.90196 0.45098 0.00000
3 171 43 169 0.90196 0.45098 0.00000
3 169 55 171 0.90196 0.45098 0.00000
3 55 169 170 0.90196 0.45098 0.00000
3 130 170 54 0.90196 0.45098 0.00000
3 7 108 171 0.90196 0.45098 0.00000
3 128 171 55 0.90196 0.45098 0.00000
3 172 0 82 0.90196 0.45098 0.00000
3 18 182 172 0.90196 0.45098 0.00000
3 172 173 18 0.90196 0.45098 0.00000
3 173 172 12 0.90196 0.45098 0.00000
3 12 174 173 0.90196 0.45098 0.00000
3 174 12 85 0.90196 0.45098 0.00000
3 175 18 173 0.90196 0.45098 0.00000
3 173 176 175 0.90196 0.45098 0.00000
3 176 173 174 0.90196 0.45098 0.00000
3 174 177 176 0.90196 0.45098 0.00000
3 177 174 13 0.90196 0.45098 0.00000
3 13 178 177 0.90196 0.45098 0.00000
3 178 13 91 0.90196 0.45098 0.00000
3 19 184 175 0.90196 0.45098 0.00000
3 175 179 19 0.90196 0.45098 0.00000
3 179 175 176 0.90196 0.45098 0.00000
3 176 180 179 0.90196 0.45098 0.00000
3 180 176 177 0.90196 0.45098 0.00000
3 177 36 180 0.90196 0.45098 0.00000
3 36 177 178 0.90196 0.45098 0.00000
3 92 178 2 0.90196 0.45098 0.00000
3 181 19 179 0.90196 0.45098 0.00000
3 179 37 181 0.90196 0.45098 0.00000
3 37 179 180 0.90196 0.45098 0.00000
3 95 180 36 0.90196 0.45098 0.00000
3 8 188 181 0.90196 0.45098 0.00000
3 101 181 37 0.90196 0.45098 0.00000
3 182 0 172 0.90196 0.45098 0.00000
3 14 142 182 0.90196 0.45098 0.00000
3 182 183 14 0.90196 0.45098 0.00000
3 183 182 18 0.90196 0.45098 0.00000
3 18 184 183 0.90196 0.45098 0.00000
3 184 18 175 0.90196 0.45098 0.00000
3 185 14 183 0.90196 0.45098 0.00000
3 183 186 185 0.90196 0.45098 0.00000
3 186 183 184 0.90196 0.45098 0.00000
3 184 187 186 0.90196 0.45098 0.00000
3 187 184 19 0.90196 0.45098 0.00000
3 19 188 187 0.90196 0.45098 0.00000
3 188 19 181 0.90196 0.45098 0.00000
3 15 144 185 0.90196 0.45098 0.00000
3 185 189 15 0.90196 0.45098 0.00000
3 189 185 186 0.90196 0.45098 0.00000
3 186 190 189 0.90196 0.45098 0.00000
3 190 186 187 0.90196 0.45098 0.00000
3 187 51 190 0.90196 0.45098 0.00000
3 51 187 188 0.90196 0.45098 0.00000
3 228 188 8 0.90196 0.45098 0.00000
3 191 15 189 0.90196 0.45098 0.00000
3 189 50 191 0.90196 0.45098 0.00000
3 50 189 190 0.90196 0.45098 0.00000
3 224 190 51 0.90196 0.45098 0.00000
3 4 148 191 0.90196 0.45098 0.00000
3 222 191 50 0.90196 0.45098 0.00000
3 192 5 141 0.90196 0.45098 0.00000
3 56 98 192 0.90196 0.45098 0.00000
3 192 193 56 0.90196 0.45098 0.00000
3 193 192 58 0.90196 0.45098 0.00000
3 58 194 193 0.90196 0.45098 0.00000
3 194 58 140 0.90196 0.45098 0.00000
3 195 56 193 0.90196 0.45098 0.00000
3 193 196 195 0.90196 0.45098 0.00000
3 196 193 194 0.90196 0.45098 0.00000
3 194 197 196 0.90196 0.45098 0.00000
3 197 194 59 0.90196 0.45098 0.00000
3 59 198 197 0.90196 0.45098 0.00000
3 198 59 138 0.90196 0.45098 0.00000
3 57 100 195 0.90196 0.45098 0.00000
3 195 199 57 0.90196 0.45098 0.00000
3 199 195 196 0.90196 0.45098 0.00000
3 196 200 199 0.90196 0.45098 0.00000
3 200 196 197 0.90196 0.45098 0.00000
3 197 69 200 0.90196 0.45098 0.00000
3 69 197 198 0.90196 0.45098 0.00000
3 231 198 9 0.90196 0.45098 0.00000
3 201 57 199 0.90196 0.45098 0.00000
3 199 68 201 0.90196 0.45098 0.00000
3 68 199 200 0.90196 0.45098 0.00000
3 230 200 69 0.90196 0.45098 0.00000
3 8 101 201 0.90196 0.45098 0.00000
3 228 201 68 0.90196 0.45098 0.00000
3 202 1 112 0.90196 0.45098 0.00000
3 28 212 202 0.90196 0.45098 0.00000
3 202 203 28 0.90196 0.45098 0.00000
3 203 202 24 0.90196 0.45098 0.00000
3 24 204 203 0.90196 0.45098 0.00000
3 204 24 115 0.90196 0.45098 0.00000
3 205 28 203 0.90196 0.45098 0.00000
3 203 206 205 0.90196 0.45098 0.00000
3 206 203 204 0.90196 0.45098 0.00000
3 204 207 206 0.90196 0.45098 0.00000
3 207 204 25 0.90196 0.45098 0.00000
3 25 208 207 0.90196 0.45098 0.00000
3 208 25 121 0.90196 0.45098 0.00000
3 29 214 205 0.90196 0.45098 0.00000
3 205 209 29 0.90196 0.45098 0.00000
3 209 205 206 0.90196 0.45098 0.00000
3 206 210 209 0.90196 0.45098 0.00000
3 210 206 207 0.90196 0.45098 0.00000
3 207 52 210 0.90196 0.45098 0.00000
3 52 207 208 0.90196 0.45098 0.00000
3 222 208 4 0.90196 0.45098 0.00000
3 211 29 209 0.90196 0.45098 0.00000
3 209 53 211 0.90196 0.45098 0.00000
3 53 209 210 0.90196 0.45098 0.00000
3 225 210 52 0.90196 0.45098 0.00000
3 9 218 211 0.90196 0.45098 0.00000
3 231 211 53 0.90196 0.45098 0.00000
3 212 1 202 0.90196 0.45098 0.00000
3 22 72 212 0.90196 0.45098 0.00000
3 212 213 22 0.90196 0.45098 0.00000
3 213 212 28 0.90196 0.45098 0.00000
3 28 214 213 0.90196 0.45098 0.00000
3 214 28 205 0.90196 0.45098 0.00000
3 215 22 213 0.90196 0.45098 0.00000
3 213 216 215 0.90196 0.45098 0.00000
3 216 213 214 0.90196 0.45098 0.00000
3 214 217 216 0.90196 0.45098 0.00000
3 217 214 29 0.90196 0.45098 0.00000
3 29 218 217 0.90196 0.45098 0.00000
3 218 29 211 0.90196 0.45098 0.00000
3 23 74 215 0.90196 0.45098 0.00000
3 215 219 23 0.90196 0.45098 0.00000
3 219 215 216 0.90196 0.45098 0.00000
3 216 220 219 0.90196 0.45098 0.00000
3 220 216 217 0.90196 0.45098 0.00000
3 217 45 220 0.90196 0.45098 0.00000
3 45 217 218 0.90196 0.45098 0.00000
3 138 218 9 0.90196 0.45098 0.00000
3 221 23 219 0.90196 0.45098 0.00000
3 219 44 221 0.90196 0.45098 0.00000
3 44 219 220 0.90196 0.45098 0.00000
3 134 220 45 0.90196 0.45098 0.00000
3 3 78 221 0.90196 0.45098 0.00000
3 132 221 44 0.90196 0.45098 0.00000
3 222 4 191 0.90196 0.45098 0.00000
3 52 208 222 0.90196 0.45098 0.00000
3 222 223 52 0.90196 0.45098 0.00000
3 223 222 50 0.90196 0.45098 0.00000
3 50 224 223 0.90196 0.45098 0.00000
3 224 50 190 0.90196 0.45098 0.00000
3 225 52 223 0.90196 0.45098 0.00000
3 223 226 225 0.90196 0.45098 0.00000
3 226 223 224 0.90196 0.45098 0.00000
3 224 227 226 0.90196 0.45098 0.00000
3 227 224 51 0.90196 0.45098 0.00000
3 51 228 227 0.90196 0.45098 0.00000
3 228 51 188 0.90196 0.45098 0.00000
3 53 210 225 0.90196 0.45098 0.00000
3 225 229 53 0.90196 0.45098 0.00000
3 229 225 226 0.90196 0.45098 0.00000
3 226 230 229 0.90196 0.45098 0.00000
3 230 226 227 0.90196 0.45098 0.00000
3 227 68 230 0.90196 0.45098 0.00000
3 68 227 228 0.90196 0.45098 0.00000
3 201 228 8 0.90196 0.45098 0.00000
3 231 53 229 0.90196 0.45098 0.00000
3 229 69 231 0.90196 0.45098 0.00000
3 69 229 230 0.90196 0.45098 0.00000
3 200 230 68 0.90196 0.45098 0.00000
3 9 211 231 0.90196 0.45098 0.00000
3 198 231 69 0.90196 0.45098 0.00000
3 232 0 142 0.90196 0.45098 0.00000
3 20 82 232 0.90196 0.45098 0.00000
3 232 233 20 0.90196 0.45098 0.00000
3 233 232 16 0.90196 0.45098 0.00000
3 16 234 233 0.90196 0.45098 0.00000
3 234 16 145 0.90196 0.45098 0.00000
3 235 20 233 0.90196 0.45098 0.00000
3 233 236 235 0.90196 0.45098 0.00000
3 236 233 234 0.90196 0.45098 0.00000
3 234 237 236 0.90196 0.45098 0.00000
3 237 234 17 0.90196 0.45098 0.00000
3 17 238 237 0.90196 0.45098 0.00000
3 238 17 151 0.90196 0.45098 0.00000
3 21 84 235 0.90196 0.45098 0.00000
3 235 239 21 0.90196 0.45098 0.00000
3 239 235 236 0.90196 0.45098 0.00000
3 236 240 239 0.90196 0.45098 0.00000
3 240 236 237 0.90196 0.45098 0.00000
3 237 60 240 0.90196 0.45098 0.00000
3 60 237 238 0.90196 0.45098 0.00000
3 242 238 6 0.90196 0.45098 0.00000
3 241 21 239 0.90196 0.45098 0.00000
3 239 61 241 0.90196 0.45098 0.00000
3 61 239 240 0.90196 0.45098 0.00000
3 245 240 60 0.90196 0.45098 0.00000
3 10 88 241 0.90196 0.45098 0.00000
3 251 241 61 0.90196 0.45098 0.00000
3 242 6 261 0.90196 0.45098 0.00000
3 60 238 242 0.90196 0.45098 0.00000
3 242 243 60 0.90196 0.45098 0.00000
3 243 242 62 0.90196 0.45098 0.00000
3 62 244 243 0.90196 0.45098 0.00000
3 244 62 260 0.90196 0.45098 0.00000
3 245 60 243 0.90196 0.45098 0.00000
3 243 246 245 0.90196 0.45098 0.00000
3 246 243 244 0.90196 0.45098 0.00000
3 244 247 246 0.90196 0.45098 0.00000
3 247 244 63 0.90196 0.45098 0.00000
3 63 248 247 0.90196 0.45098 0.00000
3 248 63 258 0.90196 0.45098 0.00000
3 61 240 245 0.90196 0.45098 0.00000
3 245 249 61 0.90196 0.45098 0.00000
3 249 245 246 0.90196 0.45098 0.00000
3 246 250 249 0.90196 0.45098 0.00000
3 250 246 247 0.90196 0.45098 0.00000
3 247 71 250 0.90196 0.45098 0.00000
3 71 247 248 0.90196 0.45098 0.00000
3 271 248 11 0.90196 0.45098 0.00000
3 251 61 249 0.90196 0.45098 0.00000
3 249 70 251 0.90196 0.45098 0.00000
3 70 249 250 0.90196 0.45098 0.00000
3 270 250 71 0.90196 0.45098 0.00000
3 10 241 251 0.90196 0.45098 0.00000
3 268 251 70 0.90196 0.45098 0.00000
3 252 1 72 0.90196 0.45098 0.00000
3 26 112 252 0.90196 0.45098 0.00000
3 252 253 26 0.90196 0.45098 0.00000
3 253 252 30 0.90196 0.45098 0.00000
3 30 254 253 0.90196 0.45098 0.00000
3 254 30 75 0.90196 0.45098 0.00000
3 255 26 253 0.90196 0.45098 0.00000
3 253 256 255 0.90196 0.45098 0.00000
3 256 253 254 0.90196 0.45098 0.00000
3 254 257 256 0.90196 0.45098 0.00000
3 257 254 31 0.90196 0.45098 0.00000
3 31 258 257 0.90196 0.45098 0.00000
3 258 31 81 0.90196 0.45098 0.00000
3 27 114 255 0.90196 0.45098 0.00000
3 255 259 27 0.90196 0.45098 0.00000
3 259 255 256 0.90196 0.45098 0.00000
3 256 260 259 0.90196 0.45098 0.00000
3 260 256 257 0.90196 0.45098 0.00000
3 257 63 260 0.90196 0.45098 0.00000
3 63 257 258 0.90196 0.45098 0.00000
3 248 258 11 0.90196 0.45098 0.00000
3 261 27 259 0.90196 0.45098 0.00000
3 259 62 261 0.90196 0.45098 0.00000
3 62 259 260 0.90196 0.45098 0.00000
3 244 260 63 0.90196 0.45098 0.00000
3 6 118 261 0.90196 0.45098 0.00000
3 242 261 62 0.90196 0.45098 0.00000
3 262 7 161 0.90196 0.45098 0.00000
3 66 108 262 0.90196 0.45098 0.00000
3 262 263 66 0.90196 0.45098 0.00000
3 263 262 64 0.90196 0.45098 0.00000
3 64 264 263 0.90196 0.45098 0.00000
3 264 64 160 0.90196 0.45098 0.00000
3 265 66 263 0.90196 0.45098 0.00000
3 263 266 265 0.90196 0.45098 0.00000
3 266 263 264 0.90196 0.45098 0.00000
3 264 267 266 0.90196 0.45098 0.00000
3 267 264 65 0.90196 0.45098 0.00000
3 65 268 267 0.90196 0.45098 0.00000
3 268 65 158 0.90196 0.45098 0.00000
3 67 110 265 0.90196 0.45098 0.00000
3 265 269 67 0.90196 0.45098 0.00000
3 269 265 266 0.90196 0.45098 0.00000
3 266 270 269 0.90196 0.45098 0.00000
3 270 266 267 0.90196 0.45098 0.00000
3 267 70 270 0.90196 0.45098 0.00000
3 70 267 268 0.90196 0.45098 0.00000
3 251 268 10 0.90196 0.45098 0.00000
3 271 67 269 0.90196 0.45098 0.00000
3 269 71 271 0.90196 0.45098 0.00000
3 71 269 270 0.90196 0.45098 0.00000
3 250 270 70 0.90196 0.45098 0.00000
3 11 111 271 0.90196 0.45098 0.00000
3 248 271 71 0.90196 0.45098 0.00000
1 0 0.38824 0.60000 0.30196
1 1 0.38824 0.60000 0.30196
1 2 0.38824 0.60000 0.30196
1 3 0.38824 0.60000 0.30196
1 4 0.38824 0.60000 0.30196
1 5 0.38824 0.60000 0.30196
1 6 0.38824 0.60000 0.30196
1 7 0.38824 0.60000 0.30196
1 8 0.38824 0.60000 0.30196
1 9 0.38824 0.60000 0.30196
1 10 0.38824 0.60000 0.30196
1 11 0.38824 0.60000 0.30196

View File

@ -0,0 +1,376 @@
OFF
122 252 0
0 0.5257311121191336 0.85065080835204
0 0.5257311121191336 -0.85065080835204
0 -0.5257311121191336 0.85065080835204
0 -0.5257311121191336 -0.85065080835204
0.5257311121191336 0.85065080835204 0
0.5257311121191336 -0.85065080835204 0
-0.5257311121191336 0.85065080835204 0
-0.5257311121191336 -0.85065080835204 0
0.85065080835204 0 0.5257311121191336
0.85065080835204 0 -0.5257311121191336
-0.85065080835204 0 0.5257311121191336
-0.85065080835204 0 -0.5257311121191336
2.175242402100701e-16 -1.643460219210441e-32 1
0.3090169943749475 0.8090169943749472 0.5000000000000002
-0.3090169943749475 0.8090169943749472 0.5000000000000002
0.4999999999999999 0.3090169943749474 0.8090169943749472
-0.5000000000000001 0.3090169943749475 0.8090169943749472
2.175242402100701e-16 1.643460219210441e-32 -1
0.3090169943749475 0.8090169943749472 -0.5000000000000002
-0.3090169943749475 0.8090169943749472 -0.5000000000000002
0.5 0.3090169943749473 -0.8090169943749475
-0.4999999999999999 0.3090169943749474 -0.8090169943749472
0.3090169943749473 -0.8090169943749475 0.5
-0.3090169943749475 -0.8090169943749472 0.5000000000000002
0.5 -0.3090169943749473 0.8090169943749475
-0.4999999999999999 -0.3090169943749474 0.8090169943749472
0.3090169943749473 -0.8090169943749475 -0.5
-0.3090169943749473 -0.8090169943749475 -0.5
0.5 -0.3090169943749472 -0.8090169943749475
-0.5000000000000001 -0.3090169943749475 -0.8090169943749472
0 1 4.350484804201401e-17
0.8090169943749475 0.5 0.3090169943749472
0.8090169943749472 0.4999999999999999 -0.3090169943749473
0 -1 -4.350484804201401e-17
0.8090169943749472 -0.4999999999999999 0.3090169943749473
0.8090169943749475 -0.5 -0.3090169943749472
-0.8090169943749472 0.4999999999999999 0.3090169943749473
-0.8090169943749472 0.4999999999999999 -0.3090169943749475
-0.8090169943749475 -0.5 0.3090169943749472
-0.8090169943749472 -0.4999999999999999 -0.3090169943749473
1 2.175242402100701e-16 -1.643460219210441e-32
-1 -2.175242402100701e-16 -1.643460219210441e-32
-0.1803319730021167 0.289241011911498 -0.9401170227910867
-0.35682208977309 -3.124513936890529e-17 -0.9341723589627157
-0.1803319730021166 -0.2892410119114981 -0.9401170227910867
-0.6483337612153338 -5.436311068297173e-17 -0.7613562464893677
-0.1803319730021166 0.2892410119114981 0.9401170227910867
-0.35682208977309 3.09531117213564e-17 0.9341723589627158
-0.6483337612153338 5.402340711901317e-17 0.7613562464893677
-0.1803319730021167 -0.289241011911498 0.9401170227910867
0.291783261575753 -0.5810242734872509 0.7597850497889703
0.5773502691896258 -0.5773502691896256 0.5773502691896258
0.5810242734872511 -0.7597850497889701 0.291783261575753
0.7597850497889702 -0.291783261575753 0.5810242734872511
-0.291783261575753 -0.5810242734872509 -0.7597850497889703
-0.5773502691896258 -0.5773502691896256 -0.5773502691896258
-0.5810242734872511 -0.7597850497889701 -0.291783261575753
-0.7597850497889702 -0.291783261575753 -0.5810242734872511
-2.313323858849861e-18 0.7613562464893674 -0.6483337612153339
3.124513936890529e-17 0.9341723589627158 -0.3568220897730901
-0.2892410119114981 0.9401170227910867 -0.1803319730021165
0.2892410119114981 0.9401170227910867 -0.1803319730021165
-2.313323858849861e-18 -0.7613562464893674 0.6483337612153339
3.124513936890529e-17 -0.9341723589627158 0.3568220897730901
-0.2892410119114981 -0.9401170227910867 0.1803319730021165
0.2892410119114981 -0.9401170227910867 0.1803319730021165
0.2917832615757529 -0.5810242734872509 -0.7597850497889704
0.5773502691896258 -0.5773502691896257 -0.5773502691896258
0.7597850497889701 -0.2917832615757531 -0.5810242734872512
0.5810242734872511 -0.7597850497889701 -0.291783261575753
2.313323858849861e-18 0.7613562464893674 0.6483337612153339
-3.124513936890529e-17 0.9341723589627158 0.3568220897730901
0.2892410119114981 0.9401170227910867 0.1803319730021165
-0.2892410119114981 0.9401170227910867 0.1803319730021165
-0.2917832615757529 -0.5810242734872509 0.7597850497889704
-0.5773502691896258 -0.5773502691896257 0.5773502691896258
-0.7597850497889701 -0.2917832615757531 0.5810242734872512
-0.5810242734872511 -0.7597850497889701 0.291783261575753
2.313323858849861e-18 -0.7613562464893674 -0.6483337612153339
-3.124513936890529e-17 -0.9341723589627158 -0.3568220897730901
0.2892410119114981 -0.9401170227910867 -0.1803319730021165
-0.2892410119114981 -0.9401170227910867 -0.1803319730021165
0.1803319730021167 0.289241011911498 0.9401170227910867
0.35682208977309 -3.124513936890529e-17 0.9341723589627157
0.1803319730021166 -0.2892410119114981 0.9401170227910867
0.6483337612153338 -5.436311068297173e-17 0.7613562464893677
0.2917832615757529 0.5810242734872509 0.7597850497889704
0.5773502691896258 0.5773502691896257 0.5773502691896258
0.7597850497889701 0.2917832615757531 0.5810242734872512
0.5810242734872511 0.7597850497889701 0.291783261575753
0.7613562464893677 -0.6483337612153338 5.436311068297173e-17
0.9341723589627157 -0.35682208977309 3.124513936890529e-17
0.9401170227910867 -0.1803319730021167 -0.289241011911498
0.9401170227910867 -0.1803319730021166 0.2892410119114981
0.291783261575753 0.5810242734872509 -0.7597850497889703
0.5773502691896258 0.5773502691896256 -0.5773502691896258
0.5810242734872511 0.7597850497889701 -0.291783261575753
0.7597850497889702 0.291783261575753 -0.5810242734872511
0.1803319730021166 0.2892410119114981 -0.9401170227910867
0.35682208977309 3.09531117213564e-17 -0.9341723589627158
0.6483337612153338 5.402340711901317e-17 -0.7613562464893677
0.1803319730021167 -0.289241011911498 -0.9401170227910867
0.7613562464893677 0.6483337612153338 -5.436311068297173e-17
0.9341723589627157 0.35682208977309 -3.124513936890529e-17
0.9401170227910867 0.1803319730021167 0.289241011911498
0.9401170227910867 0.1803319730021166 -0.2892410119114981
-0.291783261575753 0.5810242734872509 0.7597850497889703
-0.5773502691896258 0.5773502691896256 0.5773502691896258
-0.5810242734872511 0.7597850497889701 0.291783261575753
-0.7597850497889702 0.291783261575753 0.5810242734872511
-0.7613562464893677 0.6483337612153338 5.436311068297173e-17
-0.9341723589627157 0.35682208977309 3.124513936890529e-17
-0.9401170227910867 0.1803319730021167 -0.289241011911498
-0.9401170227910867 0.1803319730021166 0.2892410119114981
-0.2917832615757529 0.5810242734872509 -0.7597850497889704
-0.5773502691896258 0.5773502691896257 -0.5773502691896258
-0.7597850497889701 0.2917832615757531 -0.5810242734872512
-0.5810242734872511 0.7597850497889701 -0.291783261575753
-0.7613562464893677 -0.6483337612153338 -5.436311068297173e-17
-0.9341723589627157 -0.35682208977309 -3.124513936890529e-17
-0.9401170227910867 -0.1803319730021167 0.289241011911498
-0.9401170227910867 -0.1803319730021166 -0.2892410119114981
3 42 1 98 0.90196 0.45098 0.00000
3 21 114 42 0.90196 0.45098 0.00000
3 42 43 21 0.90196 0.45098 0.00000
3 43 42 17 0.90196 0.45098 0.00000
3 17 44 43 0.90196 0.45098 0.00000
3 44 17 101 0.90196 0.45098 0.00000
3 45 21 43 0.90196 0.45098 0.00000
3 43 29 45 0.90196 0.45098 0.00000
3 29 43 44 0.90196 0.45098 0.00000
3 54 44 3 0.90196 0.45098 0.00000
3 11 116 45 0.90196 0.45098 0.00000
3 57 45 29 0.90196 0.45098 0.00000
3 46 0 106 0.90196 0.45098 0.00000
3 12 82 46 0.90196 0.45098 0.00000
3 46 47 12 0.90196 0.45098 0.00000
3 47 46 16 0.90196 0.45098 0.00000
3 16 48 47 0.90196 0.45098 0.00000
3 48 16 109 0.90196 0.45098 0.00000
3 49 12 47 0.90196 0.45098 0.00000
3 47 25 49 0.90196 0.45098 0.00000
3 25 47 48 0.90196 0.45098 0.00000
3 76 48 10 0.90196 0.45098 0.00000
3 2 84 49 0.90196 0.45098 0.00000
3 74 49 25 0.90196 0.45098 0.00000
3 50 2 62 0.90196 0.45098 0.00000
3 24 84 50 0.90196 0.45098 0.00000
3 50 51 24 0.90196 0.45098 0.00000
3 51 50 22 0.90196 0.45098 0.00000
3 22 52 51 0.90196 0.45098 0.00000
3 52 22 65 0.90196 0.45098 0.00000
3 53 24 51 0.90196 0.45098 0.00000
3 51 34 53 0.90196 0.45098 0.00000
3 34 51 52 0.90196 0.45098 0.00000
3 90 52 5 0.90196 0.45098 0.00000
3 8 85 53 0.90196 0.45098 0.00000
3 93 53 34 0.90196 0.45098 0.00000
3 54 3 78 0.90196 0.45098 0.00000
3 29 44 54 0.90196 0.45098 0.00000
3 54 55 29 0.90196 0.45098 0.00000
3 55 54 27 0.90196 0.45098 0.00000
3 27 56 55 0.90196 0.45098 0.00000
3 56 27 81 0.90196 0.45098 0.00000
3 57 29 55 0.90196 0.45098 0.00000
3 55 39 57 0.90196 0.45098 0.00000
3 39 55 56 0.90196 0.45098 0.00000
3 118 56 7 0.90196 0.45098 0.00000
3 11 45 57 0.90196 0.45098 0.00000
3 121 57 39 0.90196 0.45098 0.00000
3 58 1 114 0.90196 0.45098 0.00000
3 18 94 58 0.90196 0.45098 0.00000
3 58 59 18 0.90196 0.45098 0.00000
3 59 58 19 0.90196 0.45098 0.00000
3 19 60 59 0.90196 0.45098 0.00000
3 60 19 117 0.90196 0.45098 0.00000
3 61 18 59 0.90196 0.45098 0.00000
3 59 30 61 0.90196 0.45098 0.00000
3 30 59 60 0.90196 0.45098 0.00000
3 73 60 6 0.90196 0.45098 0.00000
3 4 96 61 0.90196 0.45098 0.00000
3 72 61 30 0.90196 0.45098 0.00000
3 62 2 74 0.90196 0.45098 0.00000
3 22 50 62 0.90196 0.45098 0.00000
3 62 63 22 0.90196 0.45098 0.00000
3 63 62 23 0.90196 0.45098 0.00000
3 23 64 63 0.90196 0.45098 0.00000
3 64 23 77 0.90196 0.45098 0.00000
3 65 22 63 0.90196 0.45098 0.00000
3 63 33 65 0.90196 0.45098 0.00000
3 33 63 64 0.90196 0.45098 0.00000
3 81 64 7 0.90196 0.45098 0.00000
3 5 52 65 0.90196 0.45098 0.00000
3 80 65 33 0.90196 0.45098 0.00000
3 66 3 101 0.90196 0.45098 0.00000
3 26 78 66 0.90196 0.45098 0.00000
3 66 67 26 0.90196 0.45098 0.00000
3 67 66 28 0.90196 0.45098 0.00000
3 28 68 67 0.90196 0.45098 0.00000
3 68 28 100 0.90196 0.45098 0.00000
3 69 26 67 0.90196 0.45098 0.00000
3 67 35 69 0.90196 0.45098 0.00000
3 35 67 68 0.90196 0.45098 0.00000
3 92 68 9 0.90196 0.45098 0.00000
3 5 80 69 0.90196 0.45098 0.00000
3 90 69 35 0.90196 0.45098 0.00000
3 70 0 86 0.90196 0.45098 0.00000
3 14 106 70 0.90196 0.45098 0.00000
3 70 71 14 0.90196 0.45098 0.00000
3 71 70 13 0.90196 0.45098 0.00000
3 13 72 71 0.90196 0.45098 0.00000
3 72 13 89 0.90196 0.45098 0.00000
3 73 14 71 0.90196 0.45098 0.00000
3 71 30 73 0.90196 0.45098 0.00000
3 30 71 72 0.90196 0.45098 0.00000
3 61 72 4 0.90196 0.45098 0.00000
3 6 108 73 0.90196 0.45098 0.00000
3 60 73 30 0.90196 0.45098 0.00000
3 74 2 49 0.90196 0.45098 0.00000
3 23 62 74 0.90196 0.45098 0.00000
3 74 75 23 0.90196 0.45098 0.00000
3 75 74 25 0.90196 0.45098 0.00000
3 25 76 75 0.90196 0.45098 0.00000
3 76 25 48 0.90196 0.45098 0.00000
3 77 23 75 0.90196 0.45098 0.00000
3 75 38 77 0.90196 0.45098 0.00000
3 38 75 76 0.90196 0.45098 0.00000
3 120 76 10 0.90196 0.45098 0.00000
3 7 64 77 0.90196 0.45098 0.00000
3 118 77 38 0.90196 0.45098 0.00000
3 78 3 66 0.90196 0.45098 0.00000
3 27 54 78 0.90196 0.45098 0.00000
3 78 79 27 0.90196 0.45098 0.00000
3 79 78 26 0.90196 0.45098 0.00000
3 26 80 79 0.90196 0.45098 0.00000
3 80 26 69 0.90196 0.45098 0.00000
3 81 27 79 0.90196 0.45098 0.00000
3 79 33 81 0.90196 0.45098 0.00000
3 33 79 80 0.90196 0.45098 0.00000
3 65 80 5 0.90196 0.45098 0.00000
3 7 56 81 0.90196 0.45098 0.00000
3 64 81 33 0.90196 0.45098 0.00000
3 82 0 46 0.90196 0.45098 0.00000
3 15 86 82 0.90196 0.45098 0.00000
3 82 83 15 0.90196 0.45098 0.00000
3 83 82 12 0.90196 0.45098 0.00000
3 12 84 83 0.90196 0.45098 0.00000
3 84 12 49 0.90196 0.45098 0.00000
3 85 15 83 0.90196 0.45098 0.00000
3 83 24 85 0.90196 0.45098 0.00000
3 24 83 84 0.90196 0.45098 0.00000
3 50 84 2 0.90196 0.45098 0.00000
3 8 88 85 0.90196 0.45098 0.00000
3 53 85 24 0.90196 0.45098 0.00000
3 86 0 82 0.90196 0.45098 0.00000
3 13 70 86 0.90196 0.45098 0.00000
3 86 87 13 0.90196 0.45098 0.00000
3 87 86 15 0.90196 0.45098 0.00000
3 15 88 87 0.90196 0.45098 0.00000
3 88 15 85 0.90196 0.45098 0.00000
3 89 13 87 0.90196 0.45098 0.00000
3 87 31 89 0.90196 0.45098 0.00000
3 31 87 88 0.90196 0.45098 0.00000
3 104 88 8 0.90196 0.45098 0.00000
3 4 72 89 0.90196 0.45098 0.00000
3 102 89 31 0.90196 0.45098 0.00000
3 90 5 69 0.90196 0.45098 0.00000
3 34 52 90 0.90196 0.45098 0.00000
3 90 91 34 0.90196 0.45098 0.00000
3 91 90 35 0.90196 0.45098 0.00000
3 35 92 91 0.90196 0.45098 0.00000
3 92 35 68 0.90196 0.45098 0.00000
3 93 34 91 0.90196 0.45098 0.00000
3 91 40 93 0.90196 0.45098 0.00000
3 40 91 92 0.90196 0.45098 0.00000
3 105 92 9 0.90196 0.45098 0.00000
3 8 53 93 0.90196 0.45098 0.00000
3 104 93 40 0.90196 0.45098 0.00000
3 94 1 58 0.90196 0.45098 0.00000
3 20 98 94 0.90196 0.45098 0.00000
3 94 95 20 0.90196 0.45098 0.00000
3 95 94 18 0.90196 0.45098 0.00000
3 18 96 95 0.90196 0.45098 0.00000
3 96 18 61 0.90196 0.45098 0.00000
3 97 20 95 0.90196 0.45098 0.00000
3 95 32 97 0.90196 0.45098 0.00000
3 32 95 96 0.90196 0.45098 0.00000
3 102 96 4 0.90196 0.45098 0.00000
3 9 100 97 0.90196 0.45098 0.00000
3 105 97 32 0.90196 0.45098 0.00000
3 98 1 94 0.90196 0.45098 0.00000
3 17 42 98 0.90196 0.45098 0.00000
3 98 99 17 0.90196 0.45098 0.00000
3 99 98 20 0.90196 0.45098 0.00000
3 20 100 99 0.90196 0.45098 0.00000
3 100 20 97 0.90196 0.45098 0.00000
3 101 17 99 0.90196 0.45098 0.00000
3 99 28 101 0.90196 0.45098 0.00000
3 28 99 100 0.90196 0.45098 0.00000
3 68 100 9 0.90196 0.45098 0.00000
3 3 44 101 0.90196 0.45098 0.00000
3 66 101 28 0.90196 0.45098 0.00000
3 102 4 89 0.90196 0.45098 0.00000
3 32 96 102 0.90196 0.45098 0.00000
3 102 103 32 0.90196 0.45098 0.00000
3 103 102 31 0.90196 0.45098 0.00000
3 31 104 103 0.90196 0.45098 0.00000
3 104 31 88 0.90196 0.45098 0.00000
3 105 32 103 0.90196 0.45098 0.00000
3 103 40 105 0.90196 0.45098 0.00000
3 40 103 104 0.90196 0.45098 0.00000
3 93 104 8 0.90196 0.45098 0.00000
3 9 97 105 0.90196 0.45098 0.00000
3 92 105 40 0.90196 0.45098 0.00000
3 106 0 70 0.90196 0.45098 0.00000
3 16 46 106 0.90196 0.45098 0.00000
3 106 107 16 0.90196 0.45098 0.00000
3 107 106 14 0.90196 0.45098 0.00000
3 14 108 107 0.90196 0.45098 0.00000
3 108 14 73 0.90196 0.45098 0.00000
3 109 16 107 0.90196 0.45098 0.00000
3 107 36 109 0.90196 0.45098 0.00000
3 36 107 108 0.90196 0.45098 0.00000
3 110 108 6 0.90196 0.45098 0.00000
3 10 48 109 0.90196 0.45098 0.00000
3 113 109 36 0.90196 0.45098 0.00000
3 110 6 117 0.90196 0.45098 0.00000
3 36 108 110 0.90196 0.45098 0.00000
3 110 111 36 0.90196 0.45098 0.00000
3 111 110 37 0.90196 0.45098 0.00000
3 37 112 111 0.90196 0.45098 0.00000
3 112 37 116 0.90196 0.45098 0.00000
3 113 36 111 0.90196 0.45098 0.00000
3 111 41 113 0.90196 0.45098 0.00000
3 41 111 112 0.90196 0.45098 0.00000
3 121 112 11 0.90196 0.45098 0.00000
3 10 109 113 0.90196 0.45098 0.00000
3 120 113 41 0.90196 0.45098 0.00000
3 114 1 42 0.90196 0.45098 0.00000
3 19 58 114 0.90196 0.45098 0.00000
3 114 115 19 0.90196 0.45098 0.00000
3 115 114 21 0.90196 0.45098 0.00000
3 21 116 115 0.90196 0.45098 0.00000
3 116 21 45 0.90196 0.45098 0.00000
3 117 19 115 0.90196 0.45098 0.00000
3 115 37 117 0.90196 0.45098 0.00000
3 37 115 116 0.90196 0.45098 0.00000
3 112 116 11 0.90196 0.45098 0.00000
3 6 60 117 0.90196 0.45098 0.00000
3 110 117 37 0.90196 0.45098 0.00000
3 118 7 77 0.90196 0.45098 0.00000
3 39 56 118 0.90196 0.45098 0.00000
3 118 119 39 0.90196 0.45098 0.00000
3 119 118 38 0.90196 0.45098 0.00000
3 38 120 119 0.90196 0.45098 0.00000
3 120 38 76 0.90196 0.45098 0.00000
3 121 39 119 0.90196 0.45098 0.00000
3 119 41 121 0.90196 0.45098 0.00000
3 41 119 120 0.90196 0.45098 0.00000
3 113 120 10 0.90196 0.45098 0.00000
3 11 57 121 0.90196 0.45098 0.00000
3 112 121 41 0.90196 0.45098 0.00000
1 0 0.38824 0.60000 0.30196
1 1 0.38824 0.60000 0.30196
1 2 0.38824 0.60000 0.30196
1 3 0.38824 0.60000 0.30196
1 4 0.38824 0.60000 0.30196
1 5 0.38824 0.60000 0.30196
1 6 0.38824 0.60000 0.30196
1 7 0.38824 0.60000 0.30196
1 8 0.38824 0.60000 0.30196
1 9 0.38824 0.60000 0.30196
1 10 0.38824 0.60000 0.30196
1 11 0.38824 0.60000 0.30196

View File

@ -0,0 +1,205 @@
"""Tests the generated graphs are well-formed."""
# Standard Library
from contextlib import redirect_stdout
from io import StringIO
from math import isclose
# Testing
import unittest
# Typing
from typing import cast
# Hypothesis testing
from hypothesis import given
import hypothesis.strategies as st
# Scientific (testing)
import numpy as np
import numpy.testing
# Own geography
from pyrate.plan.geometry.geospatial import MEAN_EARTH_CIRCUMFERENCE
from pyrate.plan.geometry.helpers import haversine_numpy
# Module under test
from pyrate.plan.graph.generate import angular_distance_for
from pyrate.plan.graph.generate import create_earth_graph
from pyrate.plan.graph.generate import great_circle_distance_distance_for
from pyrate.plan.graph.generate import min_required_frequency
EXAMPLE_DISTANCES_KILOMETERS = [100000, 100000.0, 5000, 250] # smaller values take too long
class TestGridGeneration(unittest.TestCase):
"""Tests that a grid can be created and pruned."""
@staticmethod
def _calculate_distances(latitudes: np.ndarray, longitudes: np.ndarray, edges: np.ndarray) -> np.ndarray:
"""Calculates the distance of all edges. The `edges` index into the coordinate arrays."""
entries = [
(latitudes[node_1], longitudes[node_1], latitudes[node_2], longitudes[node_2])
for node_1, node_2 in edges
]
return haversine_numpy(*np.transpose(entries))
def test_create_earth_grid(self) -> None:
"""Ensures that the generated earth grids are formed correctly."""
for distance_km in EXAMPLE_DISTANCES_KILOMETERS:
with self.subTest(f"Test with distance {distance_km} km"):
distance = distance_km * 1000
# create a grid
graph = create_earth_graph(min_required_frequency(distance, in_meters=True))
self.assertIsNotNone(graph.node_radius)
actual_distance: float = cast(float, graph.node_radius) * 2
# the actual_distance must be a upper-bounded by he requested distance
self.assertLessEqual(actual_distance, distance)
self.assertLessEqual(actual_distance, MEAN_EARTH_CIRCUMFERENCE / 2)
# the shapes of the returned arrays must match
self.assertEqual(
graph.latitudes_radians.shape,
graph.longitudes_radians.shape,
"latitude and longitude must have the same shape",
)
self.assertEqual(
graph.latitudes_degrees.shape,
graph.longitudes_degrees.shape,
"latitude and longitude must have the same shape",
)
self.assertEqual(
graph.latitudes_radians.shape,
graph.longitudes_degrees.shape,
"radians and degrees must have the same shape",
)
self.assertGreaterEqual(len(graph), 12) # as it is based on slicing an icosahedron
# the edges must be valid indices into the edges
self.assertTrue(
np.all(graph.edges[:, :] >= 0) and np.all(graph.edges[:, :] < len(graph)),
"some edges reference non-existent points",
)
# check the actual coordinate value
if (
np.any(graph.latitudes_radians < -np.pi / 2)
or np.any(graph.longitudes_radians < -np.pi)
or np.any(graph.latitudes_radians >= +np.pi / 2)
or np.any(graph.longitudes_radians >= +np.pi)
):
print(
"latitude < min / 2:",
np.compress(graph.latitudes_radians < -np.pi / 2, graph.latitudes_radians),
)
print(
"longitude < min:",
np.compress(graph.longitudes_radians < -np.pi, graph.longitudes_radians),
)
print(
"latitude >= max / 2:",
np.compress(graph.latitudes_radians >= +np.pi / 2, graph.latitudes_radians),
)
print(
"longitude >= max:",
np.compress(graph.longitudes_radians >= +np.pi, graph.longitudes_radians),
)
self.fail("some points are outside of the allowed range")
# check the distances along the edges
distances = TestGridGeneration._calculate_distances(
graph.latitudes_radians, graph.longitudes_radians, graph.edges
)
numpy.testing.assert_allclose(distances, actual_distance, atol=10, rtol=0.2)
mean = np.mean(distances)
self.assertTrue(isclose(mean, actual_distance, rel_tol=0.1, abs_tol=10.0))
standard_deviation = np.std(distances)
self.assertLessEqual(standard_deviation / mean, 0.075)
def test_print_status(self) -> None:
"""This tests that logging being enabled actually logs something and does not crash."""
stdout_logging = StringIO()
with redirect_stdout(stdout_logging):
create_earth_graph(6, print_status=True)
logged_lines = list(stdout_logging.getvalue().splitlines())
self.assertEqual(len(logged_lines), 6, "we expect 6 lines of messages")
def test_find_neighbors(self) -> None:
"""Tests that result of the neighbor search is correct."""
for distance_km in EXAMPLE_DISTANCES_KILOMETERS:
with self.subTest(f"Test with distance {distance_km} km"):
# create a grid & determine neighbors
graph = create_earth_graph(min_required_frequency(distance_km * 1000, in_meters=True))
neighbors = graph.neighbors
count_per_node = np.count_nonzero(neighbors >= 0, axis=1)
# check the resulting number of entries
self.assertEqual(
np.sum(count_per_node),
graph.edges.shape[0] * 2,
"each edge must generate two entries in the neighbor table",
)
self.assertEqual(
np.count_nonzero(count_per_node == 5),
12,
"exactly twelve nodes must have exactly five neighbors "
"(the corners of the original icosahedron)",
)
self.assertEqual(
np.count_nonzero(count_per_node == 6),
len(graph) - 12,
"all but twelve nodes must have exactly six neighbors",
)
# check the range of values
valid_index = np.logical_and(neighbors >= 0, neighbors < len(graph))
self.assertTrue(
np.all(np.logical_xor(neighbors == -1, valid_index)),
"any value i may either be -1 (=null) or a valid index with 0 <= i < num_nodes",
)
class TestHelperMethods(unittest.TestCase):
"""Tests that the helpers (e.g. for computing minimum required frequencies) work correctly."""
@given(st.floats(min_value=1e-6, allow_infinity=False, allow_nan=False), st.booleans())
def test_right_order_of_magnitude(self, desired_distance: float, in_meters: bool) -> None:
"""Asserts that commuting a frequency and converting it to units is correct w.r.t. to each other."""
frequency = min_required_frequency(desired_distance, in_meters)
if in_meters:
actual_distance = great_circle_distance_distance_for(frequency)
else:
actual_distance = angular_distance_for(frequency)
self.assertLessEqual(actual_distance, desired_distance)
if frequency > 1:
if in_meters:
actual_distance_one_rougher = great_circle_distance_distance_for(frequency - 1)
else:
actual_distance_one_rougher = angular_distance_for(frequency - 1)
self.assertGreaterEqual(actual_distance_one_rougher, desired_distance)
def test_specific_values(self) -> None:
"""Asserts that commuting a frequency works correct for specific hand-chosen values."""
# Taken from the implementation:
# The approximate angle between two edges on an icosahedron, in radians, about 63.4°
alpha = 1.1071487
# Contains pairs: (angular distance in radians, frequency)
table = [
(alpha + 1e-6, 1),
(alpha - 1e-9, 2),
(alpha / 9000.005, 9001),
]
for desired_angular_distance, desired_frequency in table:
computed_frequency = min_required_frequency(desired_angular_distance, in_meters=False)
self.assertEqual(desired_frequency, computed_frequency)

View File

@ -0,0 +1,56 @@
"""Tests the Aptiprism OFF file handler."""
# Standard library
import os.path
# Testing
import unittest
# Scientific
import numpy as np
# Module under test
from pyrate.plan.graph.generate import _parse_off_file
TEST_FILES_DIR = os.path.realpath(os.path.join(os.path.dirname(__file__), "example_files/"))
TEST_FILES = [
os.path.join(TEST_FILES_DIR, "geodestic_file_1.off"),
os.path.join(TEST_FILES_DIR, "geodestic_file_2.off"),
os.path.join(TEST_FILES_DIR, "geodesic_-M_s_-c_2_-f_2_ico.off"),
]
class TestOffHandler(unittest.TestCase):
"""Tests the Aptiprism OFF file handler using some examples."""
def test_with_example_files(self):
"""Tests the Aptiprism OFF file handler using three example files."""
for test_file in TEST_FILES:
with self.subTest(f'Test file "{test_file}"'):
# test that it does not crash
with open(test_file, "r", encoding="utf-8") as myfile:
source = myfile.read()
latitudes, longitudes, edges = _parse_off_file(source)
if "geodesic_-M_s_-c_2_-f_2_ico" in test_file:
self.assertEqual(
len(latitudes), 122, f"wrong total number of nodes: {len(latitudes)} instead of 122"
)
self.assertEqual(
edges.shape[0], 360, f"wrong total number of edges: {edges.shape[0]} instead of 360"
)
# the shapes of the returned arrays must match
self.assertEqual(
latitudes.shape, longitudes.shape, "latitude and longitude must have the same shape"
)
self.assertGreater(len(latitudes), 0, "no points found")
# the edges must be valid indices into the edges
self.assertTrue(
np.all(edges[:, :] >= 0) and np.all(edges[:, :] < len(latitudes)),
"some edges reference non-existent points",
)

View File

@ -0,0 +1,166 @@
"""Asserts correct behaviour of the geo-referenced graph navigation.
See Also:
tests/common/raster_datasets/test_transformers_concrete.py
"""
# Standard library
from copy import deepcopy
import os.path
from tempfile import TemporaryDirectory
from unittest import TestCase
# Scientific
import numpy
from numpy import arange
from numpy import array
from numpy import empty
from numpy.testing import assert_array_equal
from pandas import DataFrame
# Graph generation / Module under test
from pyrate.common.raster_datasets import transformers_concrete
from pyrate.plan.graph import create_earth_graph
from pyrate.plan.graph import GeoNavigationGraph
from pyrate.plan.graph import min_required_frequency
# CI/Testing helpers
from ... import _open_test_geo_dataset
from .generate.test_graph_generation import EXAMPLE_DISTANCES_KILOMETERS
class TestGeoNavigationGraph(TestCase):
"""Tests properties specific to :class:`pyrate.plan.graph.GeoNavigationGraph`."""
def test_create_invalid_duplicate_argument_nodes(self) -> None:
"""Tests supplying nodes to from_coordinates_radians/from_coordinates_degrees raises an Exception."""
for function in [
GeoNavigationGraph.from_coordinates_degrees,
GeoNavigationGraph.from_coordinates_radians,
]:
with self.subTest(msg=f"function {str(function)}"):
with self.assertRaises(Exception): # noqa: H202
function( # type: ignore
latitudes=empty((0,)), longitudes=empty((0,)), edges=empty((0, 2)), nodes=DataFrame()
)
def test_node_radius_constructor(self) -> None:
"""Tests that only invalid inputs to node_radius raise exceptions."""
GeoNavigationGraph.from_coordinates_degrees(
latitudes=empty((0,)), longitudes=empty((0,)), edges=empty((0, 2)), node_radius=0
)
GeoNavigationGraph.from_coordinates_degrees(
latitudes=empty((0,)), longitudes=empty((0,)), edges=empty((0, 2)), node_radius=100_000
)
with self.assertRaises(Exception): # noqa: H202
GeoNavigationGraph.from_coordinates_degrees(
latitudes=empty((0,)), longitudes=empty((0,)), edges=empty((0, 2)), node_radius=-1e-9
)
def test_set_node_properties(self) -> None:
"""Tests that passing ``node_properties`` works."""
graph = GeoNavigationGraph.from_coordinates_radians(
latitudes=array([42]),
longitudes=array([21]),
edges=empty((0, 2)),
node_radius=100,
node_properties=DataFrame(data={"col1": [99], "col2": ["text"]}),
)
self.assertEqual(graph.node_radius, 100)
assert_array_equal(graph.node_properties["col1"], [99])
assert_array_equal(graph.node_properties["col2"], ["text"])
def test_read_write(self) -> None:
"""Tests that a *geo* navigation graph can be serialized and deserialized again."""
latitudes = array([49.8725144])
longitudes = array([8.6528707])
edges = empty((0, 2))
# `graph.neighbors` is cached, so we want to try it with and without the cached neighbors being set
for set_neighbors in [True, False]:
with self.subTest(f"neighbors set = {set_neighbors}"):
graph = GeoNavigationGraph.from_coordinates_degrees(
latitudes, longitudes, edges=edges, max_neighbors=42, node_radius=1000
)
if set_neighbors:
_ = graph.neighbors
with TemporaryDirectory() as directory:
path = os.path.join(directory, "some_file.hdf5")
graph.to_disk(path)
new_graph = GeoNavigationGraph.from_disk(path)
self.assertEqual(graph, new_graph)
assert_array_equal(new_graph.neighbors, graph.neighbors)
class TestNavigationGraphPruningGeo(TestCase):
"""Tests that navigation graphs can be pruned by testing it with earth graphs."""
def test_pruning_artificial(self) -> None:
"""Tests that pruning half of the points works as expected."""
for distance_km in EXAMPLE_DISTANCES_KILOMETERS:
with self.subTest(f"Test with distance {distance_km} km"):
# create a grid
graph = create_earth_graph(min_required_frequency(distance_km * 1000, in_meters=True))
# keep all nodes at even latitudes
keep_condition = arange(0, len(graph)) % 2 == 0
pruned_graph = deepcopy(graph)
pruned_graph.prune_nodes(keep_condition)
self.assertGreater(len(pruned_graph), 0, "some node must remain")
# test the reduction ratio
delta_nodes = len(pruned_graph) / len(graph)
delta_edges = pruned_graph.num_edges / graph.num_edges
self.assertAlmostEqual(delta_nodes, 0.5, msg="suspicious node count reduction")
# about a fifth of all edges should be removed since each of the removed nodes removed five
# edges
self.assertAlmostEqual(delta_edges, 1 / 5, delta=0.15, msg="suspicious edge count reduction")
# test the values in the edges, since they were rewritten as they point to new indices
self.assertTrue(numpy.all(pruned_graph.edges[:, :] >= 0), "indices must be non-negative")
self.assertTrue(
numpy.all(pruned_graph.edges[:, :] < len(pruned_graph)),
"some filtered edges reference (now) non-existent points",
)
def test_pruning_depth(self) -> None:
"""Supplements :meth`~test_pruning_artificial` by a real-world application.
Only checks application-specific properties and not, for example, the general shapes of the result.
"""
# create a grid
distance_meters = 500_000
graph = create_earth_graph(min_required_frequency(distance_meters, in_meters=True))
# fetch properties
mode = transformers_concrete.BathymetricTransformer.Modes.AVERAGE_DEPTH
graph.append_property(transformers_concrete.BathymetricTransformer(_open_test_geo_dataset(), [mode]))
# keep all nodes that are below sea level
keep_condition = (graph.node_properties[mode.column_name] < 0.0).to_numpy()
# Remove the now useless property
graph.clear_node_properties()
# perform pruning
pruned_graph = deepcopy(graph)
pruned_graph.prune_nodes(keep_condition)
# test the reduction ratio
delta_nodes = len(pruned_graph) / len(graph)
delta_edges = pruned_graph.num_edges / graph.num_edges
earth_fraction_water = 0.708 # see https://en.wikipedia.org/wiki/World_Ocean
# although we go by topography and not water coverage, this should still be fairly correct
self.assertAlmostEqual(
delta_nodes, earth_fraction_water, delta=0.1, msg="suspicious node count reduction"
)
self.assertAlmostEqual(
delta_edges, earth_fraction_water, delta=0.1, msg="suspicious edge count reduction"
)

View File

@ -0,0 +1,120 @@
"""Asserts correct behaviour of the base classes for graph navigation.
See Also:
tests/common/raster_datasets/test_transformers_concrete.py
"""
# Standard library
from copy import deepcopy
import os.path
from tempfile import TemporaryDirectory
from unittest import TestCase
# Scientific
from numpy import array
from numpy import empty
from numpy import full
from numpy.testing import assert_array_equal
from pandas import DataFrame
from pandas.testing import assert_frame_equal
# Module under test
from pyrate.plan.graph import NavigationGraph
# Some examples:
_NODES = DataFrame(data={"property_1": [1, 2, 3], "property_2": [10, 20, 30]})
_EDGES = array([[0, 1], [1, 2]])
_NEIGHBORS = array([[1, -1], [0, 2], [1, -1]])
class TestNavigationGraph(TestCase):
"""Tests the very basic functionality like initialization, (de)serialization and finding neighbors."""
def test_empty(self) -> None:
"""Tests that a new instance can be created with and without neighbors."""
graph = NavigationGraph(DataFrame(), empty((0, 2)))
self.assertEqual(len(graph), 0)
self.assertEqual(graph.num_edges, 0)
# check that the correct neighbor table is returned
self.assertEqual(graph.neighbors.shape, (0, 0))
def test_create(self) -> None:
"""Tests that a new instance can be created with and without neighbors."""
for given_neighbors in [_NEIGHBORS, None]:
with self.subTest(f"neighbors given = {given_neighbors is not None}"):
graph = NavigationGraph(_NODES, _EDGES, given_neighbors)
assert_array_equal(graph.neighbors, _NEIGHBORS)
# repeated queries should return the same neighbors
assert_array_equal(graph.neighbors, graph.neighbors)
def test_read_write(self) -> None:
"""Tests that a navigation graph can be serialized and deserialized again."""
# `graph.neighbors` is cached, so we want to try it with and without the cached neighbors being set
for set_neighbors in [True, False]:
with self.subTest(f"neighbors set = {set_neighbors}"):
graph = NavigationGraph(_NODES, _EDGES, max_neighbors=42)
if set_neighbors:
_ = graph.neighbors
with TemporaryDirectory() as directory:
path = os.path.join(directory, "some_file.hdf5")
graph.to_disk(path)
new_graph = NavigationGraph.from_disk(path)
self.assertEqual(graph, new_graph)
assert_array_equal(new_graph.neighbors, _NEIGHBORS)
def test_max_neighbors_constructor(self) -> None:
"""Tests that only invalid inputs to max_neighbors raise exceptions."""
NavigationGraph(DataFrame(), empty((0, 2)), max_neighbors=0)
NavigationGraph(DataFrame(), empty((0, 2)), max_neighbors=10)
with self.assertRaises(Exception): # noqa: H202
NavigationGraph(DataFrame(), empty((0, 2)), max_neighbors=-2)
class TestNavigationGraphPruningArtificial(TestCase):
"""Tests that simple toy navigation graphs can be pruned."""
def test_pruning_no_nodes(self) -> None:
"""Tests that pruning no nodes works."""
old_graph = NavigationGraph(_NODES, _EDGES, _NEIGHBORS)
pruned_graph = deepcopy(old_graph)
retain_all = full((len(_NODES),), True)
pruned_graph.prune_nodes(retain_all)
self.assertEqual(old_graph, pruned_graph)
def test_pruning_all(self) -> None:
"""Tests that pruning all nodes works."""
old_graph = NavigationGraph(_NODES, _EDGES, _NEIGHBORS)
pruned_graph = deepcopy(old_graph)
retain_all = full((len(_NODES),), False)
pruned_graph.prune_nodes(retain_all)
self.assertNotEqual(old_graph, pruned_graph)
self.assertEqual(len(pruned_graph.nodes), 0)
self.assertEqual(len(pruned_graph.nodes.columns), 2, "the properties must be retained")
self.assertEqual(pruned_graph.edges.shape, (0, 2))
self.assertEqual(pruned_graph.neighbors.shape, (0, 0))
def test_pruning_very_simple(self) -> None:
"""Tests that pruning some nodes works as expected."""
old_graph = NavigationGraph(_NODES, _EDGES, _NEIGHBORS)
pruned_graph = deepcopy(old_graph)
keep_condition = array([True, True, False]) # only prune the last node
pruned_graph.prune_nodes(keep_condition)
self.assertNotEqual(old_graph, pruned_graph)
assert_frame_equal(pruned_graph.nodes, _NODES[:2])
assert_array_equal(pruned_graph.edges, _EDGES[:1])
assert_array_equal(pruned_graph.neighbors, _NEIGHBORS[:2, :1])