Skip to content

Instantly share code, notes, and snippets.

@cjhanks
Last active September 22, 2016 22:46
Show Gist options
  • Save cjhanks/c806c85053aa87c747ef39c967a0e62a to your computer and use it in GitHub Desktop.
Save cjhanks/c806c85053aa87c747ef39c967a0e62a to your computer and use it in GitHub Desktop.
MakeJavaScriptFaster
const VerticesData = [
new Vertex(-12.9061002731, -0.974995017052, -1.30131995678),
new Vertex(-12.9061002731, -0.974995017052, 1.27499997616),
new Vertex(4.70302009583, -2.4135799408, -1.30131995678),
new Vertex(4.70302009583, -2.4135799408, 2.47499990463),
new Vertex(-14.3407001495, -2.97080993652, -1.30131995678),
new Vertex(-14.3407001495, -2.97080993652, 2.47499990463),
new Vertex(-13.8633003235, 7.62889003754, -1.30131995678),
new Vertex(-13.8633003235, 7.62889003754, 1.57500004768),
new Vertex(-7.00685977936, 13.7915000916, -1.30131995678),
new Vertex(-7.00685977936, 13.7915000916, 2.47499990463),
new Vertex(5.65828990936, 22.0785999298, -1.30131995678),
new Vertex(5.65828990936, 22.0785999298, 2.47499990463),
new Vertex(-12.8506002426, -11.7256002426, -1.30131995678),
new Vertex(-12.8506002426, -11.7256002426, 2.47499990463),
new Vertex(-16.4041996002, 4.77653980255, -1.30131995678),
new Vertex(-16.4041996002, 4.77653980255, 1.45000004768),
new Vertex(2.99688005447, -6.27680015564, -1.30131995678),
new Vertex(2.99688005447, -6.27680015564, 2.47499990463),
new Vertex(5.08942985535, 25.0823001862, -1.30131995678),
new Vertex(5.08942985535, 25.0823001862, 2.47499990463),
new Vertex(-7.21173000336, 13.6784000397, -1.30131995678),
new Vertex(-7.21173000336, 13.6784000397, 2.47499990463),
new Vertex(5.10848999023, -5.36909008026, -1.30131995678),
new Vertex(5.10848999023, -5.36909008026, 2.47499990463),
new Vertex(-6.95179986954, 13.5760002136, -1.30131995678),
new Vertex(-6.95179986954, 13.5760002136, 2.47499990463),
new Vertex(-6.24320983887, -4.56922006607, -1.30131995678),
new Vertex(-6.24320983887, -4.56922006607, 2.47499990463),
new Vertex(1.05508005619, 24.2245006561, -1.30131995678),
new Vertex(1.05508005619, 24.2245006561, 2.47499990463),
new Vertex(-14.053899765, -3.17774009705, -1.30131995678),
new Vertex(-14.053899765, -3.17774009705, 1.27499997616),
new Vertex(-3.90694999695, -7.17152023315, -1.30131995678),
new Vertex(-3.90694999695, -7.17152023315, 2.47499990463),
new Vertex(-13.6024999619, -3.70928001404, -1.30131995678),
new Vertex(-13.6024999619, -3.70928001404, 2.47499990463),
new Vertex(-10.8009996414, -2.42208003998, -1.30131995678),
new Vertex(-10.8009996414, -2.42208003998, 1.35000002384),
new Vertex(-8.10132026672, 6.5277299881, -1.30131995678),
new Vertex(-8.10132026672, 6.5277299881, 2.47499990463),
new Vertex(-17.5440006256, -4.229159832, -1.30131995678),
new Vertex(-17.5440006256, -4.229159832, 2.47499990463),
new Vertex(-3.40737009048, -10.0802001953, -1.30131995678),
new Vertex(-3.40737009048, -10.0802001953, 2.47499990463),
new Vertex(-12.4351997375, -2.96749997139, -1.30131995678),
new Vertex(-12.4351997375, -2.96749997139, 1.27499997616),
new Vertex(-12.9552001953, -3.42617988586, -1.30131995678),
new Vertex(-12.9552001953, -3.42617988586, 1.27499997616),
new Vertex(-18.5519008636, -1.60895001888, -1.30131995678),
new Vertex(-18.5519008636, -1.60895001888, 2.47499990463),
new Vertex(-21.0631999969, -13.1216001511, -1.30131995678),
new Vertex(-21.0631999969, -13.1216001511, 2.47499990463),
new Vertex(-13.5037002563, 5.02356004715, -1.30131995678),
new Vertex(-13.5037002563, 5.02356004715, 1.57500004768),
new Vertex(-5.65362977982, -3.76922988892, -1.30131995678),
new Vertex(-5.65362977982, -3.76922988892, 2.47499990463),
new Vertex(-5.60664987564, -6.0179400444, -1.30131995678),
new Vertex(-5.60664987564, -6.0179400444, 2.47499990463),
new Vertex(-12.3579998016, -2.82323002815, -1.30131995678),
new Vertex(-12.3579998016, -2.82323002815, 1.35000002384),
new Vertex(-3.86248993874, -7.42246007919, -1.30131995678),
new Vertex(-3.86248993874, -7.42246007919, 2.47499990463),
new Vertex(-8.15522003174, 7.86770009995, -1.30131995678),
new Vertex(-8.15522003174, 7.86770009995, 2.47499990463),
new Vertex(-4.61904001236, -6.82352018356, -1.30131995678),
new Vertex(-4.61904001236, -6.82352018356, 2.47499990463),
new Vertex(-7.01215982437, 13.3774995804, -1.30131995678),
new Vertex(-7.01215982437, 13.3774995804, 2.47499990463),
new Vertex(-13.4127998352, -3.68620991707, -1.30131995678),
new Vertex(-13.4127998352, -3.68620991707, 1.27499997616),
new Vertex(-13.7566995621, -3.87382006645, -1.30131995678),
new Vertex(-13.7566995621, -3.87382006645, 2.47499990463),
new Vertex(8.89078044891, 2.98077988625, -1.30131995678),
new Vertex(8.89078044891, 2.98077988625, 2.47499990463),
new Vertex(-2.5074698925, -11.1845998764, -1.30131995678),
new Vertex(-2.5074698925, -11.1845998764, 2.47499990463),
new Vertex(1.24943995476, 24.4776992798, -1.30131995678),
new Vertex(1.24943995476, 24.4776992798, 2.47499990463),
new Vertex(-8.45820045471, 5.87483978271, -1.30131995678),
new Vertex(-8.45820045471, 5.87483978271, 1.57500004768),
new Vertex(-8.10550022125, 6.57757997513, -1.30131995678),
new Vertex(-8.10550022125, 6.57757997513, 1.57500004768),
new Vertex(4.89223003387, -0.521600008011, -1.30131995678),
new Vertex(4.89223003387, -0.521600008011, 2.47499990463),
new Vertex(-13.5579996109, -3.86864995956, -1.30131995678),
new Vertex(-13.5579996109, -3.86864995956, 2.47499990463),
new Vertex(6.60103988647, 14.3280000687, -1.30131995678),
new Vertex(6.60103988647, 14.3280000687, 2.47499990463),
new Vertex(5.49536991119, 25.2264003754, -1.30131995678),
new Vertex(5.49536991119, 25.2264003754, 2.47499990463),
new Vertex(1.44905996323, -6.28946018219, -1.30131995678),
new Vertex(1.44905996323, -6.28946018219, 2.47499990463),
new Vertex(2.8428800106, 25.8799991608, -1.30131995678),
new Vertex(2.8428800106, 25.8799991608, 2.47499990463),
new Vertex(-20.7691993713, -8.95532989502, -1.30131995678),
new Vertex(-20.7691993713, -8.95532989502, 2.47499990463),
new Vertex(-11.9628000259, -11.8843002319, -1.30131995678),
new Vertex(-11.9628000259, -11.8843002319, 2.47499990463),
new Vertex(-10.5536003113, -11.6216001511, -1.30131995678),
new Vertex(-10.5536003113, -11.6216001511, 2.47499990463),
new Vertex(-9.80599021912, -12.0179004669, -1.30131995678),
new Vertex(-9.80599021912, -12.0179004669, 2.47499990463),
new Vertex(-5.61996984482, 6.61355018616, -1.30131995678),
new Vertex(-5.61996984482, 6.61355018616, 2.47499990463),
new Vertex(-4.30844020844, -6.15861988068, -1.30131995678),
new Vertex(-4.30844020844, -6.15861988068, 2.47499990463),
new Vertex(8.65625, -0.762673974037, -1.30131995678),
new Vertex(8.65625, -0.762673974037, 2.47499990463),
new Vertex(1.15623998642, 24.3686008453, -1.30131995678),
new Vertex(1.15623998642, 24.3686008453, 2.47499990463),
new Vertex(-5.75122976303, -4.28025007248, -1.30131995678),
new Vertex(-5.75122976303, -4.28025007248, 2.47499990463),
new Vertex(-2.90022993088, -0.423635989428, -1.30131995678),
new Vertex(-2.90022993088, -0.423635989428, 2.47499990463),
new Vertex(-12.9548997879, -3.52300000191, -1.30131995678),
new Vertex(-12.9548997879, -3.52300000191, 2.47499990463),
new Vertex(1.90473997593, 25.2712001801, -1.30131995678),
new Vertex(1.90473997593, 25.2712001801, 2.47499990463),
new Vertex(-10.1976995468, 8.11678028107, -1.30131995678),
new Vertex(-10.1976995468, 8.11678028107, 1.57500004768),
new Vertex(-13.2657003403, -3.76728010178, -1.30131995678),
new Vertex(-13.2657003403, -3.76728010178, 2.47499990463),
new Vertex(-13.8618001938, 5.1730799675, -1.30131995678),
new Vertex(-13.8618001938, 5.1730799675, 1.57500004768),
new Vertex(-12.955499649, -11.5254001617, -1.30131995678),
new Vertex(-12.955499649, -11.5254001617, 2.47499990463),
new Vertex(-21.3108005524, -9.11711978912, -1.30131995678),
new Vertex(-21.3108005524, -9.11711978912, 2.47499990463),
new Vertex(-21.7203006744, -10.0036001205, -1.30131995678),
new Vertex(-21.7203006744, -10.0036001205, 2.47499990463),
new Vertex(6.70338010788, 13.3788995743, -1.30131995678),
new Vertex(6.70338010788, 13.3788995743, 2.47499990463),
new Vertex(1.09249997139, -10.580499649, -1.30131995678),
new Vertex(1.09249997139, -10.580499649, 2.47499990463),
new Vertex(-12.2536001205, 7.81434011459, -1.30131995678),
new Vertex(-12.2536001205, 7.81434011459, 1.57500004768),
new Vertex(-11.758099556, -3.48307991028, -1.30131995678),
new Vertex(-11.758099556, -3.48307991028, 1.35000002384),
new Vertex(-9.50442028046, -11.9245996475, -1.30131995678),
new Vertex(-9.50442028046, -11.9245996475, 2.47499990463),
new Vertex(-7.4554400444, -11.7163000107, -1.30131995678),
new Vertex(-7.4554400444, -11.7163000107, 2.47499990463),
new Vertex(-13.005399704, 5.07019996643, -1.30131995678),
new Vertex(-13.005399704, 5.07019996643, 1.57500004768),
new Vertex(-3.15491008759, -11.329000473, -1.30131995678),
new Vertex(-3.15491008759, -11.329000473, 2.47499990463),
new Vertex(-3.86528992653, -7.32670021057, -1.30131995678),
new Vertex(-3.86528992653, -7.32670021057, 2.47499990463),
new Vertex(-3.85537004471, -7.47301006317, -1.30131995678),
new Vertex(-3.85537004471, -7.47301006317, 2.47499990463),
new Vertex(-0.439119011164, -6.58522987366, -1.30131995678),
new Vertex(-0.439119011164, -6.58522987366, 2.47499990463),
new Vertex(-4.97053003311, 0.42492800951, -1.30131995678),
new Vertex(-4.97053003311, 0.42492800951, 2.47499990463),
new Vertex(-19.3034000397, -1.71342003345, -1.30131995678),
new Vertex(-19.3034000397, -1.71342003345, 2.47499990463),
new Vertex(7.4056801796, 8.32993984222, -1.30131995678),
new Vertex(7.4056801796, 8.32993984222, 2.47499990463),
new Vertex(-5.82299995422, 8.14301967621, -1.30131995678),
new Vertex(-5.82299995422, 8.14301967621, 2.47499990463),
new Vertex(-18.6119003296, -4.63216018677, -1.30131995678),
new Vertex(-18.6119003296, -4.63216018677, 2.47499990463),
new Vertex(-11.0564002991, -3.46995997429, -1.30131995678),
new Vertex(-11.0564002991, -3.46995997429, 1.35000002384),
new Vertex(8.24592018127, 7.48180007935, -1.30131995678),
new Vertex(8.24592018127, 7.48180007935, 2.47499990463),
new Vertex(-13.4539003372, -11.4787998199, -1.30131995678),
new Vertex(-13.4539003372, -11.4787998199, 2.47499990463),
new Vertex(5.45560979843, 21.6821994781, -1.30131995678),
new Vertex(5.45560979843, 21.6821994781, 2.47499990463),
new Vertex(-14.1697998047, -2.82380008698, -1.30131995678),
new Vertex(-14.1697998047, -2.82380008698, 1.27499997616),
new Vertex(-6.30953979492, -3.86838006973, -1.30131995678),
new Vertex(-6.30953979492, -3.86838006973, 2.47499990463),
new Vertex(-15.6059999466, 4.86576986313, -1.30131995678),
new Vertex(-15.6059999466, 4.86576986313, 1.45000004768),
new Vertex(-9.30607032776, -11.6771001816, -1.30131995678),
new Vertex(-9.30607032776, -11.6771001816, 2.47499990463),
new Vertex(-12.8021001816, 7.68804979324, -1.30131995678),
new Vertex(-12.8021001816, 7.68804979324, 1.57500004768),
new Vertex(-11.0588998795, -3.42049002647, -1.30131995678),
new Vertex(-11.0588998795, -3.42049002647, 1.35000002384),
new Vertex(-12.7077999115, -3.48371005058, -1.30131995678),
new Vertex(-12.7077999115, -3.48371005058, 1.27499997616),
new Vertex(-7.00313997269, 12.7278995514, -1.30131995678),
new Vertex(-7.00313997269, 12.7278995514, 2.47499990463),
new Vertex(-10.4573001862, -0.808705985546, -1.30131995678),
new Vertex(-10.4573001862, -0.808705985546, 2.47499990463),
new Vertex(-6.05684995651, 8.08384037018, -1.30131995678),
new Vertex(-6.05684995651, 8.08384037018, 2.47499990463),
new Vertex(-3.80867004395, -7.72284984589, -1.30131995678),
new Vertex(-3.80867004395, -7.72284984589, 2.47499990463),
new Vertex(-4.96290016174, -0.104592002928, -1.30131995678),
new Vertex(-4.96290016174, -0.104592002928, 2.47499990463),
new Vertex(1.37825000286, 24.6441993713, -1.30131995678),
new Vertex(1.37825000286, 24.6441993713, 2.47499990463),
new Vertex(-5.95700979233, 7.27680015564, -1.30131995678),
new Vertex(-5.95700979233, 7.27680015564, 2.47499990463),
new Vertex(-5.95617008209, 7.23003005981, -1.30131995678),
new Vertex(-5.95617008209, 7.23003005981, 2.47499990463),
new Vertex(-11.7957000732, -3.57293009758, -1.30131995678),
new Vertex(-11.7957000732, -3.57293009758, 1.35000002384),
new Vertex(-11.7638998032, -3.57267999649, -1.30131995678),
new Vertex(-11.7638998032, -3.57267999649, 1.35000002384),
new Vertex(-13.6555995941, -11.4285001755, -1.30131995678),
new Vertex(-13.6555995941, -11.4285001755, 2.47499990463),
new Vertex(1.16131997108, 25.2982006073, -1.30131995678),
new Vertex(1.16131997108, 25.2982006073, 2.47499990463),
new Vertex(5.94721984863, 18.5776004791, -1.30131995678),
new Vertex(5.94721984863, 18.5776004791, 2.47499990463),
new Vertex(-5.90366983414, 8.07367038727, -1.30131995678),
new Vertex(-5.90366983414, 8.07367038727, 2.47499990463),
new Vertex(-8.20545005798, 7.57734012604, -1.30131995678),
new Vertex(-8.20545005798, 7.57734012604, 1.57500004768),
new Vertex(-4.06277990341, -3.74082994461, -1.30131995678),
new Vertex(-4.06277990341, -3.74082994461, 2.47499990463),
new Vertex(0.547791004181, -10.6258001328, -1.30131995678),
new Vertex(0.547791004181, -10.6258001328, 2.47499990463),
new Vertex(-20.9584999084, -12.9872999191, -1.30131995678),
new Vertex(-20.9584999084, -12.9872999191, 2.47499990463),
new Vertex(-13.915599823, 7.81677007675, -1.30131995678),
new Vertex(-13.915599823, 7.81677007675, 1.57500004768),
new Vertex(-14.7552995682, 5.16595983505, -1.30131995678),
new Vertex(-14.7552995682, 5.16595983505, 1.45000004768),
new Vertex(-8.14871025085, 6.57789993286, -1.30131995678),
new Vertex(-8.14871025085, 6.57789993286, 1.57500004768),
new Vertex(8.55121040344, -0.0746176019311, -1.30131995678),
new Vertex(8.55121040344, -0.0746176019311, 2.47499990463),
new Vertex(-7.00402021408, 12.2790002823, -1.30131995678),
new Vertex(-7.00402021408, 12.2790002823, 2.47499990463),
new Vertex(-8.25588989258, -11.4284000397, -1.30131995678),
new Vertex(-8.25588989258, -11.4284000397, 2.47499990463),
new Vertex(7.14449977875, 14.8739995956, -1.30131995678),
new Vertex(7.14449977875, 14.8739995956, 2.47499990463),
new Vertex(-11.79529953, -3.52783989906, -1.30131995678),
new Vertex(-11.79529953, -3.52783989906, 1.35000002384),
new Vertex(-12.4026002884, -3.46662998199, -1.30131995678),
new Vertex(-12.4026002884, -3.46662998199, 1.27499997616),
new Vertex(-17.0109004974, 5.57762002945, -1.30131995678),
new Vertex(-17.0109004974, 5.57762002945, 1.45000004768),
new Vertex(-14.261300087, -1.17212998867, -1.30131995678),
new Vertex(-14.261300087, -1.17212998867, 1.27499997616),
new Vertex(-13.5037002563, 8.51420974731, -1.30131995678),
new Vertex(-13.5037002563, 8.51420974731, 1.57500004768),
new Vertex(3.70603990555, -1.55675005913, -1.30131995678),
new Vertex(3.70603990555, -1.55675005913, 2.47499990463),
new Vertex(-3.85799002647, -6.32032012939, -1.30131995678),
new Vertex(-3.85799002647, -6.32032012939, 2.47499990463),
new Vertex(-5.9548997879, 6.57570981979, -1.30131995678),
new Vertex(-5.9548997879, 6.57570981979, 2.47499990463),
new Vertex(-4.95187997818, 1.22231996059, -1.30131995678),
new Vertex(-4.95187997818, 1.22231996059, 2.47499990463),
new Vertex(-6.76832008362, 10.0277004242, -1.30131995678),
new Vertex(-6.76832008362, 10.0277004242, 2.47499990463),
new Vertex(4.44924020767, -2.17238998413, -1.30131995678),
new Vertex(4.44924020767, -2.17238998413, 2.47499990463),
new Vertex(-6.00569009781, 8.13580989838, -1.30131995678),
new Vertex(-6.00569009781, 8.13580989838, 2.47499990463),
new Vertex(-3.81738996506, -7.62601995468, -1.30131995678),
new Vertex(-3.81738996506, -7.62601995468, 2.47499990463),
new Vertex(5.99360990524, 20.7779998779, -1.30131995678),
new Vertex(5.99360990524, 20.7779998779, 2.47499990463),
new Vertex(-13.6079998016, -3.62084007263, -1.30131995678),
new Vertex(-13.6079998016, -3.62084007263, 2.47499990463),
new Vertex(-5.94788980484, -3.57062005997, -1.30131995678),
new Vertex(-5.94788980484, -3.57062005997, 2.47499990463),
new Vertex(-13.2562999725, 8.53145980835, -1.30131995678),
new Vertex(-13.2562999725, 8.53145980835, 1.57500004768),
new Vertex(-8.51229000092, 8.18688011169, -1.30131995678),
new Vertex(-8.51229000092, 8.18688011169, 1.57500004768),
new Vertex(-13.553899765, 7.88914012909, -1.30131995678),
new Vertex(-13.553899765, 7.88914012909, 1.57500004768),
new Vertex(-6.1573600769, 7.72781991959, -1.30131995678),
new Vertex(-6.1573600769, 7.72781991959, 2.47499990463),
new Vertex(-10.3048000336, -2.90601992607, -1.30131995678),
new Vertex(-10.3048000336, -2.90601992607, 2.47499990463),
new Vertex(-8.50175952911, 7.72008991241, -1.30131995678),
new Vertex(-8.50175952911, 7.72008991241, 1.57500004768),
new Vertex(1.14508998394, -6.32652997971, -1.30131995678),
new Vertex(1.14508998394, -6.32652997971, 2.47499990463),
new Vertex(-21.9545993805, -10.1070995331, -1.30131995678),
new Vertex(-21.9545993805, -10.1070995331, 2.47499990463),
new Vertex(-8.00518989563, 6.37447023392, -1.30131995678),
new Vertex(-8.00518989563, 6.37447023392, 2.47499990463),
new Vertex(-5.30626010895, -6.62273979187, -1.30131995678),
new Vertex(-5.30626010895, -6.62273979187, 2.47499990463),
new Vertex(-11.7122001648, -3.51888990402, -1.30131995678),
new Vertex(-11.7122001648, -3.51888990402, 1.35000002384),
new Vertex(-12.5923995972, -3.27866005898, -1.30131995678),
new Vertex(-12.5923995972, -3.27866005898, 1.27499997616),
new Vertex(4.24483013153, 25.1263008118, -1.30131995678),
new Vertex(4.24483013153, 25.1263008118, 2.47499990463),
new Vertex(-10.7536001205, -11.9181003571, -1.30131995678),
new Vertex(-10.7536001205, -11.9181003571, 2.47499990463),
new Vertex(4.55350017548, -6.0684800148, -1.30131995678),
new Vertex(4.55350017548, -6.0684800148, 2.47499990463),
new Vertex(-21.5112991333, -13.0317001343, -1.30131995678),
new Vertex(-21.5112991333, -13.0317001343, 2.47499990463),
new Vertex(-9.49129009247, 7.51029014587, -1.30131995678),
new Vertex(-9.49129009247, 7.51029014587, 1.57500004768),
new Vertex(-18.6072998047, -1.82472002506, -1.30131995678),
new Vertex(-18.6072998047, -1.82472002506, 2.47499990463),
new Vertex(6.96368980408, 11.8830003738, -1.30131995678),
new Vertex(6.96368980408, 11.8830003738, 2.47499990463),
new Vertex(1.99299001694, -5.81606006622, -1.30131995678),
new Vertex(1.99299001694, -5.81606006622, 2.47499990463),
new Vertex(1.64529001713, 24.9400997162, -1.30131995678),
new Vertex(1.64529001713, 24.9400997162, 2.47499990463),
new Vertex(6.15312004089, 24.6186008453, -1.30131995678),
new Vertex(6.15312004089, 24.6186008453, 2.47499990463),
new Vertex(-17.6488990784, -4.6141500473, -1.30131995678),
new Vertex(-17.6488990784, -4.6141500473, 2.47499990463),
new Vertex(1.14068996906, 24.3295993805, -1.30131995678),
new Vertex(1.14068996906, 24.3295993805, 2.47499990463),
new Vertex(-21.7236995697, -9.66145038605, -1.30131995678),
new Vertex(-21.7236995697, -9.66145038605, 2.47499990463),
new Vertex(6.69770002365, 13.0797996521, -1.30131995678),
new Vertex(6.69770002365, 13.0797996521, 2.47499990463),
new Vertex(-14.7069997787, 5.17023992538, -1.30131995678),
new Vertex(-14.7069997787, 5.17023992538, 1.45000004768),
new Vertex(-12.3554000854, 7.7330198288, -1.30131995678),
new Vertex(-12.3554000854, 7.7330198288, 1.57500004768),
new Vertex(-16.1434993744, -4.02255010605, -1.30131995678),
new Vertex(-16.1434993744, -4.02255010605, 2.47499990463),
new Vertex(9.2573299408, 0.0729731991887, -1.30131995678),
new Vertex(9.2573299408, 0.0729731991887, 2.47499990463),
new Vertex(-17.411699295, -4.56527996063, -1.30131995678),
new Vertex(-17.411699295, -4.56527996063, 2.47499990463),
new Vertex(-12.2558002472, 8.39272022247, -1.30131995678),
new Vertex(-12.2558002472, 8.39272022247, 1.57500004768),
new Vertex(-12.6851997375, -1.21784996986, -1.30131995678),
new Vertex(-12.6851997375, -1.21784996986, 1.27499997616),
new Vertex(-11.2011995316, -3.46896004677, -1.30131995678),
new Vertex(-11.2011995316, -3.46896004677, 1.35000002384),
new Vertex(-9.70615959167, 6.27329015732, -1.30131995678),
new Vertex(-9.70615959167, 6.27329015732, 1.57500004768),
new Vertex(-15.4935998917, 5.08220005035, -1.30131995678),
new Vertex(-15.4935998917, 5.08220005035, 1.45000004768),
new Vertex(1.54229998589, 24.8784999847, -1.30131995678),
new Vertex(1.54229998589, 24.8784999847, 2.47499990463),
new Vertex(-11.7602996826, -3.71900010109, -1.30131995678),
new Vertex(-11.7602996826, -3.71900010109, 2.47499990463),
new Vertex(-16.8626995087, 8.12366008759, -1.30131995678),
new Vertex(-16.8626995087, 8.12366008759, 1.45000004768),
new Vertex(-7.50832986832, -11.3745002747, -1.30131995678),
new Vertex(-7.50832986832, -11.3745002747, 2.47499990463),
new Vertex(-2.85860991478, -0.428611010313, -1.30131995678),
new Vertex(-2.85860991478, -0.428611010313, 2.47499990463),
new Vertex(-10.4059000015, -11.976099968, -1.30131995678),
new Vertex(-10.4059000015, -11.976099968, 2.47499990463),
new Vertex(3.35057997704, 25.4312992096, -1.30131995678),
new Vertex(3.35057997704, 25.4312992096, 2.47499990463),
new Vertex(-4.26378011703, -3.92412996292, -1.30131995678),
new Vertex(-4.26378011703, -3.92412996292, 2.47499990463),
new Vertex(-13.5047998428, -1.03382003307, -1.30131995678),
new Vertex(-13.5047998428, -1.03382003307, 1.27499997616),
new Vertex(-12.4463996887, -2.81643009186, -1.30131995678),
new Vertex(-12.4463996887, -2.81643009186, 1.27499997616),
new Vertex(-14.1148004532, -3.18048000336, -1.30131995678),
new Vertex(-14.1148004532, -3.18048000336, 2.47499990463),
new Vertex(-8.10645961761, 6.62664985657, -1.30131995678),
new Vertex(-8.10645961761, 6.62664985657, 1.57500004768),
new Vertex(-10.3502998352, -2.90926003456, -1.30131995678),
new Vertex(-10.3502998352, -2.90926003456, 1.35000002384),
new Vertex(5.56410980225, 22.9841003418, -1.30131995678),
new Vertex(5.56410980225, 22.9841003418, 2.47499990463),
new Vertex(7.60286998749, 7.38805007935, -1.30131995678),
new Vertex(7.60286998749, 7.38805007935, 2.47499990463),
new Vertex(7.13405990601, 10.7790002823, -1.30131995678),
new Vertex(7.13405990601, 10.7790002823, 2.47499990463),
new Vertex(-7.80475997925, -3.97341990471, -1.30131995678),
new Vertex(-7.80475997925, -3.97341990471, 2.47499990463),
new Vertex(3.39489006996, 25.8729000092, -1.30131995678),
new Vertex(3.39489006996, 25.8729000092, 2.47499990463),
new Vertex(-11.2433996201, -3.36729001999, -1.30131995678),
new Vertex(-11.2433996201, -3.36729001999, 1.35000002384),
new Vertex(6.35032987595, 18.4232997894, -1.30131995678),
new Vertex(6.35032987595, 18.4232997894, 2.47499990463),
new Vertex(1.49779999256, 25.5268993378, -1.30131995678),
new Vertex(1.49779999256, 25.5268993378, 2.47499990463),
new Vertex(-6.00595998764, 7.37686014175, -1.30131995678),
new Vertex(-6.00595998764, 7.37686014175, 2.47499990463),
new Vertex(-11.2513999939, -3.42241001129, -1.30131995678),
new Vertex(-11.2513999939, -3.42241001129, 1.35000002384),
new Vertex(-14.9013996124, 7.38706016541, -1.30131995678),
new Vertex(-14.9013996124, 7.38706016541, 1.45000004768),
new Vertex(-20.7716007233, -13.6632003784, -1.30131995678),
new Vertex(-20.7716007233, -13.6632003784, 2.47499990463),
new Vertex(-8.35200023651, 7.91084003448, -1.30131995678),
new Vertex(-8.35200023651, 7.91084003448, 1.57500004768),
new Vertex(-7.8586101532, -4.2206401825, -1.30131995678),
new Vertex(-7.8586101532, -4.2206401825, 2.47499990463),
new Vertex(-13.0008001328, -3.4746799469, -1.30131995678),
new Vertex(-13.0008001328, -3.4746799469, 1.27499997616),
new Vertex(-13.3099002838, -3.68307995796, -1.30131995678),
new Vertex(-13.3099002838, -3.68307995796, 1.27499997616),
new Vertex(-19.1049003601, -1.61905002594, -1.30131995678),
new Vertex(-19.1049003601, -1.61905002594, 2.47499990463),
new Vertex(-4.81408023834, 0.271158009768, -1.30131995678),
new Vertex(-4.81408023834, 0.271158009768, 2.47499990463),
new Vertex(-9.25623989105, -11.9670000076, -1.30131995678),
new Vertex(-9.25623989105, -11.9670000076, 2.47499990463),
new Vertex(7.80316019058, 10.5249996185, -1.30131995678),
new Vertex(7.80316019058, 10.5249996185, 2.47499990463),
new Vertex(-21.2535991669, -12.976099968, -1.30131995678),
new Vertex(-21.2535991669, -12.976099968, 2.47499990463),
new Vertex(7.60858011246, 11.9349002838, -1.30131995678),
new Vertex(7.60858011246, 11.9349002838, 2.47499990463),
new Vertex(-9.10824012756, 7.42985010147, -1.30131995678),
new Vertex(-9.10824012756, 7.42985010147, 1.57500004768),
new Vertex(-11.9060001373, -3.82139992714, -1.30131995678),
new Vertex(-11.9060001373, -3.82139992714, 2.47499990463),
new Vertex(6.2018198967, 23.1194000244, -1.30131995678),
new Vertex(6.2018198967, 23.1194000244, 2.47499990463),
new Vertex(-6.10563993454, 8.08226013184, -1.30131995678),
new Vertex(-6.10563993454, 8.08226013184, 2.47499990463),
new Vertex(5.9415102005, 18.6270008087, -1.30131995678),
new Vertex(5.9415102005, 18.6270008087, 2.47499990463),
new Vertex(-6.90805006027, 13.4814996719, -1.30131995678),
new Vertex(-6.90805006027, 13.4814996719, 2.47499990463),
new Vertex(-4.60468006134, -6.21209001541, -1.30131995678),
new Vertex(-4.60468006134, -6.21209001541, 2.47499990463),
new Vertex(-10.3473997116, -2.82277989388, -1.30131995678),
new Vertex(-10.3473997116, -2.82277989388, 1.35000002384),
new Vertex(6.04894018173, 18.2810993195, -1.30131995678),
new Vertex(6.04894018173, 18.2810993195, 2.47499990463),
new Vertex(-13.1556997299, -0.917834997177, -1.30131995678),
new Vertex(-13.1556997299, -0.917834997177, 1.27499997616),
new Vertex(-14.8542003632, 7.43412017822, -1.30131995678),
new Vertex(-14.8542003632, 7.43412017822, 1.57500004768),
new Vertex(-17.0548992157, -12.4738998413, -1.30131995678),
new Vertex(-17.0548992157, -12.4738998413, 2.47499990463),
new Vertex(5.43094015121, 22.0762004852, -1.30131995678),
new Vertex(5.43094015121, 22.0762004852, 2.47499990463),
new Vertex(-13.2611999512, -3.72105002403, -1.30131995678),
new Vertex(-13.2611999512, -3.72105002403, 2.47499990463),
new Vertex(-9.04403972626, -11.5347003937, -1.30131995678),
new Vertex(-9.04403972626, -11.5347003937, 2.47499990463),
new Vertex(-11.8507995605, -3.57299995422, -1.30131995678),
new Vertex(-11.8507995605, -3.57299995422, 2.47499990463),
new Vertex(-11.1054000854, -3.37373995781, -1.30131995678),
new Vertex(-11.1054000854, -3.37373995781, 1.35000002384),
new Vertex(1.39821994305, 24.6786994934, -1.30131995678),
new Vertex(1.39821994305, 24.6786994934, 2.47499990463),
new Vertex(-16.3948001862, -4.03982019424, -1.30131995678),
new Vertex(-16.3948001862, -4.03982019424, 2.47499990463),
new Vertex(4.39349985123, -5.47295999527, -1.30131995678),
new Vertex(4.39349985123, -5.47295999527, 2.47499990463),
new Vertex(-18.3213005066, -4.4727602005, -1.30131995678),
new Vertex(-18.3213005066, -4.4727602005, 2.47499990463),
new Vertex(-4.50424003601, -3.67534995079, -1.30131995678),
new Vertex(-4.50424003601, -3.67534995079, 2.47499990463),
new Vertex(-13.2548999786, -3.67248988152, -1.30131995678),
new Vertex(-13.2548999786, -3.67248988152, 1.27499997616),
new Vertex(-13.9041996002, -11.6686000824, -1.30131995678),
new Vertex(-13.9041996002, -11.6686000824, 2.47499990463),
new Vertex(-4.55321979523, -11.326499939, -1.30131995678),
new Vertex(-4.55321979523, -11.326499939, 2.47499990463),
new Vertex(-12.9579000473, -11.725399971, -1.30131995678),
new Vertex(-12.9579000473, -11.725399971, 2.47499990463),
new Vertex(-5.60192012787, -3.97655010223, -1.30131995678),
new Vertex(-5.60192012787, -3.97655010223, 2.47499990463),
new Vertex(-8.40161991119, 6.29547977448, -1.30131995678),
new Vertex(-8.40161991119, 6.29547977448, 1.57500004768),
new Vertex(-14.6029996872, -2.96900010109, -1.30131995678),
new Vertex(-14.6029996872, -2.96900010109, 2.47499990463),
new Vertex(1.20497000217, 24.4221000671, -1.30131995678),
new Vertex(1.20497000217, 24.4221000671, 2.47499990463),
new Vertex(-13.9053001404, -1.02497005463, -1.30131995678),
new Vertex(-13.9053001404, -1.02497005463, 1.27499997616),
new Vertex(-13.5558996201, -11.7643003464, -1.30131995678),
new Vertex(-13.5558996201, -11.7643003464, 2.47499990463),
new Vertex(-5.13912010193, -6.41710996628, -1.30131995678),
new Vertex(-5.13912010193, -6.41710996628, 2.47499990463),
new Vertex(-8.21879005432, 7.64107990265, -1.30131995678),
new Vertex(-8.21879005432, 7.64107990265, 2.47499990463),
new Vertex(8.54644012451, -0.0255555994809, -1.30131995678),
new Vertex(8.54644012451, -0.0255555994809, 2.47499990463),
new Vertex(5.29693984985, -0.878288984299, -1.30131995678),
new Vertex(5.29693984985, -0.878288984299, 2.47499990463),
new Vertex(-4.29867982864, -4.6707201004, -1.30131995678),
new Vertex(-4.29867982864, -4.6707201004, 2.47499990463),
new Vertex(-12.8393001556, -2.71731996536, -1.30131995678),
new Vertex(-12.8393001556, -2.71731996536, 1.27499997616),
new Vertex(5.08807992935, -0.675671994686, -1.30131995678),
new Vertex(5.08807992935, -0.675671994686, 2.47499990463),
new Vertex(-13.1885004044, 8.33607959747, -1.30131995678),
new Vertex(-13.1885004044, 8.33607959747, 1.57500004768),
new Vertex(-15.1983995438, 7.43064022064, -1.30131995678),
new Vertex(-15.1983995438, 7.43064022064, 1.45000004768),
new Vertex(-8.25323009491, 6.47733020782, -1.30131995678),
new Vertex(-8.25323009491, 6.47733020782, 1.57500004768),
new Vertex(-6.76200008392, 14.4746999741, -1.30131995678),
new Vertex(-6.76200008392, 14.4746999741, 2.47499990463),
new Vertex(-5.10609006882, 2.72416996956, -1.30131995678),
new Vertex(-5.10609006882, 2.72416996956, 2.47499990463),
new Vertex(-13.7052001953, -11.4714002609, -1.30131995678),
new Vertex(-13.7052001953, -11.4714002609, 2.47499990463),
new Vertex(-5.9142999649, 9.21947956085, -1.30131995678),
new Vertex(-5.9142999649, 9.21947956085, 2.47499990463),
new Vertex(-8.10262012482, 6.20752000809, -1.30131995678),
new Vertex(-8.10262012482, 6.20752000809, 1.57500004768),
new Vertex(-9.80257034302, 5.61920022964, -1.30131995678),
new Vertex(-9.80257034302, 5.61920022964, 1.57500004768),
new Vertex(-6.05253982544, 7.47521018982, -1.30131995678),
new Vertex(-6.05253982544, 7.47521018982, 2.47499990463),
new Vertex(4.9072098732, 25.2282009125, -1.30131995678),
new Vertex(4.9072098732, 25.2282009125, 2.47499990463),
new Vertex(-6.55591011047, 7.87534999847, -1.30131995678),
new Vertex(-6.55591011047, 7.87534999847, 2.47499990463),
new Vertex(6.90007019043, 16.2700996399, -1.30131995678),
new Vertex(6.90007019043, 16.2700996399, 2.47499990463),
new Vertex(6.30819988251, 16.1895008087, -1.30131995678),
new Vertex(6.30819988251, 16.1895008087, 2.47499990463),
new Vertex(6.59375, 18.4223003387, -1.30131995678),
new Vertex(6.59375, 18.4223003387, 2.47499990463),
new Vertex(-6.00390005112, 7.32839012146, -1.30131995678),
new Vertex(-6.00390005112, 7.32839012146, 2.47499990463),
new Vertex(-5.90446996689, 6.6152100563, -1.30131995678),
new Vertex(-5.90446996689, 6.6152100563, 2.47499990463),
new Vertex(-4.11170005798, -4.60792016983, -1.30131995678),
new Vertex(-4.11170005798, -4.60792016983, 2.47499990463),
new Vertex(-13.2062997818, -11.4801998138, -1.30131995678),
new Vertex(-13.2062997818, -11.4801998138, 2.47499990463),
new Vertex(-5.70480012894, -6.1722202301, -1.30131995678),
new Vertex(-5.70480012894, -6.1722202301, 2.47499990463),
new Vertex(-6.99431991577, 12.8787002563, -1.30131995678),
new Vertex(-6.99431991577, 12.8787002563, 2.47499990463),
new Vertex(-14.6556997299, 5.17457008362, -1.30131995678),
new Vertex(-14.6556997299, 5.17457008362, 1.57500004768),
new Vertex(-12.9560003281, -3.46332001686, -1.30131995678),
new Vertex(-12.9560003281, -3.46332001686, 1.27499997616),
new Vertex(-5.94611978531, -5.96051979065, -1.30131995678),
new Vertex(-5.94611978531, -5.96051979065, 2.47499990463),
new Vertex(-13.6091995239, -3.58240008354, -1.30131995678),
new Vertex(-13.6091995239, -3.58240008354, 1.27499997616),
new Vertex(-3.80267000198, -7.77184009552, -1.30131995678),
new Vertex(-3.80267000198, -7.77184009552, 2.47499990463),
new Vertex(-11.7622995377, -3.61740994453, -1.30131995678),
new Vertex(-11.7622995377, -3.61740994453, 2.47499990463),
new Vertex(1.55751001835, 24.9158992767, -1.30131995678),
new Vertex(1.55751001835, 24.9158992767, 2.47499990463),
new Vertex(-18.3927001953, -4.37532997131, -1.30131995678),
new Vertex(-18.3927001953, -4.37532997131, 2.47499990463),
new Vertex(4.95005989075, 25.0811004639, -1.30131995678),
new Vertex(4.95005989075, 25.0811004639, 2.47499990463),
new Vertex(0.59500002861, -10.8203001022, -1.30131995678),
new Vertex(0.59500002861, -10.8203001022, 2.47499990463),
new Vertex(-6.31647014618, 9.67187976837, -1.30131995678),
new Vertex(-6.31647014618, 9.67187976837, 2.47499990463),
new Vertex(-7.01267004013, 13.4284000397, -1.30131995678),
new Vertex(-7.01267004013, 13.4284000397, 2.47499990463),
new Vertex(-6.05467987061, 7.3277797699, -1.30131995678),
new Vertex(-6.05467987061, 7.3277797699, 2.47499990463),
new Vertex(7.3486700058, 8.67912006378, -1.30131995678),
new Vertex(7.3486700058, 8.67912006378, 2.47499990463),
new Vertex(4.49672985077, -2.41272997856, -1.30131995678),
new Vertex(4.49672985077, -2.41272997856, 2.47499990463),
new Vertex(-15.7595996857, 7.99066019058, -1.30131995678),
new Vertex(-15.7595996857, 7.99066019058, 1.45000004768),
new Vertex(-12.8049001694, -3.62320995331, -1.30131995678),
new Vertex(-12.8049001694, -3.62320995331, 2.47499990463),
new Vertex(-6.85888004303, 13.7301998138, -1.30131995678),
new Vertex(-6.85888004303, 13.7301998138, 2.47499990463),
new Vertex(-12.0064001083, -12.1803998947, -1.30131995678),
new Vertex(-12.0064001083, -12.1803998947, 2.47499990463),
new Vertex(-12.7027997971, -2.81933999062, -1.30131995678),
new Vertex(-12.7027997971, -2.81933999062, 1.27499997616),
new Vertex(-14.748000145, -1.2208199501, -1.30131995678),
new Vertex(-14.748000145, -1.2208199501, 2.47499990463),
new Vertex(-15.5562000275, 8.04259967804, -1.30131995678),
new Vertex(-15.5562000275, 8.04259967804, 1.45000004768),
new Vertex(-3.90906000137, -7.12765979767, -1.30131995678),
new Vertex(-3.90906000137, -7.12765979767, 2.47499990463),
new Vertex(-5.85385990143, 6.61128997803, -1.30131995678),
new Vertex(-5.85385990143, 6.61128997803, 2.47499990463),
new Vertex(1.09818994999, 24.2784004211, -1.30131995678),
new Vertex(1.09818994999, 24.2784004211, 2.47499990463),
new Vertex(-6.95175981522, 13.4777002335, -1.30131995678),
new Vertex(-6.95175981522, 13.4777002335, 2.47499990463),
new Vertex(-18.6557006836, -1.61305999756, -1.30131995678),
new Vertex(-18.6557006836, -1.61305999756, 2.47499990463),
new Vertex(-4.07242012024, -10.1684999466, -1.30131995678),
new Vertex(-4.07242012024, -10.1684999466, 2.47499990463),
new Vertex(0.44810500741, -7.42230987549, -1.30131995678),
new Vertex(0.44810500741, -7.42230987549, 2.47499990463),
new Vertex(-14.1993999481, -3.16632008553, -1.30131995678),
new Vertex(-14.1993999481, -3.16632008553, 2.47499990463),
new Vertex(-13.1058998108, -3.46624994278, -1.30131995678),
new Vertex(-13.1058998108, -3.46624994278, 1.27499997616),
new Vertex(0.28160199523, -5.68726015091, -1.30131995678),
new Vertex(0.28160199523, -5.68726015091, 2.47499990463),
new Vertex(8.16203022003, 2.9380300045, -1.30131995678),
new Vertex(8.16203022003, 2.9380300045, 2.47499990463),
new Vertex(5.61074018478, 20.6863002777, -1.30131995678),
new Vertex(5.61074018478, 20.6863002777, 2.47499990463),
new Vertex(-14.4146995544, -3.26337003708, -1.30131995678),
new Vertex(-14.4146995544, -3.26337003708, 2.47499990463),
new Vertex(-12.8945999146, 5.31797981262, -1.30131995678),
new Vertex(-12.8945999146, 5.31797981262, 1.57500004768),
new Vertex(-11.2188997269, -3.31981992722, -1.30131995678),
new Vertex(-11.2188997269, -3.31981992722, 1.35000002384),
new Vertex(-14.9610004425, 7.38751983643, -1.30131995678),
new Vertex(-14.9610004425, 7.38751983643, 1.45000004768),
new Vertex(-13.102399826, -3.42561006546, -1.30131995678),
new Vertex(-13.102399826, -3.42561006546, 1.27499997616),
new Vertex(-3.86277008057, -7.27405977249, -1.30131995678),
new Vertex(-3.86277008057, -7.27405977249, 2.47499990463),
new Vertex(-3.81572008133, -7.67228984833, -1.30131995678),
new Vertex(-3.81572008133, -7.67228984833, 2.47499990463),
new Vertex(-13.6568002701, -12.1246004105, -1.30131995678),
new Vertex(-13.6568002701, -12.1246004105, 2.47499990463),
new Vertex(4.41326999664, -0.38106700778, -1.30131995678),
new Vertex(4.41326999664, -0.38106700778, 2.47499990463),
new Vertex(-16.0652999878, 8.24192047119, -1.30131995678),
new Vertex(-16.0652999878, 8.24192047119, 1.45000004768),
new Vertex(-4.04962015152, -6.42814016342, -1.30131995678),
new Vertex(-4.04962015152, -6.42814016342, 2.47499990463),
new Vertex(-9.95040035248, 7.99551010132, -1.30131995678),
new Vertex(-9.95040035248, 7.99551010132, 1.57500004768),
new Vertex(5.80302000046, 23.7290000916, -1.30131995678),
new Vertex(5.80302000046, 23.7290000916, 2.47499990463),
new Vertex(-11.0584001541, -0.622689008713, -1.30131995678),
new Vertex(-11.0584001541, -0.622689008713, 1.35000002384),
new Vertex(-12.9070997238, -3.71745991707, -1.30131995678),
new Vertex(-12.9070997238, -3.71745991707, 2.47499990463),
new Vertex(-16.2036991119, -4.07224988937, -1.30131995678),
new Vertex(-16.2036991119, -4.07224988937, 2.47499990463),
new Vertex(-13.4623003006, -12.7644996643, -1.30131995678),
new Vertex(-13.4623003006, -12.7644996643, 2.47499990463),
new Vertex(-5.35578012466, -3.87540006638, -1.30131995678),
new Vertex(-5.35578012466, -3.87540006638, 2.47499990463),
new Vertex(-12.8585996628, -11.7562999725, -1.30131995678),
new Vertex(-12.8585996628, -11.7562999725, 2.47499990463),
new Vertex(-14.0040998459, -12.1710996628, -1.30131995678),
new Vertex(-14.0040998459, -12.1710996628, 2.47499990463),
new Vertex(4.45571994781, -5.37241983414, -1.30131995678),
new Vertex(4.45571994781, -5.37241983414, 2.47499990463),
new Vertex(-12.5559997559, -0.818467974663, -1.30131995678),
new Vertex(-12.5559997559, -0.818467974663, 1.35000002384),
new Vertex(-4.81539011002, -0.00292412005365, -1.30131995678),
new Vertex(-4.81539011002, -0.00292412005365, 2.47499990463),
new Vertex(8.6041097641, -0.0236712004989, -1.30131995678),
new Vertex(8.6041097641, -0.0236712004989, 2.47499990463),
new Vertex(-12.505399704, -1.32278001308, -1.30131995678),
new Vertex(-12.505399704, -1.32278001308, 1.35000002384),
new Vertex(-8.25876045227, 7.57746982574, -1.30131995678),
new Vertex(-8.25876045227, 7.57746982574, 1.57500004768),
new Vertex(3.38558006287, 25.4365005493, -1.30131995678),
new Vertex(3.38558006287, 25.4365005493, 2.47499990463),
new Vertex(-6.05733013153, 7.93005990982, -1.30131995678),
new Vertex(-6.05733013153, 7.93005990982, 2.47499990463),
new Vertex(-5.86157989502, -6.02410984039, -1.30131995678),
new Vertex(-5.86157989502, -6.02410984039, 2.47499990463),
new Vertex(-2.32123994827, -11.8199996948, -1.30131995678),
new Vertex(-2.32123994827, -11.8199996948, 2.47499990463),
new Vertex(-6.21332979202, 9.12835979462, -1.30131995678),
new Vertex(-6.21332979202, 9.12835979462, 2.47499990463),
new Vertex(0.202723994851, 26.0795001984, -1.30131995678),
new Vertex(0.202723994851, 26.0795001984, 2.47499990463),
new Vertex(-7.60668992996, 22.977399826, -1.30131995678),
new Vertex(-7.60668992996, 22.977399826, 2.47499990463),
new Vertex(6.09399986267, 17.2248001099, -1.30131995678),
new Vertex(6.09399986267, 17.2248001099, 2.47499990463),
new Vertex(-6.96451997757, 12.9776000977, -1.30131995678),
new Vertex(-6.96451997757, 12.9776000977, 2.47499990463),
new Vertex(-4.56754016876, -7.01804018021, -1.30131995678),
new Vertex(-4.56754016876, -7.01804018021, 2.47499990463),
]
const TriangleIndicesData = [
new TriangleIndices(426, 330, 0),
new TriangleIndices(1, 331, 427),
new TriangleIndices(22, 2, 636),
new TriangleIndices(637, 3, 23),
new TriangleIndices(556, 304, 2),
new TriangleIndices(3, 305, 557),
new TriangleIndices(304, 636, 2),
new TriangleIndices(3, 637, 305),
new TriangleIndices(596, 586, 4),
new TriangleIndices(5, 587, 597),
new TriangleIndices(6, 528, 122),
new TriangleIndices(123, 529, 7),
new TriangleIndices(122, 598, 6),
new TriangleIndices(7, 599, 123),
new TriangleIndices(270, 6, 178),
new TriangleIndices(179, 7, 271),
new TriangleIndices(598, 178, 6),
new TriangleIndices(7, 179, 599),
new TriangleIndices(220, 6, 270),
new TriangleIndices(271, 7, 221),
new TriangleIndices(428, 384, 6),
new TriangleIndices(7, 385, 429),
new TriangleIndices(384, 528, 6),
new TriangleIndices(7, 529, 385),
new TriangleIndices(24, 8, 20),
new TriangleIndices(21, 9, 25),
new TriangleIndices(24, 562, 8),
new TriangleIndices(9, 563, 25),
new TriangleIndices(10, 364, 432),
new TriangleIndices(433, 365, 11),
new TriangleIndices(96, 124, 12),
new TriangleIndices(13, 125, 97),
new TriangleIndices(96, 12, 632),
new TriangleIndices(633, 13, 97),
new TriangleIndices(124, 458, 12),
new TriangleIndices(13, 459, 125),
new TriangleIndices(632, 12, 458),
new TriangleIndices(459, 13, 633),
new TriangleIndices(238, 14, 174),
new TriangleIndices(175, 15, 239),
new TriangleIndices(16, 294, 446),
new TriangleIndices(447, 295, 17),
new TriangleIndices(16, 446, 304),
new TriangleIndices(305, 447, 17),
new TriangleIndices(308, 88, 18),
new TriangleIndices(19, 89, 309),
new TriangleIndices(18, 620, 308),
new TriangleIndices(309, 621, 19),
new TriangleIndices(544, 18, 506),
new TriangleIndices(507, 19, 545),
new TriangleIndices(544, 620, 18),
new TriangleIndices(19, 621, 545),
new TriangleIndices(550, 24, 20),
new TriangleIndices(21, 25, 551),
new TriangleIndices(66, 550, 20),
new TriangleIndices(21, 551, 67),
new TriangleIndices(664, 66, 20),
new TriangleIndices(21, 67, 665),
new TriangleIndices(228, 184, 20),
new TriangleIndices(21, 185, 229),
new TriangleIndices(184, 526, 20),
new TriangleIndices(21, 527, 185),
new TriangleIndices(228, 20, 252),
new TriangleIndices(253, 21, 229),
new TriangleIndices(664, 20, 526),
new TriangleIndices(527, 21, 665),
new TriangleIndices(636, 446, 22),
new TriangleIndices(23, 447, 637),
new TriangleIndices(562, 24, 418),
new TriangleIndices(419, 25, 563),
new TriangleIndices(578, 418, 24),
new TriangleIndices(25, 419, 579),
new TriangleIndices(24, 550, 578),
new TriangleIndices(579, 551, 25),
new TriangleIndices(172, 26, 110),
new TriangleIndices(111, 27, 173),
new TriangleIndices(172, 370, 26),
new TriangleIndices(27, 371, 173),
new TriangleIndices(390, 26, 370),
new TriangleIndices(371, 27, 391),
new TriangleIndices(26, 390, 532),
new TriangleIndices(533, 391, 27),
new TriangleIndices(206, 28, 108),
new TriangleIndices(109, 29, 207),
new TriangleIndices(576, 108, 28),
new TriangleIndices(29, 109, 577),
new TriangleIndices(432, 28, 168),
new TriangleIndices(169, 29, 433),
new TriangleIndices(168, 28, 594),
new TriangleIndices(595, 29, 169),
new TriangleIndices(28, 206, 658),
new TriangleIndices(659, 207, 29),
new TriangleIndices(416, 28, 208),
new TriangleIndices(209, 29, 417),
new TriangleIndices(28, 660, 208),
new TriangleIndices(209, 661, 29),
new TriangleIndices(28, 416, 594),
new TriangleIndices(595, 417, 29),
new TriangleIndices(576, 28, 432),
new TriangleIndices(433, 29, 577),
new TriangleIndices(660, 28, 658),
new TriangleIndices(659, 29, 661),
new TriangleIndices(358, 70, 30),
new TriangleIndices(31, 71, 359),
new TriangleIndices(70, 534, 30),
new TriangleIndices(31, 535, 71),
new TriangleIndices(30, 482, 170),
new TriangleIndices(171, 483, 31),
new TriangleIndices(482, 30, 604),
new TriangleIndices(605, 31, 483),
new TriangleIndices(604, 30, 534),
new TriangleIndices(535, 31, 605),
new TriangleIndices(606, 32, 146),
new TriangleIndices(147, 33, 607),
new TriangleIndices(32, 666, 146),
new TriangleIndices(147, 667, 33),
new TriangleIndices(606, 572, 32),
new TriangleIndices(33, 573, 607),
new TriangleIndices(666, 32, 572),
new TriangleIndices(573, 33, 667),
new TriangleIndices(68, 34, 120),
new TriangleIndices(121, 35, 69),
new TriangleIndices(68, 262, 34),
new TriangleIndices(35, 263, 69),
new TriangleIndices(34, 70, 120),
new TriangleIndices(121, 71, 35),
new TriangleIndices(34, 262, 70),
new TriangleIndices(71, 263, 35),
new TriangleIndices(600, 36, 58),
new TriangleIndices(59, 37, 601),
new TriangleIndices(622, 58, 36),
new TriangleIndices(37, 59, 623),
new TriangleIndices(36, 362, 422),
new TriangleIndices(423, 363, 37),
new TriangleIndices(600, 362, 36),
new TriangleIndices(37, 363, 601),
new TriangleIndices(38, 282, 80),
new TriangleIndices(81, 283, 39),
new TriangleIndices(40, 300, 542),
new TriangleIndices(543, 301, 41),
new TriangleIndices(40, 568, 300),
new TriangleIndices(301, 569, 41),
new TriangleIndices(40, 448, 310),
new TriangleIndices(311, 449, 41),
new TriangleIndices(326, 626, 40),
new TriangleIndices(41, 627, 327),
new TriangleIndices(40, 444, 568),
new TriangleIndices(569, 445, 41),
new TriangleIndices(626, 444, 40),
new TriangleIndices(41, 445, 627),
new TriangleIndices(40, 542, 448),
new TriangleIndices(449, 543, 41),
new TriangleIndices(144, 74, 42),
new TriangleIndices(43, 75, 145),
new TriangleIndices(216, 42, 74),
new TriangleIndices(75, 43, 217),
new TriangleIndices(150, 42, 216),
new TriangleIndices(217, 43, 151),
new TriangleIndices(536, 42, 150),
new TriangleIndices(151, 43, 537),
new TriangleIndices(536, 666, 42),
new TriangleIndices(43, 667, 537),
new TriangleIndices(666, 582, 42),
new TriangleIndices(43, 583, 667),
new TriangleIndices(236, 44, 288),
new TriangleIndices(289, 45, 237),
new TriangleIndices(44, 566, 288),
new TriangleIndices(289, 567, 45),
new TriangleIndices(182, 288, 46),
new TriangleIndices(47, 289, 183),
new TriangleIndices(530, 182, 46),
new TriangleIndices(47, 183, 531),
new TriangleIndices(288, 482, 46),
new TriangleIndices(47, 483, 289),
new TriangleIndices(392, 530, 46),
new TriangleIndices(47, 531, 393),
new TriangleIndices(46, 604, 392),
new TriangleIndices(393, 605, 47),
new TriangleIndices(604, 46, 482),
new TriangleIndices(483, 47, 605),
new TriangleIndices(300, 568, 48),
new TriangleIndices(49, 569, 301),
new TriangleIndices(218, 50, 386),
new TriangleIndices(387, 51, 219),
new TriangleIndices(598, 122, 52),
new TriangleIndices(53, 123, 599),
new TriangleIndices(142, 598, 52),
new TriangleIndices(53, 599, 143),
new TriangleIndices(172, 110, 54),
new TriangleIndices(55, 111, 173),
new TriangleIndices(110, 460, 54),
new TriangleIndices(55, 461, 111),
new TriangleIndices(172, 54, 264),
new TriangleIndices(265, 55, 173),
new TriangleIndices(472, 56, 284),
new TriangleIndices(285, 57, 473),
new TriangleIndices(284, 56, 524),
new TriangleIndices(525, 57, 285),
new TriangleIndices(652, 524, 56),
new TriangleIndices(57, 525, 653),
new TriangleIndices(532, 652, 56),
new TriangleIndices(57, 653, 533),
new TriangleIndices(58, 136, 600),
new TriangleIndices(601, 137, 59),
new TriangleIndices(644, 58, 622),
new TriangleIndices(623, 59, 645),
new TriangleIndices(644, 638, 58),
new TriangleIndices(59, 639, 645),
new TriangleIndices(60, 148, 146),
new TriangleIndices(147, 149, 61),
new TriangleIndices(666, 60, 146),
new TriangleIndices(147, 61, 667),
new TriangleIndices(60, 666, 148),
new TriangleIndices(149, 667, 61),
new TriangleIndices(212, 248, 62),
new TriangleIndices(63, 249, 213),
new TriangleIndices(212, 62, 474),
new TriangleIndices(475, 63, 213),
new TriangleIndices(248, 508, 62),
new TriangleIndices(63, 509, 249),
new TriangleIndices(508, 414, 62),
new TriangleIndices(63, 415, 509),
new TriangleIndices(616, 420, 64),
new TriangleIndices(65, 421, 617),
new TriangleIndices(64, 572, 616),
new TriangleIndices(617, 573, 65),
new TriangleIndices(66, 418, 578),
new TriangleIndices(579, 419, 67),
new TriangleIndices(664, 418, 66),
new TriangleIndices(67, 419, 665),
new TriangleIndices(66, 578, 550),
new TriangleIndices(551, 579, 67),
new TriangleIndices(394, 68, 120),
new TriangleIndices(121, 69, 395),
new TriangleIndices(68, 534, 262),
new TriangleIndices(263, 535, 69),
new TriangleIndices(394, 604, 68),
new TriangleIndices(69, 605, 395),
new TriangleIndices(534, 68, 604),
new TriangleIndices(605, 69, 535),
new TriangleIndices(84, 120, 70),
new TriangleIndices(71, 121, 85),
new TriangleIndices(326, 84, 70),
new TriangleIndices(71, 85, 327),
new TriangleIndices(534, 70, 262),
new TriangleIndices(263, 71, 535),
new TriangleIndices(322, 70, 596),
new TriangleIndices(597, 71, 323),
new TriangleIndices(322, 626, 70),
new TriangleIndices(71, 627, 323),
new TriangleIndices(626, 326, 70),
new TriangleIndices(71, 327, 627),
new TriangleIndices(596, 70, 358),
new TriangleIndices(359, 71, 597),
new TriangleIndices(324, 72, 592),
new TriangleIndices(593, 73, 325),
new TriangleIndices(74, 654, 216),
new TriangleIndices(217, 655, 75),
new TriangleIndices(194, 76, 350),
new TriangleIndices(351, 77, 195),
new TriangleIndices(442, 76, 194),
new TriangleIndices(195, 77, 443),
new TriangleIndices(442, 206, 76),
new TriangleIndices(77, 207, 443),
new TriangleIndices(466, 76, 206),
new TriangleIndices(207, 77, 467),
new TriangleIndices(76, 312, 350),
new TriangleIndices(351, 313, 77),
new TriangleIndices(312, 76, 466),
new TriangleIndices(467, 77, 313),
new TriangleIndices(78, 500, 462),
new TriangleIndices(463, 501, 79),
new TriangleIndices(360, 224, 80),
new TriangleIndices(81, 225, 361),
new TriangleIndices(248, 80, 282),
new TriangleIndices(283, 81, 249),
new TriangleIndices(80, 248, 360),
new TriangleIndices(361, 249, 81),
new TriangleIndices(476, 82, 484),
new TriangleIndices(485, 83, 477),
new TriangleIndices(476, 592, 82),
new TriangleIndices(83, 593, 477),
new TriangleIndices(484, 82, 478),
new TriangleIndices(479, 83, 485),
new TriangleIndices(82, 612, 478),
new TriangleIndices(479, 613, 83),
new TriangleIndices(82, 592, 612),
new TriangleIndices(613, 593, 83),
new TriangleIndices(410, 120, 84),
new TriangleIndices(85, 121, 411),
new TriangleIndices(496, 204, 84),
new TriangleIndices(85, 205, 497),
new TriangleIndices(204, 522, 84),
new TriangleIndices(85, 523, 205),
new TriangleIndices(326, 496, 84),
new TriangleIndices(85, 497, 327),
new TriangleIndices(410, 84, 522),
new TriangleIndices(523, 85, 411),
new TriangleIndices(86, 130, 232),
new TriangleIndices(233, 131, 87),
new TriangleIndices(130, 86, 316),
new TriangleIndices(317, 87, 131),
new TriangleIndices(232, 512, 86),
new TriangleIndices(87, 513, 233),
new TriangleIndices(562, 316, 86),
new TriangleIndices(87, 317, 563),
new TriangleIndices(512, 492, 86),
new TriangleIndices(87, 493, 513),
new TriangleIndices(492, 562, 86),
new TriangleIndices(87, 563, 493),
new TriangleIndices(90, 304, 278),
new TriangleIndices(279, 305, 91),
new TriangleIndices(116, 350, 92),
new TriangleIndices(93, 351, 117),
new TriangleIndices(350, 372, 92),
new TriangleIndices(93, 373, 351),
new TriangleIndices(128, 94, 126),
new TriangleIndices(127, 95, 129),
new TriangleIndices(218, 94, 128),
new TriangleIndices(129, 95, 219),
new TriangleIndices(160, 94, 310),
new TriangleIndices(311, 95, 161),
new TriangleIndices(218, 386, 94),
new TriangleIndices(95, 387, 219),
new TriangleIndices(94, 326, 310),
new TriangleIndices(311, 327, 95),
new TriangleIndices(94, 430, 326),
new TriangleIndices(327, 431, 95),
new TriangleIndices(94, 386, 430),
new TriangleIndices(431, 387, 95),
new TriangleIndices(98, 124, 96),
new TriangleIndices(97, 125, 99),
new TriangleIndices(292, 98, 96),
new TriangleIndices(97, 99, 293),
new TriangleIndices(564, 292, 96),
new TriangleIndices(97, 293, 565),
new TriangleIndices(610, 96, 632),
new TriangleIndices(633, 97, 611),
new TriangleIndices(176, 98, 100),
new TriangleIndices(101, 99, 177),
new TriangleIndices(98, 348, 100),
new TriangleIndices(101, 349, 99),
new TriangleIndices(98, 436, 124),
new TriangleIndices(125, 437, 99),
new TriangleIndices(98, 176, 436),
new TriangleIndices(437, 177, 99),
new TriangleIndices(100, 138, 176),
new TriangleIndices(177, 139, 101),
new TriangleIndices(494, 102, 152),
new TriangleIndices(153, 103, 495),
new TriangleIndices(366, 156, 102),
new TriangleIndices(103, 157, 367),
new TriangleIndices(156, 554, 102),
new TriangleIndices(103, 555, 157),
new TriangleIndices(158, 196, 102),
new TriangleIndices(103, 197, 159),
new TriangleIndices(554, 158, 102),
new TriangleIndices(103, 159, 555),
new TriangleIndices(198, 102, 196),
new TriangleIndices(197, 103, 199),
new TriangleIndices(198, 574, 102),
new TriangleIndices(103, 575, 199),
new TriangleIndices(494, 346, 102),
new TriangleIndices(103, 347, 495),
new TriangleIndices(346, 612, 102),
new TriangleIndices(103, 613, 347),
new TriangleIndices(612, 366, 102),
new TriangleIndices(103, 367, 613),
new TriangleIndices(420, 616, 104),
new TriangleIndices(105, 617, 421),
new TriangleIndices(226, 478, 106),
new TriangleIndices(107, 479, 227),
new TriangleIndices(206, 108, 466),
new TriangleIndices(467, 109, 207),
new TriangleIndices(466, 108, 312),
new TriangleIndices(313, 109, 467),
new TriangleIndices(108, 576, 312),
new TriangleIndices(313, 577, 109),
new TriangleIndices(112, 192, 450),
new TriangleIndices(451, 193, 113),
new TriangleIndices(112, 640, 192),
new TriangleIndices(193, 641, 113),
new TriangleIndices(346, 112, 214),
new TriangleIndices(215, 113, 347),
new TriangleIndices(112, 450, 214),
new TriangleIndices(215, 451, 113),
new TriangleIndices(346, 250, 112),
new TriangleIndices(113, 251, 347),
new TriangleIndices(398, 112, 250),
new TriangleIndices(251, 113, 399),
new TriangleIndices(112, 398, 640),
new TriangleIndices(641, 399, 113),
new TriangleIndices(392, 588, 114),
new TriangleIndices(115, 589, 393),
new TriangleIndices(452, 434, 114),
new TriangleIndices(115, 435, 453),
new TriangleIndices(434, 624, 114),
new TriangleIndices(115, 625, 435),
new TriangleIndices(588, 452, 114),
new TriangleIndices(115, 453, 589),
new TriangleIndices(624, 560, 114),
new TriangleIndices(115, 561, 625),
new TriangleIndices(306, 350, 116),
new TriangleIndices(117, 351, 307),
new TriangleIndices(116, 378, 306),
new TriangleIndices(307, 379, 117),
new TriangleIndices(320, 118, 178),
new TriangleIndices(179, 119, 321),
new TriangleIndices(118, 320, 502),
new TriangleIndices(503, 321, 119),
new TriangleIndices(118, 502, 334),
new TriangleIndices(335, 503, 119),
new TriangleIndices(618, 118, 334),
new TriangleIndices(335, 119, 619),
new TriangleIndices(394, 120, 434),
new TriangleIndices(435, 121, 395),
new TriangleIndices(624, 120, 410),
new TriangleIndices(411, 121, 625),
new TriangleIndices(434, 120, 624),
new TriangleIndices(625, 121, 435),
new TriangleIndices(436, 410, 124),
new TriangleIndices(125, 411, 437),
new TriangleIndices(522, 124, 410),
new TriangleIndices(411, 125, 523),
new TriangleIndices(458, 124, 522),
new TriangleIndices(523, 125, 459),
new TriangleIndices(126, 314, 128),
new TriangleIndices(129, 315, 127),
new TriangleIndices(404, 218, 128),
new TriangleIndices(129, 219, 405),
new TriangleIndices(404, 128, 280),
new TriangleIndices(281, 129, 405),
new TriangleIndices(316, 302, 130),
new TriangleIndices(131, 303, 317),
new TriangleIndices(132, 584, 216),
new TriangleIndices(217, 585, 133),
new TriangleIndices(178, 134, 328),
new TriangleIndices(329, 135, 179),
new TriangleIndices(136, 234, 286),
new TriangleIndices(287, 235, 137),
new TriangleIndices(286, 374, 136),
new TriangleIndices(137, 375, 287),
new TriangleIndices(600, 136, 374),
new TriangleIndices(375, 137, 601),
new TriangleIndices(176, 138, 400),
new TriangleIndices(401, 139, 177),
new TriangleIndices(344, 140, 472),
new TriangleIndices(473, 141, 345),
new TriangleIndices(472, 140, 456),
new TriangleIndices(457, 141, 473),
new TriangleIndices(606, 146, 148),
new TriangleIndices(149, 147, 607),
new TriangleIndices(148, 258, 606),
new TriangleIndices(607, 259, 149),
new TriangleIndices(258, 148, 608),
new TriangleIndices(609, 149, 259),
new TriangleIndices(148, 666, 608),
new TriangleIndices(609, 667, 149),
new TriangleIndices(584, 150, 216),
new TriangleIndices(217, 151, 585),
new TriangleIndices(536, 150, 246),
new TriangleIndices(247, 151, 537),
new TriangleIndices(590, 246, 150),
new TriangleIndices(151, 247, 591),
new TriangleIndices(152, 398, 250),
new TriangleIndices(251, 399, 153),
new TriangleIndices(494, 152, 250),
new TriangleIndices(251, 153, 495),
new TriangleIndices(542, 154, 160),
new TriangleIndices(161, 155, 543),
new TriangleIndices(300, 396, 154),
new TriangleIndices(155, 397, 301),
new TriangleIndices(154, 542, 300),
new TriangleIndices(301, 543, 155),
new TriangleIndices(554, 156, 402),
new TriangleIndices(403, 157, 555),
new TriangleIndices(196, 158, 380),
new TriangleIndices(381, 159, 197),
new TriangleIndices(158, 256, 210),
new TriangleIndices(211, 257, 159),
new TriangleIndices(210, 380, 158),
new TriangleIndices(159, 381, 211),
new TriangleIndices(554, 498, 158),
new TriangleIndices(159, 499, 555),
new TriangleIndices(160, 310, 448),
new TriangleIndices(449, 311, 161),
new TriangleIndices(542, 160, 448),
new TriangleIndices(449, 161, 543),
new TriangleIndices(332, 162, 180),
new TriangleIndices(181, 163, 333),
new TriangleIndices(162, 362, 180),
new TriangleIndices(181, 363, 163),
new TriangleIndices(362, 162, 274),
new TriangleIndices(275, 163, 363),
new TriangleIndices(390, 274, 162),
new TriangleIndices(163, 275, 391),
new TriangleIndices(410, 162, 332),
new TriangleIndices(333, 163, 411),
new TriangleIndices(162, 410, 390),
new TriangleIndices(391, 411, 163),
new TriangleIndices(164, 366, 612),
new TriangleIndices(613, 367, 165),
new TriangleIndices(592, 164, 612),
new TriangleIndices(613, 165, 593),
new TriangleIndices(496, 166, 204),
new TriangleIndices(205, 167, 497),
new TriangleIndices(522, 204, 166),
new TriangleIndices(167, 205, 523),
new TriangleIndices(470, 522, 166),
new TriangleIndices(167, 523, 471),
new TriangleIndices(432, 168, 594),
new TriangleIndices(595, 169, 433),
new TriangleIndices(240, 170, 482),
new TriangleIndices(483, 171, 241),
new TriangleIndices(192, 172, 264),
new TriangleIndices(265, 173, 193),
new TriangleIndices(192, 370, 172),
new TriangleIndices(173, 371, 193),
new TriangleIndices(238, 174, 336),
new TriangleIndices(337, 175, 239),
new TriangleIndices(486, 270, 178),
new TriangleIndices(179, 271, 487),
new TriangleIndices(178, 598, 320),
new TriangleIndices(321, 599, 179),
new TriangleIndices(486, 178, 328),
new TriangleIndices(329, 179, 487),
new TriangleIndices(332, 180, 440),
new TriangleIndices(441, 181, 333),
new TriangleIndices(440, 180, 362),
new TriangleIndices(363, 181, 441),
new TriangleIndices(228, 664, 184),
new TriangleIndices(185, 665, 229),
new TriangleIndices(526, 184, 664),
new TriangleIndices(665, 185, 527),
new TriangleIndices(192, 186, 370),
new TriangleIndices(371, 187, 193),
new TriangleIndices(274, 370, 186),
new TriangleIndices(187, 371, 275),
new TriangleIndices(188, 210, 256),
new TriangleIndices(257, 211, 189),
new TriangleIndices(210, 188, 650),
new TriangleIndices(651, 189, 211),
new TriangleIndices(188, 414, 650),
new TriangleIndices(651, 415, 189),
new TriangleIndices(258, 190, 246),
new TriangleIndices(247, 191, 259),
new TriangleIndices(190, 536, 246),
new TriangleIndices(247, 537, 191),
new TriangleIndices(190, 258, 608),
new TriangleIndices(609, 259, 191),
new TriangleIndices(666, 536, 190),
new TriangleIndices(191, 537, 667),
new TriangleIndices(666, 190, 608),
new TriangleIndices(609, 191, 667),
new TriangleIndices(630, 192, 264),
new TriangleIndices(265, 193, 631),
new TriangleIndices(192, 630, 450),
new TriangleIndices(451, 631, 193),
new TriangleIndices(442, 194, 350),
new TriangleIndices(351, 195, 443),
new TriangleIndices(552, 198, 196),
new TriangleIndices(197, 199, 553),
new TriangleIndices(196, 380, 516),
new TriangleIndices(517, 381, 197),
new TriangleIndices(552, 196, 516),
new TriangleIndices(517, 197, 553),
new TriangleIndices(248, 518, 198),
new TriangleIndices(199, 519, 249),
new TriangleIndices(552, 248, 198),
new TriangleIndices(199, 249, 553),
new TriangleIndices(574, 198, 518),
new TriangleIndices(519, 199, 575),
new TriangleIndices(200, 202, 234),
new TriangleIndices(235, 203, 201),
new TriangleIndices(202, 200, 538),
new TriangleIndices(539, 201, 203),
new TriangleIndices(200, 438, 538),
new TriangleIndices(539, 439, 201),
new TriangleIndices(202, 286, 234),
new TriangleIndices(235, 287, 203),
new TriangleIndices(538, 286, 202),
new TriangleIndices(203, 287, 539),
new TriangleIndices(442, 338, 206),
new TriangleIndices(207, 339, 443),
new TriangleIndices(206, 338, 540),
new TriangleIndices(541, 339, 207),
new TriangleIndices(206, 540, 378),
new TriangleIndices(379, 541, 207),
new TriangleIndices(376, 416, 208),
new TriangleIndices(209, 417, 377),
new TriangleIndices(424, 376, 208),
new TriangleIndices(209, 377, 425),
new TriangleIndices(660, 424, 208),
new TriangleIndices(209, 425, 661),
new TriangleIndices(380, 210, 504),
new TriangleIndices(505, 211, 381),
new TriangleIndices(650, 504, 210),
new TriangleIndices(211, 505, 651),
new TriangleIndices(212, 360, 248),
new TriangleIndices(249, 361, 213),
new TriangleIndices(360, 212, 646),
new TriangleIndices(647, 213, 361),
new TriangleIndices(590, 346, 214),
new TriangleIndices(215, 347, 591),
new TriangleIndices(520, 214, 352),
new TriangleIndices(353, 215, 521),
new TriangleIndices(590, 214, 520),
new TriangleIndices(521, 215, 591),
new TriangleIndices(546, 216, 654),
new TriangleIndices(655, 217, 547),
new TriangleIndices(296, 218, 404),
new TriangleIndices(405, 219, 297),
new TriangleIndices(242, 220, 270),
new TriangleIndices(271, 221, 243),
new TriangleIndices(384, 222, 318),
new TriangleIndices(319, 223, 385),
new TriangleIndices(222, 384, 336),
new TriangleIndices(337, 385, 223),
new TriangleIndices(224, 360, 334),
new TriangleIndices(335, 361, 225),
new TriangleIndices(334, 490, 224),
new TriangleIndices(225, 491, 335),
new TriangleIndices(226, 324, 642),
new TriangleIndices(643, 325, 227),
new TriangleIndices(226, 476, 478),
new TriangleIndices(479, 477, 227),
new TriangleIndices(476, 226, 642),
new TriangleIndices(643, 227, 477),
new TriangleIndices(548, 228, 252),
new TriangleIndices(253, 229, 549),
new TriangleIndices(548, 498, 228),
new TriangleIndices(229, 499, 549),
new TriangleIndices(562, 228, 498),
new TriangleIndices(499, 229, 563),
new TriangleIndices(228, 562, 664),
new TriangleIndices(665, 563, 229),
new TriangleIndices(230, 436, 344),
new TriangleIndices(345, 437, 231),
new TriangleIndices(344, 532, 230),
new TriangleIndices(231, 533, 345),
new TriangleIndices(230, 532, 436),
new TriangleIndices(437, 533, 231),
new TriangleIndices(510, 512, 232),
new TriangleIndices(233, 513, 511),
new TriangleIndices(336, 342, 238),
new TriangleIndices(239, 343, 337),
new TriangleIndices(354, 240, 330),
new TriangleIndices(331, 241, 355),
new TriangleIndices(330, 240, 482),
new TriangleIndices(483, 241, 331),
new TriangleIndices(240, 354, 468),
new TriangleIndices(469, 355, 241),
new TriangleIndices(486, 266, 242),
new TriangleIndices(243, 267, 487),
new TriangleIndices(270, 486, 242),
new TriangleIndices(243, 487, 271),
new TriangleIndices(244, 556, 254),
new TriangleIndices(255, 557, 245),
new TriangleIndices(556, 244, 304),
new TriangleIndices(305, 245, 557),
new TriangleIndices(304, 244, 590),
new TriangleIndices(591, 245, 305),
new TriangleIndices(590, 244, 346),
new TriangleIndices(347, 245, 591),
new TriangleIndices(346, 244, 612),
new TriangleIndices(613, 245, 347),
new TriangleIndices(606, 258, 246),
new TriangleIndices(247, 259, 607),
new TriangleIndices(520, 480, 246),
new TriangleIndices(247, 481, 521),
new TriangleIndices(590, 520, 246),
new TriangleIndices(247, 521, 591),
new TriangleIndices(606, 246, 572),
new TriangleIndices(573, 247, 607),
new TriangleIndices(572, 246, 616),
new TriangleIndices(617, 247, 573),
new TriangleIndices(552, 508, 248),
new TriangleIndices(249, 509, 553),
new TriangleIndices(346, 494, 250),
new TriangleIndices(251, 495, 347),
new TriangleIndices(260, 416, 514),
new TriangleIndices(515, 417, 261),
new TriangleIndices(260, 594, 416),
new TriangleIndices(417, 595, 261),
new TriangleIndices(298, 276, 268),
new TriangleIndices(269, 277, 299),
new TriangleIndices(388, 268, 276),
new TriangleIndices(277, 269, 389),
new TriangleIndices(618, 298, 268),
new TriangleIndices(269, 299, 619),
new TriangleIndices(414, 508, 272),
new TriangleIndices(273, 509, 415),
new TriangleIndices(414, 272, 650),
new TriangleIndices(651, 273, 415),
new TriangleIndices(504, 272, 508),
new TriangleIndices(509, 273, 505),
new TriangleIndices(504, 650, 272),
new TriangleIndices(273, 651, 505),
new TriangleIndices(274, 390, 370),
new TriangleIndices(371, 391, 275),
new TriangleIndices(304, 590, 278),
new TriangleIndices(279, 591, 305),
new TriangleIndices(404, 280, 296),
new TriangleIndices(297, 281, 405),
new TriangleIndices(284, 344, 472),
new TriangleIndices(473, 345, 285),
new TriangleIndices(284, 524, 344),
new TriangleIndices(345, 525, 285),
new TriangleIndices(332, 286, 340),
new TriangleIndices(341, 287, 333),
new TriangleIndices(286, 332, 382),
new TriangleIndices(383, 333, 287),
new TriangleIndices(538, 340, 286),
new TriangleIndices(287, 341, 539),
new TriangleIndices(382, 374, 286),
new TriangleIndices(287, 375, 383),
new TriangleIndices(482, 288, 566),
new TriangleIndices(567, 289, 483),
new TriangleIndices(312, 290, 350),
new TriangleIndices(351, 291, 313),
new TriangleIndices(290, 312, 432),
new TriangleIndices(433, 313, 291),
new TriangleIndices(350, 290, 648),
new TriangleIndices(649, 291, 351),
new TriangleIndices(364, 290, 432),
new TriangleIndices(433, 291, 365),
new TriangleIndices(290, 364, 620),
new TriangleIndices(621, 365, 291),
new TriangleIndices(506, 290, 544),
new TriangleIndices(545, 291, 507),
new TriangleIndices(290, 506, 648),
new TriangleIndices(649, 507, 291),
new TriangleIndices(620, 544, 290),
new TriangleIndices(291, 545, 621),
new TriangleIndices(298, 334, 408),
new TriangleIndices(409, 335, 299),
new TriangleIndices(298, 618, 334),
new TriangleIndices(335, 619, 299),
new TriangleIndices(646, 298, 408),
new TriangleIndices(409, 299, 647),
new TriangleIndices(300, 580, 396),
new TriangleIndices(397, 581, 301),
new TriangleIndices(316, 498, 302),
new TriangleIndices(303, 499, 317),
new TriangleIndices(368, 406, 302),
new TriangleIndices(303, 407, 369),
new TriangleIndices(368, 302, 498),
new TriangleIndices(499, 303, 369),
new TriangleIndices(636, 304, 446),
new TriangleIndices(447, 305, 637),
new TriangleIndices(306, 338, 350),
new TriangleIndices(351, 339, 307),
new TriangleIndices(540, 338, 306),
new TriangleIndices(307, 339, 541),
new TriangleIndices(540, 306, 378),
new TriangleIndices(379, 307, 541),
new TriangleIndices(312, 576, 432),
new TriangleIndices(433, 577, 313),
new TriangleIndices(316, 562, 498),
new TriangleIndices(499, 563, 317),
new TriangleIndices(318, 528, 384),
new TriangleIndices(385, 529, 319),
new TriangleIndices(320, 598, 502),
new TriangleIndices(503, 599, 321),
new TriangleIndices(596, 444, 322),
new TriangleIndices(323, 445, 597),
new TriangleIndices(444, 626, 322),
new TriangleIndices(323, 627, 445),
new TriangleIndices(592, 642, 324),
new TriangleIndices(325, 643, 593),
new TriangleIndices(496, 326, 430),
new TriangleIndices(431, 327, 497),
new TriangleIndices(354, 330, 426),
new TriangleIndices(427, 331, 355),
new TriangleIndices(330, 482, 356),
new TriangleIndices(357, 483, 331),
new TriangleIndices(340, 410, 332),
new TriangleIndices(333, 411, 341),
new TriangleIndices(382, 332, 374),
new TriangleIndices(375, 333, 383),
new TriangleIndices(332, 600, 374),
new TriangleIndices(375, 601, 333),
new TriangleIndices(332, 440, 600),
new TriangleIndices(601, 441, 333),
new TriangleIndices(408, 334, 360),
new TriangleIndices(361, 335, 409),
new TriangleIndices(490, 334, 462),
new TriangleIndices(463, 335, 491),
new TriangleIndices(488, 342, 336),
new TriangleIndices(337, 343, 489),
new TriangleIndices(336, 384, 602),
new TriangleIndices(603, 385, 337),
new TriangleIndices(336, 602, 488),
new TriangleIndices(489, 603, 337),
new TriangleIndices(338, 442, 350),
new TriangleIndices(351, 443, 339),
new TriangleIndices(538, 410, 340),
new TriangleIndices(341, 411, 539),
new TriangleIndices(558, 342, 488),
new TriangleIndices(489, 343, 559),
new TriangleIndices(614, 342, 558),
new TriangleIndices(559, 343, 615),
new TriangleIndices(524, 532, 344),
new TriangleIndices(345, 533, 525),
new TriangleIndices(372, 350, 648),
new TriangleIndices(649, 351, 373),
new TriangleIndices(482, 566, 356),
new TriangleIndices(357, 567, 483),
new TriangleIndices(586, 596, 358),
new TriangleIndices(359, 597, 587),
new TriangleIndices(408, 360, 646),
new TriangleIndices(647, 361, 409),
new TriangleIndices(362, 600, 440),
new TriangleIndices(441, 601, 363),
new TriangleIndices(620, 364, 412),
new TriangleIndices(413, 365, 621),
new TriangleIndices(402, 368, 554),
new TriangleIndices(555, 369, 403),
new TriangleIndices(554, 368, 498),
new TriangleIndices(499, 369, 555),
new TriangleIndices(416, 376, 514),
new TriangleIndices(515, 377, 417),
new TriangleIndices(552, 380, 504),
new TriangleIndices(505, 381, 553),
new TriangleIndices(380, 552, 516),
new TriangleIndices(517, 553, 381),
new TriangleIndices(436, 390, 410),
new TriangleIndices(411, 391, 437),
new TriangleIndices(390, 436, 532),
new TriangleIndices(533, 437, 391),
new TriangleIndices(588, 392, 604),
new TriangleIndices(605, 393, 589),
new TriangleIndices(452, 394, 434),
new TriangleIndices(435, 395, 453),
new TriangleIndices(588, 394, 452),
new TriangleIndices(453, 395, 589),
new TriangleIndices(604, 394, 588),
new TriangleIndices(589, 395, 605),
new TriangleIndices(538, 438, 410),
new TriangleIndices(411, 439, 539),
new TriangleIndices(624, 410, 438),
new TriangleIndices(439, 411, 625),
new TriangleIndices(664, 562, 418),
new TriangleIndices(419, 563, 665),
new TriangleIndices(512, 424, 662),
new TriangleIndices(663, 425, 513),
new TriangleIndices(660, 662, 424),
new TriangleIndices(425, 663, 661),
new TriangleIndices(454, 496, 430),
new TriangleIndices(431, 497, 455),
new TriangleIndices(454, 430, 634),
new TriangleIndices(635, 431, 455),
new TriangleIndices(430, 628, 634),
new TriangleIndices(635, 629, 431),
new TriangleIndices(624, 438, 560),
new TriangleIndices(561, 439, 625),
new TriangleIndices(568, 444, 464),
new TriangleIndices(465, 445, 569),
new TriangleIndices(596, 464, 444),
new TriangleIndices(445, 465, 597),
new TriangleIndices(454, 610, 470),
new TriangleIndices(471, 611, 455),
new TriangleIndices(610, 454, 634),
new TriangleIndices(635, 455, 611),
new TriangleIndices(470, 458, 522),
new TriangleIndices(523, 459, 471),
new TriangleIndices(470, 610, 458),
new TriangleIndices(459, 611, 471),
new TriangleIndices(458, 610, 632),
new TriangleIndices(633, 611, 459),
new TriangleIndices(490, 462, 500),
new TriangleIndices(501, 463, 491),
new TriangleIndices(476, 484, 478),
new TriangleIndices(479, 485, 477),
new TriangleIndices(642, 592, 476),
new TriangleIndices(477, 593, 643),
new TriangleIndices(570, 558, 488),
new TriangleIndices(489, 559, 571),
new TriangleIndices(492, 512, 662),
new TriangleIndices(663, 513, 493),
new TriangleIndices(492, 660, 562),
new TriangleIndices(563, 661, 493),
new TriangleIndices(660, 492, 662),
new TriangleIndices(663, 493, 661),
new TriangleIndices(656, 498, 548),
new TriangleIndices(549, 499, 657),
new TriangleIndices(552, 504, 508),
new TriangleIndices(509, 505, 553),
new TriangleIndices(524, 652, 532),
new TriangleIndices(533, 653, 525),
new TriangleIndices(634, 628, 610),
new TriangleIndices(611, 629, 635),
new TriangleIndices(638, 644, 622),
new TriangleIndices(623, 645, 639),
new TriangleIndices(330, 1, 0),
new TriangleIndices(330, 331, 1),
new TriangleIndices(0, 427, 426),
new TriangleIndices(0, 1, 427),
new TriangleIndices(22, 3, 2),
new TriangleIndices(22, 23, 3),
new TriangleIndices(2, 557, 556),
new TriangleIndices(2, 3, 557),
new TriangleIndices(586, 5, 4),
new TriangleIndices(586, 587, 5),
new TriangleIndices(4, 597, 596),
new TriangleIndices(4, 5, 597),
new TriangleIndices(528, 123, 122),
new TriangleIndices(528, 529, 123),
new TriangleIndices(220, 7, 6),
new TriangleIndices(220, 221, 7),
new TriangleIndices(6, 429, 428),
new TriangleIndices(6, 7, 429),
new TriangleIndices(428, 385, 384),
new TriangleIndices(428, 429, 385),
new TriangleIndices(8, 21, 20),
new TriangleIndices(8, 9, 21),
new TriangleIndices(562, 9, 8),
new TriangleIndices(562, 563, 9),
new TriangleIndices(432, 11, 10),
new TriangleIndices(432, 433, 11),
new TriangleIndices(10, 365, 364),
new TriangleIndices(10, 11, 365),
new TriangleIndices(14, 175, 174),
new TriangleIndices(14, 15, 175),
new TriangleIndices(238, 15, 14),
new TriangleIndices(238, 239, 15),
new TriangleIndices(294, 447, 446),
new TriangleIndices(294, 295, 447),
new TriangleIndices(16, 295, 294),
new TriangleIndices(16, 17, 295),
new TriangleIndices(304, 17, 16),
new TriangleIndices(304, 305, 17),
new TriangleIndices(88, 19, 18),
new TriangleIndices(88, 89, 19),
new TriangleIndices(308, 89, 88),
new TriangleIndices(308, 309, 89),
new TriangleIndices(620, 309, 308),
new TriangleIndices(620, 621, 309),
new TriangleIndices(18, 507, 506),
new TriangleIndices(18, 19, 507),
new TriangleIndices(20, 253, 252),
new TriangleIndices(20, 21, 253),
new TriangleIndices(446, 23, 22),
new TriangleIndices(446, 447, 23),
new TriangleIndices(26, 111, 110),
new TriangleIndices(26, 27, 111),
new TriangleIndices(532, 27, 26),
new TriangleIndices(532, 533, 27),
new TriangleIndices(206, 659, 658),
new TriangleIndices(206, 207, 659),
new TriangleIndices(658, 661, 660),
new TriangleIndices(658, 659, 661),
new TriangleIndices(30, 359, 358),
new TriangleIndices(30, 31, 359),
new TriangleIndices(170, 31, 30),
new TriangleIndices(170, 171, 31),
new TriangleIndices(572, 667, 666),
new TriangleIndices(572, 573, 667),
new TriangleIndices(36, 623, 622),
new TriangleIndices(36, 37, 623),
new TriangleIndices(362, 423, 422),
new TriangleIndices(362, 363, 423),
new TriangleIndices(422, 37, 36),
new TriangleIndices(422, 423, 37),
new TriangleIndices(80, 39, 38),
new TriangleIndices(80, 81, 39),
new TriangleIndices(38, 283, 282),
new TriangleIndices(38, 39, 283),
new TriangleIndices(310, 41, 40),
new TriangleIndices(310, 311, 41),
new TriangleIndices(40, 327, 326),
new TriangleIndices(40, 41, 327),
new TriangleIndices(42, 145, 144),
new TriangleIndices(42, 43, 145),
new TriangleIndices(144, 75, 74),
new TriangleIndices(144, 145, 75),
new TriangleIndices(582, 43, 42),
new TriangleIndices(582, 583, 43),
new TriangleIndices(666, 583, 582),
new TriangleIndices(666, 667, 583),
new TriangleIndices(288, 237, 236),
new TriangleIndices(288, 289, 237),
new TriangleIndices(236, 45, 44),
new TriangleIndices(236, 237, 45),
new TriangleIndices(44, 567, 566),
new TriangleIndices(44, 45, 567),
new TriangleIndices(182, 289, 288),
new TriangleIndices(182, 183, 289),
new TriangleIndices(530, 183, 182),
new TriangleIndices(530, 531, 183),
new TriangleIndices(392, 531, 530),
new TriangleIndices(392, 393, 531),
new TriangleIndices(568, 49, 48),
new TriangleIndices(568, 569, 49),
new TriangleIndices(48, 301, 300),
new TriangleIndices(48, 49, 301),
new TriangleIndices(50, 387, 386),
new TriangleIndices(50, 51, 387),
new TriangleIndices(218, 51, 50),
new TriangleIndices(218, 219, 51),
new TriangleIndices(122, 53, 52),
new TriangleIndices(122, 123, 53),
new TriangleIndices(52, 143, 142),
new TriangleIndices(52, 53, 143),
new TriangleIndices(142, 599, 598),
new TriangleIndices(142, 143, 599),
new TriangleIndices(460, 55, 54),
new TriangleIndices(460, 461, 55),
new TriangleIndices(110, 461, 460),
new TriangleIndices(110, 111, 461),
new TriangleIndices(54, 265, 264),
new TriangleIndices(54, 55, 265),
new TriangleIndices(472, 57, 56),
new TriangleIndices(472, 473, 57),
new TriangleIndices(56, 533, 532),
new TriangleIndices(56, 57, 533),
new TriangleIndices(58, 137, 136),
new TriangleIndices(58, 59, 137),
new TriangleIndices(638, 59, 58),
new TriangleIndices(638, 639, 59),
new TriangleIndices(62, 475, 474),
new TriangleIndices(62, 63, 475),
new TriangleIndices(474, 213, 212),
new TriangleIndices(474, 475, 213),
new TriangleIndices(414, 63, 62),
new TriangleIndices(414, 415, 63),
new TriangleIndices(420, 65, 64),
new TriangleIndices(420, 421, 65),
new TriangleIndices(64, 573, 572),
new TriangleIndices(64, 65, 573),
new TriangleIndices(72, 593, 592),
new TriangleIndices(72, 73, 593),
new TriangleIndices(324, 73, 72),
new TriangleIndices(324, 325, 73),
new TriangleIndices(74, 655, 654),
new TriangleIndices(74, 75, 655),
new TriangleIndices(462, 79, 78),
new TriangleIndices(462, 463, 79),
new TriangleIndices(78, 501, 500),
new TriangleIndices(78, 79, 501),
new TriangleIndices(224, 81, 80),
new TriangleIndices(224, 225, 81),
new TriangleIndices(282, 249, 248),
new TriangleIndices(282, 283, 249),
new TriangleIndices(612, 479, 478),
new TriangleIndices(612, 613, 479),
new TriangleIndices(130, 233, 232),
new TriangleIndices(130, 131, 233),
new TriangleIndices(278, 91, 90),
new TriangleIndices(278, 279, 91),
new TriangleIndices(90, 305, 304),
new TriangleIndices(90, 91, 305),
new TriangleIndices(92, 117, 116),
new TriangleIndices(92, 93, 117),
new TriangleIndices(372, 93, 92),
new TriangleIndices(372, 373, 93),
new TriangleIndices(94, 127, 126),
new TriangleIndices(94, 95, 127),
new TriangleIndices(160, 95, 94),
new TriangleIndices(160, 161, 95),
new TriangleIndices(326, 311, 310),
new TriangleIndices(326, 327, 311),
new TriangleIndices(386, 431, 430),
new TriangleIndices(386, 387, 431),
new TriangleIndices(292, 99, 98),
new TriangleIndices(292, 293, 99),
new TriangleIndices(96, 565, 564),
new TriangleIndices(96, 97, 565),
new TriangleIndices(564, 293, 292),
new TriangleIndices(564, 565, 293),
new TriangleIndices(610, 97, 96),
new TriangleIndices(610, 611, 97),
new TriangleIndices(348, 101, 100),
new TriangleIndices(348, 349, 101),
new TriangleIndices(98, 349, 348),
new TriangleIndices(98, 99, 349),
new TriangleIndices(176, 437, 436),
new TriangleIndices(176, 177, 437),
new TriangleIndices(100, 139, 138),
new TriangleIndices(100, 101, 139),
new TriangleIndices(102, 153, 152),
new TriangleIndices(102, 103, 153),
new TriangleIndices(366, 157, 156),
new TriangleIndices(366, 367, 157),
new TriangleIndices(574, 103, 102),
new TriangleIndices(574, 575, 103),
new TriangleIndices(616, 105, 104),
new TriangleIndices(616, 617, 105),
new TriangleIndices(104, 421, 420),
new TriangleIndices(104, 105, 421),
new TriangleIndices(478, 107, 106),
new TriangleIndices(478, 479, 107),
new TriangleIndices(106, 227, 226),
new TriangleIndices(106, 107, 227),
new TriangleIndices(640, 193, 192),
new TriangleIndices(640, 641, 193),
new TriangleIndices(450, 215, 214),
new TriangleIndices(450, 451, 215),
new TriangleIndices(398, 641, 640),
new TriangleIndices(398, 399, 641),
new TriangleIndices(114, 393, 392),
new TriangleIndices(114, 115, 393),
new TriangleIndices(560, 115, 114),
new TriangleIndices(560, 561, 115),
new TriangleIndices(116, 379, 378),
new TriangleIndices(116, 117, 379),
new TriangleIndices(118, 179, 178),
new TriangleIndices(118, 119, 179),
new TriangleIndices(502, 335, 334),
new TriangleIndices(502, 503, 335),
new TriangleIndices(618, 119, 118),
new TriangleIndices(618, 619, 119),
new TriangleIndices(314, 129, 128),
new TriangleIndices(314, 315, 129),
new TriangleIndices(126, 315, 314),
new TriangleIndices(126, 127, 315),
new TriangleIndices(128, 281, 280),
new TriangleIndices(128, 129, 281),
new TriangleIndices(302, 131, 130),
new TriangleIndices(302, 303, 131),
new TriangleIndices(216, 133, 132),
new TriangleIndices(216, 217, 133),
new TriangleIndices(132, 585, 584),
new TriangleIndices(132, 133, 585),
new TriangleIndices(134, 329, 328),
new TriangleIndices(134, 135, 329),
new TriangleIndices(178, 135, 134),
new TriangleIndices(178, 179, 135),
new TriangleIndices(136, 235, 234),
new TriangleIndices(136, 137, 235),
new TriangleIndices(138, 401, 400),
new TriangleIndices(138, 139, 401),
new TriangleIndices(400, 177, 176),
new TriangleIndices(400, 401, 177),
new TriangleIndices(344, 141, 140),
new TriangleIndices(344, 345, 141),
new TriangleIndices(140, 457, 456),
new TriangleIndices(140, 141, 457),
new TriangleIndices(456, 473, 472),
new TriangleIndices(456, 457, 473),
new TriangleIndices(584, 151, 150),
new TriangleIndices(584, 585, 151),
new TriangleIndices(150, 591, 590),
new TriangleIndices(150, 151, 591),
new TriangleIndices(152, 399, 398),
new TriangleIndices(152, 153, 399),
new TriangleIndices(154, 161, 160),
new TriangleIndices(154, 155, 161),
new TriangleIndices(396, 155, 154),
new TriangleIndices(396, 397, 155),
new TriangleIndices(156, 403, 402),
new TriangleIndices(156, 157, 403),
new TriangleIndices(158, 257, 256),
new TriangleIndices(158, 159, 257),
new TriangleIndices(498, 159, 158),
new TriangleIndices(498, 499, 159),
new TriangleIndices(274, 363, 362),
new TriangleIndices(274, 275, 363),
new TriangleIndices(164, 367, 366),
new TriangleIndices(164, 165, 367),
new TriangleIndices(592, 165, 164),
new TriangleIndices(592, 593, 165),
new TriangleIndices(496, 167, 166),
new TriangleIndices(496, 497, 167),
new TriangleIndices(166, 471, 470),
new TriangleIndices(166, 167, 471),
new TriangleIndices(594, 433, 432),
new TriangleIndices(594, 595, 433),
new TriangleIndices(240, 171, 170),
new TriangleIndices(240, 241, 171),
new TriangleIndices(174, 337, 336),
new TriangleIndices(174, 175, 337),
new TriangleIndices(328, 487, 486),
new TriangleIndices(328, 329, 487),
new TriangleIndices(192, 187, 186),
new TriangleIndices(192, 193, 187),
new TriangleIndices(186, 275, 274),
new TriangleIndices(186, 187, 275),
new TriangleIndices(256, 189, 188),
new TriangleIndices(256, 257, 189),
new TriangleIndices(188, 415, 414),
new TriangleIndices(188, 189, 415),
new TriangleIndices(264, 631, 630),
new TriangleIndices(264, 265, 631),
new TriangleIndices(630, 451, 450),
new TriangleIndices(630, 631, 451),
new TriangleIndices(248, 519, 518),
new TriangleIndices(248, 249, 519),
new TriangleIndices(518, 575, 574),
new TriangleIndices(518, 519, 575),
new TriangleIndices(234, 201, 200),
new TriangleIndices(234, 235, 201),
new TriangleIndices(200, 439, 438),
new TriangleIndices(200, 201, 439),
new TriangleIndices(378, 207, 206),
new TriangleIndices(378, 379, 207),
new TriangleIndices(424, 377, 376),
new TriangleIndices(424, 425, 377),
new TriangleIndices(212, 647, 646),
new TriangleIndices(212, 213, 647),
new TriangleIndices(214, 353, 352),
new TriangleIndices(214, 215, 353),
new TriangleIndices(352, 521, 520),
new TriangleIndices(352, 353, 521),
new TriangleIndices(654, 547, 546),
new TriangleIndices(654, 655, 547),
new TriangleIndices(546, 217, 216),
new TriangleIndices(546, 547, 217),
new TriangleIndices(296, 219, 218),
new TriangleIndices(296, 297, 219),
new TriangleIndices(242, 221, 220),
new TriangleIndices(242, 243, 221),
new TriangleIndices(222, 319, 318),
new TriangleIndices(222, 223, 319),
new TriangleIndices(336, 223, 222),
new TriangleIndices(336, 337, 223),
new TriangleIndices(490, 225, 224),
new TriangleIndices(490, 491, 225),
new TriangleIndices(226, 325, 324),
new TriangleIndices(226, 227, 325),
new TriangleIndices(252, 549, 548),
new TriangleIndices(252, 253, 549),
new TriangleIndices(436, 345, 344),
new TriangleIndices(436, 437, 345),
new TriangleIndices(232, 511, 510),
new TriangleIndices(232, 233, 511),
new TriangleIndices(510, 513, 512),
new TriangleIndices(510, 511, 513),
new TriangleIndices(342, 239, 238),
new TriangleIndices(342, 343, 239),
new TriangleIndices(354, 469, 468),
new TriangleIndices(354, 355, 469),
new TriangleIndices(468, 241, 240),
new TriangleIndices(468, 469, 241),
new TriangleIndices(266, 243, 242),
new TriangleIndices(266, 267, 243),
new TriangleIndices(486, 267, 266),
new TriangleIndices(486, 487, 267),
new TriangleIndices(556, 255, 254),
new TriangleIndices(556, 557, 255),
new TriangleIndices(254, 245, 244),
new TriangleIndices(254, 255, 245),
new TriangleIndices(244, 613, 612),
new TriangleIndices(244, 245, 613),
new TriangleIndices(480, 247, 246),
new TriangleIndices(480, 481, 247),
new TriangleIndices(520, 481, 480),
new TriangleIndices(520, 521, 481),
new TriangleIndices(246, 617, 616),
new TriangleIndices(246, 247, 617),
new TriangleIndices(514, 261, 260),
new TriangleIndices(514, 515, 261),
new TriangleIndices(260, 595, 594),
new TriangleIndices(260, 261, 595),
new TriangleIndices(298, 277, 276),
new TriangleIndices(298, 299, 277),
new TriangleIndices(276, 389, 388),
new TriangleIndices(276, 277, 389),
new TriangleIndices(388, 269, 268),
new TriangleIndices(388, 389, 269),
new TriangleIndices(268, 619, 618),
new TriangleIndices(268, 269, 619),
new TriangleIndices(590, 279, 278),
new TriangleIndices(590, 591, 279),
new TriangleIndices(280, 297, 296),
new TriangleIndices(280, 281, 297),
new TriangleIndices(506, 649, 648),
new TriangleIndices(506, 507, 649),
new TriangleIndices(646, 299, 298),
new TriangleIndices(646, 647, 299),
new TriangleIndices(580, 397, 396),
new TriangleIndices(580, 581, 397),
new TriangleIndices(300, 581, 580),
new TriangleIndices(300, 301, 581),
new TriangleIndices(406, 303, 302),
new TriangleIndices(406, 407, 303),
new TriangleIndices(368, 407, 406),
new TriangleIndices(368, 369, 407),
new TriangleIndices(318, 529, 528),
new TriangleIndices(318, 319, 529),
new TriangleIndices(598, 503, 502),
new TriangleIndices(598, 599, 503),
new TriangleIndices(426, 355, 354),
new TriangleIndices(426, 427, 355),
new TriangleIndices(356, 331, 330),
new TriangleIndices(356, 357, 331),
new TriangleIndices(334, 463, 462),
new TriangleIndices(334, 335, 463),
new TriangleIndices(384, 603, 602),
new TriangleIndices(384, 385, 603),
new TriangleIndices(602, 489, 488),
new TriangleIndices(602, 603, 489),
new TriangleIndices(558, 615, 614),
new TriangleIndices(558, 559, 615),
new TriangleIndices(614, 343, 342),
new TriangleIndices(614, 615, 343),
new TriangleIndices(648, 373, 372),
new TriangleIndices(648, 649, 373),
new TriangleIndices(566, 357, 356),
new TriangleIndices(566, 567, 357),
new TriangleIndices(358, 587, 586),
new TriangleIndices(358, 359, 587),
new TriangleIndices(364, 413, 412),
new TriangleIndices(364, 365, 413),
new TriangleIndices(412, 621, 620),
new TriangleIndices(412, 413, 621),
new TriangleIndices(402, 369, 368),
new TriangleIndices(402, 403, 369),
new TriangleIndices(376, 515, 514),
new TriangleIndices(376, 377, 515),
new TriangleIndices(512, 425, 424),
new TriangleIndices(512, 513, 425),
new TriangleIndices(454, 497, 496),
new TriangleIndices(454, 455, 497),
new TriangleIndices(430, 629, 628),
new TriangleIndices(430, 431, 629),
new TriangleIndices(438, 561, 560),
new TriangleIndices(438, 439, 561),
new TriangleIndices(464, 569, 568),
new TriangleIndices(464, 465, 569),
new TriangleIndices(596, 465, 464),
new TriangleIndices(596, 597, 465),
new TriangleIndices(470, 455, 454),
new TriangleIndices(470, 471, 455),
new TriangleIndices(500, 491, 490),
new TriangleIndices(500, 501, 491),
new TriangleIndices(488, 571, 570),
new TriangleIndices(488, 489, 571),
new TriangleIndices(570, 559, 558),
new TriangleIndices(570, 571, 559),
new TriangleIndices(660, 563, 562),
new TriangleIndices(660, 661, 563),
new TriangleIndices(548, 657, 656),
new TriangleIndices(548, 549, 657),
new TriangleIndices(656, 499, 498),
new TriangleIndices(656, 657, 499),
new TriangleIndices(628, 611, 610),
new TriangleIndices(628, 629, 611),
new TriangleIndices(622, 639, 638),
new TriangleIndices(622, 623, 639),
]
<!doctype html>
<!-- vim: ts=2 sw=2 et ai tw=72
-->
<html lang="en_US">
<head>
<meta charset="utf-8"/>
<title>Indoor Reality JavaScript Optimization</title>
<meta name="description" content="JavaScript Interview"/>
<meta author="Christopher J. Hanks <cjhanks@indoorreality.com>"
</head>
<body>
<script src="types.js"></script>
<script src="grid-data.js"></script>
<script src="program.js"></script>
<!-- BEGIN TEXT -->
<h1>Hello.</h1>
<p>
This programming challenge aims to test how effectively an individual
can use their browser of choice to optimize basic Javascript.
</p>
<p>
This problem is based on a real performance issue experienced at
Indoor Reality. Namely, our client-side JavasScript code loads a
triangulated mesh into memory. When a mesh structure has 10's of
thousands of vertices 'okay' algorithms work poor, and poor algorithms
don't work at all.
</p>
<p>
You should not need to know <em>anything</em> about meshing, triangulation
or even basic geometry.
</p>
<p>
<h2>Relevant Files:</h2>
<h3>grid-data.js</h3>
You do not need to change this file unless you desire to change the
contructors for vertices. This mesh is a very simplified
<h3>types.js</h3>
This contains all of the structures used in this code for describing
the mesh. There may exist some optimizations to be had here, but it
should probably be a last resort.
<h3>index.html</h3>
This is the page your are looking at. There is only one thing you may
want to change while developing. Currently the script is designed to
iterate the `Main()` function found in `program.js` 5000 times. You may
want to change that to just once while developing.
<h3>program.js</h3>
<b>This is the code I want you to optimize</b>, in that file start at `Main`
and work your way forward.
</p>
<h2>The Challenge:</h2>
Using Chromium/Chrome/Firefox/Whatever make this program faster and
balance code readability. I am using Chrome 53.0.2785.101 on MacOSX and
you can see below in the table what my 'optimized' version ran in.
<p>
<pre>
The default program.js:
time: 3415ms
optimized: 708ms
this run: <span id="runtime"></span>
</pre>
</p>
<script>
// Rather than including a *huge* mesh, we'll just test a tiny mesh
// 5000 times.
var start = new Date().getTime();
for (var i = 0; i < 5000; ++i)
Main();
var end = new Date().getTime();
document.getElementById("runtime").innerHTML = (end - start) + "ms";
</script>
</body>
</html>
///////////////////////////////////////////////////////////////////////////
// vim: ts=2 sw=2 et tw=72 ai
//
// This is the program you are expected to optimize.
///////////////////////////////////////////////////////////////////////////
// Every triangle index has 3 vertex indices at v0, v1, v2. It should
// never be the case that they refer to an index which does not exist in
// the `vertices` Array.
//
// Return true: If there are no indices in `triangleIndices` which have
// no reference in the `vertices` array.
function NoInvalidVerticesInTriangles (vertices, triangleIndices) {
function VertexIsInvalid (vertex) {
return vertex === undefined;
}
var invalidIndices = new Array();
triangleIndices.forEach(function (triangle, index) {
var vertex0 = vertices[triangle.v0];
var vertex1 = vertices[triangle.v1];
var vertex2 = vertices[triangle.v2];
if (VertexIsInvalid(vertex0)) invalidIndices.push(triangle.v0);
if (VertexIsInvalid(vertex1)) invalidIndices.push(triangle.v1);
if (VertexIsInvalid(vertex2)) invalidIndices.push(triangle.v2);
});
return 0 == invalidIndices.length;
}
// It could be possible that their are vertices in the `vertices` array
// which are never referenced by the `triangleIndices`.
//
// Return true: If every vertex in `vertices` is reference at least
// once in `triangleIndices`.
function NoVerticesAreOrphaned (vertices, triangleIndices) {
var triangleVertices = new Array();
triangleIndices.forEach(function (triangle) {
triangleVertices.push(triangle.v0);
triangleVertices.push(triangle.v1);
triangleVertices.push(triangle.v2);
});
vertices.forEach(function (vertex) {
if (-1 == triangleIndices.indexOf(vertex))
return false;
});
return true;
}
// This takes the vertices and the triangle indices to create a new
// Array of triangles. Previously `triangleIndices` only held the index
// of the vertex from the `vertices` array. These triangles will
// actually hold the vertex values.
//
function BuildTriangleList (vertices, triangleIndices) {
var triangleVertices = new Array();
triangleIndices.forEach(function (triangleIndex) {
var v0 = vertices[triangleIndex.v0];
var v1 = vertices[triangleIndex.v1];
var v2 = vertices[triangleIndex.v2];
triangleVertices.push(new Triangle(v0, v1, v2));
});
return triangleVertices;
}
// Driver program, you are free to change this if you want to
// re-arrange or merge functions to reuse computation.
//
// Keep in mind that readability is a virtue. And even if you can
// squeeze out the last drop of performance by destroying readability...
// is that what you would do in your dayjob?
function Main () {
// 0. Alias all of the relevant variables here. You are
// perfectly free to change their underlying types or
// structures if you feel it appropriate.
var vertices = VerticesData;
var triangleIndices = TriangleIndicesData;
// 1. Prove that there are no references to invalid vertices in
// the TriangleIndice structures.
if (!NoInvalidVerticesInTriangles(vertices, triangleIndices)) {
throw new Error("Invalid vertices found in triangles");
}
// 2. Prove that there are no vertices which don't exist in the
// triangles.
if (!NoVerticesAreOrphaned(vertices, triangleIndices)) {
throw new Error("Vertices are orphaned");
}
// 3 Convert the triangle indice vertex type into value types, these
// values will be tested by me.
var triangles = BuildTriangleList(vertices, triangleIndices);
if (triangles.length != triangleIndices.length) {
throw new Error("Invalid triangles");
}
}
// vim: ts=2 sw=2 et tw=72 ai
function Vertex (x, y, z) {
this.x = x;
this.y = y;
this.z = z;
}
function Edge (v0, v1) {
console.assert(v0 instanceof Vertex);
console.assert(v1 instanceof Vertex);
this.v0 = v0;
this.v1 = v1;
}
function TriangleIndices (v0, v1, v2) {
this.v0 = v0;
this.v1 = v1;
this.v2 = v2;
}
function Triangle (v0, v1, v2) {
console.assert(v0 instanceof Vertex);
console.assert(v1 instanceof Vertex);
console.assert(v2 instanceof Vertex);
this.v0 = v0;
this.v1 = v1;
this.v2 = v2;
}
@cjhanks
Copy link
Author

cjhanks commented Sep 22, 2016

@dranjan If you please.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment