diff --git a/Geo/GFace.cpp b/Geo/GFace.cpp index ad73f425987a90f15fd5af91bfb7af6d5126b1d7..4ab4e4c43f040c69345fc8381b83b179a9a56898 100644 --- a/Geo/GFace.cpp +++ b/Geo/GFace.cpp @@ -1,4 +1,4 @@ -// $Id: GFace.cpp,v 1.35 2007-08-03 00:44:28 geuzaine Exp $ +// $Id: GFace.cpp,v 1.36 2007-09-19 19:03:01 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -133,6 +133,28 @@ void GFace::deleteMeshPartitions() quadrangles[i]->setPartition(0); } +std::string GFace::getAdditionalInfoString() +{ + if(l_edges.empty()) return std::string(""); + + char tmp[256]; + if(l_edges.size() > 10){ + sprintf(tmp, "{%d, ..., %d}", (*l_edges.begin())->tag(), (*l_edges.end())->tag()); + return std::string(tmp); + } + + std::string str(""); + std::list<GEdge*>::const_iterator it = l_edges.begin(); + str += "{"; + for(; it != l_edges.end(); it++){ + if(it != l_edges.begin()) str += ","; + sprintf(tmp, "%d", (*it)->tag()); + str += tmp; + } + str += "}"; + return str; +} + void GFace::computeMeanPlane() { std::vector<SPoint3> pts; diff --git a/Geo/GFace.h b/Geo/GFace.h index cb1d1847c117ef221f82b03da1a9596d05e7f6cf..6305156aebf818388241f033099aff2a9175afb7 100644 --- a/Geo/GFace.h +++ b/Geo/GFace.h @@ -144,6 +144,9 @@ class GFace : public GEntity // Delete the mesh partitions defined on this face. void deleteMeshPartitions(); + // Returns a type-specific additional information string + virtual std::string getAdditionalInfoString(); + // Recompute the mean plane of the surface from a list of points void computeMeanPlane(const std::vector<MVertex*> &points); void computeMeanPlane(const std::vector<SPoint3> &points); diff --git a/Geo/GRegion.cpp b/Geo/GRegion.cpp index 7d27487930f96a5a852a83399a722f15901c5a60..c1782a70a981c896e51833e153840c7055b71018 100644 --- a/Geo/GRegion.cpp +++ b/Geo/GRegion.cpp @@ -1,4 +1,4 @@ -// $Id: GRegion.cpp,v 1.17 2007-09-04 13:47:01 remacle Exp $ +// $Id: GRegion.cpp,v 1.18 2007-09-19 19:03:01 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -117,6 +117,28 @@ void GRegion::deleteMeshPartitions() pyramids[i]->setPartition(0); } +std::string GRegion::getAdditionalInfoString() +{ + if(l_faces.empty()) return std::string(""); + + char tmp[256]; + if(l_faces.size() > 10){ + sprintf(tmp, "{%d, ..., %d}", (*l_faces.begin())->tag(), (*l_faces.end())->tag()); + return std::string(tmp); + } + + std::string str(""); + std::list<GFace*>::const_iterator it = l_faces.begin(); + str += "{"; + for(; it != l_faces.end(); it++){ + if(it != l_faces.begin()) str += ","; + sprintf(tmp, "%d", (*it)->tag()); + str += tmp; + } + str += "}"; + return str; +} + std::list<GEdge*> GRegion::edges() const { std::list<GEdge*> e; diff --git a/Geo/GRegion.h b/Geo/GRegion.h index 8a6cda9a180dc69d790811b909e235def492aded..40bdff76179d39300a2a3890a81e5e098da60b53 100644 --- a/Geo/GRegion.h +++ b/Geo/GRegion.h @@ -52,6 +52,9 @@ class GRegion : public GEntity { // Delete the mesh partitions defined on this region. void deleteMeshPartitions(); + // Returns a type-specific additional information string + virtual std::string getAdditionalInfoString(); + // Resets the mesh attributes to default values virtual void resetMeshAttributes(); diff --git a/benchmarks/3d/escaliers.geo b/benchmarks/3d/escaliers.geo new file mode 100644 index 0000000000000000000000000000000000000000..16d0906087a1c81ef9f7d952591e28a397737835 --- /dev/null +++ b/benchmarks/3d/escaliers.geo @@ -0,0 +1,1374 @@ + lc = 4 ; +Point ( 105192 ) = { 20 , 6 , 45 , lc }; +Point ( 107881 ) = { 20 , 6 , 46 , lc }; +Point ( 110642 ) = { 20 , 7 , 47 , lc }; +Point ( 113396 ) = { 20 , 7 , 48 , lc }; +Point ( 116254 ) = { 20 , 8 , 49 , lc }; +Point ( 119115 ) = { 20 , 8 , 50 , lc }; +Point ( 122063 ) = { 20 , 9 , 51 , lc }; +Point ( 124983 ) = { 20 , 9 , 52 , lc }; +Point ( 127964 ) = { 20 , 10 , 53 , lc }; +Point ( 130979 ) = { 20 , 11 , 54 , lc }; +Point ( 133950 ) = { 20 , 11 , 55 , lc }; +Point ( 136989 ) = { 20 , 12 , 56 , lc }; +Point ( 140062 ) = { 20 , 13 , 57 , lc }; +Point ( 143123 ) = { 20 , 13 , 58 , lc }; +Point ( 146233 ) = { 20 , 13 , 59 , lc }; +Point ( 149443 ) = { 20 , 14 , 60 , lc }; +Point ( 152653 ) = { 20 , 15 , 61 , lc }; +Point ( 155857 ) = { 20 , 16 , 62 , lc }; +Point ( 159026 ) = { 20 , 16 , 63 , lc }; +Point ( 162217 ) = { 20 , 17 , 64 , lc }; +Point ( 165314 ) = { 20 , 18 , 65 , lc }; +Point ( 165352 ) = { 20 , 19 , 65 , lc }; +Point ( 168344 ) = { 20 , 20 , 66 , lc }; +Point ( 171226 ) = { 20 , 21 , 67 , lc }; +Point ( 173978 ) = { 20 , 22 , 68 , lc }; +Point ( 174014 ) = { 20 , 23 , 68 , lc }; +Point ( 176647 ) = { 20 , 24 , 69 , lc }; +Point ( 176683 ) = { 20 , 25 , 69 , lc }; +Point ( 179174 ) = { 20 , 26 , 70 , lc }; +Point ( 181549 ) = { 20 , 27 , 71 , lc }; +Point ( 183779 ) = { 20 , 28 , 72 , lc }; +Point ( 185858 ) = { 20 , 28 , 73 , lc }; +Point ( 185889 ) = { 20 , 29 , 73 , lc }; +Point ( 187780 ) = { 20 , 30 , 74 , lc }; +Point ( 189432 ) = { 20 , 31 , 75 , lc }; +Point ( 190822 ) = { 20 , 32 , 76 , lc }; +Point ( 190850 ) = { 20 , 33 , 76 , lc }; +Point ( 191966 ) = { 20 , 34 , 77 , lc }; +Point ( 191992 ) = { 20 , 35 , 77 , lc }; +Point ( 192020 ) = { 20 , 36 , 77 , lc }; +Point ( 192845 ) = { 20 , 37 , 78 , lc }; +Spline ( 1 ) = { 105192 , 107881 , 110642 , 113396 , 116254 , 119115 , 122063 , 124983 , 127964 , 130979 , 133950 , 136989 , 140062 , 143123 , 146233 , 149443 , 152653 , 155857 , 159026 , 162217 , 165314 , 165352 , 168344 , 171226 , 173978 , 174014 , 176647 , 176683 , 179174 , 181549 , 183779 , 185858 , 185889 , 187780 , 189432 , 190822 , 190850 , 191966 , 191992 , 192020 , 192845 }; + +//Point ( 192845 ) = { 20 , 37 , 78 , lc }; +Point ( 192869 ) = { 20 , 38 , 78 , lc }; +Point ( 192894 ) = { 20 , 39 , 78 , lc }; +Point ( 192920 ) = { 20 , 40 , 78 , lc }; +Point ( 192947 ) = { 20 , 41 , 78 , lc }; +Point ( 192976 ) = { 20 , 42 , 78 , lc }; +Point ( 193006 ) = { 20 , 43 , 78 , lc }; +Point ( 193484 ) = { 20 , 44 , 79 , lc }; +Point ( 193508 ) = { 20 , 45 , 79 , lc }; +Point ( 193533 ) = { 20 , 46 , 79 , lc }; +Point ( 193558 ) = { 20 , 47 , 79 , lc }; +Point ( 193583 ) = { 20 , 48 , 79 , lc }; +Point ( 193190 ) = { 20 , 49 , 78 , lc }; +Point ( 193220 ) = { 20 , 50 , 78 , lc }; +Point ( 193249 ) = { 20 , 51 , 78 , lc }; +Point ( 193276 ) = { 20 , 52 , 78 , lc }; +Point ( 193303 ) = { 20 , 53 , 78 , lc }; +Point ( 192645 ) = { 20 , 54 , 77 , lc }; +Point ( 192675 ) = { 20 , 55 , 77 , lc }; +Point ( 192703 ) = { 20 , 56 , 77 , lc }; +Point ( 192730 ) = { 20 , 57 , 77 , lc }; +Point ( 192756 ) = { 20 , 58 , 77 , lc }; +Point ( 191816 ) = { 20 , 59 , 76 , lc }; +Point ( 191845 ) = { 20 , 60 , 76 , lc }; +Point ( 190636 ) = { 20 , 61 , 75 , lc }; +Point ( 190667 ) = { 20 , 62 , 75 , lc }; +Point ( 190697 ) = { 20 , 63 , 75 , lc }; +Point ( 189224 ) = { 20 , 64 , 74 , lc }; +Point ( 189256 ) = { 20 , 65 , 74 , lc }; +Point ( 187549 ) = { 20 , 66 , 73 , lc }; +Point ( 187581 ) = { 20 , 67 , 73 , lc }; +Point ( 185638 ) = { 20 , 68 , 72 , lc }; +Point ( 185670 ) = { 20 , 69 , 72 , lc }; +Point ( 185699 ) = { 20 , 70 , 72 , lc }; +Point ( 183560 ) = { 20 , 71 , 71 , lc }; +Point ( 183587 ) = { 20 , 72 , 71 , lc }; +Point ( 181318 ) = { 20 , 73 , 70 , lc }; +Point ( 178904 ) = { 20 , 74 , 69 , lc }; +Point ( 178929 ) = { 20 , 75 , 69 , lc }; +Point ( 176412 ) = { 20 , 76 , 68 , lc }; +Point ( 173762 ) = { 20 , 77 , 67 , lc }; +Point ( 170991 ) = { 20 , 78 , 66 , lc }; +Point ( 168089 ) = { 20 , 78 , 65 , lc }; +Point ( 165101 ) = { 20 , 79 , 64 , lc }; +Point ( 162007 ) = { 20 , 80 , 63 , lc }; +Point ( 158808 ) = { 20 , 80 , 62 , lc }; +Point ( 155617 ) = { 20 , 81 , 61 , lc }; +Point ( 152413 ) = { 20 , 81 , 60 , lc }; +Point ( 149222 ) = { 20 , 82 , 59 , lc }; +Point ( 146019 ) = { 20 , 82 , 58 , lc }; +Point ( 142876 ) = { 20 , 82 , 57 , lc }; +Point ( 139801 ) = { 20 , 83 , 56 , lc }; +Point ( 136746 ) = { 20 , 83 , 55 , lc }; +Point ( 133726 ) = { 20 , 83 , 54 , lc }; +Point ( 130729 ) = { 20 , 83 , 53 , lc }; +Point ( 127751 ) = { 20 , 84 , 52 , lc }; +Point ( 124791 ) = { 20 , 84 , 51 , lc }; +Point ( 121857 ) = { 20 , 84 , 50 , lc }; +Point ( 118933 ) = { 20 , 84 , 49 , lc }; +Point ( 116061 ) = { 20 , 84 , 48 , lc }; +Point ( 113229 ) = { 20 , 84 , 47 , lc }; +Point ( 110465 ) = { 20 , 84 , 46 , lc }; +Point ( 107733 ) = { 20 , 84 , 45 , lc }; +Spline ( 2 ) = { 192845 , 192869 , 192894 , 192920 , 192947 , 192976 , 193006 , 193484 , 193508 , 193533 , 193558 , 193583 , 193190 , 193220 , 193249 , 193276 , 193303 , 192645 , 192675 , 192703 , 192730 , 192756 , 191816 , 191845 , 190636 , 190667 , 190697 , 189224 , 189256 , 187549 , 187581 , 185638 , 185670 , 185699 , 183560 , 183587 , 181318 , 178904 , 178929 , 176412 , 173762 , 170991 , 168089 , 165101 , 162007 , 158808 , 155617 , 152413 , 149222 , 146019 , 142876 , 139801 , 136746 , 133726 , 130729 , 127751 , 124791 , 121857 , 118933 , 116061 , 113229 , 110465 , 107733 }; + +//Point ( 107733 ) = { 20 , 84 , 45 , lc }; +Point ( 105039 ) = { 20 , 84 , 44 , lc }; +Point ( 102359 ) = { 20 , 84 , 43 , lc }; +Point ( 99699 ) = { 20 , 84 , 42 , lc }; +Point ( 97045 ) = { 20 , 84 , 41 , lc }; +Point ( 94395 ) = { 20 , 84 , 40 , lc }; +Point ( 91735 ) = { 20 , 84 , 39 , lc }; +Point ( 89052 ) = { 20 , 84 , 38 , lc }; +Point ( 86323 ) = { 20 , 84 , 37 , lc }; +Point ( 83552 ) = { 20 , 83 , 36 , lc }; +Point ( 80758 ) = { 20 , 83 , 35 , lc }; +Point ( 77941 ) = { 20 , 83 , 34 , lc }; +Point ( 75069 ) = { 20 , 83 , 33 , lc }; +Point ( 72126 ) = { 20 , 83 , 32 , lc }; +Point ( 69078 ) = { 20 , 82 , 31 , lc }; +Point ( 65940 ) = { 20 , 82 , 30 , lc }; +Point ( 62701 ) = { 20 , 82 , 29 , lc }; +Point ( 59408 ) = { 20 , 82 , 28 , lc }; +Point ( 56045 ) = { 20 , 81 , 27 , lc }; +Point ( 52632 ) = { 20 , 81 , 26 , lc }; +Point ( 49194 ) = { 20 , 80 , 25 , lc }; +Point ( 45785 ) = { 20 , 80 , 24 , lc }; +Point ( 42420 ) = { 20 , 80 , 23 , lc }; +Point ( 39125 ) = { 20 , 79 , 22 , lc }; +Point ( 35922 ) = { 20 , 78 , 21 , lc }; +Point ( 32836 ) = { 20 , 78 , 20 , lc }; +Point ( 29825 ) = { 20 , 78 , 19 , lc }; +Point ( 26919 ) = { 20 , 77 , 18 , lc }; +Point ( 24123 ) = { 20 , 76 , 17 , lc }; +Point ( 21456 ) = { 20 , 76 , 16 , lc }; +Point ( 18914 ) = { 20 , 75 , 15 , lc }; +Point ( 16512 ) = { 20 , 74 , 14 , lc }; +Point ( 14267 ) = { 20 , 73 , 13 , lc }; +Point ( 12108 ) = { 20 , 72 , 12 , lc }; +Point ( 10101 ) = { 20 , 72 , 11 , lc }; +Point ( 10094 ) = { 20 , 71 , 11 , lc }; +Point ( 8173 ) = { 20 , 70 , 10 , lc }; +Point ( 6453 ) = { 20 , 69 , 9 , lc }; +Point ( 4935 ) = { 20 , 68 , 8 , lc }; +Point ( 3630 ) = { 20 , 67 , 7 , lc }; +Point ( 3623 ) = { 20 , 66 , 7 , lc }; +Point ( 2538 ) = { 20 , 65 , 6 , lc }; +Point ( 1651 ) = { 20 , 64 , 5 , lc }; +Point ( 1645 ) = { 20 , 63 , 5 , lc }; +Point ( 1636 ) = { 20 , 62 , 5 , lc }; +Point ( 944 ) = { 20 , 61 , 4 , lc }; +Point ( 935 ) = { 20 , 60 , 4 , lc }; +Point ( 458 ) = { 20 , 59 , 3 , lc }; +Point ( 451 ) = { 20 , 58 , 3 , lc }; +Point ( 441 ) = { 20 , 57 , 3 , lc }; +Point ( 430 ) = { 20 , 56 , 3 , lc }; +Point ( 157 ) = { 20 , 55 , 2 , lc }; +Point ( 148 ) = { 20 , 54 , 2 , lc }; +Point ( 138 ) = { 20 , 53 , 2 , lc }; +Point ( 128 ) = { 20 , 52 , 2 , lc }; +Point ( 116 ) = { 20 , 51 , 2 , lc }; +Point ( 104 ) = { 20 , 50 , 2 , lc }; +Point ( 92 ) = { 20 , 49 , 2 , lc }; +Point ( 80 ) = { 20 , 48 , 2 , lc }; +Point ( 67 ) = { 20 , 47 , 2 , lc }; +Point ( 56 ) = { 20 , 46 , 2 , lc }; +Point ( 45 ) = { 20 , 45 , 2 , lc }; +Point ( 35 ) = { 20 , 44 , 2 , lc }; +Point ( 27 ) = { 20 , 43 , 2 , lc }; +Point ( 200 ) = { 20 , 42 , 3 , lc }; +Point ( 187 ) = { 20 , 41 , 3 , lc }; +Point ( 177 ) = { 20 , 40 , 3 , lc }; +Point ( 493 ) = { 20 , 39 , 4 , lc }; +Point ( 477 ) = { 20 , 38 , 4 , lc }; +Point ( 465 ) = { 20 , 37 , 4 , lc }; +Spline ( 3 ) = { 107733 , 105039 , 102359 , 99699 , 97045 , 94395 , 91735 , 89052 , 86323 , 83552 , 80758 , 77941 , 75069 , 72126 , 69078 , 65940 , 62701 , 59408 , 56045 , 52632 , 49194 , 45785 , 42420 , 39125 , 35922 , 32836 , 29825 , 26919 , 24123 , 21456 , 18914 , 16512 , 14267 , 12108 , 10101 , 10094 , 8173 , 6453 , 4935 , 3630 , 3623 , 2538 , 1651 , 1645 , 1636 , 944 , 935 , 458 , 451 , 441 , 430 , 157 , 148 , 138 , 128 , 116 , 104 , 92 , 80 , 67 , 56 , 45 , 35 , 27 , 200 , 187 , 177 , 493 , 477 , 465 }; + +//Point ( 465 ) = { 20 , 37 , 4 , lc }; +Point ( 994 ) = { 20 , 36 , 5 , lc }; +Point ( 1736 ) = { 20 , 35 , 6 , lc }; +Point ( 1709 ) = { 20 , 34 , 6 , lc }; +Point ( 2630 ) = { 20 , 33 , 7 , lc }; +Point ( 3770 ) = { 20 , 32 , 8 , lc }; +Point ( 3735 ) = { 20 , 31 , 8 , lc }; +Point ( 5072 ) = { 20 , 30 , 9 , lc }; +Point ( 6616 ) = { 20 , 29 , 10 , lc }; +Point ( 6580 ) = { 20 , 28 , 10 , lc }; +Point ( 8325 ) = { 20 , 27 , 11 , lc }; +Point ( 10270 ) = { 20 , 26 , 12 , lc }; +Point ( 10237 ) = { 20 , 25 , 12 , lc }; +Point ( 12268 ) = { 20 , 24 , 13 , lc }; +Point ( 12235 ) = { 20 , 23 , 13 , lc }; +Point ( 14405 ) = { 20 , 22 , 14 , lc }; +Point ( 16656 ) = { 20 , 21 , 15 , lc }; +Point ( 19064 ) = { 20 , 20 , 16 , lc }; +Point ( 21614 ) = { 20 , 19 , 17 , lc }; +Point ( 24292 ) = { 20 , 18 , 18 , lc }; +Point ( 27084 ) = { 20 , 17 , 19 , lc }; +Point ( 29990 ) = { 20 , 16 , 20 , lc }; +Point ( 32998 ) = { 20 , 15 , 21 , lc }; +Point ( 36089 ) = { 20 , 14 , 22 , lc }; +Point ( 39280 ) = { 20 , 13 , 23 , lc }; +Point ( 39245 ) = { 20 , 12 , 23 , lc }; +Point ( 42563 ) = { 20 , 12 , 24 , lc }; +Point ( 45917 ) = { 20 , 11 , 25 , lc }; +Point ( 49324 ) = { 20 , 10 , 26 , lc }; +Point ( 52735 ) = { 20 , 9 , 27 , lc }; +Point ( 56179 ) = { 20 , 9 , 28 , lc }; +Point ( 59511 ) = { 20 , 8 , 29 , lc }; +Point ( 62796 ) = { 20 , 7 , 30 , lc }; +Point ( 66051 ) = { 20 , 7 , 31 , lc }; +Point ( 69208 ) = { 20 , 7 , 32 , lc }; +Point ( 72224 ) = { 20 , 6 , 33 , lc }; +Point ( 75182 ) = { 20 , 6 , 34 , lc }; +Point ( 78066 ) = { 20 , 6 , 35 , lc }; +Point ( 80897 ) = { 20 , 6 , 36 , lc }; +Point ( 83665 ) = { 20 , 5 , 37 , lc }; +Point ( 86428 ) = { 20 , 5 , 38 , lc }; +Point ( 89161 ) = { 20 , 5 , 39 , lc }; +Point ( 91850 ) = { 20 , 5 , 40 , lc }; +Point ( 94517 ) = { 20 , 5 , 41 , lc }; +Point ( 97208 ) = { 20 , 6 , 42 , lc }; +Point ( 99862 ) = { 20 , 6 , 43 , lc }; +Point ( 102519 ) = { 20 , 6 , 44 , lc }; +//Point ( 105192 ) = { 20 , 6 , 45 , lc }; +Spline ( 4 ) = { 465 , 994 , 1736 , 1709 , 2630 , 3770 , 3735 , 5072 , 6616 , 6580 , 8325 , 10270 , 10237 , 12268 , 12235 , 14405 , 16656 , 19064 , 21614 , 24292 , 27084 , 29990 , 32998 , 36089 , 39280 , 39245 , 42563 , 45917 , 49324 , 52735 , 56179 , 59511 , 62796 , 66051 , 69208 , 72224 , 75182 , 78066 , 80897 , 83665 , 86428 , 89161 , 91850 , 94517 , 97208 , 99862 , 102519 , 105192 }; + +Point ( 105597 ) = { 20 , 15 , 45 , lc }; +Point ( 108285 ) = { 20 , 15 , 46 , lc }; +Point ( 110955 ) = { 20 , 14 , 47 , lc }; +Point ( 113705 ) = { 20 , 14 , 48 , lc }; +Point ( 116470 ) = { 20 , 13 , 49 , lc }; +Point ( 119328 ) = { 20 , 13 , 50 , lc }; +Point ( 122234 ) = { 20 , 13 , 51 , lc }; +Point ( 125152 ) = { 20 , 13 , 52 , lc }; +Point ( 128090 ) = { 20 , 13 , 53 , lc }; +Point ( 131109 ) = { 20 , 14 , 54 , lc }; +Point ( 134124 ) = { 20 , 15 , 55 , lc }; +Point ( 137164 ) = { 20 , 16 , 56 , lc }; +Point ( 137212 ) = { 20 , 17 , 56 , lc }; +Point ( 140289 ) = { 20 , 18 , 57 , lc }; +Point ( 140339 ) = { 20 , 19 , 57 , lc }; +Point ( 143443 ) = { 20 , 20 , 58 , lc }; +Point ( 143496 ) = { 20 , 21 , 58 , lc }; +Point ( 146651 ) = { 20 , 22 , 59 , lc }; +Point ( 149864 ) = { 20 , 23 , 60 , lc }; +Point ( 153080 ) = { 20 , 24 , 61 , lc }; +Point ( 153135 ) = { 20 , 25 , 61 , lc }; +Point ( 156337 ) = { 20 , 26 , 62 , lc }; +Point ( 159542 ) = { 20 , 27 , 63 , lc }; +Point ( 159599 ) = { 20 , 28 , 63 , lc }; +Point ( 159656 ) = { 20 , 29 , 63 , lc }; +Point ( 159715 ) = { 20 , 30 , 63 , lc }; +Point ( 159774 ) = { 20 , 31 , 63 , lc }; +Point ( 159834 ) = { 20 , 32 , 63 , lc }; +Point ( 156686 ) = { 20 , 33 , 62 , lc }; +Point ( 156741 ) = { 20 , 34 , 62 , lc }; +Point ( 156804 ) = { 20 , 35 , 62 , lc }; +Point ( 153645 ) = { 20 , 36 , 61 , lc }; +Point ( 150497 ) = { 20 , 37 , 60 , lc }; +Spline ( 5 ) = { 105597 , 108285 , 110955 , 113705 , 116470 , 119328 , 122234 , 125152 , 128090 , 131109 , 134124 , 137164 , 137212 , 140289 , 140339 , 143443 , 143496 , 146651 , 149864 , 153080 , 153135 , 156337 , 159542 , 159599 , 159656 , 159715 , 159774 , 159834 , 156686 , 156741 , 156804 , 153645 , 150497 }; + +//Point ( 150497 ) = { 20 , 37 , 60 , lc }; +Point ( 147363 ) = { 20 , 38 , 59 , lc }; +Point ( 144250 ) = { 20 , 39 , 58 , lc }; +Point ( 141189 ) = { 20 , 40 , 57 , lc }; +Point ( 138157 ) = { 20 , 41 , 56 , lc }; +Point ( 135155 ) = { 20 , 42 , 55 , lc }; +Point ( 132158 ) = { 20 , 42 , 54 , lc }; +Point ( 129196 ) = { 20 , 43 , 53 , lc }; +Point ( 126216 ) = { 20 , 43 , 52 , lc }; +Point ( 123252 ) = { 20 , 43 , 51 , lc }; +Point ( 120319 ) = { 20 , 43 , 50 , lc }; +Point ( 117440 ) = { 20 , 44 , 49 , lc }; +Point ( 114568 ) = { 20 , 44 , 48 , lc }; +Point ( 111790 ) = { 20 , 45 , 47 , lc }; +Point ( 109032 ) = { 20 , 45 , 46 , lc }; +Point ( 106315 ) = { 20 , 45 , 45 , lc }; +Spline ( 6 ) = { 150497 , 147363 , 144250 , 141189 , 138157 , 135155 , 132158 , 129196 , 126216 , 123252 , 120319 , 117440 , 114568 , 111790 , 109032 , 106315 }; + +//Point ( 106315 ) = { 20 , 45 , 45 , lc }; +Point ( 103631 ) = { 20 , 45 , 44 , lc }; +Point ( 100964 ) = { 20 , 45 , 43 , lc }; +Point ( 98312 ) = { 20 , 45 , 42 , lc }; +Point ( 95631 ) = { 20 , 44 , 41 , lc }; +Point ( 92977 ) = { 20 , 44 , 40 , lc }; +Point ( 90272 ) = { 20 , 43 , 39 , lc }; +Point ( 87553 ) = { 20 , 42 , 38 , lc }; +Point ( 84820 ) = { 20 , 42 , 37 , lc }; +Point ( 82036 ) = { 20 , 41 , 36 , lc }; +Point ( 79244 ) = { 20 , 41 , 35 , lc }; +Point ( 76385 ) = { 20 , 40 , 34 , lc }; +Point ( 73460 ) = { 20 , 39 , 33 , lc }; +Point ( 73434 ) = { 20 , 38 , 33 , lc }; +Point ( 70431 ) = { 20 , 37 , 32 , lc }; +Spline ( 7 ) = { 106315 , 103631 , 100964 , 98312 , 95631 , 92977 , 90272 , 87553 , 84820 , 82036 , 79244 , 76385 , 73460 , 73434 , 70431 }; + +//Point ( 70431 ) = { 20 , 37 , 32 , lc }; +Point ( 70401 ) = { 20 , 36 , 32 , lc }; +Point ( 70372 ) = { 20 , 35 , 32 , lc }; +Point ( 70342 ) = { 20 , 34 , 32 , lc }; +Point ( 70312 ) = { 20 , 33 , 32 , lc }; +Point ( 70281 ) = { 20 , 32 , 32 , lc }; +Point ( 67141 ) = { 20 , 31 , 31 , lc }; +Point ( 67107 ) = { 20 , 30 , 31 , lc }; +Point ( 67075 ) = { 20 , 29 , 31 , lc }; +Point ( 63803 ) = { 20 , 28 , 30 , lc }; +Point ( 63755 ) = { 20 , 27 , 30 , lc }; +Point ( 63707 ) = { 20 , 26 , 30 , lc }; +Point ( 63659 ) = { 20 , 25 , 30 , lc }; +Point ( 63612 ) = { 20 , 24 , 30 , lc }; +Point ( 66821 ) = { 20 , 23 , 31 , lc }; +Point ( 66775 ) = { 20 , 22 , 31 , lc }; +Point ( 69885 ) = { 20 , 21 , 32 , lc }; +Point ( 72892 ) = { 20 , 20 , 33 , lc }; +Point ( 75805 ) = { 20 , 19 , 34 , lc }; +Point ( 78640 ) = { 20 , 18 , 35 , lc }; +Point ( 81476 ) = { 20 , 18 , 36 , lc }; +Point ( 84226 ) = { 20 , 17 , 37 , lc }; +Point ( 86991 ) = { 20 , 17 , 38 , lc }; +Point ( 89669 ) = { 20 , 16 , 39 , lc }; +Point ( 92360 ) = { 20 , 16 , 40 , lc }; +Point ( 95026 ) = { 20 , 16 , 41 , lc }; +Point ( 97677 ) = { 20 , 16 , 42 , lc }; +Point ( 100276 ) = { 20 , 15 , 43 , lc }; +Point ( 102932 ) = { 20 , 15 , 44 , lc }; +//Point ( 105597 ) = { 20 , 15 , 45 , lc }; +Spline ( 8 ) = { 70431 , 70401 , 70372 , 70342 , 70312 , 70281 , 67141 , 67107 , 67075 , 63803 , 63755 , 63707 , 63659 , 63612 , 66821 , 66775 , 69885 , 72892 , 75805 , 78640 , 81476 , 84226 , 86991 , 89669 , 92360 , 95026 , 97677 , 100276 , 102932 , 105597 }; + +Point ( 106656 ) = { 20 , 51 , 45 , lc }; +Point ( 109383 ) = { 20 , 51 , 46 , lc }; +Point ( 112159 ) = { 20 , 51 , 47 , lc }; +Point ( 114996 ) = { 20 , 51 , 48 , lc }; +Point ( 117872 ) = { 20 , 51 , 49 , lc }; +Point ( 120795 ) = { 20 , 51 , 50 , lc }; +Point ( 123735 ) = { 20 , 51 , 51 , lc }; +Point ( 126710 ) = { 20 , 51 , 52 , lc }; +Point ( 129698 ) = { 20 , 51 , 53 , lc }; +Point ( 132707 ) = { 20 , 51 , 54 , lc }; +Point ( 135722 ) = { 20 , 51 , 55 , lc }; +Point ( 138787 ) = { 20 , 51 , 56 , lc }; +Point ( 141894 ) = { 20 , 51 , 57 , lc }; +Point ( 144973 ) = { 20 , 50 , 58 , lc }; +Point ( 148178 ) = { 20 , 50 , 59 , lc }; +Point ( 151392 ) = { 20 , 50 , 60 , lc }; +Point ( 154532 ) = { 20 , 49 , 61 , lc }; +Point ( 157745 ) = { 20 , 49 , 62 , lc }; +Point ( 160890 ) = { 20 , 48 , 63 , lc }; +Point ( 164064 ) = { 20 , 49 , 64 , lc }; +Point ( 167072 ) = { 20 , 49 , 65 , lc }; +Point ( 169914 ) = { 20 , 48 , 66 , lc }; +Point ( 172771 ) = { 20 , 49 , 67 , lc }; +Point ( 172830 ) = { 20 , 50 , 67 , lc }; +Point ( 172884 ) = { 20 , 51 , 67 , lc }; +Point ( 172935 ) = { 20 , 52 , 67 , lc }; +Point ( 170193 ) = { 20 , 53 , 66 , lc }; +Point ( 170233 ) = { 20 , 54 , 66 , lc }; +Point ( 170265 ) = { 20 , 55 , 66 , lc }; +Point ( 170289 ) = { 20 , 56 , 66 , lc }; +Point ( 170313 ) = { 20 , 57 , 66 , lc }; +Point ( 170335 ) = { 20 , 58 , 66 , lc }; +Point ( 167469 ) = { 20 , 59 , 65 , lc }; +Point ( 167489 ) = { 20 , 60 , 65 , lc }; +Point ( 167509 ) = { 20 , 61 , 65 , lc }; +Point ( 164537 ) = { 20 , 62 , 64 , lc }; +Point ( 164557 ) = { 20 , 63 , 64 , lc }; +Point ( 164578 ) = { 20 , 64 , 64 , lc }; +Point ( 164601 ) = { 20 , 65 , 64 , lc }; +Point ( 161517 ) = { 20 , 66 , 63 , lc }; +Spline ( 9 ) = { 106656 , 109383 , 112159 , 114996 , 117872 , 120795 , 123735 , 126710 , 129698 , 132707 , 135722 , 138787 , 141894 , 144973 , 148178 , 151392 , 154532 , 157745 , 160890 , 164064 , 167072 , 169914 , 172771 , 172830 , 172884 , 172935 , 170193 , 170233 , 170265 , 170289 , 170313 , 170335 , 167469 , 167489 , 167509 , 164537 , 164557 , 164578 , 164601 , 161517 }; + +//Point ( 161517 ) = { 20 , 66 , 63 , lc }; +Point ( 158344 ) = { 20 , 67 , 62 , lc }; +Point ( 158367 ) = { 20 , 68 , 62 , lc }; +Point ( 155182 ) = { 20 , 69 , 61 , lc }; +Point ( 152008 ) = { 20 , 70 , 60 , lc }; +Point ( 148821 ) = { 20 , 71 , 59 , lc }; +Point ( 145643 ) = { 20 , 72 , 58 , lc }; +Point ( 142508 ) = { 20 , 72 , 57 , lc }; +Point ( 139433 ) = { 20 , 73 , 56 , lc }; +Point ( 136408 ) = { 20 , 74 , 55 , lc }; +Point ( 133390 ) = { 20 , 74 , 54 , lc }; +Point ( 130389 ) = { 20 , 74 , 53 , lc }; +Point ( 127426 ) = { 20 , 75 , 52 , lc }; +Point ( 124464 ) = { 20 , 75 , 51 , lc }; +Point ( 121554 ) = { 20 , 76 , 50 , lc }; +Point ( 118636 ) = { 20 , 76 , 49 , lc }; +Point ( 115773 ) = { 20 , 76 , 48 , lc }; +Point ( 112938 ) = { 20 , 76 , 47 , lc }; +Point ( 110174 ) = { 20 , 76 , 46 , lc }; +Point ( 107467 ) = { 20 , 77 , 45 , lc }; +Spline ( 10 ) = { 161517 , 158344 , 158367 , 155182 , 152008 , 148821 , 145643 , 142508 , 139433 , 136408 , 133390 , 130389 , 127426 , 124464 , 121554 , 118636 , 115773 , 112938 , 110174 , 107467 }; + +//Point ( 107467 ) = { 20 , 77 , 45 , lc }; +Point ( 104777 ) = { 20 , 77 , 44 , lc }; +Point ( 102102 ) = { 20 , 77 , 43 , lc }; +Point ( 99442 ) = { 20 , 77 , 42 , lc }; +Point ( 96795 ) = { 20 , 77 , 41 , lc }; +Point ( 94147 ) = { 20 , 77 , 40 , lc }; +Point ( 91492 ) = { 20 , 77 , 39 , lc }; +Point ( 88815 ) = { 20 , 77 , 38 , lc }; +Point ( 86069 ) = { 20 , 76 , 37 , lc }; +Point ( 83325 ) = { 20 , 76 , 36 , lc }; +Point ( 80535 ) = { 20 , 76 , 35 , lc }; +Point ( 77717 ) = { 20 , 76 , 34 , lc }; +Point ( 74845 ) = { 20 , 76 , 33 , lc }; +Point ( 71908 ) = { 20 , 76 , 32 , lc }; +Point ( 68858 ) = { 20 , 75 , 31 , lc }; +Point ( 65719 ) = { 20 , 75 , 30 , lc }; +Point ( 62489 ) = { 20 , 75 , 29 , lc }; +Point ( 59175 ) = { 20 , 74 , 28 , lc }; +Point ( 55834 ) = { 20 , 74 , 27 , lc }; +Point ( 52402 ) = { 20 , 73 , 26 , lc }; +Point ( 48985 ) = { 20 , 73 , 25 , lc }; +Point ( 45553 ) = { 20 , 72 , 24 , lc }; +Point ( 42199 ) = { 20 , 72 , 23 , lc }; +Point ( 38900 ) = { 20 , 71 , 22 , lc }; +Point ( 35689 ) = { 20 , 70 , 21 , lc }; +Point ( 32581 ) = { 20 , 69 , 20 , lc }; +Point ( 29556 ) = { 20 , 68 , 19 , lc }; +Point ( 26649 ) = { 20 , 67 , 18 , lc }; +Point ( 23846 ) = { 20 , 66 , 17 , lc }; +Spline ( 11 ) = { 107467 , 104777 , 102102 , 99442 , 96795 , 94147 , 91492 , 88815 , 86069 , 83325 , 80535 , 77717 , 74845 , 71908 , 68858 , 65719 , 62489 , 59175 , 55834 , 52402 , 48985 , 45553 , 42199 , 38900 , 35689 , 32581 , 29556 , 26649 , 23846 }; + +//Point ( 23846 ) = { 20 , 66 , 17 , lc }; +Point ( 23810 ) = { 20 , 65 , 17 , lc }; +Point ( 21133 ) = { 20 , 64 , 16 , lc }; +Point ( 18593 ) = { 20 , 63 , 15 , lc }; +Point ( 18557 ) = { 20 , 62 , 15 , lc }; +Point ( 16156 ) = { 20 , 61 , 14 , lc }; +Point ( 16119 ) = { 20 , 60 , 14 , lc }; +Point ( 13873 ) = { 20 , 59 , 13 , lc }; +Point ( 13835 ) = { 20 , 58 , 13 , lc }; +Point ( 13796 ) = { 20 , 57 , 13 , lc }; +Point ( 11642 ) = { 20 , 56 , 12 , lc }; +Point ( 11603 ) = { 20 , 55 , 12 , lc }; +Point ( 11561 ) = { 20 , 54 , 12 , lc }; +Point ( 11518 ) = { 20 , 53 , 12 , lc }; +Point ( 13635 ) = { 20 , 52 , 13 , lc }; +Point ( 13602 ) = { 20 , 51 , 13 , lc }; +Point ( 15800 ) = { 20 , 50 , 14 , lc }; +Point ( 18232 ) = { 20 , 51 , 15 , lc }; +Point ( 18269 ) = { 20 , 52 , 15 , lc }; +Point ( 20827 ) = { 20 , 53 , 16 , lc }; +Point ( 23519 ) = { 20 , 54 , 17 , lc }; +Point ( 26298 ) = { 20 , 54 , 18 , lc }; +Point ( 29219 ) = { 20 , 55 , 19 , lc }; +Point ( 32221 ) = { 20 , 55 , 20 , lc }; +Point ( 35341 ) = { 20 , 56 , 21 , lc }; +Point ( 38519 ) = { 20 , 56 , 22 , lc }; +Point ( 41787 ) = { 20 , 56 , 23 , lc }; +Point ( 45146 ) = { 20 , 56 , 24 , lc }; +Point ( 48551 ) = { 20 , 56 , 25 , lc }; +Point ( 51918 ) = { 20 , 55 , 26 , lc }; +Point ( 55321 ) = { 20 , 55 , 27 , lc }; +Point ( 58670 ) = { 20 , 55 , 28 , lc }; +Point ( 61951 ) = { 20 , 55 , 29 , lc }; +Point ( 65131 ) = { 20 , 54 , 30 , lc }; +Point ( 68265 ) = { 20 , 54 , 31 , lc }; +Point ( 71297 ) = { 20 , 54 , 32 , lc }; +Point ( 74176 ) = { 20 , 53 , 33 , lc }; +Point ( 77044 ) = { 20 , 53 , 34 , lc }; +Point ( 79858 ) = { 20 , 53 , 35 , lc }; +Point ( 82643 ) = { 20 , 53 , 36 , lc }; +Point ( 85327 ) = { 20 , 52 , 37 , lc }; +Point ( 88055 ) = { 20 , 52 , 38 , lc }; +Point ( 90731 ) = { 20 , 52 , 39 , lc }; +Point ( 93387 ) = { 20 , 52 , 40 , lc }; +Point ( 95980 ) = { 20 , 51 , 41 , lc }; +Point ( 98626 ) = { 20 , 51 , 42 , lc }; +Point ( 101288 ) = { 20 , 51 , 43 , lc }; +Point ( 103965 ) = { 20 , 51 , 44 , lc }; +//Point ( 106656 ) = { 20 , 51 , 45 , lc }; +Spline ( 12 ) = { 23846 , 23810 , 21133 , 18593 , 18557 , 16156 , 16119 , 13873 , 13835 , 13796 , 11642 , 11603 , 11561 , 11518 , 13635 , 13602 , 15800 , 18232 , 18269 , 20827 , 23519 , 26298 , 29219 , 32221 , 35341 , 38519 , 41787 , 45146 , 48551 , 51918 , 55321 , 58670 , 61951 , 65131 , 68265 , 71297 , 74176 , 77044 , 79858 , 82643 , 85327 , 88055 , 90731 , 93387 , 95980 , 98626 , 101288 , 103965 , 106656 }; + +Point ( 106193 ) = { 89 , 37 , 45 , lc }; +Point ( 106181 ) = { 89 , 36 , 45 , lc }; +Point ( 106180 ) = { 88 , 36 , 45 , lc }; +Point ( 106169 ) = { 88 , 35 , 45 , lc }; +Point ( 106158 ) = { 88 , 34 , 45 , lc }; +Point ( 106147 ) = { 88 , 33 , 45 , lc }; +Point ( 106135 ) = { 88 , 32 , 45 , lc }; +Point ( 106134 ) = { 87 , 32 , 45 , lc }; +Point ( 106122 ) = { 87 , 31 , 45 , lc }; +Point ( 106109 ) = { 87 , 30 , 45 , lc }; +Point ( 106108 ) = { 86 , 30 , 45 , lc }; +Point ( 106095 ) = { 86 , 29 , 45 , lc }; +Point ( 106080 ) = { 86 , 28 , 45 , lc }; +Point ( 106059 ) = { 86 , 27 , 45 , lc }; +Point ( 106058 ) = { 85 , 27 , 45 , lc }; +Point ( 106032 ) = { 85 , 26 , 45 , lc }; +Point ( 106031 ) = { 84 , 26 , 45 , lc }; +Point ( 106003 ) = { 84 , 25 , 45 , lc }; +Point ( 106002 ) = { 83 , 25 , 45 , lc }; +Point ( 105974 ) = { 83 , 24 , 45 , lc }; +Point ( 105945 ) = { 83 , 23 , 45 , lc }; +Point ( 105944 ) = { 82 , 23 , 45 , lc }; +Point ( 105943 ) = { 81 , 23 , 45 , lc }; +Point ( 105914 ) = { 81 , 22 , 45 , lc }; +Point ( 105913 ) = { 80 , 22 , 45 , lc }; +Point ( 105884 ) = { 80 , 21 , 45 , lc }; +Point ( 105883 ) = { 79 , 21 , 45 , lc }; +Point ( 105853 ) = { 79 , 20 , 45 , lc }; +Point ( 105852 ) = { 78 , 20 , 45 , lc }; +Point ( 105820 ) = { 78 , 19 , 45 , lc }; +Point ( 105819 ) = { 77 , 19 , 45 , lc }; +Point ( 105785 ) = { 77 , 18 , 45 , lc }; +Point ( 105784 ) = { 76 , 18 , 45 , lc }; +Point ( 105783 ) = { 75 , 18 , 45 , lc }; +Point ( 105747 ) = { 75 , 17 , 45 , lc }; +Point ( 105746 ) = { 74 , 17 , 45 , lc }; +Point ( 105745 ) = { 73 , 17 , 45 , lc }; +Point ( 105701 ) = { 73 , 16 , 45 , lc }; +Point ( 105700 ) = { 72 , 16 , 45 , lc }; +Point ( 105649 ) = { 72 , 15 , 45 , lc }; +Point ( 105648 ) = { 71 , 15 , 45 , lc }; +Point ( 105647 ) = { 70 , 15 , 45 , lc }; +Point ( 105596 ) = { 70 , 14 , 45 , lc }; +Point ( 105595 ) = { 69 , 14 , 45 , lc }; +Point ( 105594 ) = { 68 , 14 , 45 , lc }; +Point ( 105545 ) = { 68 , 13 , 45 , lc }; +Point ( 105544 ) = { 67 , 13 , 45 , lc }; +Point ( 105543 ) = { 66 , 13 , 45 , lc }; +Point ( 105496 ) = { 66 , 12 , 45 , lc }; +Point ( 105495 ) = { 65 , 12 , 45 , lc }; +Point ( 105494 ) = { 64 , 12 , 45 , lc }; +Point ( 105448 ) = { 64 , 11 , 45 , lc }; +Point ( 105447 ) = { 63 , 11 , 45 , lc }; +Point ( 105402 ) = { 63 , 10 , 45 , lc }; +Point ( 105401 ) = { 62 , 10 , 45 , lc }; +Point ( 105357 ) = { 62 , 9 , 45 , lc }; +Point ( 105356 ) = { 61 , 9 , 45 , lc }; +Point ( 105355 ) = { 60 , 9 , 45 , lc }; +Point ( 105313 ) = { 60 , 8 , 45 , lc }; +Point ( 105312 ) = { 59 , 8 , 45 , lc }; +Point ( 105270 ) = { 59 , 7 , 45 , lc }; +Point ( 105269 ) = { 58 , 7 , 45 , lc }; +Point ( 105268 ) = { 57 , 7 , 45 , lc }; +Point ( 105229 ) = { 57 , 6 , 45 , lc }; +Point ( 105228 ) = { 56 , 6 , 45 , lc }; +Point ( 105227 ) = { 55 , 6 , 45 , lc }; +Point ( 105191 ) = { 55 , 5 , 45 , lc }; +Point ( 105190 ) = { 54 , 5 , 45 , lc }; +Point ( 105189 ) = { 53 , 5 , 45 , lc }; +Point ( 105188 ) = { 52 , 5 , 45 , lc }; +Point ( 105156 ) = { 52 , 4 , 45 , lc }; +Point ( 105155 ) = { 51 , 4 , 45 , lc }; +Point ( 105154 ) = { 50 , 4 , 45 , lc }; +Point ( 105153 ) = { 49 , 4 , 45 , lc }; +Point ( 105126 ) = { 49 , 3 , 45 , lc }; +Point ( 105125 ) = { 48 , 3 , 45 , lc }; +Point ( 105124 ) = { 47 , 3 , 45 , lc }; +Point ( 105123 ) = { 46 , 3 , 45 , lc }; +Point ( 105122 ) = { 45 , 3 , 45 , lc }; +Point ( 105121 ) = { 44 , 3 , 45 , lc }; +Point ( 105100 ) = { 44 , 2 , 45 , lc }; +Point ( 105099 ) = { 43 , 2 , 45 , lc }; +Point ( 105098 ) = { 42 , 2 , 45 , lc }; +Point ( 105097 ) = { 41 , 2 , 45 , lc }; +Point ( 105096 ) = { 40 , 2 , 45 , lc }; +Point ( 105095 ) = { 39 , 2 , 45 , lc }; +Point ( 105094 ) = { 38 , 2 , 45 , lc }; +Point ( 105093 ) = { 37 , 2 , 45 , lc }; +Point ( 105092 ) = { 36 , 2 , 45 , lc }; +Point ( 105081 ) = { 36 , 1 , 45 , lc }; +Point ( 105080 ) = { 35 , 1 , 45 , lc }; +Point ( 105079 ) = { 34 , 1 , 45 , lc }; +Point ( 105078 ) = { 33 , 1 , 45 , lc }; +Point ( 105077 ) = { 32 , 1 , 45 , lc }; +Point ( 105076 ) = { 31 , 1 , 45 , lc }; +Point ( 105075 ) = { 30 , 1 , 45 , lc }; +Point ( 105085 ) = { 29 , 2 , 45 , lc }; +Point ( 105084 ) = { 28 , 2 , 45 , lc }; +Point ( 105083 ) = { 27 , 2 , 45 , lc }; +Point ( 105082 ) = { 26 , 2 , 45 , lc }; +Point ( 105102 ) = { 25 , 3 , 45 , lc }; +Point ( 105101 ) = { 24 , 3 , 45 , lc }; +Point ( 105127 ) = { 23 , 4 , 45 , lc }; +Point ( 105158 ) = { 22 , 5 , 45 , lc }; +Point ( 105157 ) = { 21 , 5 , 45 , lc }; +//Point ( 105192 ) = { 20 , 6 , 45 , lc }; +Spline ( 13 ) = { 106193 , 106181 , 106180 , 106169 , 106158 , 106147 , 106135 , 106134 , 106122 , 106109 , 106108 , 106095 , 106080 , 106059 , 106058 , 106032 , 106031 , 106003 , 106002 , 105974 , 105945 , 105944 , 105943 , 105914 , 105913 , 105884 , 105883 , 105853 , 105852 , 105820 , 105819 , 105785 , 105784 , 105783 , 105747 , 105746 , 105745 , 105701 , 105700 , 105649 , 105648 , 105647 , 105596 , 105595 , 105594 , 105545 , 105544 , 105543 , 105496 , 105495 , 105494 , 105448 , 105447 , 105402 , 105401 , 105357 , 105356 , 105355 , 105313 , 105312 , 105270 , 105269 , 105268 , 105229 , 105228 , 105227 , 105191 , 105190 , 105189 , 105188 , 105156 , 105155 , 105154 , 105153 , 105126 , 105125 , 105124 , 105123 , 105122 , 105121 , 105100 , 105099 , 105098 , 105097 , 105096 , 105095 , 105094 , 105093 , 105092 , 105081 , 105080 , 105079 , 105078 , 105077 , 105076 , 105075 , 105085 , 105084 , 105083 , 105082 , 105102 , 105101 , 105127 , 105158 , 105157 , 105192 }; + +//Point ( 107733 ) = { 20 , 84 , 45 , lc }; +Point ( 107734 ) = { 21 , 84 , 45 , lc }; +Point ( 107735 ) = { 22 , 84 , 45 , lc }; +Point ( 107736 ) = { 23 , 84 , 45 , lc }; +Point ( 107737 ) = { 24 , 84 , 45 , lc }; +Point ( 107754 ) = { 24 , 85 , 45 , lc }; +Point ( 107755 ) = { 25 , 85 , 45 , lc }; +Point ( 107756 ) = { 26 , 85 , 45 , lc }; +Point ( 107757 ) = { 27 , 85 , 45 , lc }; +Point ( 107758 ) = { 28 , 85 , 45 , lc }; +Point ( 107759 ) = { 29 , 85 , 45 , lc }; +Point ( 107760 ) = { 30 , 85 , 45 , lc }; +Point ( 107761 ) = { 31 , 85 , 45 , lc }; +Point ( 107762 ) = { 32 , 85 , 45 , lc }; +Point ( 107763 ) = { 33 , 85 , 45 , lc }; +Point ( 107764 ) = { 34 , 85 , 45 , lc }; +Point ( 107765 ) = { 35 , 85 , 45 , lc }; +Point ( 107766 ) = { 36 , 85 , 45 , lc }; +Point ( 107767 ) = { 37 , 85 , 45 , lc }; +Point ( 107751 ) = { 38 , 84 , 45 , lc }; +Point ( 107752 ) = { 39 , 84 , 45 , lc }; +Point ( 107753 ) = { 40 , 84 , 45 , lc }; +Point ( 107728 ) = { 41 , 83 , 45 , lc }; +Point ( 107729 ) = { 42 , 83 , 45 , lc }; +Point ( 107730 ) = { 43 , 83 , 45 , lc }; +Point ( 107698 ) = { 44 , 82 , 45 , lc }; +Point ( 107699 ) = { 45 , 82 , 45 , lc }; +Point ( 107663 ) = { 46 , 81 , 45 , lc }; +Point ( 107664 ) = { 47 , 81 , 45 , lc }; +Point ( 107624 ) = { 48 , 80 , 45 , lc }; +Point ( 107625 ) = { 49 , 80 , 45 , lc }; +Point ( 107584 ) = { 50 , 79 , 45 , lc }; +Point ( 107542 ) = { 51 , 78 , 45 , lc }; +Point ( 107499 ) = { 52 , 77 , 45 , lc }; +Point ( 107456 ) = { 53 , 76 , 45 , lc }; +Point ( 107435 ) = { 54 , 75 , 45 , lc }; +Point ( 107418 ) = { 55 , 74 , 45 , lc }; +Point ( 107404 ) = { 55 , 73 , 45 , lc }; +Point ( 107392 ) = { 56 , 72 , 45 , lc }; +Point ( 107383 ) = { 57 , 71 , 45 , lc }; +Point ( 107373 ) = { 58 , 70 , 45 , lc }; +Point ( 107364 ) = { 59 , 69 , 45 , lc }; +Point ( 107356 ) = { 60 , 68 , 45 , lc }; +Point ( 107347 ) = { 61 , 67 , 45 , lc }; +Point ( 107348 ) = { 62 , 67 , 45 , lc }; +Point ( 107336 ) = { 63 , 66 , 45 , lc }; +Point ( 107337 ) = { 64 , 66 , 45 , lc }; +Point ( 107324 ) = { 65 , 65 , 45 , lc }; +Point ( 107325 ) = { 66 , 65 , 45 , lc }; +Point ( 107302 ) = { 67 , 64 , 45 , lc }; +Point ( 107303 ) = { 68 , 64 , 45 , lc }; +Point ( 107276 ) = { 69 , 63 , 45 , lc }; +Point ( 107277 ) = { 70 , 63 , 45 , lc }; +Point ( 107247 ) = { 71 , 62 , 45 , lc }; +Point ( 107214 ) = { 72 , 61 , 45 , lc }; +Point ( 107178 ) = { 73 , 60 , 45 , lc }; +Point ( 107179 ) = { 74 , 60 , 45 , lc }; +Point ( 107139 ) = { 75 , 59 , 45 , lc }; +Point ( 107140 ) = { 76 , 59 , 45 , lc }; +Point ( 107097 ) = { 77 , 58 , 45 , lc }; +Point ( 107051 ) = { 78 , 57 , 45 , lc }; +Point ( 107003 ) = { 79 , 56 , 45 , lc }; +Point ( 106952 ) = { 80 , 55 , 45 , lc }; +Point ( 106898 ) = { 81 , 54 , 45 , lc }; +Point ( 106841 ) = { 82 , 53 , 45 , lc }; +Point ( 106782 ) = { 83 , 52 , 45 , lc }; +Point ( 106720 ) = { 84 , 51 , 45 , lc }; +Point ( 106653 ) = { 84 , 50 , 45 , lc }; +Point ( 106586 ) = { 85 , 49 , 45 , lc }; +Point ( 106522 ) = { 85 , 48 , 45 , lc }; +Point ( 106462 ) = { 86 , 47 , 45 , lc }; +Point ( 106406 ) = { 87 , 46 , 45 , lc }; +Point ( 106354 ) = { 87 , 45 , 45 , lc }; +Point ( 106311 ) = { 87 , 44 , 45 , lc }; +Point ( 106277 ) = { 88 , 43 , 45 , lc }; +Point ( 106252 ) = { 88 , 42 , 45 , lc }; +Point ( 106239 ) = { 88 , 41 , 45 , lc }; +Point ( 106227 ) = { 88 , 40 , 45 , lc }; +Point ( 106216 ) = { 88 , 39 , 45 , lc }; +Point ( 106205 ) = { 89 , 38 , 45 , lc }; +//Point ( 106193 ) = { 89 , 37 , 45 , lc }; +Spline ( 14 ) = { 107733 , 107734 , 107735 , 107736 , 107737 , 107754 , 107755 , 107756 , 107757 , 107758 , 107759 , 107760 , 107761 , 107762 , 107763 , 107764 , 107765 , 107766 , 107767 , 107751 , 107752 , 107753 , 107728 , 107729 , 107730 , 107698 , 107699 , 107663 , 107664 , 107624 , 107625 , 107584 , 107542 , 107499 , 107456 , 107435 , 107418 , 107404 , 107392 , 107383 , 107373 , 107364 , 107356 , 107347 , 107348 , 107336 , 107337 , 107324 , 107325 , 107302 , 107303 , 107276 , 107277 , 107247 , 107214 , 107178 , 107179 , 107139 , 107140 , 107097 , 107051 , 107003 , 106952 , 106898 , 106841 , 106782 , 106720 , 106653 , 106586 , 106522 , 106462 , 106406 , 106354 , 106311 , 106277 , 106252 , 106239 , 106227 , 106216 , 106205 , 106193 }; + +//Point ( 106315 ) = { 20 , 45 , 45 , lc }; +Point ( 106316 ) = { 21 , 45 , 45 , lc }; +Point ( 106279 ) = { 22 , 44 , 45 , lc }; +Point ( 106280 ) = { 23 , 44 , 45 , lc }; +Point ( 106281 ) = { 24 , 44 , 45 , lc }; +Point ( 106282 ) = { 25 , 44 , 45 , lc }; +Point ( 106254 ) = { 26 , 43 , 45 , lc }; +Point ( 106255 ) = { 27 , 43 , 45 , lc }; +Point ( 106256 ) = { 28 , 43 , 45 , lc }; +Point ( 106257 ) = { 29 , 43 , 45 , lc }; +Point ( 106258 ) = { 30 , 43 , 45 , lc }; +Point ( 106259 ) = { 31 , 43 , 45 , lc }; +Point ( 106260 ) = { 32 , 43 , 45 , lc }; +Point ( 106261 ) = { 33 , 43 , 45 , lc }; +Point ( 106262 ) = { 34 , 43 , 45 , lc }; +Point ( 106263 ) = { 35 , 43 , 45 , lc }; +Point ( 106264 ) = { 36 , 43 , 45 , lc }; +Point ( 106293 ) = { 36 , 44 , 45 , lc }; +Point ( 106294 ) = { 37 , 44 , 45 , lc }; +Point ( 106295 ) = { 38 , 44 , 45 , lc }; +Point ( 106296 ) = { 39 , 44 , 45 , lc }; +Point ( 106297 ) = { 40 , 44 , 45 , lc }; +Point ( 106298 ) = { 41 , 44 , 45 , lc }; +Point ( 106336 ) = { 41 , 45 , 45 , lc }; +Point ( 106337 ) = { 42 , 45 , 45 , lc }; +Point ( 106338 ) = { 43 , 45 , 45 , lc }; +Point ( 106339 ) = { 44 , 45 , 45 , lc }; +Point ( 106385 ) = { 44 , 46 , 45 , lc }; +Point ( 106386 ) = { 45 , 46 , 45 , lc }; +Point ( 106387 ) = { 46 , 46 , 45 , lc }; +Point ( 106388 ) = { 47 , 46 , 45 , lc }; +Point ( 106389 ) = { 48 , 46 , 45 , lc }; +Point ( 106441 ) = { 48 , 47 , 45 , lc }; +Point ( 106442 ) = { 49 , 47 , 45 , lc }; +Point ( 106443 ) = { 50 , 47 , 45 , lc }; +Point ( 106500 ) = { 50 , 48 , 45 , lc }; +Point ( 106501 ) = { 51 , 48 , 45 , lc }; +Point ( 106561 ) = { 51 , 49 , 45 , lc }; +Point ( 106562 ) = { 52 , 49 , 45 , lc }; +Point ( 106563 ) = { 53 , 49 , 45 , lc }; +Point ( 106628 ) = { 53 , 50 , 45 , lc }; +Point ( 106629 ) = { 54 , 50 , 45 , lc }; +Point ( 106690 ) = { 54 , 51 , 45 , lc }; +Point ( 106691 ) = { 55 , 51 , 45 , lc }; +Point ( 106692 ) = { 56 , 51 , 45 , lc }; +Point ( 106693 ) = { 57 , 51 , 45 , lc }; +Point ( 106694 ) = { 58 , 51 , 45 , lc }; +Point ( 106695 ) = { 59 , 51 , 45 , lc }; +Point ( 106696 ) = { 60 , 51 , 45 , lc }; +Point ( 106697 ) = { 61 , 51 , 45 , lc }; +Point ( 106631 ) = { 62 , 50 , 45 , lc }; +Point ( 106632 ) = { 63 , 50 , 45 , lc }; +Point ( 106565 ) = { 64 , 49 , 45 , lc }; +Point ( 106566 ) = { 65 , 49 , 45 , lc }; +Point ( 106503 ) = { 66 , 48 , 45 , lc }; +Point ( 106504 ) = { 67 , 48 , 45 , lc }; +Point ( 106505 ) = { 68 , 48 , 45 , lc }; +Point ( 106445 ) = { 69 , 47 , 45 , lc }; +Point ( 106446 ) = { 70 , 47 , 45 , lc }; +Point ( 106447 ) = { 71 , 47 , 45 , lc }; +Point ( 106391 ) = { 72 , 46 , 45 , lc }; +Point ( 106392 ) = { 73 , 46 , 45 , lc }; +Point ( 106341 ) = { 74 , 45 , 45 , lc }; +Point ( 106342 ) = { 75 , 45 , 45 , lc }; +Point ( 106300 ) = { 76 , 44 , 45 , lc }; +Point ( 106265 ) = { 76 , 43 , 45 , lc }; +Point ( 106241 ) = { 77 , 42 , 45 , lc }; +Point ( 106229 ) = { 78 , 41 , 45 , lc }; +Point ( 106217 ) = { 78 , 40 , 45 , lc }; +Point ( 106206 ) = { 78 , 39 , 45 , lc }; +Point ( 106194 ) = { 78 , 38 , 45 , lc }; +Point ( 106182 ) = { 78 , 37 , 45 , lc }; +Spline ( 15 ) = { 106315 , 106316 , 106279 , 106280 , 106281 , 106282 , 106254 , 106255 , 106256 , 106257 , 106258 , 106259 , 106260 , 106261 , 106262 , 106263 , 106264 , 106293 , 106294 , 106295 , 106296 , 106297 , 106298 , 106336 , 106337 , 106338 , 106339 , 106385 , 106386 , 106387 , 106388 , 106389 , 106441 , 106442 , 106443 , 106500 , 106501 , 106561 , 106562 , 106563 , 106628 , 106629 , 106690 , 106691 , 106692 , 106693 , 106694 , 106695 , 106696 , 106697 , 106631 , 106632 , 106565 , 106566 , 106503 , 106504 , 106505 , 106445 , 106446 , 106447 , 106391 , 106392 , 106341 , 106342 , 106300 , 106265 , 106241 , 106229 , 106217 , 106206 , 106194 , 106182 }; + +//Point ( 106182 ) = { 78 , 37 , 45 , lc }; +Point ( 106170 ) = { 78 , 36 , 45 , lc }; +Point ( 106159 ) = { 78 , 35 , 45 , lc }; +Point ( 106148 ) = { 78 , 34 , 45 , lc }; +Point ( 106137 ) = { 78 , 33 , 45 , lc }; +Point ( 106136 ) = { 77 , 33 , 45 , lc }; +Point ( 106124 ) = { 77 , 32 , 45 , lc }; +Point ( 106123 ) = { 76 , 32 , 45 , lc }; +Point ( 106111 ) = { 76 , 31 , 45 , lc }; +Point ( 106110 ) = { 75 , 31 , 45 , lc }; +Point ( 106097 ) = { 75 , 30 , 45 , lc }; +Point ( 106096 ) = { 74 , 30 , 45 , lc }; +Point ( 106083 ) = { 74 , 29 , 45 , lc }; +Point ( 106082 ) = { 73 , 29 , 45 , lc }; +Point ( 106081 ) = { 72 , 29 , 45 , lc }; +Point ( 106066 ) = { 72 , 28 , 45 , lc }; +Point ( 106065 ) = { 71 , 28 , 45 , lc }; +Point ( 106064 ) = { 70 , 28 , 45 , lc }; +Point ( 106063 ) = { 69 , 28 , 45 , lc }; +Point ( 106062 ) = { 68 , 28 , 45 , lc }; +Point ( 106061 ) = { 67 , 28 , 45 , lc }; +Point ( 106060 ) = { 66 , 28 , 45 , lc }; +Point ( 106039 ) = { 66 , 27 , 45 , lc }; +Point ( 106038 ) = { 65 , 27 , 45 , lc }; +Point ( 106037 ) = { 64 , 27 , 45 , lc }; +Point ( 106036 ) = { 63 , 27 , 45 , lc }; +Point ( 106035 ) = { 62 , 27 , 45 , lc }; +Point ( 106034 ) = { 61 , 27 , 45 , lc }; +Point ( 106033 ) = { 60 , 27 , 45 , lc }; +Point ( 106007 ) = { 60 , 26 , 45 , lc }; +Point ( 106006 ) = { 59 , 26 , 45 , lc }; +Point ( 106005 ) = { 58 , 26 , 45 , lc }; +Point ( 106004 ) = { 57 , 26 , 45 , lc }; +Point ( 105976 ) = { 57 , 25 , 45 , lc }; +Point ( 105975 ) = { 56 , 25 , 45 , lc }; +Point ( 105947 ) = { 56 , 24 , 45 , lc }; +Point ( 105946 ) = { 55 , 24 , 45 , lc }; +Point ( 105917 ) = { 55 , 23 , 45 , lc }; +Point ( 105916 ) = { 54 , 23 , 45 , lc }; +Point ( 105915 ) = { 53 , 23 , 45 , lc }; +Point ( 105886 ) = { 53 , 22 , 45 , lc }; +Point ( 105885 ) = { 52 , 22 , 45 , lc }; +Point ( 105856 ) = { 52 , 21 , 45 , lc }; +Point ( 105855 ) = { 51 , 21 , 45 , lc }; +Point ( 105854 ) = { 50 , 21 , 45 , lc }; +Point ( 105824 ) = { 50 , 20 , 45 , lc }; +Point ( 105823 ) = { 49 , 20 , 45 , lc }; +Point ( 105822 ) = { 48 , 20 , 45 , lc }; +Point ( 105821 ) = { 47 , 20 , 45 , lc }; +Point ( 105789 ) = { 47 , 19 , 45 , lc }; +Point ( 105788 ) = { 46 , 19 , 45 , lc }; +Point ( 105787 ) = { 45 , 19 , 45 , lc }; +Point ( 105786 ) = { 44 , 19 , 45 , lc }; +Point ( 105752 ) = { 44 , 18 , 45 , lc }; +Point ( 105751 ) = { 43 , 18 , 45 , lc }; +Point ( 105750 ) = { 42 , 18 , 45 , lc }; +Point ( 105749 ) = { 41 , 18 , 45 , lc }; +Point ( 105748 ) = { 40 , 18 , 45 , lc }; +Point ( 105712 ) = { 40 , 17 , 45 , lc }; +Point ( 105711 ) = { 39 , 17 , 45 , lc }; +Point ( 105710 ) = { 38 , 17 , 45 , lc }; +Point ( 105709 ) = { 37 , 17 , 45 , lc }; +Point ( 105708 ) = { 36 , 17 , 45 , lc }; +Point ( 105707 ) = { 35 , 17 , 45 , lc }; +Point ( 105706 ) = { 34 , 17 , 45 , lc }; +Point ( 105705 ) = { 33 , 17 , 45 , lc }; +Point ( 105704 ) = { 32 , 17 , 45 , lc }; +Point ( 105703 ) = { 31 , 17 , 45 , lc }; +Point ( 105702 ) = { 30 , 17 , 45 , lc }; +Point ( 105658 ) = { 30 , 16 , 45 , lc }; +Point ( 105657 ) = { 29 , 16 , 45 , lc }; +Point ( 105656 ) = { 28 , 16 , 45 , lc }; +Point ( 105655 ) = { 27 , 16 , 45 , lc }; +Point ( 105654 ) = { 26 , 16 , 45 , lc }; +Point ( 105653 ) = { 25 , 16 , 45 , lc }; +Point ( 105652 ) = { 24 , 16 , 45 , lc }; +Point ( 105651 ) = { 23 , 16 , 45 , lc }; +Point ( 105650 ) = { 22 , 16 , 45 , lc }; +Point ( 105599 ) = { 22 , 15 , 45 , lc }; +Point ( 105598 ) = { 21 , 15 , 45 , lc }; +//Point ( 105597 ) = { 20 , 15 , 45 , lc }; +Spline ( 16 ) = { 106182 , 106170 , 106159 , 106148 , 106137 , 106136 , 106124 , 106123 , 106111 , 106110 , 106097 , 106096 , 106083 , 106082 , 106081 , 106066 , 106065 , 106064 , 106063 , 106062 , 106061 , 106060 , 106039 , 106038 , 106037 , 106036 , 106035 , 106034 , 106033 , 106007 , 106006 , 106005 , 106004 , 105976 , 105975 , 105947 , 105946 , 105917 , 105916 , 105915 , 105886 , 105885 , 105856 , 105855 , 105854 , 105824 , 105823 , 105822 , 105821 , 105789 , 105788 , 105787 , 105786 , 105752 , 105751 , 105750 , 105749 , 105748 , 105712 , 105711 , 105710 , 105709 , 105708 , 105707 , 105706 , 105705 , 105704 , 105703 , 105702 , 105658 , 105657 , 105656 , 105655 , 105654 , 105653 , 105652 , 105651 , 105650 , 105599 , 105598 , 105597 }; + +//Point ( 107467 ) = { 20 , 77 , 45 , lc }; +Point ( 107468 ) = { 21 , 77 , 45 , lc }; +Point ( 107469 ) = { 22 , 77 , 45 , lc }; +Point ( 107470 ) = { 23 , 77 , 45 , lc }; +Point ( 107471 ) = { 24 , 77 , 45 , lc }; +Point ( 107472 ) = { 25 , 77 , 45 , lc }; +Point ( 107473 ) = { 26 , 77 , 45 , lc }; +Point ( 107474 ) = { 27 , 77 , 45 , lc }; +Point ( 107475 ) = { 28 , 77 , 45 , lc }; +Point ( 107476 ) = { 29 , 77 , 45 , lc }; +Point ( 107477 ) = { 30 , 77 , 45 , lc }; +Point ( 107478 ) = { 31 , 77 , 45 , lc }; +Point ( 107479 ) = { 32 , 77 , 45 , lc }; +Point ( 107480 ) = { 33 , 77 , 45 , lc }; +Point ( 107481 ) = { 34 , 77 , 45 , lc }; +Point ( 107482 ) = { 35 , 77 , 45 , lc }; +Point ( 107483 ) = { 36 , 77 , 45 , lc }; +Point ( 107484 ) = { 37 , 77 , 45 , lc }; +Point ( 107485 ) = { 38 , 77 , 45 , lc }; +Point ( 107486 ) = { 39 , 77 , 45 , lc }; +Point ( 107487 ) = { 40 , 77 , 45 , lc }; +Point ( 107488 ) = { 41 , 77 , 45 , lc }; +Point ( 107489 ) = { 42 , 77 , 45 , lc }; +Point ( 107490 ) = { 43 , 77 , 45 , lc }; +Point ( 107447 ) = { 44 , 76 , 45 , lc }; +Point ( 107448 ) = { 45 , 76 , 45 , lc }; +Point ( 107427 ) = { 46 , 75 , 45 , lc }; +Point ( 107428 ) = { 47 , 75 , 45 , lc }; +Point ( 107411 ) = { 48 , 74 , 45 , lc }; +Point ( 107398 ) = { 49 , 73 , 45 , lc }; +Point ( 107399 ) = { 50 , 73 , 45 , lc }; +Point ( 107386 ) = { 50 , 72 , 45 , lc }; +Point ( 107377 ) = { 51 , 71 , 45 , lc }; +Point ( 107367 ) = { 52 , 70 , 45 , lc }; +Point ( 107358 ) = { 53 , 69 , 45 , lc }; +Point ( 107349 ) = { 53 , 68 , 45 , lc }; +Point ( 107339 ) = { 53 , 67 , 45 , lc }; +Point ( 107326 ) = { 53 , 66 , 45 , lc }; +Spline ( 17 ) = { 107467 , 107468 , 107469 , 107470 , 107471 , 107472 , 107473 , 107474 , 107475 , 107476 , 107477 , 107478 , 107479 , 107480 , 107481 , 107482 , 107483 , 107484 , 107485 , 107486 , 107487 , 107488 , 107489 , 107490 , 107447 , 107448 , 107427 , 107428 , 107411 , 107398 , 107399 , 107386 , 107377 , 107367 , 107358 , 107349 , 107339 , 107326 }; + +//Point ( 107326 ) = { 53 , 66 , 45 , lc }; +Point ( 107312 ) = { 53 , 65 , 45 , lc }; +Point ( 107311 ) = { 52 , 65 , 45 , lc }; +Point ( 107310 ) = { 51 , 65 , 45 , lc }; +Point ( 107309 ) = { 50 , 65 , 45 , lc }; +Point ( 107308 ) = { 49 , 65 , 45 , lc }; +Point ( 107307 ) = { 48 , 65 , 45 , lc }; +Point ( 107306 ) = { 47 , 65 , 45 , lc }; +Point ( 107305 ) = { 46 , 65 , 45 , lc }; +Point ( 107304 ) = { 45 , 65 , 45 , lc }; +Point ( 107280 ) = { 45 , 64 , 45 , lc }; +Point ( 107279 ) = { 44 , 64 , 45 , lc }; +Point ( 107278 ) = { 43 , 64 , 45 , lc }; +Point ( 107250 ) = { 43 , 63 , 45 , lc }; +Point ( 107249 ) = { 42 , 63 , 45 , lc }; +Point ( 107248 ) = { 41 , 63 , 45 , lc }; +Point ( 107217 ) = { 41 , 62 , 45 , lc }; +Point ( 107216 ) = { 40 , 62 , 45 , lc }; +Point ( 107215 ) = { 39 , 62 , 45 , lc }; +Point ( 107181 ) = { 39 , 61 , 45 , lc }; +Point ( 107180 ) = { 38 , 61 , 45 , lc }; +Point ( 107143 ) = { 38 , 60 , 45 , lc }; +Point ( 107142 ) = { 37 , 60 , 45 , lc }; +Point ( 107141 ) = { 36 , 60 , 45 , lc }; +Point ( 107100 ) = { 36 , 59 , 45 , lc }; +Point ( 107099 ) = { 35 , 59 , 45 , lc }; +Point ( 107098 ) = { 34 , 59 , 45 , lc }; +Point ( 107054 ) = { 34 , 58 , 45 , lc }; +Point ( 107053 ) = { 33 , 58 , 45 , lc }; +Point ( 107052 ) = { 32 , 58 , 45 , lc }; +Point ( 107005 ) = { 32 , 57 , 45 , lc }; +Point ( 107004 ) = { 31 , 57 , 45 , lc }; +Point ( 106955 ) = { 31 , 56 , 45 , lc }; +Point ( 106954 ) = { 30 , 56 , 45 , lc }; +Point ( 106953 ) = { 29 , 56 , 45 , lc }; +Point ( 106901 ) = { 29 , 55 , 45 , lc }; +Point ( 106900 ) = { 28 , 55 , 45 , lc }; +Point ( 106899 ) = { 27 , 55 , 45 , lc }; +Point ( 106844 ) = { 27 , 54 , 45 , lc }; +Point ( 106843 ) = { 26 , 54 , 45 , lc }; +Point ( 106842 ) = { 25 , 54 , 45 , lc }; +Point ( 106784 ) = { 25 , 53 , 45 , lc }; +Point ( 106783 ) = { 24 , 53 , 45 , lc }; +Point ( 106723 ) = { 24 , 52 , 45 , lc }; +Point ( 106722 ) = { 23 , 52 , 45 , lc }; +Point ( 106721 ) = { 22 , 52 , 45 , lc }; +Point ( 106658 ) = { 22 , 51 , 45 , lc }; +Point ( 106657 ) = { 21 , 51 , 45 , lc }; +//Point ( 106656 ) = { 20 , 51 , 45 , lc }; +Spline ( 18 ) = { 107326 , 107312 , 107311 , 107310 , 107309 , 107308 , 107307 , 107306 , 107305 , 107304 , 107280 , 107279 , 107278 , 107250 , 107249 , 107248 , 107217 , 107216 , 107215 , 107181 , 107180 , 107143 , 107142 , 107141 , 107100 , 107099 , 107098 , 107054 , 107053 , 107052 , 107005 , 107004 , 106955 , 106954 , 106953 , 106901 , 106900 , 106899 , 106844 , 106843 , 106842 , 106784 , 106783 , 106723 , 106722 , 106721 , 106658 , 106657 , 106656 }; + +//Point ( 465 ) = { 20 , 37 , 4 , lc }; +Point ( 1020 ) = { 21 , 37 , 5 , lc }; +Point ( 1021 ) = { 22 , 37 , 5 , lc }; +Point ( 1022 ) = { 23 , 37 , 5 , lc }; +Point ( 1023 ) = { 24 , 37 , 5 , lc }; +Point ( 1024 ) = { 25 , 37 , 5 , lc }; +Point ( 1025 ) = { 26 , 37 , 5 , lc }; +Point ( 1026 ) = { 27 , 37 , 5 , lc }; +Point ( 1027 ) = { 28 , 37 , 5 , lc }; +Point ( 1028 ) = { 29 , 37 , 5 , lc }; +Point ( 1029 ) = { 30 , 37 , 5 , lc }; +Point ( 466 ) = { 30 , 37 , 4 , lc }; +Point ( 467 ) = { 31 , 37 , 4 , lc }; +Point ( 468 ) = { 32 , 37 , 4 , lc }; +Point ( 1032 ) = { 33 , 37 , 5 , lc }; +Point ( 1033 ) = { 34 , 37 , 5 , lc }; +Point ( 1034 ) = { 35 , 37 , 5 , lc }; +Point ( 1035 ) = { 36 , 37 , 5 , lc }; +Point ( 1810 ) = { 37 , 37 , 6 , lc }; +Point ( 1811 ) = { 38 , 37 , 6 , lc }; +Point ( 2782 ) = { 39 , 37 , 7 , lc }; +Point ( 2783 ) = { 40 , 37 , 7 , lc }; +Point ( 2784 ) = { 41 , 37 , 7 , lc }; +Point ( 2785 ) = { 42 , 37 , 7 , lc }; +Point ( 3980 ) = { 43 , 37 , 8 , lc }; +Point ( 3981 ) = { 44 , 37 , 8 , lc }; +Point ( 3982 ) = { 45 , 37 , 8 , lc }; +Point ( 3983 ) = { 46 , 37 , 8 , lc }; +Point ( 5384 ) = { 47 , 37 , 9 , lc }; +Point ( 5385 ) = { 48 , 37 , 9 , lc }; +Point ( 5386 ) = { 49 , 37 , 9 , lc }; +Point ( 6998 ) = { 50 , 37 , 10 , lc }; +Point ( 6999 ) = { 51 , 37 , 10 , lc }; +Point ( 7000 ) = { 52 , 37 , 10 , lc }; +Point ( 8819 ) = { 53 , 37 , 11 , lc }; +Point ( 8820 ) = { 54 , 37 , 11 , lc }; +Point ( 10842 ) = { 55 , 37 , 12 , lc }; +Point ( 10843 ) = { 56 , 37 , 12 , lc }; +Point ( 12952 ) = { 57 , 37 , 13 , lc }; +Point ( 12953 ) = { 58 , 37 , 13 , lc }; +Point ( 15201 ) = { 59 , 37 , 14 , lc }; +Point ( 15202 ) = { 60 , 37 , 14 , lc }; +Point ( 17533 ) = { 61 , 37 , 15 , lc }; +Point ( 17534 ) = { 62 , 37 , 15 , lc }; +Point ( 20014 ) = { 63 , 37 , 16 , lc }; +Point ( 22635 ) = { 64 , 37 , 17 , lc }; +Point ( 22636 ) = { 65 , 37 , 17 , lc }; +Point ( 25383 ) = { 66 , 37 , 18 , lc }; +Point ( 25384 ) = { 67 , 37 , 18 , lc }; +Point ( 28241 ) = { 68 , 37 , 19 , lc }; +Point ( 31219 ) = { 69 , 37 , 20 , lc }; +Point ( 31220 ) = { 70 , 37 , 20 , lc }; +Point ( 34283 ) = { 71 , 37 , 21 , lc }; +Point ( 37442 ) = { 72 , 37 , 22 , lc }; +Point ( 37443 ) = { 73 , 37 , 22 , lc }; +Point ( 40693 ) = { 74 , 37 , 23 , lc }; +Point ( 44035 ) = { 75 , 37 , 24 , lc }; +Point ( 44036 ) = { 76 , 37 , 24 , lc }; +Point ( 47432 ) = { 76 , 37 , 25 , lc }; +Point ( 50834 ) = { 77 , 37 , 26 , lc }; +Point ( 50835 ) = { 78 , 37 , 26 , lc }; +Point ( 54247 ) = { 79 , 37 , 27 , lc }; +Point ( 57620 ) = { 80 , 37 , 28 , lc }; +Point ( 60926 ) = { 81 , 37 , 29 , lc }; +Point ( 64184 ) = { 81 , 37 , 30 , lc }; +Point ( 67369 ) = { 82 , 37 , 31 , lc }; +Point ( 67370 ) = { 83 , 37 , 31 , lc }; +Point ( 70455 ) = { 83 , 37 , 32 , lc }; +Point ( 73428 ) = { 84 , 37 , 33 , lc }; +Point ( 76336 ) = { 85 , 37 , 34 , lc }; +Point ( 79181 ) = { 86 , 37 , 35 , lc }; +Point ( 81983 ) = { 86 , 37 , 36 , lc }; +Point ( 84752 ) = { 86 , 37 , 37 , lc }; +Point ( 87494 ) = { 87 , 37 , 38 , lc }; +Point ( 90200 ) = { 87 , 37 , 39 , lc }; +Point ( 92881 ) = { 88 , 37 , 40 , lc }; +Point ( 95540 ) = { 88 , 37 , 41 , lc }; +Point ( 98188 ) = { 88 , 37 , 42 , lc }; +Point ( 100842 ) = { 88 , 37 , 43 , lc }; +Point ( 103511 ) = { 88 , 37 , 44 , lc }; +//Point ( 106193 ) = { 89 , 37 , 45 , lc }; +Spline ( 19 ) = { 465 , 1020 , 1021 , 1022 , 1023 , 1024 , 1025 , 1026 , 1027 , 1028 , 1029 , 466 , 467 , 468 , 1032 , 1033 , 1034 , 1035 , 1810 , 1811 , 2782 , 2783 , 2784 , 2785 , 3980 , 3981 , 3982 , 3983 , 5384 , 5385 , 5386 , 6998 , 6999 , 7000 , 8819 , 8820 , 10842 , 10843 , 12952 , 12953 , 15201 , 15202 , 17533 , 17534 , 20014 , 22635 , 22636 , 25383 , 25384 , 28241 , 31219 , 31220 , 34283 , 37442 , 37443 , 40693 , 44035 , 44036 , 47432 , 50834 , 50835 , 54247 , 57620 , 60926 , 64184 , 67369 , 67370 , 70455 , 73428 , 76336 , 79181 , 81983 , 84752 , 87494 , 90200 , 92881 , 95540 , 98188 , 100842 , 103511 , 106193 }; + +//Point ( 106193 ) = { 89 , 37 , 45 , lc }; +Point ( 108904 ) = { 89 , 37 , 46 , lc }; +Point ( 111658 ) = { 89 , 37 , 47 , lc }; +Point ( 114470 ) = { 88 , 37 , 48 , lc }; +Point ( 117323 ) = { 88 , 37 , 49 , lc }; +Point ( 120224 ) = { 88 , 37 , 50 , lc }; +Point ( 123154 ) = { 88 , 37 , 51 , lc }; +Point ( 126113 ) = { 87 , 37 , 52 , lc }; +Point ( 129087 ) = { 87 , 37 , 53 , lc }; +Point ( 132083 ) = { 87 , 37 , 54 , lc }; +Point ( 135071 ) = { 86 , 37 , 55 , lc }; +Point ( 138090 ) = { 86 , 37 , 56 , lc }; +Point ( 141139 ) = { 85 , 37 , 57 , lc }; +Point ( 144224 ) = { 84 , 37 , 58 , lc }; +Point ( 147359 ) = { 84 , 37 , 59 , lc }; +Point ( 150560 ) = { 83 , 37 , 60 , lc }; +Point ( 153773 ) = { 82 , 37 , 61 , lc }; +Point ( 156995 ) = { 81 , 37 , 62 , lc }; +Point ( 160207 ) = { 80 , 37 , 63 , lc }; +Point ( 163333 ) = { 79 , 37 , 64 , lc }; +Point ( 166355 ) = { 78 , 37 , 65 , lc }; +Point ( 166354 ) = { 77 , 37 , 65 , lc }; +Point ( 169270 ) = { 76 , 37 , 66 , lc }; +Point ( 172079 ) = { 75 , 37 , 67 , lc }; +Point ( 172078 ) = { 74 , 37 , 67 , lc }; +Point ( 174760 ) = { 73 , 37 , 68 , lc }; +Point ( 174759 ) = { 72 , 37 , 68 , lc }; +Point ( 177323 ) = { 71 , 37 , 69 , lc }; +Point ( 177322 ) = { 70 , 37 , 69 , lc }; +Point ( 179742 ) = { 69 , 37 , 70 , lc }; +Point ( 179741 ) = { 68 , 37 , 70 , lc }; +Point ( 182048 ) = { 67 , 37 , 71 , lc }; +Point ( 182047 ) = { 66 , 37 , 71 , lc }; +Point ( 182046 ) = { 65 , 37 , 71 , lc }; +Point ( 184209 ) = { 64 , 37 , 72 , lc }; +Point ( 184208 ) = { 63 , 37 , 72 , lc }; +Point ( 186261 ) = { 62 , 37 , 73 , lc }; +Point ( 186260 ) = { 61 , 37 , 73 , lc }; +Point ( 186259 ) = { 60 , 37 , 73 , lc }; +Point ( 186258 ) = { 59 , 37 , 73 , lc }; +Point ( 188088 ) = { 58 , 37 , 74 , lc }; +Point ( 188087 ) = { 57 , 37 , 74 , lc }; +Point ( 188086 ) = { 56 , 37 , 74 , lc }; +Point ( 189683 ) = { 55 , 37 , 75 , lc }; +Point ( 189682 ) = { 54 , 37 , 75 , lc }; +Point ( 189681 ) = { 53 , 37 , 75 , lc }; +Point ( 189680 ) = { 52 , 37 , 75 , lc }; +Point ( 191015 ) = { 51 , 37 , 76 , lc }; +Point ( 191014 ) = { 50 , 37 , 76 , lc }; +Point ( 191013 ) = { 49 , 37 , 76 , lc }; +Point ( 191012 ) = { 48 , 37 , 76 , lc }; +Point ( 192078 ) = { 47 , 37 , 77 , lc }; +Point ( 192077 ) = { 46 , 37 , 77 , lc }; +Point ( 192076 ) = { 45 , 37 , 77 , lc }; +Point ( 192075 ) = { 44 , 37 , 77 , lc }; +Point ( 192074 ) = { 43 , 37 , 77 , lc }; +Point ( 192867 ) = { 42 , 37 , 78 , lc }; +Point ( 192866 ) = { 41 , 37 , 78 , lc }; +Point ( 192865 ) = { 40 , 37 , 78 , lc }; +Point ( 192864 ) = { 39 , 37 , 78 , lc }; +Point ( 192863 ) = { 38 , 37 , 78 , lc }; +Point ( 192862 ) = { 37 , 37 , 78 , lc }; +Point ( 192861 ) = { 36 , 37 , 78 , lc }; +Point ( 192860 ) = { 35 , 37 , 78 , lc }; +Point ( 192859 ) = { 34 , 37 , 78 , lc }; +Point ( 192858 ) = { 33 , 37 , 78 , lc }; +Point ( 192857 ) = { 32 , 37 , 78 , lc }; +Point ( 192856 ) = { 31 , 37 , 78 , lc }; +Point ( 192855 ) = { 30 , 37 , 78 , lc }; +Point ( 192854 ) = { 29 , 37 , 78 , lc }; +Point ( 192853 ) = { 28 , 37 , 78 , lc }; +Point ( 192852 ) = { 27 , 37 , 78 , lc }; +Point ( 192851 ) = { 26 , 37 , 78 , lc }; +Point ( 192850 ) = { 25 , 37 , 78 , lc }; +Point ( 192849 ) = { 24 , 37 , 78 , lc }; +Point ( 192848 ) = { 23 , 37 , 78 , lc }; +Point ( 192847 ) = { 22 , 37 , 78 , lc }; +Point ( 192846 ) = { 21 , 37 , 78 , lc }; +//Point ( 192845 ) = { 20 , 37 , 78 , lc }; +Spline ( 20 ) = { 106193 , 108904 , 111658 , 114470 , 117323 , 120224 , 123154 , 126113 , 129087 , 132083 , 135071 , 138090 , 141139 , 144224 , 147359 , 150560 , 153773 , 156995 , 160207 , 163333 , 166355 , 166354 , 169270 , 172079 , 172078 , 174760 , 174759 , 177323 , 177322 , 179742 , 179741 , 182048 , 182047 , 182046 , 184209 , 184208 , 186261 , 186260 , 186259 , 186258 , 188088 , 188087 , 188086 , 189683 , 189682 , 189681 , 189680 , 191015 , 191014 , 191013 , 191012 , 192078 , 192077 , 192076 , 192075 , 192074 , 192867 , 192866 , 192865 , 192864 , 192863 , 192862 , 192861 , 192860 , 192859 , 192858 , 192857 , 192856 , 192855 , 192854 , 192853 , 192852 , 192851 , 192850 , 192849 , 192848 , 192847 , 192846 , 192845 }; + +//Point ( 70431 ) = { 20 , 37 , 32 , lc }; +Point ( 70432 ) = { 21 , 37 , 32 , lc }; +Point ( 70433 ) = { 22 , 37 , 32 , lc }; +Point ( 67343 ) = { 22 , 37 , 31 , lc }; +Point ( 67344 ) = { 23 , 37 , 31 , lc }; +Point ( 67345 ) = { 24 , 37 , 31 , lc }; +Point ( 67346 ) = { 25 , 37 , 31 , lc }; +Point ( 67347 ) = { 26 , 37 , 31 , lc }; +Point ( 64160 ) = { 26 , 37 , 30 , lc }; +Point ( 64161 ) = { 27 , 37 , 30 , lc }; +Point ( 64162 ) = { 28 , 37 , 30 , lc }; +Point ( 60900 ) = { 28 , 37 , 29 , lc }; +Point ( 60901 ) = { 29 , 37 , 29 , lc }; +Point ( 60902 ) = { 30 , 37 , 29 , lc }; +Point ( 57593 ) = { 30 , 37 , 28 , lc }; +Point ( 57594 ) = { 31 , 37 , 28 , lc }; +Point ( 57595 ) = { 32 , 37 , 28 , lc }; +Point ( 57596 ) = { 33 , 37 , 28 , lc }; +Point ( 54214 ) = { 33 , 37 , 27 , lc }; +Point ( 54215 ) = { 34 , 37 , 27 , lc }; +Point ( 54216 ) = { 35 , 37 , 27 , lc }; +Point ( 50796 ) = { 35 , 37 , 26 , lc }; +Point ( 50797 ) = { 36 , 37 , 26 , lc }; +Point ( 50798 ) = { 37 , 37 , 26 , lc }; +Point ( 47393 ) = { 37 , 37 , 25 , lc }; +Point ( 47394 ) = { 38 , 37 , 25 , lc }; +Point ( 47395 ) = { 39 , 37 , 25 , lc }; +Point ( 47396 ) = { 40 , 37 , 25 , lc }; +Point ( 47397 ) = { 41 , 37 , 25 , lc }; +Point ( 47398 ) = { 42 , 37 , 25 , lc }; +Point ( 50800 ) = { 43 , 37 , 26 , lc }; +Point ( 50801 ) = { 44 , 37 , 26 , lc }; +Point ( 50802 ) = { 45 , 37 , 26 , lc }; +Point ( 54218 ) = { 46 , 37 , 27 , lc }; +Point ( 54219 ) = { 47 , 37 , 27 , lc }; +Point ( 54220 ) = { 48 , 37 , 27 , lc }; +Point ( 54221 ) = { 49 , 37 , 27 , lc }; +Point ( 50806 ) = { 49 , 37 , 26 , lc }; +Point ( 50807 ) = { 50 , 37 , 26 , lc }; +Point ( 50808 ) = { 51 , 37 , 26 , lc }; +Point ( 50809 ) = { 52 , 37 , 26 , lc }; +Point ( 50810 ) = { 53 , 37 , 26 , lc }; +Point ( 50811 ) = { 54 , 37 , 26 , lc }; +Point ( 54223 ) = { 55 , 37 , 27 , lc }; +Point ( 54224 ) = { 56 , 37 , 27 , lc }; +Point ( 54225 ) = { 57 , 37 , 27 , lc }; +Point ( 57598 ) = { 58 , 37 , 28 , lc }; +Point ( 60904 ) = { 59 , 37 , 29 , lc }; +Point ( 60905 ) = { 60 , 37 , 29 , lc }; +Point ( 64164 ) = { 61 , 37 , 30 , lc }; +Point ( 67349 ) = { 62 , 37 , 31 , lc }; +Point ( 70435 ) = { 63 , 37 , 32 , lc }; +Point ( 70436 ) = { 64 , 37 , 32 , lc }; +Point ( 70437 ) = { 65 , 37 , 32 , lc }; +Point ( 73410 ) = { 66 , 37 , 33 , lc }; +Point ( 73411 ) = { 67 , 37 , 33 , lc }; +Point ( 76319 ) = { 68 , 37 , 34 , lc }; +Point ( 76320 ) = { 69 , 37 , 34 , lc }; +Point ( 79165 ) = { 70 , 37 , 35 , lc }; +Point ( 79166 ) = { 71 , 37 , 35 , lc }; +Point ( 81969 ) = { 72 , 37 , 36 , lc }; +Point ( 84739 ) = { 73 , 37 , 37 , lc }; +Point ( 84740 ) = { 74 , 37 , 37 , lc }; +Point ( 87482 ) = { 75 , 37 , 38 , lc }; +Point ( 90189 ) = { 76 , 37 , 39 , lc }; +Point ( 92870 ) = { 77 , 37 , 40 , lc }; +Point ( 95529 ) = { 77 , 37 , 41 , lc }; +Point ( 98178 ) = { 78 , 37 , 42 , lc }; +Point ( 100832 ) = { 78 , 37 , 43 , lc }; +Point ( 103501 ) = { 78 , 37 , 44 , lc }; +//Point ( 106182 ) = { 78 , 37 , 45 , lc }; +Spline ( 21 ) = { 70431 , 70432 , 70433 , 67343 , 67344 , 67345 , 67346 , 67347 , 64160 , 64161 , 64162 , 60900 , 60901 , 60902 , 57593 , 57594 , 57595 , 57596 , 54214 , 54215 , 54216 , 50796 , 50797 , 50798 , 47393 , 47394 , 47395 , 47396 , 47397 , 47398 , 50800 , 50801 , 50802 , 54218 , 54219 , 54220 , 54221 , 50806 , 50807 , 50808 , 50809 , 50810 , 50811 , 54223 , 54224 , 54225 , 57598 , 60904 , 60905 , 64164 , 67349 , 70435 , 70436 , 70437 , 73410 , 73411 , 76319 , 76320 , 79165 , 79166 , 81969 , 84739 , 84740 , 87482 , 90189 , 92870 , 95529 , 98178 , 100832 , 103501 , 106182 }; + +//Point ( 106182 ) = { 78 , 37 , 45 , lc }; +Point ( 108893 ) = { 78 , 37 , 46 , lc }; +Point ( 111647 ) = { 78 , 37 , 47 , lc }; + +Point ( 114460 ) = { 78 , 37 , 48 , lc }; +Point ( 117313 ) = { 78 , 37 , 49 , lc }; +Point ( 120214 ) = { 78 , 37 , 50 , lc }; +Point ( 123143 ) = { 77 , 37 , 51 , lc }; +Point ( 126103 ) = { 77 , 37 , 52 , lc }; +Point ( 129076 ) = { 76 , 37 , 53 , lc }; +Point ( 132071 ) = { 75 , 37 , 54 , lc }; +Point ( 135059 ) = { 74 , 37 , 55 , lc }; +Point ( 135058 ) = { 73 , 37 , 55 , lc }; +Point ( 138076 ) = { 72 , 37 , 56 , lc }; +Point ( 138075 ) = { 71 , 37 , 56 , lc }; +Point ( 141124 ) = { 70 , 37 , 57 , lc }; +Point ( 141123 ) = { 69 , 37 , 57 , lc }; +Point ( 141122 ) = { 68 , 37 , 57 , lc }; +Point ( 144207 ) = { 67 , 37 , 58 , lc }; +Point ( 144206 ) = { 66 , 37 , 58 , lc }; +Point ( 144205 ) = { 65 , 37 , 58 , lc }; +Point ( 144204 ) = { 64 , 37 , 58 , lc }; +Point ( 144203 ) = { 63 , 37 , 58 , lc }; +Point ( 144202 ) = { 62 , 37 , 58 , lc }; +Point ( 144201 ) = { 61 , 37 , 58 , lc }; +Point ( 144200 ) = { 60 , 37 , 58 , lc }; +Point ( 144199 ) = { 59 , 37 , 58 , lc }; +Point ( 144198 ) = { 58 , 37 , 58 , lc }; +Point ( 144197 ) = { 57 , 37 , 58 , lc }; +Point ( 144196 ) = { 56 , 37 , 58 , lc }; +Point ( 144195 ) = { 55 , 37 , 58 , lc }; +Point ( 147329 ) = { 54 , 37 , 59 , lc }; +Point ( 147328 ) = { 53 , 37 , 59 , lc }; +Point ( 147327 ) = { 52 , 37 , 59 , lc }; +Point ( 147326 ) = { 51 , 37 , 59 , lc }; +Point ( 147325 ) = { 50 , 37 , 59 , lc }; +Point ( 147324 ) = { 49 , 37 , 59 , lc }; +Point ( 147323 ) = { 48 , 37 , 59 , lc }; +Point ( 147322 ) = { 47 , 37 , 59 , lc }; +Point ( 147321 ) = { 46 , 37 , 59 , lc }; +Point ( 150522 ) = { 45 , 37 , 60 , lc }; +Point ( 150521 ) = { 44 , 37 , 60 , lc }; +Point ( 150520 ) = { 43 , 37 , 60 , lc }; +Point ( 150519 ) = { 42 , 37 , 60 , lc }; +Point ( 150518 ) = { 41 , 37 , 60 , lc }; +Point ( 150517 ) = { 40 , 37 , 60 , lc }; +Point ( 150516 ) = { 39 , 37 , 60 , lc }; +Point ( 150515 ) = { 38 , 37 , 60 , lc }; +Point ( 150514 ) = { 37 , 37 , 60 , lc }; +Point ( 150513 ) = { 36 , 37 , 60 , lc }; +Point ( 150512 ) = { 35 , 37 , 60 , lc }; +Point ( 150511 ) = { 34 , 37 , 60 , lc }; +Point ( 150510 ) = { 33 , 37 , 60 , lc }; +Point ( 150509 ) = { 32 , 37 , 60 , lc }; +Point ( 150508 ) = { 31 , 37 , 60 , lc }; +Point ( 150507 ) = { 30 , 37 , 60 , lc }; +Point ( 150506 ) = { 29 , 37 , 60 , lc }; +Point ( 150505 ) = { 28 , 37 , 60 , lc }; +Point ( 150504 ) = { 27 , 37 , 60 , lc }; +Point ( 150503 ) = { 26 , 37 , 60 , lc }; +Point ( 150502 ) = { 25 , 37 , 60 , lc }; +Point ( 150501 ) = { 24 , 37 , 60 , lc }; +Point ( 150500 ) = { 23 , 37 , 60 , lc }; +Point ( 150499 ) = { 22 , 37 , 60 , lc }; +Point ( 150498 ) = { 21 , 37 , 60 , lc }; +//Point ( 150497 ) = { 20 , 37 , 60 , lc }; +Spline ( 22 ) = { 106182 , 108893 , 111647 , 114460 , 117313 , 120214 , 123143 , 126103 , 129076 , 132071 , 135059 , 135058 , 138076 , 138075 , 141124 , 141123 , 141122 , 144207 , 144206 , 144205 , 144204 , 144203 , 144202 , 144201 , 144200 , 144199 , 144198 , 144197 , 144196 , 144195 , 147329 , 147328 , 147327 , 147326 , 147325 , 147324 , 147323 , 147322 , 147321 , 150522 , 150521 , 150520 , 150519 , 150518 , 150517 , 150516 , 150515 , 150514 , 150513 , 150512 , 150511 , 150510 , 150509 , 150508 , 150507 , 150506 , 150505 , 150504 , 150503 , 150502 , 150501 , 150500 , 150499 , 150498 , 150497 }; + +//Point ( 23846 ) = { 20 , 66 , 17 , lc }; +Point ( 23847 ) = { 21 , 66 , 17 , lc }; +Point ( 26616 ) = { 22 , 66 , 18 , lc }; +Point ( 26617 ) = { 23 , 66 , 18 , lc }; +Point ( 26618 ) = { 24 , 66 , 18 , lc }; +Point ( 26619 ) = { 25 , 66 , 18 , lc }; +Point ( 26620 ) = { 26 , 66 , 18 , lc }; +Point ( 26621 ) = { 27 , 66 , 18 , lc }; +Point ( 26622 ) = { 28 , 66 , 18 , lc }; +Point ( 26623 ) = { 29 , 66 , 18 , lc }; +Point ( 26624 ) = { 30 , 66 , 18 , lc }; +Point ( 29502 ) = { 31 , 66 , 19 , lc }; +Point ( 29503 ) = { 32 , 66 , 19 , lc }; +Point ( 29504 ) = { 33 , 66 , 19 , lc }; +Point ( 32512 ) = { 34 , 66 , 20 , lc }; +Point ( 32513 ) = { 35 , 66 , 20 , lc }; +Point ( 32514 ) = { 36 , 66 , 20 , lc }; +Point ( 32515 ) = { 37 , 66 , 20 , lc }; +Point ( 35607 ) = { 38 , 66 , 21 , lc }; +Point ( 38803 ) = { 39 , 66 , 22 , lc }; +Point ( 38804 ) = { 40 , 66 , 22 , lc }; +Point ( 42083 ) = { 40 , 66 , 23 , lc }; +Point ( 45453 ) = { 41 , 66 , 24 , lc }; +Point ( 48867 ) = { 41 , 66 , 25 , lc }; +Point ( 52292 ) = { 41 , 66 , 26 , lc }; +Point ( 55706 ) = { 42 , 66 , 27 , lc }; +Point ( 55707 ) = { 43 , 66 , 27 , lc }; +Point ( 59060 ) = { 43 , 66 , 28 , lc }; +Point ( 62355 ) = { 43 , 66 , 29 , lc }; +Point ( 62354 ) = { 42 , 66 , 29 , lc }; +Point ( 62353 ) = { 41 , 66 , 29 , lc }; +Point ( 65588 ) = { 40 , 66 , 30 , lc }; +Point ( 68730 ) = { 40 , 66 , 31 , lc }; +Point ( 71764 ) = { 40 , 66 , 32 , lc }; +Point ( 74706 ) = { 40 , 66 , 33 , lc }; +Point ( 77579 ) = { 41 , 66 , 34 , lc }; +Point ( 80400 ) = { 41 , 66 , 35 , lc }; +Point ( 83191 ) = { 42 , 66 , 36 , lc }; +Point ( 85937 ) = { 42 , 66 , 37 , lc }; +Point ( 88668 ) = { 42 , 66 , 38 , lc }; +Point ( 91347 ) = { 43 , 66 , 39 , lc }; +Point ( 94001 ) = { 44 , 66 , 40 , lc }; +Point ( 96652 ) = { 45 , 66 , 41 , lc }; +Point ( 99295 ) = { 46 , 66 , 42 , lc }; +Point ( 101959 ) = { 47 , 66 , 43 , lc }; +Point ( 101960 ) = { 48 , 66 , 43 , lc }; +Point ( 101961 ) = { 49 , 66 , 43 , lc }; +Point ( 101962 ) = { 50 , 66 , 43 , lc }; +Point ( 101963 ) = { 51 , 66 , 43 , lc }; +Point ( 101964 ) = { 52 , 66 , 43 , lc }; +Point ( 104634 ) = { 53 , 66 , 44 , lc }; +//Point ( 107326 ) = { 53 , 66 , 45 , lc }; +Spline ( 23 ) = { 23846 , 23847 , 26616 , 26617 , 26618 , 26619 , 26620 , 26621 , 26622 , 26623 , 26624 , 29502 , 29503 , 29504 , 32512 , 32513 , 32514 , 32515 , 35607 , 38803 , 38804 , 42083 , 45453 , 48867 , 52292 , 55706 , 55707 , 59060 , 62355 , 62354 , 62353 , 65588 , 68730 , 71764 , 74706 , 77579 , 80400 , 83191 , 85937 , 88668 , 91347 , 94001 , 96652 , 99295 , 101959 , 101960 , 101961 , 101962 , 101963 , 101964 , 104634 , 107326 }; + +//Point ( 107326 ) = { 53 , 66 , 45 , lc }; +Point ( 110045 ) = { 53 , 66 , 46 , lc }; +Point ( 112808 ) = { 53 , 66 , 47 , lc }; +Point ( 115637 ) = { 53 , 66 , 48 , lc }; +Point ( 115638 ) = { 54 , 66 , 48 , lc }; +Point ( 115639 ) = { 55 , 66 , 48 , lc }; +Point ( 115640 ) = { 56 , 66 , 48 , lc }; +Point ( 118500 ) = { 56 , 66 , 49 , lc }; +Point ( 121410 ) = { 56 , 66 , 50 , lc }; +Point ( 124338 ) = { 56 , 66 , 51 , lc }; +Point ( 127292 ) = { 56 , 66 , 52 , lc }; +Point ( 130270 ) = { 56 , 66 , 53 , lc }; +Point ( 133263 ) = { 56 , 66 , 54 , lc }; +Point ( 136270 ) = { 56 , 66 , 55 , lc }; +Point ( 139313 ) = { 56 , 66 , 56 , lc }; +Point ( 142403 ) = { 56 , 66 , 57 , lc }; +Point ( 145529 ) = { 55 , 66 , 58 , lc }; +Point ( 148721 ) = { 55 , 66 , 59 , lc }; +Point ( 151926 ) = { 55 , 66 , 60 , lc }; +Point ( 155119 ) = { 54 , 66 , 61 , lc }; +Point ( 158325 ) = { 53 , 66 , 62 , lc }; +Point ( 158324 ) = { 52 , 66 , 62 , lc }; +Point ( 161520 ) = { 51 , 66 , 63 , lc }; +Point ( 164631 ) = { 50 , 66 , 64 , lc }; +Point ( 167639 ) = { 49 , 66 , 65 , lc }; +Point ( 167638 ) = { 48 , 66 , 65 , lc }; +Point ( 170555 ) = { 47 , 66 , 66 , lc }; +Point ( 170554 ) = { 46 , 66 , 66 , lc }; +Point ( 173374 ) = { 45 , 66 , 67 , lc }; +Point ( 173373 ) = { 44 , 66 , 67 , lc }; +Point ( 173372 ) = { 43 , 66 , 67 , lc }; +Point ( 173371 ) = { 42 , 66 , 67 , lc }; +Point ( 173370 ) = { 41 , 66 , 67 , lc }; +Point ( 173369 ) = { 40 , 66 , 67 , lc }; +Point ( 173368 ) = { 39 , 66 , 67 , lc }; +Point ( 173367 ) = { 38 , 66 , 67 , lc }; +Point ( 173366 ) = { 37 , 66 , 67 , lc }; +Point ( 173365 ) = { 36 , 66 , 67 , lc }; +Point ( 173364 ) = { 35 , 66 , 67 , lc }; +Point ( 173363 ) = { 34 , 66 , 67 , lc }; +Point ( 170551 ) = { 33 , 66 , 66 , lc }; +Point ( 170550 ) = { 32 , 66 , 66 , lc }; +Point ( 170549 ) = { 31 , 66 , 66 , lc }; +Point ( 170548 ) = { 30 , 66 , 66 , lc }; +Point ( 170547 ) = { 29 , 66 , 66 , lc }; +Point ( 170546 ) = { 28 , 66 , 66 , lc }; +Point ( 167635 ) = { 27 , 66 , 65 , lc }; +Point ( 167634 ) = { 26 , 66 , 65 , lc }; +Point ( 167633 ) = { 25 , 66 , 65 , lc }; +Point ( 167632 ) = { 24 , 66 , 65 , lc }; +Point ( 164628 ) = { 23 , 66 , 64 , lc }; +Point ( 164627 ) = { 22 , 66 , 64 , lc }; +Point ( 164626 ) = { 21 , 66 , 64 , lc }; +//Point ( 161517 ) = { 20 , 66 , 63 , lc }; +Spline ( 24 ) = { 107326 , 110045 , 112808 , 115637 , 115638 , 115639 , 115640 , 118500 , 121410 , 124338 , 127292 , 130270 , 133263 , 136270 , 139313 , 142403 , 145529 , 148721 , 151926 , 155119 , 158325 , 158324 , 161520 , 164631 , 167639 , 167638 , 170555 , 170554 , 173374 , 173373 , 173372 , 173371 , 173370 , 173369 , 173368 , 173367 , 173366 , 173365 , 173364 , 173363 , 170551 , 170550 , 170549 , 170548 , 170547 , 170546 , 167635 , 167634 , 167633 , 167632 , 164628 , 164627 , 164626 , 161517 }; + + +Line Loop(62) = {9,-24,18}; +Ruled Surface(63) = {62}; +Line Loop(64) = {10,17,24}; +Ruled Surface(65) = {64}; +Line Loop(66) = {11,23,-17}; +Ruled Surface(67) = {66}; +Line Loop(68) = {18,-12,23}; +Ruled Surface(69) = {68}; +Line Loop(70) = {22,-5,-16}; +Ruled Surface(71) = {70}; +Line Loop(72) = {16,-8,21}; +Ruled Surface(73) = {72}; +Line Loop(74) = {21,-15,7}; +Ruled Surface(75) = {74}; +Line Loop(76) = {22,6,15}; +Ruled Surface(77) = {76}; +Line Loop(78) = {13,1,-20}; +Ruled Surface(79) = {78}; +Line Loop(80) = {19,13,-4}; +Ruled Surface(81) = {80}; +Line Loop(82) = {20,2,14}; +Ruled Surface(83) = {82}; +Line Loop(84) = {14,-19,-3}; +Ruled Surface(85) = {84}; + +Line(86) = {106656,106315}; +Line(87) = {107467,107733}; +Line(88) = {105597,105192}; +Line Loop(89) = {88,-13,-14,-87,17,18,86,15,16}; +Plane Surface(90) = {89}; +Line Loop(91) = {87,3,4,-88,-8,-7,-86,-12,-11}; +Plane Surface(92) = {91}; +Line Loop(93) = {2,-87,-10,-9,86,-6,-5,88,1}; +Plane Surface(94) = {93}; +Surface Loop(95) = {94,83,79,65,63,77,71,90}; +Volume(96) = {95}; +Surface Loop(97) = {90,92,85,81,73,75,69,67}; +Volume(98) = {97}; +Physical Volume (99) = {96,98}; + diff --git a/benchmarks/bugs/bad_parametrization_triangle.geo b/benchmarks/bugs/bad_parametrization_triangle.geo new file mode 100644 index 0000000000000000000000000000000000000000..3979757353565717240b56d0bfb88ed948b63738 --- /dev/null +++ b/benchmarks/bugs/bad_parametrization_triangle.geo @@ -0,0 +1,17 @@ +theta = Pi/16; +Point(1) = {0,0,0,0.1}; +Point(2) = {1,0,0,0.1}; +Point(3) = {0,1,0,0.1}; +Circle(1) = {2,1,3}; +Rotate {{0,1,0}, {0,0,0}, theta} { Duplicata { Line{1}; } } +Rotate {{0,1,0}, {0,0,0}, -theta} { Duplicata { Line{1}; } } +Circle(4) = {5,1,2}; +Circle(5) = {2,1,4}; + +// good parametrization +Line Loop(6) = {-1,-4,3}; +Ruled Surface(7) = {6}; + +// bad parametrization +Line Loop(8) = {1,-2,-5}; +Ruled Surface(9) = {8}; diff --git a/benchmarks/bugs/ctverce_crash_on_windows.geo b/benchmarks/bugs/ctverce_crash_on_windows.geo new file mode 100644 index 0000000000000000000000000000000000000000..ca4159332d9cf3553e84030e75a344798971202e --- /dev/null +++ b/benchmarks/bugs/ctverce_crash_on_windows.geo @@ -0,0 +1,109 @@ +// Obdelnikovy vzorek, ctvercove kontakty +// jednoduchy model + +m=0.1; + +delka=150; +sirka=20; + +sirkak=2; + +rohx1=1; +rohy1=1; + +rohx2=delka-sirkak-1; +rohy2=1; + +rohx3=delka-sirkak-1; +rohy3=sirka-sirkak-1; + +rohx4=1; +rohy4=sirka-sirkak-1; + + +// Vzorek +Point(1)= {0,0,0,m}; +Point(2)= {delka,0,0,m}; +Point(3)= {delka,sirka,0,m}; +Point(4)= {0,sirka,0,m}; + +Line(1)= {1,2}; +Line(2)= {2,3}; +Line(3)= {3,4}; +Line(4)= {4,1}; + +Line Loop(1)={1,2,3,4}; + +////////////////////////////////// +// Kontakt 1 + +Point(5)= {rohx1,rohy1,0,m}; +Point(6)= {rohx1+sirkak,rohy1,0,m}; +Point(7)= {rohx1+sirkak,rohy1+sirkak,0,m}; +Point(8)= {rohx1,rohy1+sirkak,0,m}; + +Line(5)= {5,6}; +Line(6)= {6,7}; +Line(7)= {7,8}; +Line(8)= {8,5}; + +Line Loop(2)={5,6,7,8}; +Plane Surface(2)={2}; + +//////////////////////////////////// +//// Kontakt 2 + +Point(9)= {rohx2,rohy2,0,m}; +Point(10)= {rohx2+sirkak,rohy2,0,m}; +Point(11)= {rohx2+sirkak,rohy2+sirkak,0,m}; +Point(12)= {rohx2,rohy2+sirkak,0,m}; + +Line(9)= {9,10}; +Line(10)= {10,11}; +Line(11)= {11,12}; +Line(12)= {12,9}; + +Line Loop(3)={9,10,11,12}; +Plane Surface(3)={3}; + +//////////////////////////////////// +// Kontakt 3 + +Point(13)= {rohx3,rohy3,0,m}; +Point(14)= {rohx3+sirkak,rohy3,0,m}; +Point(15)= {rohx3+sirkak,rohy3+sirkak,0,m}; +Point(16)= {rohx3,rohy3+sirkak,0,m}; + +Line(13)= {13,14}; +Line(14)= {14,15}; +Line(15)= {15,16}; +Line(16)= {16,13}; + +Line Loop(4)={13,14,15,16}; +Plane Surface(4)={4}; + +//////////////////////////////////// +//// Kontakt 4 + +Point(17)= {rohx4,rohy4,0,m}; +Point(18)= {rohx4+sirkak,rohy4,0,m}; +Point(19)= {rohx4+sirkak,rohy4+sirkak,0,m}; +Point(20)= {rohx4,rohy4+sirkak,0,m}; + +Line(17)= {17,18}; +Line(18)= {18,19}; +Line(19)= {19,20}; +Line(20)= {20,17}; + +Line Loop(5)={17,18,19,20}; +Plane Surface(5)={5}; +Plane Surface(1)={1,2,3,4,5}; +Coherence; + +Physical Surface (1001) = {2}; +Physical Surface (1002) = {3}; +Physical Surface (1003) = {4}; +Physical Surface (1004) = {5}; + +Physical Surface (1000) = {1}; + diff --git a/benchmarks/bugs/geo_unrolled_opti_plante_windows.geo b/benchmarks/bugs/geo_unrolled_opti_plante_windows.geo new file mode 100644 index 0000000000000000000000000000000000000000..1066768a2ee37c13d801e383009668337c37dda8 --- /dev/null +++ b/benchmarks/bugs/geo_unrolled_opti_plante_windows.geo @@ -0,0 +1,133 @@ +Point (1) = {0, 0, 0, 50}; +Point (2) = {1250, 0, 0, 50}; +Point (3) = {1250, 2000, 0, 50}; +Point (4) = {0, 2000, 0, 50}; +Point (5) = {0, 0, 500, 100}; +Point (6) = {1250, 0, 500, 100}; +Point (7) = {1250, 2000, 500, 100}; +Point (8) = {0, 2000, 500, 100}; +Point (9) = {500, 505, 0, 5}; +Point (10) = {570, 505, 0, 5}; +Point (11) = {570, 520, 0, 5}; +Point (12) = {500, 520, 0, 5}; +Point (13) = {500, 535, 0, 5}; +Point (14) = {570, 535, 0, 5}; +Point (15) = {570, 555, 0, 5}; +Point (16) = {500, 555, 0, 5}; +Point (17) = {500, 575, 0, 15}; +Point (18) = {570, 575, 0, 15}; +Point (19) = {570, 710, 0, 15}; +Point (20) = {500, 710, 0, 15}; +Point (21) = {500, 505, 5, 5}; +Point (22) = {570, 505, 5, 5}; +Point (26) = {570, 520, 5, 5}; +Point (30) = {500, 520, 5, 5}; +Point (31) = {500, 535, 5, 5}; +Point (32) = {570, 535, 5, 5}; +Point (36) = {570, 555, 5, 5}; +Point (40) = {500, 555, 5, 5}; +Point (41) = {500, 575, 15, 15}; +Point (42) = {570, 575, 15, 15}; +Point (46) = {570, 710, 15, 15}; +Point (50) = {500, 710, 15, 15}; +Line (1) = {1, 2}; +Line (2) = {2, 3}; +Line (3) = {3, 4}; +Line (4) = {4, 1}; +Line (5) = {5, 6}; +Line (6) = {6, 7}; +Line (7) = {7, 8}; +Line (8) = {8, 5}; +Line (9) = {1, 5}; +Line (10) = {2, 6}; +Line (11) = {3, 7}; +Line (12) = {4, 8}; +Line (13) = {9, 10}; +Line (14) = {10, 11}; +Line (15) = {11, 12}; +Line (16) = {12, 9}; +Line (17) = {13, 14}; +Line (18) = {14, 15}; +Line (19) = {15, 16}; +Line (20) = {16, 13}; +Line (21) = {17, 18}; +Line (22) = {18, 19}; +Line (23) = {19, 20}; +Line (24) = {20, 17}; +Line (26) = {21, 22}; +Line (27) = {22, 26}; +Line (28) = {26, 30}; +Line (29) = {30, 21}; +Line (31) = {9, 21}; +Line (32) = {10, 22}; +Line (36) = {11, 26}; +Line (40) = {12, 30}; +Line (48) = {31, 32}; +Line (49) = {32, 36}; +Line (50) = {36, 40}; +Line (51) = {40, 31}; +Line (53) = {13, 31}; +Line (54) = {14, 32}; +Line (58) = {15, 36}; +Line (62) = {16, 40}; +Line (70) = {41, 42}; +Line (71) = {42, 46}; +Line (72) = {46, 50}; +Line (73) = {50, 41}; +Line (75) = {17, 41}; +Line (76) = {18, 42}; +Line (80) = {19, 46}; +Line (84) = {20, 50}; +Line Loop (2) = {1, 2, 3, 4, -16, -15, -14, -13, -20, -19, -18, -17, -24, -23, -22, -21}; +Plane Surface (2) = {2}; +Line Loop (4) = {1, 10, -5, -9}; +Plane Surface (4) = {4}; +Line Loop (6) = {2, 11, -6, -10}; +Plane Surface (6) = {6}; +Line Loop (8) = {3, 12, -7, -11}; +Plane Surface (8) = {8}; +Line Loop (10) = {4, 9, -8, -12}; +Plane Surface (10) = {10}; +Line Loop (12) = {5, 6, 7, 8}; +Plane Surface (12) = {12}; +Line Loop (33) = {13, 32, -26, -31}; +Ruled Surface (33) = {33}; +Line Loop (37) = {14, 36, -27, -32}; +Ruled Surface (37) = {37}; +Line Loop (41) = {15, 40, -28, -36}; +Ruled Surface (41) = {41}; +Line Loop (45) = {16, 31, -29, -40}; +Ruled Surface (45) = {45}; +Line Loop (46) = {26, 27, 28, 29}; +Plane Surface (46) = {46}; +Line Loop (55) = {17, 54, -48, -53}; +Ruled Surface (55) = {55}; +Line Loop (59) = {18, 58, -49, -54}; +Ruled Surface (59) = {59}; +Line Loop (63) = {19, 62, -50, -58}; +Ruled Surface (63) = {63}; +Line Loop (67) = {20, 53, -51, -62}; +Ruled Surface (67) = {67}; +Line Loop (68) = {48, 49, 50, 51}; +Plane Surface (68) = {68}; +Line Loop (77) = {21, 76, -70, -75}; +Ruled Surface (77) = {77}; +Line Loop (81) = {22, 80, -71, -76}; +Ruled Surface (81) = {81}; +Line Loop (85) = {23, 84, -72, -80}; +Ruled Surface (85) = {85}; +Line Loop (89) = {24, 75, -73, -84}; +Ruled Surface (89) = {89}; +Line Loop (90) = {70, 71, 72, 73}; +Plane Surface (90) = {90}; +Surface Loop (2) = {4, 2, 6, 8, 10, 12, 46, 33, 37, 41, 45, 68, 55, 59, 63, 67, 90, 77, 81, 85, 89}; +Volume (2) = {2}; +bat2 = 1; +Physical Surface (bat2) = {4}; +Physical Surface (2) = {6}; +Physical Surface (3) = {8}; +Physical Surface (4) = {10}; +Physical Surface (5) = {12}; +Physical Surface (6) = {2, 33, 37, 41, 45, 46, 55, 59, 63, 67, 68, 77, 81, 85, 89, 90}; +bat2 = 1; +Physical Volume (bat2) = {2}; diff --git a/benchmarks/extrude/cylinder_wiki.geo b/benchmarks/extrude/cylinder_wiki.geo new file mode 100644 index 0000000000000000000000000000000000000000..e9f7c52c7049655a359081b9e6318140740b1cac --- /dev/null +++ b/benchmarks/extrude/cylinder_wiki.geo @@ -0,0 +1,211 @@ +lc = 0.02; + +r = 0.1; +d = 2*r; + +h = 2*d; +assym = 0.1*d; + +depth = 0.5; + +l1 = 2*d; +l2 = 20*d; + +n = 1; +nl1 = n*8; +nl2 = n*88; +nc = n*8; + +nz = 16; +//nz = 1; + +Point(1) = {0,0,0,lc}; +Point(2) = {0,r,0,lc}; +Point(3) = {r,0,0,lc}; +Point(4) = {-r,0,0,lc}; +Point(5) = {-l1,0,0,lc}; +Point(6) = {l2,0,0,lc}; +Point(7) = {-l1,h,0,lc}; +Point(8) = {l2,h,0,lc}; +Point(9) = {2*r,0.0,0,lc}; +Point(10) = {-2*r,0.0,0,lc}; +Point(11) = {0.0,0.2,0,lc}; +Point(12) = {0.0,h,0,lc}; +Point(13) = {r*Sin(Pi/4),r*Sin(Pi/4),0,lc}; +Point(14) = {-r*Sin(Pi/4),r*Sin(Pi/4),0,lc}; +Point(15) = {2*r*Sin(Pi/4),2*r*Sin(Pi/4),0,lc}; +Point(16) = {-2*r*Sin(Pi/4),2*r*Sin(Pi/4),0,lc}; +Point(17) = {l2,2*r*Sin(Pi/4),0,lc}; +Point(18) = {-l1,2*r*Sin(Pi/4),0,lc}; +Point(19) = {2*r*Sin(Pi/4),h,0,lc}; +Point(20) = {-2*r*Sin(Pi/4),h,0,lc}; + +Circle(1) = {15,1,11}; +Circle(2) = {13,1,2}; +Circle(3) = {2,1,14}; +Circle(4) = {11,1,16}; +Circle(5) = {16,1,10}; +Circle(6) = {14,1,4}; +Circle(7) = {13,1,3}; +Circle(8) = {15,1,9}; +Line(9) = {9,3}; +Line(10) = {15,13}; +Line(11) = {11,2}; +Line(12) = {16,14}; +Line(13) = {10,4}; +Line(14) = {12,11}; +Line(15) = {19,15}; +Line(16) = {12,19}; +Line(17) = {19,8}; +Line(18) = {8,17}; +Line(19) = {17,15}; +Line(20) = {6,9}; +Line(21) = {6,17}; +Line(22) = {16,20}; +Line(23) = {20,12}; +Line(24) = {10,5}; +Line(25) = {5,18}; +Line(26) = {18,16}; +Line(27) = {7,18}; +Line(28) = {20,7}; + +Line Loop(29) = {17,18,19,-15}; +Plane Surface(30) = {29}; +Line Loop(31) = {21,19,8,-20}; +Plane Surface(32) = {31}; +Line Loop(33) = {10,7,-9,-8}; +Plane Surface(34) = {33}; +Line Loop(35) = {1,11,-2,-10}; +Plane Surface(36) = {35}; +Line Loop(37) = {16,15,1,-14}; +Plane Surface(38) = {37}; +Line Loop(39) = {4,22,23,14}; +Plane Surface(40) = {39}; +Line Loop(41) = {11,3,-12,-4}; +Plane Surface(42) = {41}; +Line Loop(43) = {6,-13,-5,12}; +Plane Surface(44) = {43}; +Line Loop(45) = {26,5,24,25}; +Plane Surface(46) = {45}; +Line Loop(47) = {28,27,26,22}; +Plane Surface(48) = {47}; + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{32}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{34}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{36}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{42}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{44}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{46}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{48}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{40}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{38}; } +} + +Symmetry { 0.0,1.0,0.0,0.0 } { + Duplicata { Surface{30}; } +} + +Translate {0.0,assym,0.0} { + Point{7}; +} + +Translate {0.0,assym,0.0} { + Point{20}; +} + +Translate {0.0,assym,0.0} { + Point{12}; +} + +Translate {0.0,assym,0.0} { + Point{19}; +} + +Translate {0.0,assym,0.0} { + Point{8}; +} + +Transfinite Line {28,26,24,70,75} = nl1+1 Using Progression 1.0; + +Transfinite Line {17} = nl2+1 Using Progression 1.0/0.99; +Transfinite Line {19} = nl2+1 Using Progression 0.99; +Transfinite Line {20} = nl2+1 Using Progression 0.99; +Transfinite Line {51} = nl2+1 Using Progression 0.99; +Transfinite Line {88} = nl2+1 Using Progression 1.0/0.99; + +Transfinite Line {18,21,8,15,14,22,27,25,5,6,7,4,3,13,12,11,10,2,9,1,16,23} = nc+1 Using Progression 1.0; +Transfinite Line {50,89,52,86,55,54,59,57,85,83,58,62,64,82,63,78,68,73,76,66} = nc+1 Using Progression 1.0; + +Transfinite Line {15,14,18,27} = nc+1 Using Progression 1.0; +Transfinite Line {76,78,86,89} = nc+1 Using Progression 1.0; + + +Transfinite Surface {30} = {17,8,19,15}; +Transfinite Surface {32} = {17,15,9,6}; +Transfinite Surface {34} = {15,13,3,9}; +Transfinite Surface {36} = {13,15,11,2}; +Transfinite Surface {38} = {11,15,19,12}; +Transfinite Surface {40} = {11,12,20,16}; +Transfinite Surface {42} = {2,11,16,14}; +Transfinite Surface {44} = {4,14,16,10}; +Transfinite Surface {46} = {10,16,18,5}; +Transfinite Surface {48} = {18,16,20,7}; + +Transfinite Surface {49} = {6,22,26,9}; +Transfinite Surface {53} = {3,9,26,28}; +Transfinite Surface {56} = {28,26,31,35}; +Transfinite Surface {60} = {42,35,31,46}; +Transfinite Surface {65} = {10,4,42,46}; +Transfinite Surface {69} = {5,10,46,47}; +Transfinite Surface {74} = {47,46,48,49}; +Transfinite Surface {79} = {46,31,60,48}; +Transfinite Surface {84} = {31,26,62,60}; +Transfinite Surface {87} = {22,64,62,26}; + + +allsurf[] = {30,32,34,36,38,40,42,44,46,48, + 49,53,56,60,65,69,74,79,84,87}; + +Recombine Surface{allsurf[]}; + +Extrude {0,0,depth} { + Surface{allsurf[]}; Layers{nz}; Recombine; +} + +// Walls +Physical Surface(600) = {98,186,216,296,516,494,480,450,146,344,370,388,406,252,234,172}; + +// Inlet +Physical Surface(601) = {300,286,440,454}; + +// Outlet +Physical Surface(602) = {102,120,318,520}; + +//Physical Volume(603) = {9000}; + + diff --git a/benchmarks/extrude/t1_boundary_layer_connection.geo b/benchmarks/extrude/t1_boundary_layer_connection.geo new file mode 100644 index 0000000000000000000000000000000000000000..41a3643f92e50b74fb9a51b0b503b14dcd02028c --- /dev/null +++ b/benchmarks/extrude/t1_boundary_layer_connection.geo @@ -0,0 +1,24 @@ +lc = 0.01; +Point(1) = {0, 0, 0, lc}; +Point(2) = {.1, 0, 0, lc} ; +Point(3) = {.1, .3, 0, lc} ; +Point(4) = {0, .3, 0, lc} ; + +Line(1) = {1,2} ; +Line(2) = {3,2} ; +Line(3) = {3,4} ; +Line(4) = {4,1} ; + +Line Loop(5) = {4,1,-2,3} ; +Plane Surface(6) = {5} ; + +Extrude { Surface{6}; Layers{5, 0.01}; Recombine; } + +Point(100) = {0, 0, 0.15, lc} ; +Point(101) = {.1, 0, 0.15, lc} ; + +Line(100) = {8, 100}; +Line(101) = {12, 101}; +Line(102) = {100, 101}; +Line Loop(100) = {9,101,-102,-100}; +Plane Surface(100) = 100; diff --git a/benchmarks/extrude/vertex_search_problem.geo b/benchmarks/extrude/vertex_search_problem.geo new file mode 100644 index 0000000000000000000000000000000000000000..2c38601a0183a49db7a61bc47ad3d4ff3883faec --- /dev/null +++ b/benchmarks/extrude/vertex_search_problem.geo @@ -0,0 +1,50 @@ +mm = 1e-3 ; +a = 20e-6 ; // grand rayon de l'élipse (en µT) +b = 10e-6 ; // petit rayon de l'élipse (en µT) +Phase = 0 ; // déphasage (je pense que je ne m'en servirai pas) +r_tete = 90*mm ; +ep_peau = 2*mm; +ep_os = 2*mm ; +r_g = 70 *mm; +d_g = 15*mm ; //déplacement du centre du cerveau par rapport au centre de la tête +centre_x_oeil = 73.1 *mm ; +centre_y_oeil = 30.1 *mm ;// centre_y_oeil * sin(23) ; +cote_casque = 390*mm ; +bord_casque = 6*mm ; +diam_spire = 310*mm ; +Largeur_ind = 35*mm ; +Hauteur_ind = 40*mm ; +s = 5; +lc_ind12 = (Largeur_ind/5)*s/3 ; + +//Geometry.OldNewReg = 1; +//Geometry.AutoCoherence = 1; +//Mesh.CharacteristicLengthFactor = 1. ; + +pIdev_int1 = newp; Point(pIdev_int1) = {cote_casque/2+bord_casque,diam_spire/2,0.,lc_ind12}; +pIdev_int2 = newp; Point(pIdev_int2) = {cote_casque/2+bord_casque,diam_spire/2+Largeur_ind,0.,lc_ind12}; +pIdev_ext1 = newp; Point(pIdev_ext1) = {cote_casque/2+bord_casque+Hauteur_ind,diam_spire/2,0.,lc_ind12}; +pIdev_ext2 = newp; Point(pIdev_ext2) = {cote_casque/2+bord_casque+Hauteur_ind,diam_spire/2+Largeur_ind,0.,lc_ind12}; + +lIdev_int1 = newl ; Line (lIdev_int1) = {pIdev_int2, pIdev_int1}; +lIdev_cotint1 = newl ; Line (lIdev_cotint1) = {pIdev_int1, pIdev_ext1}; +lIdev_ext1 = newl ; Line (lIdev_ext1) = {pIdev_ext1, pIdev_ext2}; +lIdev_cotext1 = newl ; Line (lIdev_cotext1) = {pIdev_ext2, pIdev_int2}; + +llIdev1 = newreg ; Line Loop (llIdev1) = {lIdev_int1,lIdev_cotint1,lIdev_ext1,lIdev_cotext1}; +psIdev1 = newreg ; Plane Surface(psIdev1) = {llIdev1}; + + +TRANS = 1; +ns = 4 ; +If(TRANS) +Transfinite Line {lIdev_int1,lIdev_cotint1,lIdev_ext1, lIdev_cotext1} = ns ; +Transfinite Surface {psIdev1} = {pIdev_int2,pIdev_int1,pIdev_ext1,pIdev_ext2}; +EndIf + +Recombine Surface{newreg-1} ; + +vol[]=Extrude Surface { newreg-1, {1,0,0} , {0,0,0} , Pi/4 } +{ Layers { 2, 1 } ; Recombine; };; +vIdev1[0] = vol[1]; + diff --git a/benchmarks/step/bad_step_intersects.step.gz b/benchmarks/step/bad_step_intersects.step.gz new file mode 100644 index 0000000000000000000000000000000000000000..f69b482e7f563edf49d0b3a0bd3094d957c3851a Binary files /dev/null and b/benchmarks/step/bad_step_intersects.step.gz differ diff --git a/benchmarks/step/submarine.stp.gz b/benchmarks/step/submarine.stp.gz new file mode 100644 index 0000000000000000000000000000000000000000..940251dcaf41823b02e5ff90a3dfc64798493411 Binary files /dev/null and b/benchmarks/step/submarine.stp.gz differ diff --git a/benchmarks/stl/geo2.stl.gz b/benchmarks/stl/geo2.stl.gz new file mode 100644 index 0000000000000000000000000000000000000000..14703a09f8418d56e25bc0d1c0b8576378da20fb Binary files /dev/null and b/benchmarks/stl/geo2.stl.gz differ