From f9329cb84d06a695d5dbdaa61eb6d770e3df84a7 Mon Sep 17 00:00:00 2001 From: Benjamin Kraft Date: Mon, 30 Sep 2024 12:38:23 +0200 Subject: [PATCH] compliance --- include/constraints.hpp | 3 + include/soft_body.hpp | 4 +- models/icosphere.ply | 2024 +++++++++++++++++++++++++++++++++++++++ shaders/pbd.comp | 71 +- src/constraints.cpp | 6 +- src/simulation.cpp | 16 +- src/soft_body.cpp | 59 +- 7 files changed, 2135 insertions(+), 48 deletions(-) create mode 100644 models/icosphere.ply diff --git a/include/constraints.hpp b/include/constraints.hpp index 58dcc47..8826082 100644 --- a/include/constraints.hpp +++ b/include/constraints.hpp @@ -10,6 +10,7 @@ struct Edge { uint32_t a; uint32_t b; float length; + float compliance; }; struct Face { @@ -20,6 +21,7 @@ struct Face { struct Triangle : Face { float area; + float compliance; }; struct Tetrahedron { @@ -28,6 +30,7 @@ struct Tetrahedron { uint32_t c; uint32_t d; float volume; + float compliance; }; struct ConstraintData { diff --git a/include/soft_body.hpp b/include/soft_body.hpp index 8e78534..72dbefd 100644 --- a/include/soft_body.hpp +++ b/include/soft_body.hpp @@ -20,12 +20,10 @@ class Mesh; class SoftBody { public: - explicit SoftBody(Mesh* mesh, float compliance); + explicit SoftBody(Mesh* mesh, float edgeCompliance, float triangleCompliance=0, float tetrahedronCompliance=0); uint32_t firstIndex = 0; int32_t vertexOffset = 0; - float compliance; - vector vertices; vector faces; ConstraintData constraintData; diff --git a/models/icosphere.ply b/models/icosphere.ply new file mode 100644 index 0000000..2ed1173 --- /dev/null +++ b/models/icosphere.ply @@ -0,0 +1,2024 @@ +ply +format ascii 1.0 +comment Created by Blender 3.0.1 - www.blender.org +element vertex 729 +property float x +property float y +property float z +property float nx +property float ny +property float nz +property float s +property float t +element face 1280 +property list uchar uint vertex_indices +end_header +0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.181819 0.000000 +-0.096471 -0.992865 -0.070089 -0.098697 -0.992523 -0.071718 0.193183 0.019683 +0.036848 -0.992865 -0.113408 0.037690 -0.992523 -0.116031 0.170455 0.019683 +-0.723607 -0.447220 -0.525725 -0.723594 -0.447218 -0.525712 0.272728 0.157461 +-0.675300 -0.550685 -0.490628 -0.674032 -0.552995 -0.489700 0.284092 0.137778 +-0.771771 -0.476987 -0.420539 -0.772759 -0.477584 -0.417982 0.295455 0.157461 +0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.909091 0.000000 +0.036848 -0.992865 -0.113408 0.037690 -0.992523 -0.116031 0.920455 0.019683 +0.119245 -0.992865 0.000000 0.122013 -0.992523 0.000000 0.897727 0.019683 +0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.727273 0.000000 +0.119245 -0.992865 0.000000 0.122013 -0.992523 0.000000 0.738637 0.019683 +0.036848 -0.992865 0.113408 0.037690 -0.992523 0.116031 0.715909 0.019683 +0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.545455 0.000000 +0.036848 -0.992865 0.113408 0.037690 -0.992523 0.116031 0.556819 0.019683 +-0.096471 -0.992865 0.070089 -0.098697 -0.992523 0.071718 0.534091 0.019683 +-0.794547 -0.357741 -0.490629 -0.796075 -0.355571 -0.489700 0.284092 0.177143 +0.276388 -0.447220 -0.850649 0.276376 -0.447218 -0.850642 0.090910 0.157461 +0.161465 -0.476988 -0.863951 0.158727 -0.477584 -0.864101 0.113637 0.157461 +0.221089 -0.357741 -0.907271 0.219733 -0.355571 -0.908444 0.102274 0.177143 +0.894426 -0.447216 0.000000 0.894406 -0.447188 0.000000 0.818182 0.157461 +0.871565 -0.476984 -0.113408 0.870876 -0.477584 -0.116031 0.840909 0.157461 +0.931188 -0.357738 -0.070089 0.931883 -0.355571 -0.071718 0.829546 0.177143 +0.276388 -0.447220 0.850649 0.276376 -0.447218 0.850642 0.636364 0.157461 +0.377183 -0.476988 0.793861 0.379467 -0.477584 0.792383 0.659091 0.157461 +0.354409 -0.357742 0.863953 0.356182 -0.355571 0.864101 0.647728 0.177143 +-0.723607 -0.447220 0.525725 -0.723594 -0.447218 0.525712 0.454546 0.157461 +-0.638453 -0.476987 0.604038 -0.636311 -0.477584 0.605762 0.477273 0.157461 +-0.712150 -0.357741 0.604039 -0.711753 -0.355571 0.605762 0.465910 0.177143 +-0.712150 -0.357741 -0.604039 -0.711753 -0.355571 -0.605762 0.261364 0.177143 +0.354409 -0.357742 -0.863953 0.356182 -0.355571 -0.864101 0.079546 0.177143 +0.931188 -0.357738 0.070089 0.931883 -0.355571 0.071718 0.806818 0.177143 +0.221089 -0.357741 0.907271 0.219733 -0.355571 0.908444 0.625000 0.177143 +-0.794547 -0.357741 0.490629 -0.796075 -0.355571 0.489700 0.443182 0.177143 +-0.276388 0.447220 -0.850649 -0.276376 0.447218 -0.850642 0.181819 0.314921 +-0.377183 0.476988 -0.793861 -0.379467 0.477584 -0.792383 0.204546 0.314921 +-0.257937 0.550685 -0.793860 -0.257454 0.552995 -0.792383 0.193183 0.334604 +0.723607 0.447220 -0.525725 0.723594 0.447218 -0.525712 0.000000 0.314921 +0.638453 0.476987 -0.604038 0.636311 0.477584 -0.605762 0.022727 0.314921 +0.675300 0.550685 -0.490628 0.674032 0.552995 -0.489700 0.011364 0.334604 +0.723607 0.447220 0.525725 0.723594 0.447218 0.525712 0.727273 0.314921 +0.771771 0.476987 0.420539 0.772759 0.477584 0.417982 0.750000 0.314921 +0.675300 0.550685 0.490628 0.674032 0.552995 0.489700 0.738637 0.334604 +-0.276388 0.447220 0.850649 -0.276376 0.447218 0.850642 0.545455 0.314921 +-0.161465 0.476988 0.863951 -0.158727 0.477584 0.864101 0.568182 0.314921 +-0.257937 0.550685 0.793860 -0.257454 0.552995 0.792383 0.556819 0.334604 +-0.894426 0.447216 0.000000 -0.894406 0.447188 0.000000 0.363637 0.314921 +-0.871565 0.476984 0.113408 -0.870876 0.477584 0.116031 0.386364 0.314921 +-0.834716 0.550681 0.000000 -0.833155 0.552995 0.000000 0.375001 0.334604 +-0.119245 0.992865 0.000000 -0.122013 0.992523 0.000000 0.443182 0.452699 +-0.036848 0.992865 0.113408 -0.037690 0.992523 0.116031 0.465910 0.452699 +0.000000 1.000000 0.000000 0.000000 1.000000 0.000000 0.454546 0.472382 +-0.251147 0.967949 0.000000 -0.253182 0.967406 0.000000 0.431819 0.433017 +-0.166198 0.978672 0.120749 -0.169744 0.977722 0.123325 0.454546 0.433017 +-0.389673 0.920953 0.000000 -0.390728 0.920499 0.000000 0.420455 0.413334 +-0.307167 0.943208 0.126518 -0.309488 0.942045 0.129276 0.443182 0.413334 +-0.525730 0.850652 0.000000 -0.525712 0.850642 0.000000 0.409092 0.393652 +-0.451375 0.882854 0.129731 -0.452010 0.882077 0.132572 0.431819 0.393652 +-0.649456 0.760399 0.000000 -0.648549 0.761132 0.000000 0.397728 0.373969 +-0.587783 0.798549 0.129731 -0.586779 0.798791 0.132572 0.420455 0.373969 +-0.753442 0.657515 0.000000 -0.752037 0.659108 0.000000 0.386364 0.354286 +-0.706258 0.696558 0.126519 -0.704184 0.698111 0.129276 0.409091 0.354286 +-0.801022 0.586331 0.120750 -0.798578 0.589068 0.123325 0.397728 0.334604 +-0.077607 0.967950 0.238853 -0.078219 0.967406 0.240791 0.477273 0.433017 +-0.215245 0.943209 0.253036 -0.218574 0.942045 0.254402 0.465910 0.413334 +-0.120413 0.920955 0.370598 -0.120731 0.920499 0.371593 0.488637 0.413334 +-0.361800 0.894429 0.262863 -0.363506 0.893338 0.264107 0.454546 0.393652 +-0.262862 0.882855 0.389192 -0.265755 0.882077 0.388928 0.477273 0.393652 +-0.162456 0.850654 0.499995 -0.162450 0.850642 0.499985 0.500000 0.393652 +-0.506729 0.819912 0.266403 -0.506546 0.819605 0.267586 0.443182 0.373969 +-0.409951 0.819913 0.399604 -0.411023 0.819605 0.399060 0.465910 0.373969 +-0.305014 0.798552 0.518924 -0.307413 0.798791 0.517106 0.488637 0.373969 +-0.200688 0.760403 0.617666 -0.200415 0.761132 0.616810 0.511364 0.373969 +-0.638194 0.723610 0.262864 -0.636433 0.724662 0.264107 0.431819 0.354286 +-0.550008 0.733353 0.399605 -0.549242 0.734184 0.399060 0.454546 0.354286 +-0.447209 0.723612 0.525728 -0.447859 0.724662 0.523667 0.477273 0.354286 +-0.338569 0.696561 0.632593 -0.340526 0.698141 0.629749 0.500000 0.354286 +-0.232822 0.657519 0.716563 -0.232368 0.659108 0.715201 0.522728 0.354286 +-0.747366 0.614342 0.253038 -0.744835 0.616810 0.254402 0.420455 0.334604 +-0.672087 0.629942 0.389194 -0.670095 0.632191 0.388928 0.443182 0.334604 +-0.577830 0.629943 0.518926 -0.576952 0.632191 0.517106 0.465910 0.334604 +-0.471599 0.614344 0.632594 -0.472121 0.616810 0.629780 0.488637 0.334604 +-0.362366 0.586334 0.724502 -0.364055 0.589099 0.721366 0.511364 0.334604 +-0.257937 0.550685 0.793860 -0.257454 0.552995 0.792383 0.534091 0.334604 +-0.831051 0.502299 0.238853 -0.830256 0.502609 0.240791 0.409091 0.314921 +-0.769872 0.519570 0.370600 -0.769311 0.519639 0.371593 0.431819 0.314921 +-0.688189 0.525736 0.499997 -0.688162 0.525712 0.499985 0.454546 0.314921 +-0.590366 0.519572 0.617668 -0.591144 0.519639 0.616810 0.477273 0.314921 +-0.483971 0.502302 0.716565 -0.485580 0.502609 0.715201 0.500000 0.314921 +-0.377183 0.476988 0.793861 -0.379467 0.477584 0.792383 0.522728 0.314921 +-0.036848 0.992865 0.113408 -0.037690 0.992523 0.116031 0.625000 0.452699 +0.096471 0.992865 0.070089 0.098697 0.992523 0.071718 0.647728 0.452699 +0.000000 1.000000 0.000000 0.000000 1.000000 0.000000 0.636364 0.472382 +-0.077607 0.967950 0.238853 -0.078219 0.967406 0.240791 0.613637 0.433017 +0.063483 0.978672 0.195376 0.064821 0.977722 0.199561 0.636364 0.433017 +-0.120413 0.920955 0.370598 -0.120731 0.920499 0.371593 0.602273 0.413334 +0.025408 0.943209 0.331227 0.027284 0.942045 0.334300 0.625000 0.413334 +-0.162456 0.850654 0.499995 -0.162450 0.850642 0.499985 0.590910 0.393652 +-0.016098 0.882855 0.469369 -0.013581 0.882077 0.470870 0.613637 0.393652 +-0.200688 0.760403 0.617666 -0.200415 0.761132 0.616810 0.579546 0.373969 +-0.058250 0.798552 0.599101 -0.055208 0.798791 0.599048 0.602273 0.373969 +-0.232822 0.657519 0.716563 -0.232368 0.659108 0.715201 0.568182 0.354286 +-0.097915 0.696561 0.710785 -0.094638 0.698141 0.709647 0.590909 0.354286 +-0.132684 0.586334 0.799129 -0.129460 0.589099 0.797601 0.579546 0.334604 +0.203181 0.967950 0.147618 0.204840 0.967406 0.148808 0.659091 0.433017 +0.174138 0.943209 0.282901 0.174383 0.942045 0.286477 0.647728 0.413334 +0.315251 0.920955 0.229040 0.316111 0.920499 0.229652 0.670455 0.413334 +0.138197 0.894430 0.425319 0.138829 0.893338 0.427351 0.636364 0.393652 +0.288916 0.882855 0.370262 0.287759 0.882077 0.372936 0.659091 0.393652 +0.425323 0.850654 0.309011 0.425306 0.850642 0.309000 0.681818 0.393652 +0.096779 0.819914 0.564248 0.097964 0.819605 0.564440 0.625000 0.373969 +0.253366 0.819914 0.513369 0.252510 0.819605 0.514237 0.647728 0.373969 +0.399272 0.798552 0.450440 0.396802 0.798791 0.452162 0.670455 0.373969 +0.525420 0.760403 0.381735 0.524705 0.761132 0.381207 0.693182 0.373969 +0.052790 0.723612 0.688185 0.054506 0.724662 0.686911 0.613637 0.354286 +0.210088 0.733355 0.646571 0.209784 0.734184 0.645680 0.636364 0.354286 +0.361804 0.723612 0.587778 0.359661 0.724662 0.587756 0.659091 0.354286 +0.497009 0.696561 0.517479 0.493698 0.698111 0.518479 0.681818 0.354286 +0.609547 0.657519 0.442856 0.608386 0.659108 0.442030 0.704546 0.354286 +0.009708 0.614345 0.788978 0.011780 0.616810 0.786981 0.602273 0.334604 +0.162463 0.629944 0.759458 0.162816 0.632191 0.757469 0.625000 0.334604 +0.314971 0.629944 0.709904 0.313486 0.632191 0.708518 0.647728 0.334604 +0.455902 0.614344 0.643998 0.453047 0.616810 0.643605 0.670455 0.334604 +0.577066 0.586334 0.568513 0.573565 0.589099 0.569170 0.693182 0.334604 +0.675300 0.550685 0.490628 0.674032 0.552995 0.489700 0.715909 0.334604 +-0.029639 0.502302 0.864184 -0.027528 0.502609 0.864040 0.590909 0.314921 +0.114564 0.519572 0.846711 0.115696 0.519639 0.846492 0.613637 0.314921 +0.262869 0.525738 0.809012 0.262856 0.525712 0.808985 0.636364 0.314921 +0.405008 0.519572 0.752338 0.403943 0.519639 0.752831 0.659091 0.314921 +0.531941 0.502302 0.681712 0.530168 0.502609 0.682821 0.681819 0.314921 +0.638452 0.476987 0.604038 0.636311 0.477584 0.605762 0.704546 0.314921 +0.096471 0.992865 0.070089 0.098697 0.992523 0.071718 0.806818 0.452699 +0.096471 0.992865 -0.070089 0.098697 0.992523 -0.071718 0.829546 0.452699 +0.000000 1.000000 0.000000 0.000000 1.000000 0.000000 0.818182 0.472382 +0.203181 0.967950 0.147618 0.204840 0.967406 0.148808 0.795455 0.433017 +0.205432 0.978671 0.000000 0.209815 0.977722 0.000000 0.818182 0.433017 +0.315251 0.920955 0.229040 0.316111 0.920499 0.229652 0.784091 0.413334 +0.322868 0.943208 0.078192 0.326365 0.942045 0.077303 0.806818 0.413334 +0.425323 0.850654 0.309011 0.425306 0.850642 0.309000 0.772727 0.393652 +0.441423 0.882855 0.160354 0.443617 0.882077 0.158422 0.795455 0.393652 +0.525420 0.760403 0.381735 0.524705 0.761132 0.381207 0.761364 0.373969 +0.551779 0.798551 0.240532 0.552660 0.798791 0.237648 0.784091 0.373969 +0.609547 0.657519 0.442856 0.608386 0.659108 0.442030 0.750000 0.354286 +0.645740 0.696561 0.312768 0.645680 0.698111 0.309305 0.772727 0.354286 +0.719015 0.586334 0.373135 0.718558 0.589099 0.369610 0.761364 0.334604 +0.203181 0.967950 -0.147618 0.204840 0.967406 -0.148808 0.840909 0.433017 +0.322868 0.943208 -0.078192 0.326365 0.942045 -0.077303 0.829546 0.413334 +0.315251 0.920955 -0.229040 0.316111 0.920499 -0.229652 0.852273 0.413334 +0.447210 0.894429 -0.000000 0.449324 0.893338 0.000000 0.818182 0.393652 +0.441423 0.882855 -0.160354 0.443617 0.882077 -0.158422 0.840909 0.393652 +0.425323 0.850654 -0.309011 0.425306 0.850642 -0.309000 0.863636 0.393652 +0.566539 0.819912 0.082322 0.567095 0.819605 0.081240 0.806818 0.373969 +0.566539 0.819912 -0.082322 0.567095 0.819605 -0.081240 0.829546 0.373969 +0.551779 0.798551 -0.240532 0.552660 0.798791 -0.237648 0.852273 0.373969 +0.525420 0.760403 -0.381735 0.524705 0.761132 -0.381207 0.875000 0.373969 +0.670817 0.723611 0.162457 0.670125 0.724662 0.160405 0.795455 0.354286 +0.679848 0.733353 -0.000000 0.678915 0.734184 0.000000 0.818182 0.354286 +0.670817 0.723611 -0.162457 0.670125 0.724662 -0.160405 0.840909 0.354286 +0.645740 0.696560 -0.312768 0.645680 0.698111 -0.309305 0.863636 0.354286 +0.609547 0.657519 -0.442856 0.608386 0.659108 -0.442030 0.886364 0.354286 +0.753363 0.614343 0.234576 0.752129 0.616810 0.231971 0.784091 0.334604 +0.772492 0.629942 0.080177 0.770714 0.632191 0.079196 0.806818 0.334604 +0.772492 0.629942 -0.080177 0.770714 0.632191 -0.079196 0.829546 0.334604 +0.753363 0.614343 -0.234576 0.752129 0.616810 -0.231971 0.852273 0.334604 +0.719015 0.586334 -0.373135 0.718558 0.589099 -0.369610 0.875000 0.334604 +0.675300 0.550685 -0.490628 0.674032 0.552995 -0.489700 0.897727 0.334604 +0.812729 0.502301 0.295238 0.813257 0.502609 0.293191 0.772727 0.314921 +0.840673 0.519571 0.152694 0.840815 0.519639 0.151524 0.795455 0.314921 +0.850648 0.525736 0.000000 0.850642 0.525712 0.000000 0.818182 0.314921 +0.840673 0.519571 -0.152694 0.840815 0.519639 -0.151524 0.840909 0.314921 +0.812729 0.502301 -0.295238 0.813257 0.502609 -0.293191 0.863636 0.314921 +0.771771 0.476987 -0.420539 0.772759 0.477584 -0.417982 0.886364 0.314921 +0.723607 0.447220 -0.525725 0.723594 0.447218 -0.525712 0.909091 0.314921 +0.096471 0.992865 -0.070089 0.098697 0.992523 -0.071718 0.079546 0.452699 +-0.036848 0.992865 -0.113408 -0.037690 0.992523 -0.116031 0.102274 0.452699 +0.000000 1.000000 0.000000 0.000000 1.000000 0.000000 0.090910 0.472382 +0.203181 0.967950 -0.147618 0.204840 0.967406 -0.148808 0.068182 0.433017 +0.063483 0.978672 -0.195376 0.064821 0.977722 -0.199561 0.090910 0.433017 +0.315251 0.920955 -0.229040 0.316111 0.920499 -0.229652 0.056819 0.413334 +0.174138 0.943209 -0.282901 0.174383 0.942045 -0.286477 0.079546 0.413334 +0.425323 0.850654 -0.309011 0.425306 0.850642 -0.309000 0.045455 0.393652 +0.288916 0.882855 -0.370262 0.287759 0.882077 -0.372936 0.068182 0.393652 +0.525420 0.760403 -0.381735 0.524705 0.761132 -0.381207 0.034091 0.373969 +0.399272 0.798552 -0.450440 0.396802 0.798791 -0.452162 0.056819 0.373969 +0.609547 0.657519 -0.442856 0.608386 0.659108 -0.442030 0.022727 0.354286 +0.497009 0.696561 -0.517479 0.493698 0.698111 -0.518479 0.045455 0.354286 +0.577066 0.586334 -0.568513 0.573565 0.589099 -0.569170 0.034091 0.334604 +-0.077607 0.967950 -0.238853 -0.078219 0.967406 -0.240791 0.113637 0.433017 +0.025408 0.943209 -0.331227 0.027284 0.942045 -0.334300 0.102274 0.413334 +-0.120413 0.920955 -0.370598 -0.120731 0.920499 -0.371593 0.125001 0.413334 +0.138197 0.894430 -0.425319 0.138829 0.893338 -0.427351 0.090910 0.393652 +-0.016098 0.882855 -0.469369 -0.013581 0.882077 -0.470870 0.113637 0.393652 +-0.162456 0.850654 -0.499995 -0.162450 0.850642 -0.499985 0.136365 0.393652 +0.253366 0.819914 -0.513369 0.252510 0.819605 -0.514237 0.079546 0.373969 +0.096779 0.819914 -0.564248 0.097964 0.819605 -0.564440 0.102273 0.373969 +-0.058250 0.798552 -0.599101 -0.055208 0.798791 -0.599048 0.125001 0.373969 +-0.200688 0.760403 -0.617666 -0.200415 0.761132 -0.616810 0.147728 0.373969 +0.361804 0.723612 -0.587778 0.359661 0.724662 -0.587756 0.068182 0.354286 +0.210088 0.733355 -0.646571 0.209784 0.734184 -0.645680 0.090910 0.354286 +0.052790 0.723612 -0.688185 0.054506 0.724662 -0.686911 0.113637 0.354286 +-0.097915 0.696561 -0.710785 -0.094638 0.698141 -0.709647 0.136364 0.354286 +-0.232822 0.657519 -0.716563 -0.232368 0.659108 -0.715201 0.159092 0.354286 +0.455902 0.614345 -0.643998 0.453047 0.616810 -0.643605 0.056819 0.334604 +0.314971 0.629944 -0.709904 0.313486 0.632191 -0.708518 0.079546 0.334604 +0.162463 0.629944 -0.759458 0.162816 0.632191 -0.757469 0.102273 0.334604 +0.009708 0.614345 -0.788978 0.011780 0.616810 -0.786981 0.125001 0.334604 +-0.132684 0.586335 -0.799129 -0.129460 0.589099 -0.797601 0.147728 0.334604 +-0.257937 0.550685 -0.793860 -0.257454 0.552995 -0.792383 0.170455 0.334604 +0.531941 0.502302 -0.681712 0.530168 0.502609 -0.682821 0.045455 0.314921 +0.405008 0.519572 -0.752338 0.403943 0.519639 -0.752831 0.068182 0.314921 +0.262869 0.525738 -0.809012 0.262856 0.525712 -0.808985 0.090910 0.314921 +0.114564 0.519573 -0.846711 0.115696 0.519639 -0.846492 0.113637 0.314921 +-0.029639 0.502302 -0.864184 -0.027528 0.502609 -0.864040 0.136364 0.314921 +-0.161465 0.476988 -0.863951 -0.158727 0.477584 -0.864101 0.159092 0.314921 +-0.036848 0.992865 -0.113408 -0.037690 0.992523 -0.116031 0.261364 0.452699 +-0.119245 0.992865 0.000000 -0.122013 0.992523 0.000000 0.284092 0.452699 +0.000000 1.000000 0.000000 0.000000 1.000000 0.000000 0.272728 0.472382 +-0.077607 0.967950 -0.238853 -0.078219 0.967406 -0.240791 0.250001 0.433017 +-0.166198 0.978672 -0.120749 -0.169744 0.977722 -0.123325 0.272728 0.433017 +-0.120413 0.920955 -0.370598 -0.120731 0.920499 -0.371593 0.238637 0.413334 +-0.215245 0.943209 -0.253036 -0.218574 0.942045 -0.254402 0.261364 0.413334 +-0.162456 0.850654 -0.499995 -0.162450 0.850642 -0.499985 0.227273 0.393652 +-0.262862 0.882855 -0.389192 -0.265755 0.882077 -0.388928 0.250001 0.393652 +-0.200688 0.760403 -0.617666 -0.200415 0.761132 -0.616810 0.215910 0.373969 +-0.305014 0.798552 -0.518924 -0.307413 0.798791 -0.517106 0.238637 0.373969 +-0.232822 0.657519 -0.716563 -0.232368 0.659108 -0.715201 0.204546 0.354286 +-0.338569 0.696561 -0.632593 -0.340526 0.698111 -0.629749 0.227273 0.354286 +-0.362366 0.586334 -0.724502 -0.364055 0.589099 -0.721366 0.215910 0.334604 +-0.251147 0.967949 0.000000 -0.253182 0.967406 0.000000 0.295455 0.433017 +-0.307167 0.943208 -0.126518 -0.309488 0.942045 -0.129276 0.284092 0.413334 +-0.389673 0.920953 0.000000 -0.390728 0.920499 0.000000 0.306819 0.413334 +-0.361800 0.894429 -0.262863 -0.363506 0.893338 -0.264107 0.272728 0.393652 +-0.451375 0.882854 -0.129731 -0.452010 0.882077 -0.132572 0.295455 0.393652 +-0.525730 0.850652 0.000000 -0.525712 0.850642 0.000000 0.318182 0.393652 +-0.409951 0.819913 -0.399604 -0.411023 0.819605 -0.399060 0.261364 0.373969 +-0.506729 0.819912 -0.266403 -0.506546 0.819605 -0.267586 0.284092 0.373969 +-0.587783 0.798549 -0.129731 -0.586779 0.798791 -0.132572 0.306819 0.373969 +-0.649456 0.760399 0.000000 -0.648549 0.761132 0.000000 0.329546 0.373969 +-0.447209 0.723612 -0.525728 -0.447859 0.724662 -0.523667 0.250001 0.354286 +-0.550008 0.733353 -0.399605 -0.549242 0.734184 -0.399060 0.272728 0.354286 +-0.638194 0.723610 -0.262864 -0.636433 0.724662 -0.264107 0.295455 0.354286 +-0.706258 0.696558 -0.126519 -0.704184 0.698111 -0.129276 0.318182 0.354286 +-0.753442 0.657515 0.000000 -0.752037 0.659108 0.000000 0.340910 0.354286 +-0.471599 0.614344 -0.632594 -0.472121 0.616810 -0.629749 0.238637 0.334604 +-0.577830 0.629943 -0.518926 -0.576952 0.632191 -0.517106 0.261364 0.334604 +-0.672087 0.629942 -0.389194 -0.670095 0.632191 -0.388928 0.284092 0.334604 +-0.747366 0.614342 -0.253038 -0.744835 0.616810 -0.254402 0.306819 0.334604 +-0.801022 0.586331 -0.120750 -0.798578 0.589068 -0.123325 0.329546 0.334604 +-0.834716 0.550681 0.000000 -0.833155 0.552995 0.000000 0.352273 0.334604 +-0.483971 0.502302 -0.716565 -0.485580 0.502609 -0.715201 0.227274 0.314921 +-0.590366 0.519572 -0.617668 -0.591144 0.519639 -0.616810 0.250001 0.314921 +-0.688189 0.525736 -0.499997 -0.688162 0.525712 -0.499985 0.272728 0.314921 +-0.769872 0.519570 -0.370600 -0.769311 0.519639 -0.371593 0.295455 0.314921 +-0.831051 0.502299 -0.238853 -0.830256 0.502609 -0.240791 0.318183 0.314921 +-0.871565 0.476984 -0.113408 -0.870876 0.477584 -0.116031 0.340910 0.314921 +-0.931188 0.357738 0.070089 -0.931883 0.355571 0.071718 0.375001 0.295238 +-0.956626 0.251149 0.147618 -0.956877 0.249397 0.148808 0.386364 0.275556 +-0.903740 0.380897 0.195376 -0.903500 0.379254 0.199561 0.397728 0.295238 +-0.964711 0.129893 0.229041 -0.964690 0.128910 0.229652 0.397728 0.255874 +-0.921508 0.266063 0.282902 -0.920591 0.265297 0.286508 0.409092 0.275556 +-0.951058 0.000000 0.309013 -0.951048 0.000000 0.309000 0.409092 0.236191 +-0.918856 0.136410 0.370264 -0.917661 0.137089 0.372936 0.420455 0.255874 +-0.915098 -0.129893 0.381737 -0.915433 -0.128910 0.381207 0.420455 0.216509 +-0.892805 -0.000000 0.450443 -0.891903 0.002289 0.452162 0.431819 0.236191 +-0.860698 -0.251151 0.442858 -0.861599 -0.249397 0.442030 0.431819 0.196826 +-0.845290 -0.133032 0.517481 -0.845210 -0.129368 0.518479 0.443182 0.216509 +-0.782501 -0.253933 0.568515 -0.783410 -0.249550 0.569170 0.454546 0.196826 +-0.854992 0.399094 0.331229 -0.854823 0.396863 0.334300 0.420455 0.295238 +-0.861804 0.276396 0.425322 -0.861141 0.275307 0.427351 0.431819 0.275556 +-0.782446 0.409229 0.469371 -0.782861 0.406629 0.470870 0.443182 0.295238 +-0.846660 0.140059 0.513372 -0.846004 0.140690 0.514237 0.443182 0.255874 +-0.776630 0.280118 0.564251 -0.776910 0.278909 0.564440 0.454546 0.275556 +-0.688190 0.409230 0.599104 -0.689749 0.406629 0.599048 0.465910 0.295238 +-0.809019 0.000000 0.587782 -0.809015 0.002380 0.587756 0.454546 0.236191 +-0.749882 0.140059 0.646576 -0.750511 0.140690 0.645680 0.465910 0.255874 +-0.670821 0.276397 0.688189 -0.672536 0.275307 0.686911 0.477273 0.275556 +-0.579226 0.399096 0.710788 -0.582080 0.396863 0.709677 0.488637 0.295238 +-0.753368 -0.133032 0.644002 -0.754295 -0.129368 0.643605 0.465910 0.216509 +-0.704293 0.000000 0.709909 -0.705649 0.002289 0.708518 0.477273 0.236191 +-0.636088 0.136411 0.759463 -0.638264 0.137089 0.757469 0.488637 0.255874 +-0.553820 0.266065 0.788982 -0.556963 0.265297 0.787011 0.500000 0.275556 +-0.465085 0.380900 0.799132 -0.468978 0.379254 0.797601 0.511364 0.295238 +-0.687159 -0.251152 0.681715 -0.686636 -0.249397 0.682852 0.477273 0.196826 +-0.645839 -0.129894 0.752342 -0.645436 -0.128910 0.752831 0.488637 0.216508 +-0.587786 -0.000000 0.809017 -0.587756 0.000000 0.809015 0.500000 0.236191 +-0.515946 0.129894 0.846716 -0.516526 0.128910 0.846492 0.511364 0.255874 +-0.436007 0.251152 0.864188 -0.437239 0.249397 0.864040 0.522728 0.275556 +-0.354409 0.357742 0.863953 -0.356182 0.355571 0.864101 0.534091 0.295238 +-0.221089 0.357741 0.907271 -0.219733 0.355571 0.908444 0.556819 0.295238 +-0.155215 0.251152 0.955422 -0.154118 0.249397 0.956023 0.568182 0.275556 +-0.093451 0.380900 0.919882 -0.089389 0.379254 0.920957 0.579546 0.295238 +-0.080276 0.129894 0.988273 -0.079653 0.128910 0.988433 0.579546 0.255874 +-0.015700 0.266064 0.963827 -0.011963 0.265297 0.964080 0.590910 0.275556 +-0.000000 0.000000 1.000000 0.000000 0.000000 1.000000 0.590910 0.236191 +0.068205 0.136410 0.988302 0.071108 0.137089 0.987976 0.602273 0.255874 +0.080276 -0.129894 0.988273 0.079653 -0.128910 0.988433 0.602273 0.216509 +0.152509 -0.000000 0.988302 0.154424 0.002289 0.987976 0.613637 0.236191 +0.155215 -0.251152 0.955422 0.154118 -0.249397 0.956023 0.613637 0.196826 +0.230948 -0.133033 0.963829 0.231910 -0.129368 0.964080 0.625000 0.216509 +0.298885 -0.253934 0.919883 0.299234 -0.249550 0.920957 0.636364 0.196826 +0.050816 0.399096 0.915500 0.053774 0.396863 0.916288 0.602273 0.295238 +0.138198 0.276397 0.951055 0.140324 0.275307 0.951048 0.613637 0.275556 +0.204615 0.409230 0.889193 0.205908 0.406629 0.890072 0.625000 0.295238 +0.226618 0.140059 0.963861 0.227638 0.140690 0.963500 0.625000 0.255874 +0.296648 0.280118 0.912981 0.296731 0.278909 0.913297 0.636364 0.275556 +0.357124 0.409230 0.839639 0.356578 0.406629 0.841090 0.647728 0.295238 +0.309016 -0.000000 0.951057 0.309000 0.002380 0.951048 0.636364 0.236191 +0.383207 0.140059 0.912982 0.382153 0.140690 0.913297 0.647728 0.255874 +0.447215 0.276397 0.850649 0.445479 0.275307 0.851894 0.659091 0.275556 +0.497012 0.399096 0.770520 0.495041 0.396863 0.772881 0.670455 0.295238 +0.379680 -0.133033 0.915503 0.379009 -0.129368 0.916288 0.647728 0.216509 +0.457527 -0.000000 0.889196 0.455794 0.002289 0.890072 0.659091 0.236191 +0.525732 0.136410 0.839642 0.523179 0.137089 0.841121 0.670455 0.255874 +0.579229 0.266065 0.770522 0.576373 0.265297 0.772881 0.681818 0.275556 +0.616302 0.380900 0.689266 0.613636 0.379254 0.692496 0.693182 0.295238 +0.436007 -0.251152 0.864188 0.437239 -0.249397 0.864040 0.659091 0.196826 +0.515946 -0.129894 0.846716 0.516526 -0.128910 0.846492 0.670455 0.216508 +0.587786 -0.000000 0.809017 0.587756 0.000000 0.809015 0.681818 0.236191 +0.645839 0.129894 0.752343 0.645436 0.128910 0.752831 0.693182 0.255874 +0.687159 0.251152 0.681715 0.686636 0.249397 0.682852 0.704546 0.275556 +0.712150 0.357741 0.604039 0.711753 0.355571 0.605762 0.715909 0.295238 +0.794547 0.357741 0.490629 0.796075 0.355571 0.489700 0.738637 0.295238 +0.860698 0.251151 0.442858 0.861599 0.249397 0.442030 0.750000 0.275556 +0.845982 0.380899 0.373136 0.848231 0.379254 0.369610 0.761364 0.295238 +0.915098 0.129893 0.381737 0.915433 0.128910 0.381207 0.761364 0.255874 +0.911804 0.266063 0.312769 0.913175 0.265297 0.309305 0.772727 0.275556 +0.951058 0.000000 0.309013 0.951048 0.000000 0.309000 0.772727 0.236191 +0.961008 0.136410 0.240533 0.961608 0.137089 0.237648 0.784091 0.255874 +0.964711 -0.129893 0.229041 0.964690 -0.128910 0.229652 0.784091 0.216509 +0.987059 0.000000 0.160355 0.987365 0.002289 0.158422 0.795455 0.236191 +0.956626 -0.251149 0.147618 0.956877 -0.249397 0.148808 0.795455 0.196826 +0.988023 -0.133031 0.078192 0.988556 -0.129368 0.077303 0.806818 0.216509 +0.967222 -0.253931 -0.000000 0.968352 -0.249550 0.000000 0.818182 0.196826 +0.886396 0.399095 0.234577 0.888058 0.396863 0.231971 0.784091 0.295238 +0.947213 0.276396 0.162458 0.947844 0.275307 0.160405 0.795455 0.275556 +0.908902 0.409229 0.080178 0.910123 0.406629 0.079196 0.806818 0.295238 +0.986715 0.140059 0.082322 0.986694 0.140690 0.081240 0.806818 0.255874 +0.959966 0.280117 -0.000000 0.960295 0.278909 0.000000 0.818182 0.275556 +0.908902 0.409229 -0.080178 0.910123 0.406629 -0.079196 0.829546 0.295238 +1.000000 0.000001 -0.000000 0.999969 0.002380 0.000000 0.818182 0.236191 +0.986715 0.140059 -0.082323 0.986694 0.140690 -0.081240 0.829546 0.255874 +0.947213 0.276397 -0.162458 0.947844 0.275307 -0.160405 0.840909 0.275556 +0.886395 0.399095 -0.234577 0.888058 0.396863 -0.231971 0.852273 0.295238 +0.988023 -0.133030 -0.078193 0.988556 -0.129368 -0.077303 0.829546 0.216509 +0.987059 0.000001 -0.160356 0.987365 0.002289 -0.158422 0.840909 0.236191 +0.961008 0.136411 -0.240534 0.961608 0.137089 -0.237648 0.852273 0.255874 +0.911803 0.266065 -0.312769 0.913175 0.265297 -0.309305 0.863636 0.275556 +0.845982 0.380900 -0.373136 0.848231 0.379254 -0.369610 0.875000 0.295238 +0.956626 -0.251149 -0.147618 0.956877 -0.249397 -0.148808 0.840909 0.196826 +0.964711 -0.129893 -0.229041 0.964690 -0.128910 -0.229652 0.852273 0.216508 +0.951058 -0.000000 -0.309013 0.951048 0.000000 -0.309000 0.863636 0.236191 +0.915098 0.129893 -0.381737 0.915433 0.128910 -0.381207 0.875000 0.255874 +0.860698 0.251151 -0.442858 0.861599 0.249397 -0.442030 0.886364 0.275556 +0.794547 0.357741 -0.490629 0.796075 0.355571 -0.489700 0.897727 0.295238 +0.712150 0.357741 -0.604039 0.711753 0.355571 -0.605762 0.011364 0.295238 +0.687159 0.251152 -0.681715 0.686636 0.249397 -0.682852 0.022727 0.275556 +0.616302 0.380900 -0.689266 0.613636 0.379254 -0.692496 0.034091 0.295238 +0.645839 0.129894 -0.752342 0.645436 0.128910 -0.752831 0.034091 0.255874 +0.579229 0.266064 -0.770521 0.576373 0.265297 -0.772881 0.045455 0.275556 +0.587786 0.000000 -0.809017 0.587756 0.000000 -0.809015 0.045455 0.236191 +0.525732 0.136410 -0.839641 0.523179 0.137089 -0.841121 0.056819 0.255874 +0.515946 -0.129894 -0.846716 0.516526 -0.128910 -0.846492 0.056819 0.216509 +0.457527 -0.000001 -0.889196 0.455794 0.002289 -0.890072 0.068182 0.236191 +0.436007 -0.251152 -0.864188 0.437239 -0.249397 -0.864040 0.068182 0.196826 +0.379681 -0.133033 -0.915502 0.379009 -0.129368 -0.916288 0.079546 0.216509 +0.298885 -0.253934 -0.919883 0.299234 -0.249550 -0.920957 0.090910 0.196826 +0.497012 0.399096 -0.770520 0.495041 0.396863 -0.772881 0.056819 0.295238 +0.447216 0.276397 -0.850649 0.445479 0.275307 -0.851894 0.068182 0.275556 +0.357124 0.409230 -0.839639 0.356578 0.406629 -0.841090 0.079546 0.295238 +0.383208 0.140059 -0.912982 0.382153 0.140690 -0.913297 0.079546 0.255874 +0.296649 0.280118 -0.912981 0.296731 0.278909 -0.913297 0.090910 0.275556 +0.204616 0.409230 -0.889193 0.205908 0.406629 -0.890072 0.102273 0.295238 +0.309017 -0.000001 -0.951056 0.309000 0.002380 -0.951048 0.090910 0.236191 +0.226619 0.140059 -0.963861 0.227638 0.140690 -0.963500 0.102273 0.255874 +0.138199 0.276397 -0.951055 0.140324 0.275307 -0.951048 0.113637 0.275556 +0.050817 0.399096 -0.915500 0.053774 0.396863 -0.916288 0.125001 0.295238 +0.230948 -0.133033 -0.963828 0.231910 -0.129368 -0.964080 0.102274 0.216509 +0.152509 -0.000000 -0.988302 0.154424 0.002289 -0.987976 0.113637 0.236191 +0.068206 0.136410 -0.988302 0.071108 0.137089 -0.987976 0.125001 0.255874 +-0.015699 0.266064 -0.963827 -0.011963 0.265297 -0.964080 0.136364 0.275556 +-0.093451 0.380900 -0.919882 -0.089389 0.379254 -0.920957 0.147728 0.295238 +0.155215 -0.251152 -0.955422 0.154118 -0.249397 -0.956023 0.113637 0.196826 +0.080276 -0.129894 -0.988273 0.079653 -0.128910 -0.988433 0.125001 0.216508 +0.000000 -0.000000 -1.000000 0.000000 0.000000 -1.000000 0.136365 0.236191 +-0.080276 0.129894 -0.988273 -0.079653 0.128910 -0.988433 0.147728 0.255874 +-0.155215 0.251152 -0.955422 -0.154118 0.249397 -0.956023 0.159092 0.275556 +-0.221089 0.357741 -0.907271 -0.219733 0.355571 -0.908444 0.170455 0.295238 +-0.354409 0.357742 -0.863953 -0.356182 0.355571 -0.864101 0.193183 0.295238 +-0.436007 0.251152 -0.864188 -0.437239 0.249397 -0.864040 0.204546 0.275556 +-0.465085 0.380900 -0.799132 -0.468978 0.379254 -0.797601 0.215910 0.295238 +-0.515946 0.129894 -0.846716 -0.516526 0.128910 -0.846492 0.215910 0.255874 +-0.553820 0.266064 -0.788983 -0.556963 0.265297 -0.787011 0.227274 0.275556 +-0.587786 0.000000 -0.809017 -0.587756 0.000000 -0.809015 0.227273 0.236191 +-0.636088 0.136410 -0.759463 -0.638264 0.137089 -0.757469 0.238637 0.255874 +-0.645839 -0.129894 -0.752343 -0.645436 -0.128910 -0.752831 0.238637 0.216509 +-0.704293 -0.000001 -0.709909 -0.705649 0.002289 -0.708518 0.250001 0.236191 +-0.687159 -0.251152 -0.681715 -0.686636 -0.249397 -0.682852 0.250001 0.196826 +-0.753368 -0.133034 -0.644002 -0.754295 -0.129368 -0.643605 0.261364 0.216509 +-0.782501 -0.253934 -0.568515 -0.783410 -0.249550 -0.569170 0.272728 0.196826 +-0.579226 0.399096 -0.710788 -0.582080 0.396863 -0.709677 0.238637 0.295238 +-0.670820 0.276396 -0.688190 -0.672536 0.275307 -0.686911 0.250001 0.275556 +-0.688190 0.409229 -0.599104 -0.689749 0.406629 -0.599048 0.261364 0.295238 +-0.749882 0.140058 -0.646576 -0.750511 0.140690 -0.645680 0.261364 0.255874 +-0.776630 0.280116 -0.564252 -0.776910 0.278909 -0.564440 0.272728 0.275556 +-0.782446 0.409228 -0.469372 -0.782861 0.406629 -0.470870 0.284092 0.295238 +-0.809019 -0.000002 -0.587783 -0.809015 0.002380 -0.587756 0.272728 0.236191 +-0.846659 0.140057 -0.513373 -0.846004 0.140690 -0.514237 0.284092 0.255874 +-0.861804 0.276394 -0.425323 -0.861110 0.275307 -0.427351 0.295455 0.275556 +-0.854992 0.399093 -0.331230 -0.854823 0.396863 -0.334300 0.306819 0.295238 +-0.845289 -0.133034 -0.517482 -0.845210 -0.129368 -0.518479 0.284092 0.216509 +-0.892805 -0.000002 -0.450444 -0.891903 0.002289 -0.452162 0.295455 0.236191 +-0.918856 0.136407 -0.370266 -0.917661 0.137089 -0.372936 0.306819 0.255874 +-0.921508 0.266061 -0.282904 -0.920591 0.265297 -0.286508 0.318182 0.275556 +-0.903740 0.380896 -0.195377 -0.903500 0.379254 -0.199561 0.329546 0.295238 +-0.860698 -0.251151 -0.442858 -0.861599 -0.249397 -0.442030 0.295455 0.196826 +-0.915098 -0.129893 -0.381737 -0.915433 -0.128910 -0.381207 0.306819 0.216508 +-0.951058 -0.000000 -0.309013 -0.951048 0.000000 -0.309000 0.318182 0.236191 +-0.964711 0.129893 -0.229041 -0.964690 0.128910 -0.229652 0.329546 0.255874 +-0.956626 0.251149 -0.147618 -0.956877 0.249397 -0.148808 0.340910 0.275556 +-0.931188 0.357738 -0.070089 -0.931883 0.355571 -0.071718 0.352273 0.295238 +-0.298886 0.253934 0.919883 -0.299234 0.249550 0.920957 0.545455 0.275556 +-0.379681 0.133033 0.915502 -0.379009 0.129368 0.916288 0.534091 0.255874 +-0.457527 -0.000000 0.889196 -0.455794 -0.002289 0.890072 0.522728 0.236191 +-0.525732 -0.136411 0.839641 -0.523179 -0.137089 0.841121 0.511364 0.216508 +-0.579229 -0.266065 0.770521 -0.576373 -0.265297 0.772881 0.500000 0.196826 +-0.616302 -0.380900 0.689265 -0.613636 -0.379254 0.692496 0.488637 0.177143 +-0.230948 0.133033 0.963828 -0.231910 0.129368 0.964080 0.556819 0.255874 +-0.309017 -0.000000 0.951056 -0.309000 -0.002380 0.951048 0.545455 0.236191 +-0.152509 0.000000 0.988302 -0.154424 -0.002289 0.987976 0.568182 0.236191 +-0.383207 -0.140060 0.912982 -0.382153 -0.140690 0.913297 0.534091 0.216508 +-0.226619 -0.140060 0.963861 -0.227638 -0.140690 0.963500 0.556819 0.216508 +-0.068205 -0.136410 0.988302 -0.071108 -0.137089 0.987976 0.579546 0.216508 +-0.447216 -0.276398 0.850648 -0.445479 -0.275307 0.851894 0.522728 0.196826 +-0.296648 -0.280119 0.912980 -0.296731 -0.278909 0.913297 0.545455 0.196826 +-0.138199 -0.276398 0.951055 -0.140324 -0.275307 0.951048 0.568182 0.196826 +0.015699 -0.266065 0.963827 0.011963 -0.265297 0.964080 0.590909 0.196826 +-0.497012 -0.399097 0.770520 -0.495041 -0.396863 0.772881 0.511364 0.177143 +-0.357124 -0.409231 0.839639 -0.356578 -0.406629 0.841090 0.534091 0.177143 +-0.204615 -0.409231 0.889192 -0.205908 -0.406629 0.890072 0.556819 0.177143 +-0.050817 -0.399097 0.915500 -0.053774 -0.396863 0.916288 0.579546 0.177143 +0.093451 -0.380900 0.919881 0.089389 -0.379254 0.920957 0.602273 0.177143 +-0.531941 -0.502302 0.681712 -0.530168 -0.502609 0.682821 0.500000 0.157461 +-0.405008 -0.519572 0.752338 -0.403943 -0.519639 0.752831 0.522728 0.157461 +-0.262869 -0.525738 0.809012 -0.262856 -0.525712 0.808985 0.545455 0.157461 +-0.114564 -0.519573 0.846711 -0.115696 -0.519639 0.846492 0.568182 0.157461 +0.029639 -0.502302 0.864184 0.027528 -0.502609 0.864040 0.590909 0.157461 +0.161465 -0.476988 0.863951 0.158727 -0.477584 0.864101 0.613637 0.157461 +0.782501 0.253934 0.568515 0.783410 0.249550 0.569170 0.727273 0.275556 +0.753368 0.133032 0.644002 0.754295 0.129368 0.643605 0.715909 0.255874 +0.704293 -0.000000 0.709910 0.705649 -0.002289 0.708518 0.704546 0.236191 +0.636087 -0.136411 0.759464 0.638264 -0.137089 0.757469 0.693182 0.216508 +0.553819 -0.266065 0.788983 0.556963 -0.265297 0.787011 0.681818 0.196826 +0.465084 -0.380900 0.799132 0.468978 -0.379254 0.797601 0.670455 0.177143 +0.845290 0.133032 0.517482 0.845210 0.129368 0.518479 0.738637 0.255874 +0.809018 -0.000000 0.587783 0.809015 -0.002380 0.587756 0.727273 0.236191 +0.892805 0.000000 0.450444 0.891903 -0.002289 0.452162 0.750000 0.236191 +0.749881 -0.140059 0.646577 0.750511 -0.140690 0.645680 0.715909 0.216508 +0.846659 -0.140059 0.513374 0.846004 -0.140690 0.514237 0.738637 0.216508 +0.918856 -0.136410 0.370265 0.917661 -0.137089 0.372936 0.761364 0.216508 +0.670819 -0.276397 0.688191 0.672536 -0.275307 0.686911 0.704546 0.196826 +0.776628 -0.280118 0.564253 0.776910 -0.278909 0.564440 0.727273 0.196826 +0.861803 -0.276396 0.425324 0.861110 -0.275307 0.427351 0.750000 0.196826 +0.921507 -0.266063 0.282904 0.920591 -0.265297 0.286508 0.772727 0.196826 +0.579224 -0.399096 0.710789 0.582080 -0.396863 0.709677 0.693182 0.177143 +0.688189 -0.409230 0.599106 0.689749 -0.406629 0.599048 0.715909 0.177143 +0.782445 -0.409229 0.469374 0.782861 -0.406629 0.470870 0.738637 0.177143 +0.854991 -0.399094 0.331231 0.854793 -0.396863 0.334300 0.761364 0.177143 +0.903739 -0.380897 0.195378 0.903500 -0.379254 0.199561 0.784091 0.177143 +0.483971 -0.502302 0.716565 0.485580 -0.502609 0.715201 0.681818 0.157461 +0.590366 -0.519572 0.617668 0.591144 -0.519639 0.616810 0.704546 0.157461 +0.688189 -0.525736 0.499997 0.688162 -0.525712 0.499985 0.727273 0.157461 +0.769872 -0.519570 0.370600 0.769311 -0.519639 0.371593 0.750000 0.157461 +0.831051 -0.502299 0.238853 0.830256 -0.502609 0.240791 0.772727 0.157461 +0.871565 -0.476984 0.113408 0.870876 -0.477584 0.116031 0.795455 0.157461 +0.712150 0.357741 -0.604039 0.711753 0.355571 -0.605762 0.920455 0.295238 +0.782501 0.253934 -0.568515 0.783410 0.249550 -0.569170 0.909091 0.275556 +0.845290 0.133032 -0.517482 0.845210 0.129368 -0.518479 0.897727 0.255874 +0.892805 -0.000000 -0.450444 0.891903 -0.002289 -0.452162 0.886364 0.236191 +0.918856 -0.136410 -0.370265 0.917661 -0.137089 -0.372936 0.875000 0.216508 +0.921508 -0.266063 -0.282904 0.920591 -0.265297 -0.286508 0.863636 0.196826 +0.903739 -0.380897 -0.195378 0.903500 -0.379254 -0.199561 0.852273 0.177143 +0.687159 0.251152 -0.681715 0.686636 0.249397 -0.682852 0.931818 0.275556 +0.753368 0.133032 -0.644002 0.754295 0.129368 -0.643605 0.920455 0.255874 +0.645839 0.129894 -0.752342 0.645436 0.128910 -0.752831 0.943182 0.255874 +0.809018 0.000000 -0.587783 0.809015 -0.002380 -0.587756 0.909091 0.236191 +0.704293 0.000000 -0.709910 0.705649 -0.002289 -0.708518 0.931818 0.236191 +0.587786 0.000000 -0.809017 0.587756 0.000000 -0.809015 0.954545 0.236191 +0.846659 -0.140059 -0.513374 0.846004 -0.140690 -0.514237 0.897727 0.216508 +0.749881 -0.140059 -0.646577 0.750511 -0.140690 -0.645680 0.920455 0.216508 +0.636087 -0.136411 -0.759464 0.638264 -0.137089 -0.757469 0.943182 0.216508 +0.515946 -0.129894 -0.846716 0.516526 -0.128910 -0.846492 0.965909 0.216509 +0.861803 -0.276396 -0.425324 0.861110 -0.275307 -0.427351 0.886364 0.196826 +0.776629 -0.280118 -0.564253 0.776910 -0.278909 -0.564440 0.909091 0.196826 +0.670819 -0.276397 -0.688191 0.672536 -0.275307 -0.686911 0.931818 0.196826 +0.553819 -0.266065 -0.788983 0.556963 -0.265297 -0.787011 0.954545 0.196826 +0.436007 -0.251152 -0.864188 0.437239 -0.249397 -0.864040 0.977273 0.196826 +0.854991 -0.399094 -0.331231 0.854823 -0.396863 -0.334300 0.875000 0.177143 +0.782445 -0.409229 -0.469374 0.782861 -0.406629 -0.470870 0.897727 0.177143 +0.688189 -0.409230 -0.599106 0.689749 -0.406629 -0.599048 0.920455 0.177143 +0.579224 -0.399096 -0.710789 0.582080 -0.396863 -0.709677 0.943182 0.177143 +0.465084 -0.380900 -0.799132 0.468978 -0.379254 -0.797601 0.965909 0.177143 +0.354409 -0.357742 -0.863953 0.356182 -0.355571 -0.864101 0.988636 0.177143 +0.831051 -0.502299 -0.238853 0.830256 -0.502609 -0.240791 0.863636 0.157461 +0.769872 -0.519570 -0.370600 0.769311 -0.519639 -0.371593 0.886364 0.157461 +0.688189 -0.525736 -0.499997 0.688162 -0.525712 -0.499985 0.909091 0.157461 +0.590366 -0.519572 -0.617668 0.591144 -0.519639 -0.616810 0.931818 0.157461 +0.483971 -0.502302 -0.716565 0.485580 -0.502609 -0.715201 0.954545 0.157461 +0.377183 -0.476988 -0.793861 0.379467 -0.477584 -0.792383 0.977273 0.157461 +0.276388 -0.447220 -0.850649 0.276376 -0.447218 -0.850642 1.000000 0.157461 +-0.298886 0.253934 -0.919883 -0.299234 0.249550 -0.920957 0.181819 0.275556 +-0.230948 0.133032 -0.963828 -0.231910 0.129368 -0.964080 0.170455 0.255874 +-0.152509 -0.000000 -0.988302 -0.154424 -0.002289 -0.987976 0.159092 0.236191 +-0.068206 -0.136410 -0.988302 -0.071108 -0.137089 -0.987976 0.147728 0.216508 +0.015699 -0.266065 -0.963827 0.011963 -0.265297 -0.964080 0.136364 0.196826 +0.093451 -0.380900 -0.919882 0.089389 -0.379254 -0.920957 0.125001 0.177143 +-0.379681 0.133033 -0.915502 -0.379009 0.129368 -0.916288 0.193183 0.255874 +-0.309017 0.000000 -0.951056 -0.309000 -0.002380 -0.951048 0.181819 0.236191 +-0.457527 0.000000 -0.889196 -0.455794 -0.002289 -0.890072 0.204546 0.236191 +-0.226619 -0.140060 -0.963861 -0.227638 -0.140690 -0.963500 0.170455 0.216508 +-0.383207 -0.140060 -0.912982 -0.382153 -0.140690 -0.913297 0.193183 0.216508 +-0.525732 -0.136411 -0.839641 -0.523179 -0.137089 -0.841121 0.215910 0.216508 +-0.138199 -0.276397 -0.951055 -0.140324 -0.275307 -0.951048 0.159092 0.196826 +-0.296648 -0.280119 -0.912980 -0.296731 -0.278909 -0.913297 0.181819 0.196826 +-0.447216 -0.276398 -0.850648 -0.445479 -0.275307 -0.851894 0.204546 0.196826 +-0.579229 -0.266065 -0.770521 -0.576373 -0.265297 -0.772881 0.227273 0.196826 +-0.050817 -0.399097 -0.915500 -0.053774 -0.396863 -0.916288 0.147728 0.177143 +-0.204615 -0.409230 -0.889192 -0.205908 -0.406629 -0.890072 0.170455 0.177143 +-0.357124 -0.409230 -0.839639 -0.356578 -0.406629 -0.841090 0.193183 0.177143 +-0.497012 -0.399097 -0.770520 -0.495041 -0.396863 -0.772881 0.215910 0.177143 +-0.616302 -0.380900 -0.689266 -0.613636 -0.379254 -0.692496 0.238637 0.177143 +0.029639 -0.502302 -0.864184 0.027528 -0.502609 -0.864040 0.136364 0.157461 +-0.114564 -0.519572 -0.846711 -0.115696 -0.519639 -0.846492 0.159092 0.157461 +-0.262869 -0.525738 -0.809012 -0.262856 -0.525712 -0.808985 0.181819 0.157461 +-0.405008 -0.519572 -0.752338 -0.403943 -0.519639 -0.752831 0.204546 0.157461 +-0.531941 -0.502302 -0.681712 -0.530168 -0.502609 -0.682821 0.227273 0.157461 +-0.638452 -0.476987 -0.604038 -0.636311 -0.477584 -0.605762 0.250001 0.157461 +-0.967222 0.253931 -0.000000 -0.968352 0.249550 0.000000 0.363637 0.275556 +-0.988023 0.133031 -0.078192 -0.988556 0.129368 -0.077303 0.352273 0.255874 +-0.987059 -0.000000 -0.160355 -0.987365 -0.002289 -0.158422 0.340910 0.236191 +-0.961008 -0.136410 -0.240533 -0.961608 -0.137089 -0.237648 0.329546 0.216508 +-0.911804 -0.266064 -0.312769 -0.913175 -0.265297 -0.309305 0.318182 0.196826 +-0.845982 -0.380899 -0.373136 -0.848231 -0.379254 -0.369610 0.306819 0.177143 +-0.988023 0.133031 0.078192 -0.988556 0.129368 0.077303 0.375001 0.255874 +-1.000000 0.000000 -0.000000 -0.999969 -0.002380 0.000000 0.363637 0.236191 +-0.987059 0.000000 0.160355 -0.987365 -0.002289 0.158422 0.386364 0.236191 +-0.986715 -0.140059 -0.082322 -0.986694 -0.140690 -0.081240 0.352273 0.216508 +-0.986715 -0.140059 0.082322 -0.986694 -0.140690 0.081240 0.375001 0.216508 +-0.961008 -0.136410 0.240533 -0.961608 -0.137089 0.237648 0.397728 0.216508 +-0.947213 -0.276396 -0.162458 -0.947844 -0.275307 -0.160405 0.340910 0.196826 +-0.959966 -0.280117 -0.000000 -0.960295 -0.278909 0.000000 0.363637 0.196826 +-0.947213 -0.276396 0.162458 -0.947844 -0.275307 0.160405 0.386364 0.196826 +-0.911804 -0.266064 0.312769 -0.913175 -0.265297 0.309305 0.409092 0.196826 +-0.886396 -0.399095 -0.234576 -0.888058 -0.396863 -0.231971 0.329546 0.177143 +-0.908902 -0.409229 -0.080178 -0.910123 -0.406629 -0.079196 0.352273 0.177143 +-0.908902 -0.409229 0.080178 -0.910123 -0.406629 0.079196 0.375001 0.177143 +-0.886396 -0.399095 0.234576 -0.888058 -0.396863 0.231971 0.397728 0.177143 +-0.845982 -0.380899 0.373136 -0.848231 -0.379254 0.369610 0.420455 0.177143 +-0.812729 -0.502301 -0.295238 -0.813257 -0.502609 -0.293191 0.318182 0.157461 +-0.840673 -0.519571 -0.152694 -0.840815 -0.519639 -0.151524 0.340910 0.157461 +-0.850648 -0.525736 -0.000000 -0.850642 -0.525712 0.000000 0.363637 0.157461 +-0.840673 -0.519571 0.152694 -0.840815 -0.519639 0.151524 0.386364 0.157461 +-0.812729 -0.502301 0.295238 -0.813257 -0.502609 0.293191 0.409092 0.157461 +-0.771771 -0.476987 0.420539 -0.772759 -0.477584 0.417982 0.431819 0.157461 +-0.675300 -0.550685 0.490628 -0.674032 -0.552995 0.489700 0.465910 0.137778 +-0.609547 -0.657519 0.442856 -0.608386 -0.659108 0.442030 0.477273 0.118096 +-0.577066 -0.586334 0.568513 -0.573565 -0.589099 0.569170 0.488637 0.137778 +-0.525420 -0.760403 0.381735 -0.524705 -0.761132 0.381207 0.488637 0.098413 +-0.497009 -0.696561 0.517479 -0.493698 -0.698111 0.518479 0.500000 0.118096 +-0.425323 -0.850654 0.309011 -0.425306 -0.850642 0.309000 0.500000 0.078731 +-0.399272 -0.798552 0.450441 -0.396802 -0.798791 0.452162 0.511364 0.098413 +-0.315251 -0.920955 0.229040 -0.316111 -0.920499 0.229652 0.511364 0.059048 +-0.288916 -0.882855 0.370263 -0.287759 -0.882077 0.372936 0.522728 0.078731 +-0.203181 -0.967950 0.147618 -0.204840 -0.967406 0.148808 0.522728 0.039365 +-0.174138 -0.943209 0.282902 -0.174383 -0.942045 0.286477 0.534091 0.059048 +-0.063482 -0.978671 0.195377 -0.064821 -0.977722 0.199561 0.545455 0.039365 +-0.455902 -0.614344 0.643999 -0.453047 -0.616810 0.643605 0.511364 0.137778 +-0.361804 -0.723612 0.587779 -0.359661 -0.724662 0.587756 0.522728 0.118096 +-0.314971 -0.629943 0.709905 -0.313486 -0.632191 0.708518 0.534091 0.137778 +-0.253366 -0.819913 0.513370 -0.252510 -0.819605 0.514237 0.534091 0.098413 +-0.210087 -0.733354 0.646572 -0.209784 -0.734184 0.645680 0.545455 0.118096 +-0.162463 -0.629943 0.759459 -0.162816 -0.632191 0.757469 0.556819 0.137778 +-0.138197 -0.894429 0.425321 -0.138829 -0.893338 0.427351 0.545455 0.078731 +-0.096779 -0.819912 0.564250 -0.097964 -0.819605 0.564440 0.556819 0.098413 +-0.052789 -0.723611 0.688186 -0.054506 -0.724662 0.686911 0.568182 0.118096 +-0.009708 -0.614344 0.788979 -0.011780 -0.616810 0.786981 0.579546 0.137778 +-0.025407 -0.943208 0.331229 -0.027284 -0.942045 0.334300 0.556819 0.059048 +0.016099 -0.882854 0.469371 0.013581 -0.882077 0.470870 0.568182 0.078731 +0.058250 -0.798550 0.599103 0.055208 -0.798791 0.599048 0.579546 0.098413 +0.097915 -0.696560 0.710786 0.094638 -0.698111 0.709647 0.590909 0.118096 +0.132684 -0.586334 0.799129 0.129460 -0.589099 0.797601 0.602273 0.137778 +0.077607 -0.967950 0.238853 0.078219 -0.967406 0.240791 0.568182 0.039365 +0.120413 -0.920955 0.370598 0.120731 -0.920499 0.371593 0.579546 0.059048 +0.162456 -0.850654 0.499995 0.162450 -0.850642 0.499985 0.590910 0.078731 +0.200688 -0.760403 0.617666 0.200415 -0.761132 0.616810 0.602273 0.098413 +0.232822 -0.657519 0.716563 0.232368 -0.659108 0.715201 0.613637 0.118096 +0.257937 -0.550685 0.793860 0.257454 -0.552995 0.792383 0.625000 0.137778 +0.257937 -0.550685 0.793860 0.257454 -0.552995 0.792383 0.647728 0.137778 +0.232822 -0.657519 0.716563 0.232368 -0.659108 0.715201 0.659091 0.118096 +0.362367 -0.586334 0.724501 0.364055 -0.589099 0.721366 0.670455 0.137778 +0.200688 -0.760403 0.617666 0.200415 -0.761132 0.616810 0.670455 0.098413 +0.338569 -0.696561 0.632593 0.340526 -0.698141 0.629749 0.681818 0.118096 +0.162456 -0.850654 0.499995 0.162450 -0.850642 0.499985 0.681818 0.078731 +0.305014 -0.798552 0.518923 0.307413 -0.798791 0.517106 0.693182 0.098413 +0.120413 -0.920955 0.370598 0.120731 -0.920499 0.371593 0.693182 0.059048 +0.262862 -0.882855 0.389192 0.265755 -0.882077 0.388928 0.704546 0.078731 +0.077607 -0.967950 0.238853 0.078219 -0.967406 0.240791 0.704546 0.039365 +0.215245 -0.943209 0.253036 0.218574 -0.942045 0.254402 0.715909 0.059048 +0.166198 -0.978671 0.120749 0.169744 -0.977722 0.123325 0.727273 0.039365 +0.471601 -0.614344 0.632593 0.472121 -0.616810 0.629749 0.693182 0.137778 +0.447211 -0.723612 0.525727 0.447859 -0.724662 0.523667 0.704546 0.118096 +0.577832 -0.629943 0.518924 0.576952 -0.632191 0.517106 0.715909 0.137778 +0.409952 -0.819913 0.399603 0.411023 -0.819605 0.399060 0.715909 0.098413 +0.550010 -0.733353 0.399603 0.549242 -0.734184 0.399060 0.727273 0.118096 +0.672088 -0.629942 0.389192 0.670095 -0.632191 0.388928 0.738637 0.137778 +0.361801 -0.894429 0.262863 0.363506 -0.893338 0.264107 0.727273 0.078731 +0.506730 -0.819912 0.266402 0.506546 -0.819605 0.267586 0.738637 0.098413 +0.638195 -0.723609 0.262863 0.636433 -0.724662 0.264107 0.750000 0.118096 +0.747367 -0.614341 0.253036 0.744835 -0.616810 0.254402 0.761364 0.137778 +0.307168 -0.943208 0.126518 0.309488 -0.942045 0.129276 0.738637 0.059048 +0.451376 -0.882853 0.129730 0.452010 -0.882077 0.132572 0.750000 0.078731 +0.587784 -0.798549 0.129730 0.586779 -0.798791 0.132572 0.761364 0.098413 +0.706258 -0.696557 0.126518 0.704184 -0.698111 0.129276 0.772727 0.118096 +0.801022 -0.586330 0.120749 0.798578 -0.589068 0.123325 0.784091 0.137778 +0.251147 -0.967949 0.000000 0.253182 -0.967406 0.000000 0.750000 0.039365 +0.389673 -0.920953 0.000000 0.390728 -0.920499 0.000000 0.761364 0.059048 +0.525730 -0.850652 0.000000 0.525712 -0.850642 0.000000 0.772727 0.078731 +0.649456 -0.760399 0.000000 0.648549 -0.761132 0.000000 0.784091 0.098413 +0.753442 -0.657515 0.000000 0.752037 -0.659108 0.000000 0.795455 0.118096 +0.834716 -0.550681 0.000000 0.833155 -0.552995 0.000000 0.806818 0.137778 +0.834716 -0.550681 0.000000 0.833155 -0.552995 0.000000 0.829546 0.137778 +0.753442 -0.657515 0.000000 0.752037 -0.659108 0.000000 0.840909 0.118096 +0.801022 -0.586330 -0.120750 0.798578 -0.589068 -0.123325 0.852273 0.137778 +0.649456 -0.760399 0.000000 0.648549 -0.761132 0.000000 0.852273 0.098413 +0.706258 -0.696558 -0.126518 0.704184 -0.698111 -0.129276 0.863636 0.118096 +0.525730 -0.850652 0.000000 0.525712 -0.850642 0.000000 0.863636 0.078731 +0.587784 -0.798549 -0.129731 0.586779 -0.798791 -0.132572 0.875000 0.098413 +0.389673 -0.920953 0.000000 0.390728 -0.920499 0.000000 0.875000 0.059048 +0.451375 -0.882853 -0.129731 0.452010 -0.882077 -0.132572 0.886364 0.078731 +0.251147 -0.967949 0.000000 0.253182 -0.967406 0.000000 0.886364 0.039365 +0.307168 -0.943208 -0.126519 0.309488 -0.942045 -0.129276 0.897727 0.059048 +0.166198 -0.978671 -0.120750 0.169744 -0.977722 -0.123325 0.909091 0.039365 +0.747367 -0.614341 -0.253037 0.744835 -0.616810 -0.254402 0.875000 0.137778 +0.638195 -0.723609 -0.262864 0.636433 -0.724662 -0.264107 0.886364 0.118096 +0.672088 -0.629941 -0.389193 0.670095 -0.632191 -0.388928 0.897727 0.137778 +0.506730 -0.819911 -0.266403 0.506546 -0.819605 -0.267586 0.897727 0.098413 +0.550009 -0.733352 -0.399605 0.549242 -0.734184 -0.399060 0.909091 0.118096 +0.577832 -0.629942 -0.518925 0.576952 -0.632191 -0.517106 0.920455 0.137778 +0.361801 -0.894428 -0.262864 0.363506 -0.893338 -0.264107 0.909091 0.078731 +0.409952 -0.819912 -0.399605 0.411023 -0.819605 -0.399060 0.920455 0.098413 +0.447211 -0.723610 -0.525729 0.447859 -0.724662 -0.523667 0.931818 0.118096 +0.471601 -0.614343 -0.632594 0.472121 -0.616810 -0.629749 0.943182 0.137778 +0.215246 -0.943208 -0.253038 0.218574 -0.942045 -0.254402 0.920455 0.059048 +0.262863 -0.882854 -0.389194 0.265755 -0.882077 -0.388928 0.931818 0.078731 +0.305015 -0.798550 -0.518925 0.307413 -0.798791 -0.517106 0.943182 0.098413 +0.338569 -0.696560 -0.632594 0.340526 -0.698111 -0.629749 0.954545 0.118096 +0.362367 -0.586333 -0.724502 0.364055 -0.589099 -0.721366 0.965909 0.137778 +0.077607 -0.967950 -0.238853 0.078219 -0.967406 -0.240791 0.931818 0.039365 +0.120413 -0.920955 -0.370598 0.120731 -0.920499 -0.371593 0.943182 0.059048 +0.162456 -0.850654 -0.499995 0.162450 -0.850642 -0.499985 0.954545 0.078731 +0.200688 -0.760403 -0.617666 0.200415 -0.761132 -0.616810 0.965909 0.098413 +0.232822 -0.657519 -0.716563 0.232368 -0.659108 -0.715201 0.977273 0.118096 +0.257937 -0.550685 -0.793860 0.257454 -0.552995 -0.792383 0.988636 0.137778 +-0.675300 -0.550685 0.490628 -0.674032 -0.552995 0.489700 0.443182 0.137778 +-0.719015 -0.586334 0.373135 -0.718558 -0.589099 0.369610 0.420455 0.137778 +-0.753363 -0.614343 0.234576 -0.752129 -0.616810 0.231971 0.397728 0.137778 +-0.772493 -0.629942 0.080177 -0.770714 -0.632191 0.079196 0.375001 0.137778 +-0.772493 -0.629942 -0.080178 -0.770714 -0.632191 -0.079196 0.352273 0.137778 +-0.753364 -0.614343 -0.234576 -0.752129 -0.616810 -0.231971 0.329546 0.137778 +-0.719016 -0.586333 -0.373136 -0.718558 -0.589099 -0.369610 0.306819 0.137778 +-0.609547 -0.657519 0.442856 -0.608386 -0.659108 0.442030 0.431819 0.118096 +-0.645740 -0.696560 0.312768 -0.645680 -0.698111 0.309305 0.409091 0.118096 +-0.525420 -0.760403 0.381735 -0.524705 -0.761132 0.381207 0.420455 0.098413 +-0.670817 -0.723611 0.162457 -0.670125 -0.724662 0.160405 0.386364 0.118096 +-0.551780 -0.798551 0.240532 -0.552660 -0.798791 0.237648 0.397728 0.098413 +-0.425323 -0.850654 0.309011 -0.425306 -0.850642 0.309000 0.409092 0.078731 +-0.679849 -0.733353 -0.000000 -0.678915 -0.734184 0.000000 0.363637 0.118096 +-0.566540 -0.819912 0.082322 -0.567095 -0.819605 0.081240 0.375001 0.098413 +-0.441423 -0.882854 0.160354 -0.443617 -0.882077 0.158422 0.386364 0.078731 +-0.315251 -0.920955 0.229040 -0.316111 -0.920499 0.229652 0.397728 0.059048 +-0.670818 -0.723610 -0.162458 -0.670125 -0.724662 -0.160405 0.340910 0.118096 +-0.566541 -0.819911 -0.082323 -0.567095 -0.819605 -0.081240 0.352273 0.098413 +-0.447211 -0.894428 -0.000001 -0.449324 -0.893338 0.000000 0.363637 0.078731 +-0.322869 -0.943208 0.078191 -0.326365 -0.942045 0.077303 0.375001 0.059048 +-0.203181 -0.967950 0.147618 -0.204840 -0.967406 0.148808 0.386364 0.039365 +-0.645741 -0.696559 -0.312769 -0.645680 -0.698111 -0.309305 0.318182 0.118096 +-0.551781 -0.798550 -0.240533 -0.552660 -0.798791 -0.237648 0.329546 0.098413 +-0.441424 -0.882854 -0.160356 -0.443617 -0.882077 -0.158422 0.340910 0.078731 +-0.322870 -0.943208 -0.078193 -0.326365 -0.942045 -0.077303 0.352273 0.059048 +-0.205432 -0.978671 -0.000001 -0.209815 -0.977722 0.000000 0.363637 0.039365 +-0.096471 -0.992865 0.070089 -0.098697 -0.992523 0.071718 0.375001 0.019683 +-0.609547 -0.657519 -0.442856 -0.608386 -0.659108 -0.442030 0.295455 0.118096 +-0.525420 -0.760403 -0.381735 -0.524705 -0.761132 -0.381207 0.306819 0.098413 +-0.425323 -0.850654 -0.309011 -0.425306 -0.850642 -0.309000 0.318182 0.078731 +-0.315251 -0.920955 -0.229040 -0.316111 -0.920499 -0.229652 0.329546 0.059048 +-0.203181 -0.967950 -0.147618 -0.204840 -0.967406 -0.148808 0.340910 0.039365 +-0.096471 -0.992865 -0.070089 -0.098697 -0.992523 -0.071718 0.352273 0.019683 +0.000000 -1.000000 0.000000 0.000000 -1.000000 0.000000 0.363637 0.000000 +0.257937 -0.550685 -0.793860 0.257454 -0.552995 -0.792383 0.102274 0.137778 +0.232822 -0.657519 -0.716563 0.232368 -0.659108 -0.715201 0.113637 0.118096 +0.132684 -0.586334 -0.799129 0.129460 -0.589099 -0.797601 0.125001 0.137778 +0.200688 -0.760403 -0.617666 0.200415 -0.761132 -0.616810 0.125001 0.098413 +0.097915 -0.696561 -0.710785 0.094638 -0.698141 -0.709647 0.136365 0.118096 +0.162456 -0.850654 -0.499995 0.162450 -0.850642 -0.499985 0.136365 0.078731 +0.058249 -0.798552 -0.599101 0.055208 -0.798791 -0.599048 0.147728 0.098413 +0.120413 -0.920955 -0.370598 0.120731 -0.920499 -0.371593 0.147728 0.059048 +0.016097 -0.882855 -0.469370 0.013581 -0.882077 -0.470870 0.159092 0.078731 +0.077607 -0.967950 -0.238853 0.078219 -0.967406 -0.240791 0.159092 0.039365 +-0.025409 -0.943209 -0.331228 -0.027284 -0.942045 -0.334300 0.170455 0.059048 +-0.063484 -0.978671 -0.195377 -0.064821 -0.977722 -0.199561 0.181819 0.039365 +-0.009709 -0.614344 -0.788978 -0.011780 -0.616810 -0.786981 0.147728 0.137778 +-0.052790 -0.723612 -0.688185 -0.054506 -0.724662 -0.686911 0.159092 0.118096 +-0.162463 -0.629944 -0.759458 -0.162816 -0.632191 -0.757469 0.170455 0.137778 +-0.096780 -0.819913 -0.564249 -0.097964 -0.819605 -0.564440 0.170455 0.098413 +-0.210089 -0.733354 -0.646572 -0.209784 -0.734184 -0.645680 0.181819 0.118096 +-0.314971 -0.629943 -0.709905 -0.313486 -0.632191 -0.708518 0.193183 0.137778 +-0.138199 -0.894429 -0.425321 -0.138829 -0.893338 -0.427351 0.181819 0.078731 +-0.253368 -0.819912 -0.513370 -0.252510 -0.819605 -0.514237 0.193183 0.098413 +-0.361805 -0.723611 -0.587779 -0.359661 -0.724662 -0.587756 0.204546 0.118096 +-0.455903 -0.614344 -0.643999 -0.453047 -0.616810 -0.643605 0.215910 0.137778 +-0.174140 -0.943208 -0.282902 -0.174383 -0.942045 -0.286508 0.193183 0.059048 +-0.288918 -0.882854 -0.370264 -0.287759 -0.882077 -0.372936 0.204546 0.078731 +-0.399274 -0.798550 -0.450441 -0.396802 -0.798791 -0.452162 0.215910 0.098413 +-0.497011 -0.696560 -0.517480 -0.493698 -0.698111 -0.518479 0.227273 0.118096 +-0.577067 -0.586333 -0.568513 -0.573565 -0.589099 -0.569170 0.238637 0.137778 +-0.203181 -0.967950 -0.147618 -0.204840 -0.967406 -0.148808 0.204546 0.039365 +-0.315251 -0.920955 -0.229040 -0.316111 -0.920499 -0.229652 0.215910 0.059048 +-0.425323 -0.850654 -0.309011 -0.425306 -0.850642 -0.309000 0.227274 0.078731 +-0.525420 -0.760403 -0.381735 -0.524705 -0.761132 -0.381207 0.238637 0.098413 +-0.609547 -0.657519 -0.442856 -0.608386 -0.659108 -0.442030 0.250001 0.118096 +-0.675300 -0.550685 -0.490628 -0.674032 -0.552995 -0.489700 0.261364 0.137778 +3 0 1 2 +3 3 4 5 +3 6 7 8 +3 9 10 11 +3 12 13 14 +3 3 5 15 +3 16 17 18 +3 19 20 21 +3 22 23 24 +3 25 26 27 +3 3 15 28 +3 16 18 29 +3 19 21 30 +3 22 24 31 +3 25 27 32 +3 33 34 35 +3 36 37 38 +3 39 40 41 +3 42 43 44 +3 45 46 47 +3 48 49 50 +3 51 52 48 +3 53 54 51 +3 55 56 53 +3 57 58 55 +3 59 60 57 +3 47 61 59 +3 48 52 49 +3 52 62 49 +3 51 54 52 +3 54 63 52 +3 52 63 62 +3 63 64 62 +3 53 56 54 +3 56 65 54 +3 54 65 63 +3 65 66 63 +3 63 66 64 +3 66 67 64 +3 55 58 56 +3 58 68 56 +3 56 68 65 +3 68 69 65 +3 65 69 66 +3 69 70 66 +3 66 70 67 +3 70 71 67 +3 57 60 58 +3 60 72 58 +3 58 72 68 +3 72 73 68 +3 68 73 69 +3 73 74 69 +3 69 74 70 +3 74 75 70 +3 70 75 71 +3 75 76 71 +3 59 61 60 +3 61 77 60 +3 60 77 72 +3 77 78 72 +3 72 78 73 +3 78 79 73 +3 73 79 74 +3 79 80 74 +3 74 80 75 +3 80 81 75 +3 75 81 76 +3 81 82 76 +3 47 46 61 +3 46 83 61 +3 61 83 77 +3 83 84 77 +3 77 84 78 +3 84 85 78 +3 78 85 79 +3 85 86 79 +3 79 86 80 +3 86 87 80 +3 80 87 81 +3 87 88 81 +3 81 88 82 +3 88 42 82 +3 89 90 91 +3 92 93 89 +3 94 95 92 +3 96 97 94 +3 98 99 96 +3 100 101 98 +3 44 102 100 +3 89 93 90 +3 93 103 90 +3 92 95 93 +3 95 104 93 +3 93 104 103 +3 104 105 103 +3 94 97 95 +3 97 106 95 +3 95 106 104 +3 106 107 104 +3 104 107 105 +3 107 108 105 +3 96 99 97 +3 99 109 97 +3 97 109 106 +3 109 110 106 +3 106 110 107 +3 110 111 107 +3 107 111 108 +3 111 112 108 +3 98 101 99 +3 101 113 99 +3 99 113 109 +3 113 114 109 +3 109 114 110 +3 114 115 110 +3 110 115 111 +3 115 116 111 +3 111 116 112 +3 116 117 112 +3 100 102 101 +3 102 118 101 +3 101 118 113 +3 118 119 113 +3 113 119 114 +3 119 120 114 +3 114 120 115 +3 120 121 115 +3 115 121 116 +3 121 122 116 +3 116 122 117 +3 122 123 117 +3 44 43 102 +3 43 124 102 +3 102 124 118 +3 124 125 118 +3 118 125 119 +3 125 126 119 +3 119 126 120 +3 126 127 120 +3 120 127 121 +3 127 128 121 +3 121 128 122 +3 128 129 122 +3 122 129 123 +3 129 39 123 +3 130 131 132 +3 133 134 130 +3 135 136 133 +3 137 138 135 +3 139 140 137 +3 141 142 139 +3 41 143 141 +3 130 134 131 +3 134 144 131 +3 133 136 134 +3 136 145 134 +3 134 145 144 +3 145 146 144 +3 135 138 136 +3 138 147 136 +3 136 147 145 +3 147 148 145 +3 145 148 146 +3 148 149 146 +3 137 140 138 +3 140 150 138 +3 138 150 147 +3 150 151 147 +3 147 151 148 +3 151 152 148 +3 148 152 149 +3 152 153 149 +3 139 142 140 +3 142 154 140 +3 140 154 150 +3 154 155 150 +3 150 155 151 +3 155 156 151 +3 151 156 152 +3 156 157 152 +3 152 157 153 +3 157 158 153 +3 141 143 142 +3 143 159 142 +3 142 159 154 +3 159 160 154 +3 154 160 155 +3 160 161 155 +3 155 161 156 +3 161 162 156 +3 156 162 157 +3 162 163 157 +3 157 163 158 +3 163 164 158 +3 41 40 143 +3 40 165 143 +3 143 165 159 +3 165 166 159 +3 159 166 160 +3 166 167 160 +3 160 167 161 +3 167 168 161 +3 161 168 162 +3 168 169 162 +3 162 169 163 +3 169 170 163 +3 163 170 164 +3 170 171 164 +3 172 173 174 +3 175 176 172 +3 177 178 175 +3 179 180 177 +3 181 182 179 +3 183 184 181 +3 38 185 183 +3 172 176 173 +3 176 186 173 +3 175 178 176 +3 178 187 176 +3 176 187 186 +3 187 188 186 +3 177 180 178 +3 180 189 178 +3 178 189 187 +3 189 190 187 +3 187 190 188 +3 190 191 188 +3 179 182 180 +3 182 192 180 +3 180 192 189 +3 192 193 189 +3 189 193 190 +3 193 194 190 +3 190 194 191 +3 194 195 191 +3 181 184 182 +3 184 196 182 +3 182 196 192 +3 196 197 192 +3 192 197 193 +3 197 198 193 +3 193 198 194 +3 198 199 194 +3 194 199 195 +3 199 200 195 +3 183 185 184 +3 185 201 184 +3 184 201 196 +3 201 202 196 +3 196 202 197 +3 202 203 197 +3 197 203 198 +3 203 204 198 +3 198 204 199 +3 204 205 199 +3 199 205 200 +3 205 206 200 +3 38 37 185 +3 37 207 185 +3 185 207 201 +3 207 208 201 +3 201 208 202 +3 208 209 202 +3 202 209 203 +3 209 210 203 +3 203 210 204 +3 210 211 204 +3 204 211 205 +3 211 212 205 +3 205 212 206 +3 212 33 206 +3 213 214 215 +3 216 217 213 +3 218 219 216 +3 220 221 218 +3 222 223 220 +3 224 225 222 +3 35 226 224 +3 213 217 214 +3 217 227 214 +3 216 219 217 +3 219 228 217 +3 217 228 227 +3 228 229 227 +3 218 221 219 +3 221 230 219 +3 219 230 228 +3 230 231 228 +3 228 231 229 +3 231 232 229 +3 220 223 221 +3 223 233 221 +3 221 233 230 +3 233 234 230 +3 230 234 231 +3 234 235 231 +3 231 235 232 +3 235 236 232 +3 222 225 223 +3 225 237 223 +3 223 237 233 +3 237 238 233 +3 233 238 234 +3 238 239 234 +3 234 239 235 +3 239 240 235 +3 235 240 236 +3 240 241 236 +3 224 226 225 +3 226 242 225 +3 225 242 237 +3 242 243 237 +3 237 243 238 +3 243 244 238 +3 238 244 239 +3 244 245 239 +3 239 245 240 +3 245 246 240 +3 240 246 241 +3 246 247 241 +3 35 34 226 +3 34 248 226 +3 226 248 242 +3 248 249 242 +3 242 249 243 +3 249 250 243 +3 243 250 244 +3 250 251 244 +3 244 251 245 +3 251 252 245 +3 245 252 246 +3 252 253 246 +3 246 253 247 +3 253 45 247 +3 254 46 45 +3 255 256 254 +3 257 258 255 +3 259 260 257 +3 261 262 259 +3 263 264 261 +3 32 265 263 +3 254 256 46 +3 256 83 46 +3 255 258 256 +3 258 266 256 +3 256 266 83 +3 266 84 83 +3 257 260 258 +3 260 267 258 +3 258 267 266 +3 267 268 266 +3 266 268 84 +3 268 85 84 +3 259 262 260 +3 262 269 260 +3 260 269 267 +3 269 270 267 +3 267 270 268 +3 270 271 268 +3 268 271 85 +3 271 86 85 +3 261 264 262 +3 264 272 262 +3 262 272 269 +3 272 273 269 +3 269 273 270 +3 273 274 270 +3 270 274 271 +3 274 275 271 +3 271 275 86 +3 275 87 86 +3 263 265 264 +3 265 276 264 +3 264 276 272 +3 276 277 272 +3 272 277 273 +3 277 278 273 +3 273 278 274 +3 278 279 274 +3 274 279 275 +3 279 280 275 +3 275 280 87 +3 280 88 87 +3 32 27 265 +3 27 281 265 +3 265 281 276 +3 281 282 276 +3 276 282 277 +3 282 283 277 +3 277 283 278 +3 283 284 278 +3 278 284 279 +3 284 285 279 +3 279 285 280 +3 285 286 280 +3 280 286 88 +3 286 42 88 +3 287 43 42 +3 288 289 287 +3 290 291 288 +3 292 293 290 +3 294 295 292 +3 296 297 294 +3 31 298 296 +3 287 289 43 +3 289 124 43 +3 288 291 289 +3 291 299 289 +3 289 299 124 +3 299 125 124 +3 290 293 291 +3 293 300 291 +3 291 300 299 +3 300 301 299 +3 299 301 125 +3 301 126 125 +3 292 295 293 +3 295 302 293 +3 293 302 300 +3 302 303 300 +3 300 303 301 +3 303 304 301 +3 301 304 126 +3 304 127 126 +3 294 297 295 +3 297 305 295 +3 295 305 302 +3 305 306 302 +3 302 306 303 +3 306 307 303 +3 303 307 304 +3 307 308 304 +3 304 308 127 +3 308 128 127 +3 296 298 297 +3 298 309 297 +3 297 309 305 +3 309 310 305 +3 305 310 306 +3 310 311 306 +3 306 311 307 +3 311 312 307 +3 307 312 308 +3 312 313 308 +3 308 313 128 +3 313 129 128 +3 31 24 298 +3 24 314 298 +3 298 314 309 +3 314 315 309 +3 309 315 310 +3 315 316 310 +3 310 316 311 +3 316 317 311 +3 311 317 312 +3 317 318 312 +3 312 318 313 +3 318 319 313 +3 313 319 129 +3 319 39 129 +3 320 40 39 +3 321 322 320 +3 323 324 321 +3 325 326 323 +3 327 328 325 +3 329 330 327 +3 30 331 329 +3 320 322 40 +3 322 165 40 +3 321 324 322 +3 324 332 322 +3 322 332 165 +3 332 166 165 +3 323 326 324 +3 326 333 324 +3 324 333 332 +3 333 334 332 +3 332 334 166 +3 334 167 166 +3 325 328 326 +3 328 335 326 +3 326 335 333 +3 335 336 333 +3 333 336 334 +3 336 337 334 +3 334 337 167 +3 337 168 167 +3 327 330 328 +3 330 338 328 +3 328 338 335 +3 338 339 335 +3 335 339 336 +3 339 340 336 +3 336 340 337 +3 340 341 337 +3 337 341 168 +3 341 169 168 +3 329 331 330 +3 331 342 330 +3 330 342 338 +3 342 343 338 +3 338 343 339 +3 343 344 339 +3 339 344 340 +3 344 345 340 +3 340 345 341 +3 345 346 341 +3 341 346 169 +3 346 170 169 +3 30 21 331 +3 21 347 331 +3 331 347 342 +3 347 348 342 +3 342 348 343 +3 348 349 343 +3 343 349 344 +3 349 350 344 +3 344 350 345 +3 350 351 345 +3 345 351 346 +3 351 352 346 +3 346 352 170 +3 352 171 170 +3 353 37 36 +3 354 355 353 +3 356 357 354 +3 358 359 356 +3 360 361 358 +3 362 363 360 +3 29 364 362 +3 353 355 37 +3 355 207 37 +3 354 357 355 +3 357 365 355 +3 355 365 207 +3 365 208 207 +3 356 359 357 +3 359 366 357 +3 357 366 365 +3 366 367 365 +3 365 367 208 +3 367 209 208 +3 358 361 359 +3 361 368 359 +3 359 368 366 +3 368 369 366 +3 366 369 367 +3 369 370 367 +3 367 370 209 +3 370 210 209 +3 360 363 361 +3 363 371 361 +3 361 371 368 +3 371 372 368 +3 368 372 369 +3 372 373 369 +3 369 373 370 +3 373 374 370 +3 370 374 210 +3 374 211 210 +3 362 364 363 +3 364 375 363 +3 363 375 371 +3 375 376 371 +3 371 376 372 +3 376 377 372 +3 372 377 373 +3 377 378 373 +3 373 378 374 +3 378 379 374 +3 374 379 211 +3 379 212 211 +3 29 18 364 +3 18 380 364 +3 364 380 375 +3 380 381 375 +3 375 381 376 +3 381 382 376 +3 376 382 377 +3 382 383 377 +3 377 383 378 +3 383 384 378 +3 378 384 379 +3 384 385 379 +3 379 385 212 +3 385 33 212 +3 386 34 33 +3 387 388 386 +3 389 390 387 +3 391 392 389 +3 393 394 391 +3 395 396 393 +3 28 397 395 +3 386 388 34 +3 388 248 34 +3 387 390 388 +3 390 398 388 +3 388 398 248 +3 398 249 248 +3 389 392 390 +3 392 399 390 +3 390 399 398 +3 399 400 398 +3 398 400 249 +3 400 250 249 +3 391 394 392 +3 394 401 392 +3 392 401 399 +3 401 402 399 +3 399 402 400 +3 402 403 400 +3 400 403 250 +3 403 251 250 +3 393 396 394 +3 396 404 394 +3 394 404 401 +3 404 405 401 +3 401 405 402 +3 405 406 402 +3 402 406 403 +3 406 407 403 +3 403 407 251 +3 407 252 251 +3 395 397 396 +3 397 408 396 +3 396 408 404 +3 408 409 404 +3 404 409 405 +3 409 410 405 +3 405 410 406 +3 410 411 406 +3 406 411 407 +3 411 412 407 +3 407 412 252 +3 412 253 252 +3 28 15 397 +3 15 413 397 +3 397 413 408 +3 413 414 408 +3 408 414 409 +3 414 415 409 +3 409 415 410 +3 415 416 410 +3 410 416 411 +3 416 417 411 +3 411 417 412 +3 417 418 412 +3 412 418 253 +3 418 45 253 +3 286 287 42 +3 285 419 286 +3 284 420 285 +3 283 421 284 +3 282 422 283 +3 281 423 282 +3 27 424 281 +3 286 419 287 +3 419 288 287 +3 285 420 419 +3 420 425 419 +3 419 425 288 +3 425 290 288 +3 284 421 420 +3 421 426 420 +3 420 426 425 +3 426 427 425 +3 425 427 290 +3 427 292 290 +3 283 422 421 +3 422 428 421 +3 421 428 426 +3 428 429 426 +3 426 429 427 +3 429 430 427 +3 427 430 292 +3 430 294 292 +3 282 423 422 +3 423 431 422 +3 422 431 428 +3 431 432 428 +3 428 432 429 +3 432 433 429 +3 429 433 430 +3 433 434 430 +3 430 434 294 +3 434 296 294 +3 281 424 423 +3 424 435 423 +3 423 435 431 +3 435 436 431 +3 431 436 432 +3 436 437 432 +3 432 437 433 +3 437 438 433 +3 433 438 434 +3 438 439 434 +3 434 439 296 +3 439 31 296 +3 27 26 424 +3 26 440 424 +3 424 440 435 +3 440 441 435 +3 435 441 436 +3 441 442 436 +3 436 442 437 +3 442 443 437 +3 437 443 438 +3 443 444 438 +3 438 444 439 +3 444 445 439 +3 439 445 31 +3 445 22 31 +3 319 320 39 +3 318 446 319 +3 317 447 318 +3 316 448 317 +3 315 449 316 +3 314 450 315 +3 24 451 314 +3 319 446 320 +3 446 321 320 +3 318 447 446 +3 447 452 446 +3 446 452 321 +3 452 323 321 +3 317 448 447 +3 448 453 447 +3 447 453 452 +3 453 454 452 +3 452 454 323 +3 454 325 323 +3 316 449 448 +3 449 455 448 +3 448 455 453 +3 455 456 453 +3 453 456 454 +3 456 457 454 +3 454 457 325 +3 457 327 325 +3 315 450 449 +3 450 458 449 +3 449 458 455 +3 458 459 455 +3 455 459 456 +3 459 460 456 +3 456 460 457 +3 460 461 457 +3 457 461 327 +3 461 329 327 +3 314 451 450 +3 451 462 450 +3 450 462 458 +3 462 463 458 +3 458 463 459 +3 463 464 459 +3 459 464 460 +3 464 465 460 +3 460 465 461 +3 465 466 461 +3 461 466 329 +3 466 30 329 +3 24 23 451 +3 23 467 451 +3 451 467 462 +3 467 468 462 +3 462 468 463 +3 468 469 463 +3 463 469 464 +3 469 470 464 +3 464 470 465 +3 470 471 465 +3 465 471 466 +3 471 472 466 +3 466 472 30 +3 472 19 30 +3 352 473 171 +3 351 474 352 +3 350 475 351 +3 349 476 350 +3 348 477 349 +3 347 478 348 +3 21 479 347 +3 352 474 473 +3 474 480 473 +3 351 475 474 +3 475 481 474 +3 474 481 480 +3 481 482 480 +3 350 476 475 +3 476 483 475 +3 475 483 481 +3 483 484 481 +3 481 484 482 +3 484 485 482 +3 349 477 476 +3 477 486 476 +3 476 486 483 +3 486 487 483 +3 483 487 484 +3 487 488 484 +3 484 488 485 +3 488 489 485 +3 348 478 477 +3 478 490 477 +3 477 490 486 +3 490 491 486 +3 486 491 487 +3 491 492 487 +3 487 492 488 +3 492 493 488 +3 488 493 489 +3 493 494 489 +3 347 479 478 +3 479 495 478 +3 478 495 490 +3 495 496 490 +3 490 496 491 +3 496 497 491 +3 491 497 492 +3 497 498 492 +3 492 498 493 +3 498 499 493 +3 493 499 494 +3 499 500 494 +3 21 20 479 +3 20 501 479 +3 479 501 495 +3 501 502 495 +3 495 502 496 +3 502 503 496 +3 496 503 497 +3 503 504 497 +3 497 504 498 +3 504 505 498 +3 498 505 499 +3 505 506 499 +3 499 506 500 +3 506 507 500 +3 385 386 33 +3 384 508 385 +3 383 509 384 +3 382 510 383 +3 381 511 382 +3 380 512 381 +3 18 513 380 +3 385 508 386 +3 508 387 386 +3 384 509 508 +3 509 514 508 +3 508 514 387 +3 514 389 387 +3 383 510 509 +3 510 515 509 +3 509 515 514 +3 515 516 514 +3 514 516 389 +3 516 391 389 +3 382 511 510 +3 511 517 510 +3 510 517 515 +3 517 518 515 +3 515 518 516 +3 518 519 516 +3 516 519 391 +3 519 393 391 +3 381 512 511 +3 512 520 511 +3 511 520 517 +3 520 521 517 +3 517 521 518 +3 521 522 518 +3 518 522 519 +3 522 523 519 +3 519 523 393 +3 523 395 393 +3 380 513 512 +3 513 524 512 +3 512 524 520 +3 524 525 520 +3 520 525 521 +3 525 526 521 +3 521 526 522 +3 526 527 522 +3 522 527 523 +3 527 528 523 +3 523 528 395 +3 528 28 395 +3 18 17 513 +3 17 529 513 +3 513 529 524 +3 529 530 524 +3 524 530 525 +3 530 531 525 +3 525 531 526 +3 531 532 526 +3 526 532 527 +3 532 533 527 +3 527 533 528 +3 533 534 528 +3 528 534 28 +3 534 3 28 +3 418 254 45 +3 417 535 418 +3 416 536 417 +3 415 537 416 +3 414 538 415 +3 413 539 414 +3 15 540 413 +3 418 535 254 +3 535 255 254 +3 417 536 535 +3 536 541 535 +3 535 541 255 +3 541 257 255 +3 416 537 536 +3 537 542 536 +3 536 542 541 +3 542 543 541 +3 541 543 257 +3 543 259 257 +3 415 538 537 +3 538 544 537 +3 537 544 542 +3 544 545 542 +3 542 545 543 +3 545 546 543 +3 543 546 259 +3 546 261 259 +3 414 539 538 +3 539 547 538 +3 538 547 544 +3 547 548 544 +3 544 548 545 +3 548 549 545 +3 545 549 546 +3 549 550 546 +3 546 550 261 +3 550 263 261 +3 413 540 539 +3 540 551 539 +3 539 551 547 +3 551 552 547 +3 547 552 548 +3 552 553 548 +3 548 553 549 +3 553 554 549 +3 549 554 550 +3 554 555 550 +3 550 555 263 +3 555 32 263 +3 15 5 540 +3 5 556 540 +3 540 556 551 +3 556 557 551 +3 551 557 552 +3 557 558 552 +3 552 558 553 +3 558 559 553 +3 553 559 554 +3 559 560 554 +3 554 560 555 +3 560 561 555 +3 555 561 32 +3 561 25 32 +3 562 26 25 +3 563 564 562 +3 565 566 563 +3 567 568 565 +3 569 570 567 +3 571 572 569 +3 14 573 571 +3 562 564 26 +3 564 440 26 +3 563 566 564 +3 566 574 564 +3 564 574 440 +3 574 441 440 +3 565 568 566 +3 568 575 566 +3 566 575 574 +3 575 576 574 +3 574 576 441 +3 576 442 441 +3 567 570 568 +3 570 577 568 +3 568 577 575 +3 577 578 575 +3 575 578 576 +3 578 579 576 +3 576 579 442 +3 579 443 442 +3 569 572 570 +3 572 580 570 +3 570 580 577 +3 580 581 577 +3 577 581 578 +3 581 582 578 +3 578 582 579 +3 582 583 579 +3 579 583 443 +3 583 444 443 +3 571 573 572 +3 573 584 572 +3 572 584 580 +3 584 585 580 +3 580 585 581 +3 585 586 581 +3 581 586 582 +3 586 587 582 +3 582 587 583 +3 587 588 583 +3 583 588 444 +3 588 445 444 +3 14 13 573 +3 13 589 573 +3 573 589 584 +3 589 590 584 +3 584 590 585 +3 590 591 585 +3 585 591 586 +3 591 592 586 +3 586 592 587 +3 592 593 587 +3 587 593 588 +3 593 594 588 +3 588 594 445 +3 594 22 445 +3 595 23 22 +3 596 597 595 +3 598 599 596 +3 600 601 598 +3 602 603 600 +3 604 605 602 +3 11 606 604 +3 595 597 23 +3 597 467 23 +3 596 599 597 +3 599 607 597 +3 597 607 467 +3 607 468 467 +3 598 601 599 +3 601 608 599 +3 599 608 607 +3 608 609 607 +3 607 609 468 +3 609 469 468 +3 600 603 601 +3 603 610 601 +3 601 610 608 +3 610 611 608 +3 608 611 609 +3 611 612 609 +3 609 612 469 +3 612 470 469 +3 602 605 603 +3 605 613 603 +3 603 613 610 +3 613 614 610 +3 610 614 611 +3 614 615 611 +3 611 615 612 +3 615 616 612 +3 612 616 470 +3 616 471 470 +3 604 606 605 +3 606 617 605 +3 605 617 613 +3 617 618 613 +3 613 618 614 +3 618 619 614 +3 614 619 615 +3 619 620 615 +3 615 620 616 +3 620 621 616 +3 616 621 471 +3 621 472 471 +3 11 10 606 +3 10 622 606 +3 606 622 617 +3 622 623 617 +3 617 623 618 +3 623 624 618 +3 618 624 619 +3 624 625 619 +3 619 625 620 +3 625 626 620 +3 620 626 621 +3 626 627 621 +3 621 627 472 +3 627 19 472 +3 628 20 19 +3 629 630 628 +3 631 632 629 +3 633 634 631 +3 635 636 633 +3 637 638 635 +3 8 639 637 +3 628 630 20 +3 630 501 20 +3 629 632 630 +3 632 640 630 +3 630 640 501 +3 640 502 501 +3 631 634 632 +3 634 641 632 +3 632 641 640 +3 641 642 640 +3 640 642 502 +3 642 503 502 +3 633 636 634 +3 636 643 634 +3 634 643 641 +3 643 644 641 +3 641 644 642 +3 644 645 642 +3 642 645 503 +3 645 504 503 +3 635 638 636 +3 638 646 636 +3 636 646 643 +3 646 647 643 +3 643 647 644 +3 647 648 644 +3 644 648 645 +3 648 649 645 +3 645 649 504 +3 649 505 504 +3 637 639 638 +3 639 650 638 +3 638 650 646 +3 650 651 646 +3 646 651 647 +3 651 652 647 +3 647 652 648 +3 652 653 648 +3 648 653 649 +3 653 654 649 +3 649 654 505 +3 654 506 505 +3 8 7 639 +3 7 655 639 +3 639 655 650 +3 655 656 650 +3 650 656 651 +3 656 657 651 +3 651 657 652 +3 657 658 652 +3 652 658 653 +3 658 659 653 +3 653 659 654 +3 659 660 654 +3 654 660 506 +3 660 507 506 +3 561 661 25 +3 560 662 561 +3 559 663 560 +3 558 664 559 +3 557 665 558 +3 556 666 557 +3 5 667 556 +3 561 662 661 +3 662 668 661 +3 560 663 662 +3 663 669 662 +3 662 669 668 +3 669 670 668 +3 559 664 663 +3 664 671 663 +3 663 671 669 +3 671 672 669 +3 669 672 670 +3 672 673 670 +3 558 665 664 +3 665 674 664 +3 664 674 671 +3 674 675 671 +3 671 675 672 +3 675 676 672 +3 672 676 673 +3 676 677 673 +3 557 666 665 +3 666 678 665 +3 665 678 674 +3 678 679 674 +3 674 679 675 +3 679 680 675 +3 675 680 676 +3 680 681 676 +3 676 681 677 +3 681 682 677 +3 556 667 666 +3 667 683 666 +3 666 683 678 +3 683 684 678 +3 678 684 679 +3 684 685 679 +3 679 685 680 +3 685 686 680 +3 680 686 681 +3 686 687 681 +3 681 687 682 +3 687 688 682 +3 5 4 667 +3 4 689 667 +3 667 689 683 +3 689 690 683 +3 683 690 684 +3 690 691 684 +3 684 691 685 +3 691 692 685 +3 685 692 686 +3 692 693 686 +3 686 693 687 +3 693 694 687 +3 687 694 688 +3 694 695 688 +3 696 17 16 +3 697 698 696 +3 699 700 697 +3 701 702 699 +3 703 704 701 +3 705 706 703 +3 2 707 705 +3 696 698 17 +3 698 529 17 +3 697 700 698 +3 700 708 698 +3 698 708 529 +3 708 530 529 +3 699 702 700 +3 702 709 700 +3 700 709 708 +3 709 710 708 +3 708 710 530 +3 710 531 530 +3 701 704 702 +3 704 711 702 +3 702 711 709 +3 711 712 709 +3 709 712 710 +3 712 713 710 +3 710 713 531 +3 713 532 531 +3 703 706 704 +3 706 714 704 +3 704 714 711 +3 714 715 711 +3 711 715 712 +3 715 716 712 +3 712 716 713 +3 716 717 713 +3 713 717 532 +3 717 533 532 +3 705 707 706 +3 707 718 706 +3 706 718 714 +3 718 719 714 +3 714 719 715 +3 719 720 715 +3 715 720 716 +3 720 721 716 +3 716 721 717 +3 721 722 717 +3 717 722 533 +3 722 534 533 +3 2 1 707 +3 1 723 707 +3 707 723 718 +3 723 724 718 +3 718 724 719 +3 724 725 719 +3 719 725 720 +3 725 726 720 +3 720 726 721 +3 726 727 721 +3 721 727 722 +3 727 728 722 +3 722 728 534 +3 728 3 534 diff --git a/shaders/pbd.comp b/shaders/pbd.comp index 14791b8..35e858c 100644 --- a/shaders/pbd.comp +++ b/shaders/pbd.comp @@ -15,6 +15,7 @@ struct Edge { uint a; uint b; float restLength; + float compliance; }; struct Tetrahedron { @@ -23,6 +24,7 @@ struct Tetrahedron { uint c; uint d; float restVolume; + float compliance; }; @@ -62,8 +64,32 @@ layout (push_constant, std430) uniform PushConstants { void preSolve(uint vID){ vertices[vID].prevPosition = vertices[vID].position; - // vertices[vID].velocity += dt * gravity; + if (vertices[vID].w == 0){ + return; + } + vertices[vID].velocity += dt * gravity; vertices[vID].position += dt * vertices[vID].velocity; + + float dist = vertices[vID].position.y + 5; + if (dist < 0){ + vec3 normal = vec3(0, 1, 0); + vertices[vID].position -= dist * normal; + + // contact friction + { + float mStatic = 1; + float mKinetic = 1; + + vec3 a = vertices[vID].position - vertices[vID].prevPosition; + vec3 D = a - dot(a, normal) / dot(normal, normal) * normal; + + vec3 add = -D; + if (length(D) >= mStatic * -dist){ + add *= min(mKinetic * -dist / length(D), 1); + } + vertices[vID].position += add; + } + } } void solveEdge(uint eID){ @@ -75,7 +101,7 @@ void solveEdge(uint eID){ vec3 diff = v1.position - v2.position; float currentLength = length(diff); - float alpha = 0.3 / dt / dt; + float alpha = edge.compliance / dt / dt; float s = -(currentLength - edge.restLength) / (v1.w + v2.w + alpha); @@ -104,26 +130,27 @@ void solveTetrahedron(uint tetID){ float volumeError = dot(d - a, cross(b - a, c - a)) / 6 - tetrahedron.restVolume; - vec3 ga = cross(d - b, c - b) / 6; - vec3 gb = cross(c - a, d - a) / 6; - vec3 gc = cross(d - a, b - a) / 6; - vec3 gd = cross(b - a, c - a) / 6; + vec3 ga = cross(d - b, c - b) / 6; + vec3 gb = cross(c - a, d - a) / 6; + vec3 gc = cross(d - a, b - a) / 6; + vec3 gd = cross(b - a, c - a) / 6; + + float w = + va.w * dot(ga, ga) + + vb.w * dot(gb, gb) + + vc.w * dot(gc, gc) + + vd.w * dot(gd, gd); - float w = - va.w * dot(ga, ga) + - vb.w * dot(gb, gb) + - vc.w * dot(gc, gc) + - vd.w * dot(gd, gd); + if (w == 0) return; - if (w == 0) return; + float alpha = tetrahedron.compliance / dt / dt; - float alpha = 0 / dt / dt; - float s = -volumeError / (w + alpha); + float s = -volumeError / (w + alpha); - vec3 addA = s * ga * va.w; - vec3 addB = s * gb * vb.w; - vec3 addC = s * gc * vc.w; - vec3 addD = s * gd * vd.w; + vec3 addA = s * ga * va.w; + vec3 addB = s * gb * vb.w; + vec3 addC = s * gc * vc.w; + vec3 addD = s * gd * vd.w; vertices[tetrahedron.a].position += addA; vertices[tetrahedron.b].position += addB; @@ -132,6 +159,9 @@ void solveTetrahedron(uint tetID){ } void postSolve(uint vID){ + if (vertices[vID].w == 0){ + return; + } vertices[vID].velocity = (vertices[vID].position - vertices[vID].prevPosition) / dt; } @@ -146,9 +176,8 @@ void main() { case 1: if (id < edgePartition.size){ solveEdge(id + edgePartition.offset); - } - if (id < tetrahedronPartition.size){ - solveTetrahedron(id + tetrahedronPartition.offset); + } else if (id - edgePartition.size < tetrahedronPartition.size){ + solveTetrahedron(id - edgePartition.size + tetrahedronPartition.offset); } break; case 2: diff --git a/src/constraints.cpp b/src/constraints.cpp index fb80a56..09aee67 100644 --- a/src/constraints.cpp +++ b/src/constraints.cpp @@ -11,13 +11,13 @@ void ConstraintData::writePartitionInformation() { } void DistanceConstraint::writeData(ConstraintData &dataLists) const { - dataLists.edges.push_back(Edge(a, b, length)); + dataLists.edges.push_back(Edge(a, b, length, compliance)); } void AreaConstraint::writeData(ConstraintData &dataLists) const { - dataLists.triangles.push_back(Triangle(Face(a, b, c), area)); + dataLists.triangles.push_back(Triangle(Face(a, b, c), area, compliance)); } void VolumeConstraint::writeData(ConstraintData &dataLists) const { - dataLists.tetrahedra.push_back(Tetrahedron(a, b, c, d, volume)); + dataLists.tetrahedra.push_back(Tetrahedron(a, b, c, d, volume, compliance)); } diff --git a/src/simulation.cpp b/src/simulation.cpp index 23ce427..2d144bb 100644 --- a/src/simulation.cpp +++ b/src/simulation.cpp @@ -48,21 +48,21 @@ Simulation::Simulation() { } void Simulation::createMeshBuffers() { - Mesh sphere("models/sphere_medium.ply"); + Mesh sphere("models/icosphere.ply"); Mesh bunny("models/bunny_medium.ply"); - auto body = std::make_unique(&sphere, 0.3f); + auto body = std::make_unique(&sphere, 1.f / 50); - for (size_t i = 0; i < 40; i++){ + for (size_t i = 0; i < 10; i++){ auto copy = std::make_unique(*body.get()); copy->applyVertexOffset({i * 2, 0, 0}); softBodies.push_back(std::move(copy)); } - body = std::make_unique(&bunny, 0.3f); - for (size_t i = 0; i < 80; i++){ + body = std::make_unique(&bunny, 1.f / 3); + for (size_t i = 0; i < 5; i++){ auto copy = std::make_unique(*body.get()); - copy->applyVertexOffset({i * 2, 2, 0}); + copy->applyVertexOffset({i * 2, 0, 2}); softBodies.push_back(std::move(copy)); } @@ -209,7 +209,7 @@ void Simulation::recordComputeCommands(VkCommandBuffer cmdBuffer) { auto edgePartition = constraintData.edgePartitions[partition]; auto tetrahedronPartition = constraintData.tetrahedronPartitions[partition]; - if (edgePartition.size == 0 && tetrahedronPartition.size == 0) + if (edgePartition.size + tetrahedronPartition.size == 0) continue; ConstraintData::Partition partitions[2] = {edgePartition, tetrahedronPartition}; @@ -218,7 +218,7 @@ void Simulation::recordComputeCommands(VkCommandBuffer cmdBuffer) { offsetof(PBDPushData, edgePartition), sizeof(partitions), partitions); - uint32_t invocations = getGroupCount(std::max(edgePartition.size, tetrahedronPartition.size), BlOCK_SIZE); + uint32_t invocations = getGroupCount(edgePartition.size + tetrahedronPartition.size, BlOCK_SIZE); vkCmdDispatch(cmdBuffer, invocations, 1, 1); vkCmdPipelineBarrier(cmdBuffer, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, 0, 1, &barrier, 0, nullptr, 0, nullptr); diff --git a/src/soft_body.cpp b/src/soft_body.cpp index 4adf313..4cad556 100644 --- a/src/soft_body.cpp +++ b/src/soft_body.cpp @@ -7,9 +7,9 @@ #include #include -SoftBody::SoftBody(Mesh* mesh, float compliance) : compliance(compliance) { +SoftBody::SoftBody(Mesh* mesh, float edgeCompliance, float triangleCompliance, float tetrahedronCompliance) { tetgenbehavior behavior; - behavior.parse_commandline(std::string("pYQfeza0.1").data()); + behavior.parse_commandline(std::string("pYQfeza1").data()); tetgenio in; in.numberofpoints = static_cast(mesh->vertices.size()); @@ -67,7 +67,7 @@ SoftBody::SoftBody(Mesh* mesh, float compliance) : compliance(compliance) { uint32_t c = out.trifacelist[i * 3 + 2]; if (out.trifacemarkerlist[i] != 0) faces.emplace_back(Face(a, b, c)); - constraintData.triangles.emplace_back(Triangle(Face(a, b, c), 0)); + constraintData.triangles.emplace_back(Triangle(Face(a, b, c), 0, triangleCompliance)); } faces.shrink_to_fit(); @@ -76,7 +76,7 @@ SoftBody::SoftBody(Mesh* mesh, float compliance) : compliance(compliance) { uint32_t a = out.edgelist[i * 2 + 0]; uint32_t b = out.edgelist[i * 2 + 1]; float length = glm::length(vertices[a].position - vertices[b].position); - constraintData.edges.emplace_back(Edge(a, b, length)); + constraintData.edges.emplace_back(Edge(a, b, length, edgeCompliance)); } float density = 1; @@ -104,7 +104,7 @@ SoftBody::SoftBody(Mesh* mesh, float compliance) : compliance(compliance) { masses[c] += pointMass; masses[d] += pointMass; - constraintData.tetrahedra.emplace_back(Tetrahedron(a, b, c, d, volume)); + constraintData.tetrahedra.emplace_back(Tetrahedron(a, b, c, d, volume, tetrahedronCompliance)); } for (size_t i = 0; i < masses.size(); i++){ @@ -120,14 +120,14 @@ void SoftBody::applyVertexOffset(const glm::vec3 &offset) { } } -vector> createPartitions(const Graph &graph){ +vector> createPartitions(const Graph &graph, const vector &ordering){ unordered_map constraintToColor; vector> colorToConstraintList; - for (const auto& [constraint, adjacentList] : graph){ + for (const Constraint * constraint : ordering){ unordered_set forbiddenColors; - for (auto adjacent : adjacentList) + for (auto adjacent : graph.at(constraint)) if (constraintToColor.contains(adjacent)) forbiddenColors.insert(constraintToColor.at(adjacent)); @@ -154,6 +154,41 @@ vector> createPartitions(const Graph &graph){ return colorToConstraintList; } +vector smallestLastOrdering(const Graph &graph) { + vector ordering(graph.size()); + + unordered_map> degreesToConstraints; + unordered_map constraintsToDegrees; + for (const auto &[constraint, adjacent] : graph) { + degreesToConstraints[adjacent.size()].insert(constraint); + constraintsToDegrees[constraint] = adjacent.size(); + } + + + for (auto iter = ordering.rbegin(); iter != ordering.rend(); iter++) { + size_t minDegree = 0; + while (degreesToConstraints[minDegree].empty()) + minDegree++; + const Constraint * minConstraint = *degreesToConstraints[minDegree].begin(); + degreesToConstraints[minDegree].erase(minConstraint); + constraintsToDegrees.erase(minConstraint); + + for (const auto &neighbor: graph.at(minConstraint)) { + if (constraintsToDegrees.contains(neighbor)) { + size_t oldDegree = constraintsToDegrees[neighbor]; + size_t newDegree = oldDegree - 1; + + constraintsToDegrees[neighbor] = newDegree; + degreesToConstraints[oldDegree].erase(neighbor); + degreesToConstraints[newDegree].insert(neighbor); + } + } + + *iter = minConstraint; + } + return ordering; +} + void SoftBody::splitConstraints() { omp_set_num_threads(omp_get_num_procs() - 2); @@ -210,7 +245,9 @@ void SoftBody::splitConstraints() { }); } - vector> partitions = createPartitions(graph); + auto ordering = smallestLastOrdering(graph); + + vector> partitions = createPartitions(graph, ordering); constraintData.partitionCount = partitions.size(); reorderConstraintIndices(partitions); @@ -228,8 +265,4 @@ void SoftBody::reorderConstraintIndices(const vector