From ada534c4acfd08bcb538960d3d91c439ee5f85ed Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Mon, 16 Mar 2015 14:18:04 +0100 Subject: [PATCH] compute_normals_example --- .../compute_normals_example.cpp | 46 +- .../Polygon_mesh_processing/data/eight.off | 951 ++++++++++++++++++ 2 files changed, 992 insertions(+), 5 deletions(-) create mode 100644 Polygon_mesh_processing/examples/Polygon_mesh_processing/data/eight.off diff --git a/Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example.cpp b/Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example.cpp index 43bca02dc75..226dffdd7c6 100644 --- a/Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example.cpp +++ b/Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example.cpp @@ -1,13 +1,49 @@ +#include +#include + #include -//CGAL::Polygon_mesh_processing::compute_face_normal() -//CGAL::Polygon_mesh_processing::compute_vertex_normal() -//CGAL::Polygon_mesh_processing::compute_normals() -//CGAL::Polygon_mesh_processing::compute_face_normals() -//CGAL::Polygon_mesh_processing::compute_vertex_normals() +#include +#include +typedef CGAL::Exact_predicates_inexact_constructions_kernel K; +typedef K::Point_3 Point; +typedef K::Vector_3 Vector; + +typedef CGAL::Surface_mesh Surface_mesh; +typedef boost::graph_traits::vertex_descriptor vertex_descriptor; +typedef boost::graph_traits::face_descriptor face_descriptor; int main() { + Surface_mesh mesh; + std::ifstream input("data/elephant.off"); + if (!input || !(input >> mesh) || mesh.is_empty()) { + std::cerr << "Not a valid off file." << std::endl; + return 1; + } + + Surface_mesh::Property_map fnormals; + Surface_mesh::Property_map vnormals; + bool created; + boost::tie(fnormals, created) + = mesh.add_property_map("f:normals", Vector(0, 0, 0)); + boost::tie(vnormals, created) + = mesh.add_property_map("v:normals", Vector(0, 0, 0)); + + CGAL::Polygon_mesh_processing::compute_normals(mesh, + vnormals, + fnormals, + mesh.points(),//optional + K()); //optional + + std::cout << "Face normals :" << std::endl; + BOOST_FOREACH(face_descriptor fd, faces(mesh)){ + std::cout << fnormals[fd] << std::endl; + } + std::cout << "Normals at vertices :" << std::endl; + BOOST_FOREACH(vertex_descriptor vd, vertices(mesh)){ + std::cout << vnormals[vd] << std::endl; + } return 0; } diff --git a/Polygon_mesh_processing/examples/Polygon_mesh_processing/data/eight.off b/Polygon_mesh_processing/examples/Polygon_mesh_processing/data/eight.off new file mode 100644 index 00000000000..45eca33e155 --- /dev/null +++ b/Polygon_mesh_processing/examples/Polygon_mesh_processing/data/eight.off @@ -0,0 +1,951 @@ +OFF +315 634 0 +-0.142420 0.065177 0.260608 +-0.181989 0.076540 0.271445 +-0.123893 0.066093 0.329939 +-0.122979 0.064590 0.188283 +0.142420 0.065177 -0.260608 +0.181989 0.076540 -0.271445 +0.123893 0.066093 -0.329939 +0.122979 0.064590 -0.188283 +-0.072239 -0.014726 -0.341881 +-0.017838 -0.014627 -0.366416 +-0.039749 0.043670 -0.372418 +-0.099600 -0.066092 -0.359901 +-0.032912 -0.066020 -0.395573 +-0.138410 -0.065466 -0.296287 +-0.135170 -0.077707 -0.393831 +-0.049677 -0.077763 -0.440679 +0.068739 -0.068686 -0.390190 +0.072239 -0.014726 0.341881 +0.017838 -0.014627 0.366416 +0.039749 0.043670 0.372418 +0.099600 -0.066092 0.359901 +0.032912 -0.066020 0.395573 +0.138410 -0.065466 0.296287 +0.135170 -0.077707 0.393831 +0.049677 -0.077763 0.440679 +-0.068739 -0.068686 0.390190 +-0.045055 -0.055361 -0.476864 +-0.037186 -0.014824 -0.499314 +0.051296 -0.044322 -0.483565 +-0.126475 -0.014757 -0.465447 +0.150198 0.055570 -0.424934 +0.060284 0.068494 -0.459204 +0.135079 0.077725 -0.392823 +0.045055 -0.055361 0.476864 +0.037186 -0.014824 0.499314 +-0.051296 -0.044322 0.483565 +0.126475 -0.014757 0.465447 +-0.150198 0.055570 0.424934 +-0.060284 0.068494 0.459204 +-0.135079 0.077725 0.392823 +0.188724 0.013117 0.082286 +0.233576 0.010949 0.199004 +0.215392 -0.043248 0.185690 +0.156431 0.043450 0.020495 +0.171897 0.000092 0.002021 +0.162866 0.035579 -0.035095 +-0.188724 0.013117 -0.082286 +-0.233576 0.010949 -0.199004 +-0.215392 -0.043248 -0.185690 +-0.156431 0.043450 -0.020495 +-0.171897 0.000092 -0.002021 +-0.162866 0.035579 0.035095 +-0.067313 0.014873 0.490898 +0.021715 0.044742 0.489868 +-0.126516 0.014972 0.465443 +-0.214720 0.015203 0.374161 +-0.176897 0.015193 0.425242 +-0.236797 0.015313 0.316273 +-0.193127 0.066315 0.349240 +-0.208420 0.067939 0.286047 +-0.229263 0.043816 0.250443 +-0.214658 0.043635 0.184550 +-0.130377 0.078643 0.137373 +0.067313 0.014873 -0.490898 +-0.021715 0.044742 -0.489868 +0.126516 0.014972 -0.465443 +0.214720 0.015203 -0.374161 +0.176897 0.015193 -0.425242 +0.236797 0.015313 -0.316273 +0.193127 0.066315 -0.349240 +0.208420 0.067939 -0.286047 +0.229263 0.043816 -0.250443 +0.214658 0.043635 -0.184550 +0.181744 -0.076895 -0.225204 +0.141494 -0.076729 -0.390420 +0.212561 -0.067863 -0.284234 +0.199134 -0.043974 -0.379903 +0.224567 -0.043744 -0.324583 +0.233145 -0.014538 -0.201222 +0.242955 -0.014647 -0.261574 +0.156545 -0.043448 -0.017204 +0.163391 -0.035324 0.038619 +0.188528 0.001833 -0.078150 +0.194436 -0.025458 -0.109043 +-0.181744 -0.076895 0.225204 +-0.141494 -0.076729 0.390420 +-0.212561 -0.067863 0.284234 +-0.199134 -0.043974 0.379903 +-0.224567 -0.043744 0.324583 +-0.233145 -0.014538 0.201222 +-0.242955 -0.014647 0.261574 +-0.156545 -0.043448 0.017204 +-0.163391 -0.035324 -0.038619 +-0.188528 0.001833 0.078150 +-0.194436 -0.025458 0.109043 +-0.006718 -0.041711 -0.133416 +0.069747 -0.071193 -0.115051 +-0.039011 -0.076564 -0.103399 +0.192968 -0.066144 0.349289 +0.149444 -0.055219 0.425539 +0.068472 0.068833 0.390202 +0.091510 0.028661 0.330536 +0.106919 -0.017598 0.296052 +0.122356 -0.042525 0.244251 +0.109380 -0.041514 0.199886 +0.148483 -0.069250 0.225265 +0.111048 -0.071410 0.151511 +0.198237 0.068094 0.337988 +0.182439 0.044243 0.406197 +0.236321 0.014962 0.322550 +0.214756 -0.014995 0.374311 +0.176985 -0.015124 0.425130 +0.243695 0.014726 0.262496 +0.227091 -0.043871 0.308431 +0.229584 -0.043650 0.250875 +0.177985 -0.075834 0.246262 +0.201340 -0.070830 0.270330 +-0.198237 0.068094 -0.337988 +-0.182439 0.044243 -0.406197 +-0.236321 0.014962 -0.322550 +-0.243695 0.014726 -0.262496 +-0.215975 0.054756 -0.201749 +-0.216058 0.065555 -0.270604 +-0.130747 0.073971 -0.079098 +-0.154051 0.054750 -0.064135 +-0.068472 0.068833 -0.390202 +-0.091510 0.028661 -0.330536 +-0.106919 -0.017598 -0.296052 +-0.122356 -0.042525 -0.244251 +-0.109380 -0.041514 -0.199886 +-0.148483 -0.069250 -0.225265 +-0.117365 0.029066 -0.274731 +-0.112650 0.000764 -0.268704 +-0.112501 0.029427 -0.214335 +-0.104553 0.001720 -0.211251 +-0.119854 0.054039 -0.314476 +-0.139580 0.071459 -0.324689 +-0.137664 0.077821 -0.381521 +-0.134682 0.054062 -0.246484 +-0.157216 0.071046 -0.245232 +-0.072145 -0.052976 -0.145240 +-0.067260 -0.026653 -0.159535 +-0.016679 0.000263 -0.144728 +-0.069480 0.001467 -0.166527 +-0.078129 0.028679 -0.165774 +-0.055533 0.043972 -0.142594 +-0.114030 0.053191 -0.183583 +-0.132300 0.070511 -0.172194 +-0.066408 0.072769 -0.112665 +-0.182880 0.077035 -0.246568 +-0.198380 0.070615 -0.206609 +-0.109991 0.043758 -0.462619 +-0.086940 0.072150 -0.443723 +-0.192968 -0.066144 -0.349289 +-0.149444 -0.055219 -0.425539 +-0.214756 -0.014995 -0.374311 +-0.176985 -0.015124 -0.425130 +-0.227091 -0.043871 -0.308431 +-0.229584 -0.043650 -0.250875 +-0.177985 -0.075834 -0.246262 +-0.201340 -0.070830 -0.270330 +0.215975 0.054756 0.201749 +0.216058 0.065555 0.270604 +0.130747 0.073971 0.079098 +0.154051 0.054750 0.064135 +0.117365 0.029066 0.274731 +0.112650 0.000764 0.268704 +0.112501 0.029427 0.214335 +0.104553 0.001720 0.211251 +0.119854 0.054039 0.314476 +0.139580 0.071459 0.324689 +0.137664 0.077821 0.381521 +0.134682 0.054062 0.246484 +0.157216 0.071046 0.245232 +0.072145 -0.052976 0.145240 +0.067260 -0.026653 0.159535 +0.016679 0.000263 0.144728 +0.069480 0.001467 0.166527 +0.078129 0.028679 0.165774 +0.055533 0.043972 0.142594 +0.114030 0.053191 0.183583 +0.132300 0.070511 0.172194 +0.066408 0.072769 0.112665 +0.182880 0.077035 0.246568 +0.198380 0.070615 0.206609 +0.109991 0.043758 0.462619 +0.086940 0.072150 0.443723 +-0.143990 0.064253 0.061311 +-0.162481 0.072128 0.141000 +-0.070836 0.053288 0.144711 +-0.103935 0.027092 0.203309 +-0.064337 0.027059 0.158590 +-0.085285 0.072778 0.126957 +0.130377 0.078643 -0.137373 +0.143990 0.064253 -0.061311 +0.162481 0.072128 -0.141000 +0.033931 -0.102736 0.021128 +-0.013620 -0.092970 0.067033 +-0.017420 -0.103765 0.019514 +0.144430 -0.063958 0.063078 +0.164735 -0.071550 0.145631 +0.039842 -0.043515 -0.372455 +0.043745 0.000113 -0.358932 +0.098774 0.028764 -0.320716 +0.011679 0.044474 -0.377875 +0.056461 0.043910 -0.365659 +0.016926 0.077778 -0.437286 +0.051474 0.071274 -0.403438 +-0.144430 -0.063958 -0.063078 +-0.164735 -0.071550 -0.145631 +-0.039842 -0.043515 0.372455 +-0.043745 0.000113 0.358932 +-0.098774 0.028764 0.320716 +-0.011679 0.044474 0.377875 +-0.056461 0.043910 0.365659 +-0.016926 0.077778 0.437286 +-0.051474 0.071274 0.403438 +0.089422 0.084836 0.087783 +0.148983 0.077301 0.155338 +-0.089422 0.084836 -0.087783 +-0.148983 0.077301 -0.155338 +0.155013 -0.054050 -0.062498 +0.098521 -0.088093 0.058144 +0.109518 -0.080499 -0.003782 +0.135082 -0.071895 -0.082591 +-0.040608 -0.001091 0.151679 +-0.006474 0.027369 0.138989 +-0.117240 0.027902 0.263865 +-0.111172 -0.000862 0.238784 +-0.108034 -0.015290 0.286318 +-0.118081 -0.028990 0.243559 +-0.096603 -0.029218 0.187188 +-0.087620 -0.001514 0.185718 +-0.049084 -0.028336 0.148599 +0.006940 -0.053514 0.124233 +0.009912 -0.027355 0.139023 +-0.059559 -0.052588 0.136104 +-0.069747 -0.071193 0.115051 +0.010884 -0.076074 0.101284 +0.064208 -0.075195 0.115066 +0.131198 -0.078763 0.139298 +0.078259 -0.088505 0.085363 +-0.155013 -0.054050 0.062498 +-0.056726 -0.095471 -0.060074 +-0.131198 -0.078763 -0.139298 +-0.111048 -0.071410 -0.151511 +-0.098521 -0.088093 -0.058144 +-0.109518 -0.080499 0.003782 +-0.135082 -0.071895 0.082591 +0.103906 0.085665 -0.069889 +0.108709 0.081251 -0.005000 +0.034442 0.102371 0.021265 +0.075963 0.094600 0.013042 +0.013471 0.103828 -0.022416 +-0.027796 0.100485 0.037640 +-0.103906 0.085665 0.069889 +-0.108709 0.081251 0.005000 +-0.034442 0.102371 -0.021265 +-0.075963 0.094600 -0.013042 +0.040608 -0.001091 -0.151679 +0.006474 0.027369 -0.138989 +0.064337 0.027059 -0.158590 +0.117240 0.027902 -0.263865 +0.103935 0.027092 -0.203309 +0.111172 -0.000862 -0.238784 +0.108034 -0.015290 -0.286318 +0.118081 -0.028990 -0.243559 +0.096603 -0.029218 -0.187188 +0.087620 -0.001514 -0.185718 +0.159791 -0.044092 -0.427265 +0.110272 -0.043635 -0.462468 +0.061774 -0.071645 -0.450800 +0.078724 -0.077581 -0.420633 +0.091129 0.000205 -0.322400 +0.091584 -0.028435 -0.330507 +0.139783 -0.071270 -0.324585 +0.119941 -0.053753 -0.314439 +0.134093 -0.053827 -0.246057 +0.156632 -0.071069 -0.245245 +0.059559 -0.052588 -0.136104 +0.049084 -0.028336 -0.148599 +0.112106 -0.053467 -0.182295 +0.130580 -0.070469 -0.170441 +0.214980 -0.054727 -0.199625 +0.197084 -0.070768 -0.204512 +0.013620 -0.092970 -0.067033 +0.024285 -0.100338 -0.035804 +0.107539 -0.079004 -0.102761 +0.084682 -0.089243 -0.045045 +-0.159791 -0.044092 0.427265 +-0.110272 -0.043635 0.462468 +-0.061774 -0.071645 0.450800 +-0.078724 -0.077581 0.420633 +-0.091129 0.000205 0.322400 +-0.091584 -0.028435 0.330507 +-0.139783 -0.071270 0.324585 +-0.119941 -0.053753 0.314439 +-0.134093 -0.053827 0.246057 +-0.156632 -0.071069 0.245245 +-0.112106 -0.053467 0.182295 +-0.130580 -0.070469 0.170441 +-0.214980 -0.054727 0.199625 +-0.197084 -0.070768 0.204512 +-0.107539 -0.079004 0.102761 +-0.084682 -0.089243 0.045045 +-0.006757 0.053977 0.123829 +-0.020415 0.076271 0.101549 +-0.080278 0.085841 0.090316 +-0.000654 0.092672 0.070206 +0.070836 0.053288 -0.144711 +0.085285 0.072778 -0.126957 +0.006757 0.053977 -0.123829 +0.020415 0.076271 -0.101549 +0.000654 0.092672 -0.070206 +0.080278 0.085841 -0.090316 +3 0 1 2 +3 3 1 0 +3 4 5 6 +3 7 5 4 +3 8 9 10 +3 11 12 9 +3 11 9 8 +3 8 13 11 +3 14 15 11 +3 12 15 16 +3 15 12 11 +3 13 14 11 +3 17 18 19 +3 20 21 18 +3 20 18 17 +3 17 22 20 +3 23 24 20 +3 21 24 25 +3 24 21 20 +3 22 23 20 +3 26 27 28 +3 29 27 26 +3 30 31 32 +3 5 32 6 +3 33 34 35 +3 36 34 33 +3 37 38 39 +3 1 39 2 +3 40 41 42 +3 43 44 45 +3 40 44 43 +3 46 47 48 +3 49 50 51 +3 46 50 49 +3 34 52 35 +3 52 34 53 +3 52 53 38 +3 54 52 38 +3 37 54 38 +3 37 55 56 +3 37 56 54 +3 57 58 59 +3 58 1 59 +3 58 57 55 +3 58 55 37 +3 39 58 37 +3 39 1 58 +3 60 59 61 +3 60 57 59 +3 62 1 3 +3 27 63 28 +3 63 27 64 +3 63 64 31 +3 65 63 31 +3 30 65 31 +3 30 66 67 +3 30 67 65 +3 68 69 70 +3 69 5 70 +3 69 68 66 +3 69 66 30 +3 32 69 30 +3 32 5 69 +3 71 70 72 +3 71 68 70 +3 73 74 75 +3 75 76 77 +3 76 75 74 +3 76 66 77 +3 67 66 76 +3 66 68 77 +3 78 79 71 +3 72 78 71 +3 75 77 79 +3 77 68 79 +3 79 68 71 +3 80 44 81 +3 44 40 81 +3 81 40 42 +3 78 82 83 +3 82 78 72 +3 45 82 72 +3 44 82 45 +3 83 82 80 +3 82 44 80 +3 84 85 86 +3 86 87 88 +3 87 86 85 +3 87 55 88 +3 56 55 87 +3 55 57 88 +3 89 90 60 +3 61 89 60 +3 86 88 90 +3 88 57 90 +3 90 57 60 +3 91 50 92 +3 50 46 92 +3 92 46 48 +3 89 93 94 +3 93 89 61 +3 51 93 61 +3 50 93 51 +3 94 93 91 +3 93 50 91 +3 95 96 97 +3 23 98 99 +3 99 36 33 +3 99 33 24 +3 99 24 23 +3 19 100 101 +3 102 17 101 +3 101 17 19 +3 22 17 102 +3 103 104 105 +3 103 105 22 +3 103 22 102 +3 104 106 105 +3 107 108 109 +3 99 110 111 +3 99 111 36 +3 98 110 99 +3 111 110 108 +3 36 111 108 +3 108 110 109 +3 112 113 114 +3 112 109 113 +3 113 109 110 +3 98 113 110 +3 42 41 114 +3 41 112 114 +3 115 23 22 +3 115 22 105 +3 114 116 42 +3 114 113 116 +3 113 98 116 +3 23 115 116 +3 98 23 116 +3 117 118 119 +3 120 47 121 +3 121 47 46 +3 122 117 119 +3 122 120 121 +3 122 119 120 +3 123 121 124 +3 121 46 124 +3 124 46 49 +3 10 125 126 +3 127 8 126 +3 126 8 10 +3 13 8 127 +3 128 129 130 +3 128 130 13 +3 128 13 127 +3 131 132 126 +3 132 129 128 +3 127 132 128 +3 132 127 126 +3 133 134 131 +3 132 134 129 +3 134 132 131 +3 135 131 126 +3 135 125 136 +3 125 137 136 +3 135 126 125 +3 138 136 139 +3 138 133 131 +3 138 131 135 +3 138 135 136 +3 136 137 139 +3 140 141 95 +3 140 95 97 +3 140 129 141 +3 129 134 141 +3 142 143 144 +3 144 143 133 +3 143 142 95 +3 143 95 141 +3 134 143 141 +3 143 134 133 +3 145 142 144 +3 146 139 147 +3 145 146 147 +3 145 147 148 +3 145 144 146 +3 146 144 133 +3 146 133 138 +3 139 146 138 +3 139 149 147 +3 137 149 139 +3 149 137 117 +3 149 117 122 +3 150 149 122 +3 122 121 150 +3 121 123 150 +3 64 27 151 +3 27 29 151 +3 151 118 152 +3 29 118 151 +3 118 117 152 +3 117 137 152 +3 151 152 64 +3 64 152 31 +3 14 153 154 +3 154 29 26 +3 154 26 15 +3 154 15 14 +3 154 155 156 +3 154 156 29 +3 153 155 154 +3 156 155 118 +3 29 156 118 +3 118 155 119 +3 120 157 158 +3 48 47 158 +3 47 120 158 +3 120 119 157 +3 157 119 155 +3 153 157 155 +3 159 14 13 +3 159 13 130 +3 158 160 48 +3 158 157 160 +3 157 153 160 +3 14 159 160 +3 153 14 160 +3 112 41 161 +3 161 41 40 +3 162 107 109 +3 162 112 161 +3 162 109 112 +3 163 161 164 +3 161 40 164 +3 164 40 43 +3 165 166 101 +3 166 104 103 +3 102 166 103 +3 166 102 101 +3 167 168 165 +3 166 168 104 +3 168 166 165 +3 169 165 101 +3 169 100 170 +3 100 171 170 +3 169 101 100 +3 172 170 173 +3 172 167 165 +3 172 165 169 +3 172 169 170 +3 170 171 173 +3 174 104 175 +3 106 104 174 +3 104 168 175 +3 176 177 178 +3 178 177 167 +3 168 177 175 +3 177 168 167 +3 179 176 178 +3 180 173 181 +3 179 180 181 +3 179 181 182 +3 179 178 180 +3 180 178 167 +3 180 167 172 +3 173 180 172 +3 173 183 181 +3 171 183 173 +3 183 171 107 +3 183 107 162 +3 184 183 162 +3 162 161 184 +3 161 163 184 +3 53 34 185 +3 34 36 185 +3 185 108 186 +3 36 108 185 +3 108 107 186 +3 107 171 186 +3 185 186 53 +3 53 186 38 +3 187 49 51 +3 61 188 187 +3 51 61 187 +3 59 188 61 +3 1 188 59 +3 1 62 188 +3 189 190 191 +3 192 3 189 +3 3 190 189 +3 192 62 3 +3 193 5 7 +3 194 43 45 +3 72 195 194 +3 45 72 194 +3 70 195 72 +3 5 195 70 +3 5 193 195 +3 196 197 198 +3 199 80 81 +3 42 200 199 +3 81 42 199 +3 116 200 42 +3 115 200 116 +3 201 202 9 +3 12 201 9 +3 201 12 16 +3 6 203 4 +3 204 9 205 +3 10 9 204 +3 9 202 205 +3 202 203 205 +3 205 203 6 +3 32 206 207 +3 31 206 32 +3 152 206 31 +3 137 206 152 +3 207 206 125 +3 206 137 125 +3 10 207 125 +3 204 207 10 +3 207 204 205 +3 205 6 207 +3 6 32 207 +3 208 91 92 +3 48 209 208 +3 92 48 208 +3 160 209 48 +3 159 209 160 +3 210 211 18 +3 21 210 18 +3 210 21 25 +3 2 212 0 +3 213 18 214 +3 19 18 213 +3 18 211 214 +3 211 212 214 +3 214 212 2 +3 39 215 216 +3 38 215 39 +3 186 215 38 +3 171 215 186 +3 216 215 100 +3 215 171 100 +3 19 216 100 +3 213 216 19 +3 216 213 214 +3 214 2 216 +3 2 39 216 +3 217 218 163 +3 218 217 182 +3 181 218 182 +3 183 218 181 +3 218 183 184 +3 163 218 184 +3 219 220 123 +3 220 219 148 +3 147 220 148 +3 149 220 147 +3 220 149 150 +3 123 220 150 +3 221 83 80 +3 199 222 223 +3 224 221 223 +3 223 221 80 +3 199 223 80 +3 199 200 222 +3 225 226 191 +3 225 176 226 +3 226 176 179 +3 227 190 3 +3 0 227 3 +3 0 212 227 +3 228 190 227 +3 228 229 230 +3 229 228 227 +3 231 232 230 +3 225 232 231 +3 232 225 191 +3 190 232 191 +3 228 232 190 +3 232 228 230 +3 176 225 233 +3 225 231 233 +3 234 235 236 +3 237 234 236 +3 175 235 234 +3 174 175 234 +3 177 235 175 +3 177 176 235 +3 235 176 233 +3 236 235 233 +3 234 237 238 +3 238 197 239 +3 237 197 238 +3 174 238 239 +3 174 234 238 +3 239 106 174 +3 240 241 222 +3 200 240 222 +3 115 240 200 +3 240 115 105 +3 241 240 106 +3 106 240 105 +3 241 106 239 +3 197 241 239 +3 241 197 196 +3 222 241 196 +3 242 94 91 +3 243 244 245 +3 245 244 130 +3 159 244 209 +3 244 159 130 +3 129 245 130 +3 245 129 140 +3 97 245 140 +3 243 245 97 +3 208 246 247 +3 248 242 247 +3 247 242 91 +3 208 247 91 +3 208 209 246 +3 209 244 246 +3 244 243 246 +3 198 246 243 +3 194 249 250 +3 163 164 250 +3 250 164 43 +3 194 250 43 +3 194 195 249 +3 195 193 249 +3 251 217 252 +3 217 163 252 +3 252 163 250 +3 249 252 250 +3 252 253 251 +3 252 249 253 +3 251 253 254 +3 187 255 256 +3 123 124 256 +3 256 124 49 +3 187 256 49 +3 187 188 255 +3 188 62 255 +3 257 219 258 +3 258 254 257 +3 219 123 258 +3 258 123 256 +3 255 258 256 +3 258 255 254 +3 254 253 257 +3 259 260 261 +3 259 142 260 +3 260 142 145 +3 262 263 7 +3 4 262 7 +3 4 203 262 +3 264 263 262 +3 264 265 266 +3 265 264 262 +3 267 268 266 +3 259 268 267 +3 268 259 261 +3 263 268 261 +3 264 268 263 +3 268 264 266 +3 65 269 270 +3 28 63 270 +3 63 65 270 +3 65 67 269 +3 269 67 76 +3 270 269 74 +3 76 74 269 +3 271 26 28 +3 270 271 28 +3 74 272 271 +3 270 74 271 +3 271 272 15 +3 26 271 15 +3 15 272 16 +3 265 273 274 +3 273 265 262 +3 203 273 262 +3 202 273 203 +3 274 273 201 +3 201 16 274 +3 273 202 201 +3 272 74 275 +3 266 265 276 +3 276 265 274 +3 276 16 275 +3 16 272 275 +3 276 274 16 +3 277 275 278 +3 277 267 266 +3 277 266 276 +3 277 276 275 +3 275 74 278 +3 74 73 278 +3 279 95 280 +3 96 95 279 +3 95 142 280 +3 142 259 280 +3 259 267 280 +3 281 278 282 +3 278 73 282 +3 279 281 282 +3 279 282 96 +3 279 280 281 +3 280 267 281 +3 281 267 277 +3 278 281 277 +3 75 283 284 +3 284 73 75 +3 75 79 283 +3 79 78 283 +3 283 78 83 +3 283 224 284 +3 283 83 221 +3 224 283 221 +3 243 285 286 +3 198 286 196 +3 198 243 286 +3 285 243 97 +3 96 285 97 +3 287 224 288 +3 282 287 96 +3 73 287 282 +3 287 73 284 +3 224 287 284 +3 288 224 223 +3 222 288 223 +3 288 222 196 +3 286 288 196 +3 287 288 285 +3 287 285 96 +3 285 288 286 +3 54 289 290 +3 35 52 290 +3 52 54 290 +3 54 56 289 +3 289 56 87 +3 290 289 85 +3 87 85 289 +3 291 33 35 +3 290 291 35 +3 85 292 291 +3 290 85 291 +3 291 292 24 +3 33 291 24 +3 24 292 25 +3 229 293 294 +3 293 229 227 +3 212 293 227 +3 211 293 212 +3 294 293 210 +3 210 25 294 +3 293 211 210 +3 292 85 295 +3 230 229 296 +3 296 229 294 +3 296 25 295 +3 25 292 295 +3 296 294 25 +3 297 295 298 +3 297 231 230 +3 297 230 296 +3 297 296 295 +3 295 85 298 +3 85 84 298 +3 299 298 300 +3 298 84 300 +3 236 299 300 +3 236 300 237 +3 236 233 299 +3 233 231 299 +3 299 231 297 +3 298 299 297 +3 86 301 302 +3 302 84 86 +3 86 90 301 +3 90 89 301 +3 301 89 94 +3 301 248 302 +3 301 94 242 +3 248 301 242 +3 303 248 304 +3 303 304 197 +3 303 197 237 +3 300 303 237 +3 84 303 300 +3 303 84 302 +3 248 303 302 +3 304 248 247 +3 246 304 247 +3 304 246 198 +3 197 304 198 +3 305 182 306 +3 189 305 306 +3 189 306 192 +3 189 191 305 +3 191 226 305 +3 305 226 179 +3 182 305 179 +3 307 308 254 +3 308 307 306 +3 255 307 254 +3 62 307 255 +3 307 62 192 +3 306 307 192 +3 182 308 306 +3 217 308 182 +3 217 251 308 +3 308 251 254 +3 309 263 261 +3 310 7 309 +3 7 263 309 +3 310 193 7 +3 311 148 312 +3 309 311 312 +3 309 312 310 +3 309 261 311 +3 261 260 311 +3 311 260 145 +3 148 311 145 +3 313 314 312 +3 193 314 249 +3 314 193 310 +3 312 314 310 +3 148 313 312 +3 219 313 148 +3 219 257 313 +3 314 313 253 +3 249 314 253 +3 313 257 253