From 18a834776589a41cb2965067d0dbec49ce7e58c3 Mon Sep 17 00:00:00 2001 From: Antoine Date: Tue, 17 Feb 2026 13:41:24 +0000 Subject: [PATCH] feat: enforce Delaunay vertices at inset boundary corners + update geometry to v2.0 with arcs - Add explicit corner vertices of the inset boundary (w_frame offset) to Delaunay point set - This guarantees no triangle can cross a boundary corner - Updated test_data geometry files to v2.0 format with typed segments - Sandbox 2 now has proper arc curves (4 arc segments) from extract_sandbox - Preserved holes from v1.0 geometry - Boundary vertices also enforced on keepout boundaries --- .../src/brain/triangulation.py | 44 +- .../test_data/geometry_sandbox_1_brain.json | 5524 ++++++++++------- .../test_data/geometry_sandbox_2_brain.json | 534 +- 3 files changed, 3720 insertions(+), 2382 deletions(-) diff --git a/tools/adaptive-isogrid/src/brain/triangulation.py b/tools/adaptive-isogrid/src/brain/triangulation.py index 3aacb773..532015c7 100644 --- a/tools/adaptive-isogrid/src/brain/triangulation.py +++ b/tools/adaptive-isogrid/src/brain/triangulation.py @@ -154,29 +154,55 @@ def _add_boundary_vertices(points, geometry, params, keepout_union): This ensures triangles conform to boundaries rather than just being clipped. Points are spaced at approximately s_min along boundaries. + + KEY: Enforce explicit vertices at every corner of the inset boundary. + This guarantees no triangle can cross a corner — the Delaunay triangulation + is forced to use these corner points as vertices. """ s_min = params['s_min'] w_frame = params.get('w_frame', 8.0) new_pts = list(points) - # Add points along inset outer boundary (frame inner edge) plate_poly = Polygon(geometry['outer_boundary']) inner_frame = plate_poly.buffer(-w_frame) - if not inner_frame.is_empty and inner_frame.geom_type == 'Polygon': - ring = inner_frame.exterior - length = ring.length - n_pts = max(int(length / s_min), 4) - for i in range(n_pts): - frac = i / n_pts - pt = ring.interpolate(frac, normalized=True) - new_pts.append([pt.x, pt.y]) + if not inner_frame.is_empty: + # Handle MultiPolygon from buffer on complex shapes + if inner_frame.geom_type == 'MultiPolygon': + inner_polys = list(inner_frame.geoms) + else: + inner_polys = [inner_frame] + + for inner_poly in inner_polys: + ring = inner_poly.exterior + + # 1) ENFORCE corner vertices: add every vertex of the inset boundary + # These are the actual corner points — critical for preventing crossovers + coords = list(ring.coords)[:-1] # skip closing duplicate + for cx, cy in coords: + new_pts.append([cx, cy]) + + # 2) Add evenly spaced points along edges for density + length = ring.length + n_pts = max(int(length / s_min), 4) + for i in range(n_pts): + frac = i / n_pts + pt = ring.interpolate(frac, normalized=True) + new_pts.append([pt.x, pt.y]) + + # Also add inner ring vertices (for any holes in the inset boundary) + for interior in inner_poly.interiors: + for cx, cy in list(interior.coords)[:-1]: + new_pts.append([cx, cy]) # Add points along hole keepout boundaries if not keepout_union.is_empty: geoms = [keepout_union] if keepout_union.geom_type == 'Polygon' else list(keepout_union.geoms) for geom in geoms: ring = geom.exterior + # Enforce corner vertices on keepout boundaries too + for cx, cy in list(ring.coords)[:-1]: + new_pts.append([cx, cy]) length = ring.length n_pts = max(int(length / (s_min * 0.7)), 6) for i in range(n_pts): diff --git a/tools/adaptive-isogrid/test_data/geometry_sandbox_1_brain.json b/tools/adaptive-isogrid/test_data/geometry_sandbox_1_brain.json index afd146d8..ae40b149 100644 --- a/tools/adaptive-isogrid/test_data/geometry_sandbox_1_brain.json +++ b/tools/adaptive-isogrid/test_data/geometry_sandbox_1_brain.json @@ -1,2367 +1,3159 @@ -{ - "outer_boundary": [ - [ - 381.787159, - 14.92177 - ], - [ - 132.687159, - 14.92177 - ], - [ - 132.687159, - -13.57823 - ], - [ - 88.687159, - -13.57823 - ], - [ - 88.687159, - 14.92177 - ], - [ - -13.412841, - 14.92177 - ], - [ - -13.412841, - 0.02177 - ], - [ - -30.812841, - 0.02177 - ], - [ - -30.812841, - -254.17823 - ], - [ - 169.435852, - -254.17823 - ], - [ - 169.435852, - -417.57823 - ], - [ - 197.121675, - -417.57823 - ], - [ - 197.121675, - -401.57823 - ], - [ - 212.121675, - -401.57823 - ], - [ - 212.121675, - -417.57823 - ], - [ - 289.687159, - -417.57823 - ], - [ - 304.687159, - -406.57823 - ], - [ - 317.687159, - -406.57823 - ], - [ - 332.687159, - -417.57823 - ], - [ - 381.787159, - -417.57823 - ], - [ - 381.787159, - -395.17823 - ], - [ - 404.187159, - -395.17823 - ], - [ - 404.187159, - -322.57823 - ], - [ - 352.787159, - -322.57823 - ], - [ - 352.787159, - -304.17823 - ], - [ - 361.187159, - -304.17823 - ], - [ - 361.187159, - -24.57823 - ], - [ - 404.187159, - -24.57823 - ], - [ - 404.187159, - 0.02177 - ], - [ - 381.787159, - 0.02177 - ] - ], - "holes": [ - { - "index": 0, - "center": [ - 0.0, - -3.07823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 3.07823, - -3.07823 - ], - [ - 3.019082673695636, - -2.4776971180602936 - ], - [ - 2.843913693362218, - -1.9002423779908098 - ], - [ - 2.559454704678064, - -1.36805704161207 - ], - [ - 2.1766373070518665, - -0.9015926929481339 - ], - [ - 1.7101729583879304, - -0.518775295321936 - ], - [ - 1.1779876220091905, - -0.23431630663778202 - ], - [ - 0.6005328819397067, - -0.05914732630436381 - ], - [ - 1.8848722582696786e-16, - 0.0 - ], - [ - -0.6005328819397063, - -0.05914732630436381 - ], - [ - -1.17798762200919, - -0.23431630663778202 - ], - [ - -1.7101729583879293, - -0.5187752953219356 - ], - [ - -2.176637307051866, - -0.9015926929481335 - ], - [ - -2.559454704678064, - -1.36805704161207 - ], - [ - -2.843913693362218, - -1.9002423779908093 - ], - [ - -3.019082673695636, - -2.4776971180602922 - ], - [ - -3.07823, - -3.0782299999999996 - ], - [ - -3.019082673695636, - -3.678762881939707 - ], - [ - -2.8439136933622184, - -4.25621762200919 - ], - [ - -2.5594547046780645, - -4.7884029583879295 - ], - [ - -2.1766373070518665, - -5.254867307051866 - ], - [ - -1.71017295838793, - -5.637684704678064 - ], - [ - -1.177987622009192, - -5.922143693362218 - ], - [ - -0.6005328819397078, - -6.097312673695636 - ], - [ - -5.654616774809036e-16, - -6.15646 - ], - [ - 0.6005328819397067, - -6.097312673695637 - ], - [ - 1.177987622009191, - -5.922143693362218 - ], - [ - 1.710172958387929, - -5.6376847046780645 - ], - [ - 2.1766373070518656, - -5.2548673070518666 - ], - [ - 2.559454704678064, - -4.78840295838793 - ], - [ - 2.8439136933622176, - -4.256217622009192 - ], - [ - 3.0190826736956358, - -3.678762881939708 - ] - ], - "weight": 0.5 - }, - { - "index": 1, - "center": [ - 366.187159, - -3.07823 - ], - "diameter": 8.2, - "is_circular": true, - "boundary": [ - [ - 370.28715900000003, - -3.07823 - ], - [ - 370.20837864965324, - -2.2783596797338745 - ], - [ - 369.9750650832963, - -1.5092279273031322 - ], - [ - 369.59618441044046, - -0.8003920446196311 - ], - [ - 369.08629680286487, - -0.17909219713515556 - ], - [ - 368.4649969553804, - 0.33079541044043514 - ], - [ - 367.7561610726969, - 0.7096760832962752 - ], - [ - 366.9870293202661, - 0.9429896496532444 - ], - [ - 366.187159, - 1.0217699999999996 - ], - [ - 365.3872886797339, - 0.9429896496532444 - ], - [ - 364.6181569273031, - 0.7096760832962752 - ], - [ - 363.9093210446196, - 0.33079541044043603 - ], - [ - 363.28802119713515, - -0.17909219713515512 - ], - [ - 362.77813358955956, - -0.8003920446196311 - ], - [ - 362.39925291670374, - -1.5092279273031315 - ], - [ - 362.1659393503468, - -2.2783596797338728 - ], - [ - 362.087159, - -3.0782299999999996 - ], - [ - 362.1659393503468, - -3.8781003202661264 - ], - [ - 362.39925291670374, - -4.647232072696868 - ], - [ - 362.77813358955956, - -5.356067955380368 - ], - [ - 363.28802119713515, - -5.977367802864844 - ], - [ - 363.9093210446196, - -6.487255410440435 - ], - [ - 364.6181569273031, - -6.866136083296274 - ], - [ - 365.3872886797339, - -7.099449649653243 - ], - [ - 366.187159, - -7.178229999999999 - ], - [ - 366.9870293202661, - -7.099449649653245 - ], - [ - 367.7561610726969, - -6.866136083296275 - ], - [ - 368.4649969553804, - -6.4872554104404365 - ], - [ - 369.08629680286487, - -5.977367802864846 - ], - [ - 369.59618441044046, - -5.356067955380369 - ], - [ - 369.9750650832963, - -4.6472320726968706 - ], - [ - 370.20837864965324, - -3.8781003202661277 - ] - ], - "weight": 0.5 - }, - { - "index": 2, - "center": [ - 44.987159, - -3.07823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 48.065388999999996, - -3.07823 - ], - [ - 48.006241673695634, - -2.4776971180602936 - ], - [ - 47.831072693362216, - -1.9002423779908098 - ], - [ - 47.546613704678066, - -1.36805704161207 - ], - [ - 47.16379630705187, - -0.9015926929481339 - ], - [ - 46.69733195838793, - -0.518775295321936 - ], - [ - 46.16514662200919, - -0.23431630663778202 - ], - [ - 45.587691881939705, - -0.05914732630436381 - ], - [ - 44.987159, - 0.0 - ], - [ - 44.38662611806029, - -0.05914732630436381 - ], - [ - 43.80917137799081, - -0.23431630663778202 - ], - [ - 43.27698604161207, - -0.5187752953219356 - ], - [ - 42.81052169294813, - -0.9015926929481335 - ], - [ - 42.42770429532193, - -1.36805704161207 - ], - [ - 42.14324530663778, - -1.9002423779908093 - ], - [ - 41.96807632630436, - -2.4776971180602922 - ], - [ - 41.908929, - -3.0782299999999996 - ], - [ - 41.96807632630436, - -3.678762881939707 - ], - [ - 42.14324530663778, - -4.25621762200919 - ], - [ - 42.42770429532193, - -4.7884029583879295 - ], - [ - 42.81052169294813, - -5.254867307051866 - ], - [ - 43.27698604161207, - -5.637684704678064 - ], - [ - 43.80917137799081, - -5.922143693362218 - ], - [ - 44.38662611806029, - -6.097312673695636 - ], - [ - 44.987159, - -6.15646 - ], - [ - 45.587691881939705, - -6.097312673695637 - ], - [ - 46.16514662200919, - -5.922143693362218 - ], - [ - 46.69733195838793, - -5.6376847046780645 - ], - [ - 47.16379630705186, - -5.2548673070518666 - ], - [ - 47.546613704678066, - -4.78840295838793 - ], - [ - 47.831072693362216, - -4.256217622009192 - ], - [ - 48.006241673695634, - -3.678762881939708 - ] - ], - "weight": 0.5 - }, - { - "index": 3, - "center": [ - 250.707159, - -275.57823 - ], - "diameter": 6.5, - "is_circular": true, - "boundary": [ - [ - 253.957159, - -275.57823 - ], - [ - 253.89471116131048, - -274.9441864534476 - ], - [ - 253.70976748066167, - -274.33450884481346 - ], - [ - 253.40943523998325, - -273.7726267426863 - ], - [ - 253.00525603885626, - -273.28013296114375 - ], - [ - 252.5127622573137, - -272.8759537600167 - ], - [ - 251.95088015518652, - -272.5756215193383 - ], - [ - 251.3412025465524, - -272.3906778386895 - ], - [ - 250.707159, - -272.32823 - ], - [ - 250.07311545344757, - -272.3906778386895 - ], - [ - 249.46343784481346, - -272.5756215193383 - ], - [ - 248.90155574268627, - -272.8759537600167 - ], - [ - 248.40906196114372, - -273.28013296114375 - ], - [ - 248.00488276001673, - -273.7726267426863 - ], - [ - 247.7045505193383, - -274.33450884481346 - ], - [ - 247.5196068386895, - -274.9441864534476 - ], - [ - 247.457159, - -275.57823 - ], - [ - 247.5196068386895, - -276.2122735465524 - ], - [ - 247.7045505193383, - -276.8219511551866 - ], - [ - 248.00488276001673, - -277.3838332573137 - ], - [ - 248.40906196114372, - -277.8763270388563 - ], - [ - 248.90155574268627, - -278.2805062399833 - ], - [ - 249.46343784481346, - -278.5808384806617 - ], - [ - 250.07311545344757, - -278.76578216131054 - ], - [ - 250.707159, - -278.82823 - ], - [ - 251.3412025465524, - -278.76578216131054 - ], - [ - 251.95088015518652, - -278.5808384806617 - ], - [ - 252.51276225731368, - -278.2805062399833 - ], - [ - 253.00525603885626, - -277.8763270388563 - ], - [ - 253.40943523998325, - -277.3838332573137 - ], - [ - 253.70976748066167, - -276.8219511551866 - ], - [ - 253.89471116131048, - -276.2122735465524 - ] - ], - "weight": 0.5 - }, - { - "index": 4, - "center": [ - 44.987159, - -158.57823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 48.065388999999996, - -158.57823 - ], - [ - 48.006241673695634, - -157.9776971180603 - ], - [ - 47.831072693362216, - -157.4002423779908 - ], - [ - 47.546613704678066, - -156.86805704161205 - ], - [ - 47.16379630705187, - -156.40159269294813 - ], - [ - 46.69733195838793, - -156.01877529532192 - ], - [ - 46.16514662200919, - -155.73431630663777 - ], - [ - 45.587691881939705, - -155.55914732630436 - ], - [ - 44.987159, - -155.5 - ], - [ - 44.38662611806029, - -155.55914732630436 - ], - [ - 43.80917137799081, - -155.73431630663777 - ], - [ - 43.27698604161207, - -156.01877529532192 - ], - [ - 42.81052169294813, - -156.40159269294813 - ], - [ - 42.42770429532193, - -156.86805704161205 - ], - [ - 42.14324530663778, - -157.4002423779908 - ], - [ - 41.96807632630436, - -157.9776971180603 - ], - [ - 41.908929, - -158.57823 - ], - [ - 41.96807632630436, - -159.1787628819397 - ], - [ - 42.14324530663778, - -159.7562176220092 - ], - [ - 42.42770429532193, - -160.28840295838793 - ], - [ - 42.81052169294813, - -160.75486730705185 - ], - [ - 43.27698604161207, - -161.13768470467807 - ], - [ - 43.80917137799081, - -161.42214369336222 - ], - [ - 44.38662611806029, - -161.59731267369563 - ], - [ - 44.987159, - -161.65645999999998 - ], - [ - 45.587691881939705, - -161.59731267369563 - ], - [ - 46.16514662200919, - -161.42214369336222 - ], - [ - 46.69733195838793, - -161.13768470467807 - ], - [ - 47.16379630705186, - -160.75486730705185 - ], - [ - 47.546613704678066, - -160.28840295838793 - ], - [ - 47.831072693362216, - -159.7562176220092 - ], - [ - 48.006241673695634, - -159.1787628819397 - ] - ], - "weight": 0.5 - }, - { - "index": 5, - "center": [ - 125.187159, - -236.57823 - ], - "diameter": 8.2, - "is_circular": true, - "boundary": [ - [ - 129.287159, - -236.57823 - ], - [ - 129.20837864965324, - -235.77835967973385 - ], - [ - 128.97506508329627, - -235.00922792730313 - ], - [ - 128.59618441044043, - -234.30039204461963 - ], - [ - 128.08629680286484, - -233.67909219713513 - ], - [ - 127.46499695538036, - -233.16920458955957 - ], - [ - 126.75616107269686, - -232.79032391670373 - ], - [ - 125.98702932026612, - -232.55701035034676 - ], - [ - 125.187159, - -232.47823 - ], - [ - 124.38728867973387, - -232.55701035034676 - ], - [ - 123.61815692730313, - -232.79032391670373 - ], - [ - 122.90932104461963, - -233.16920458955954 - ], - [ - 122.28802119713515, - -233.67909219713513 - ], - [ - 121.77813358955956, - -234.30039204461963 - ], - [ - 121.39925291670372, - -235.00922792730313 - ], - [ - 121.16593935034675, - -235.77835967973385 - ], - [ - 121.087159, - -236.57823 - ], - [ - 121.16593935034675, - -237.37810032026613 - ], - [ - 121.39925291670372, - -238.14723207269685 - ], - [ - 121.77813358955956, - -238.85606795538035 - ], - [ - 122.28802119713515, - -239.47736780286485 - ], - [ - 122.90932104461963, - -239.9872554104404 - ], - [ - 123.61815692730312, - -240.36613608329625 - ], - [ - 124.38728867973387, - -240.59944964965322 - ], - [ - 125.187159, - -240.67822999999999 - ], - [ - 125.98702932026612, - -240.59944964965322 - ], - [ - 126.75616107269687, - -240.36613608329625 - ], - [ - 127.46499695538036, - -239.98725541044044 - ], - [ - 128.08629680286484, - -239.47736780286485 - ], - [ - 128.59618441044043, - -238.85606795538035 - ], - [ - 128.97506508329627, - -238.14723207269685 - ], - [ - 129.20837864965324, - -237.37810032026613 - ] - ], - "weight": 0.5 - }, - { - "index": 6, - "center": [ - -9.812841, - -71.07823 - ], - "diameter": 6.5, - "is_circular": true, - "boundary": [ - [ - -6.562841000000001, - -71.07823 - ], - [ - -6.625288838689501, - -70.44418645344759 - ], - [ - -6.810232519338319, - -69.83450884481346 - ], - [ - -7.110564760016729, - -69.2726267426863 - ], - [ - -7.51474396114372, - -68.78013296114372 - ], - [ - -8.007237742686293, - -68.37595376001673 - ], - [ - -8.569119844813459, - -68.07562151933833 - ], - [ - -9.178797453447583, - -67.89067783868951 - ], - [ - -9.812841, - -67.82823 - ], - [ - -10.446884546552416, - -67.89067783868951 - ], - [ - -11.056562155186542, - -68.07562151933833 - ], - [ - -11.618444257313707, - -68.37595376001673 - ], - [ - -12.110938038856279, - -68.78013296114372 - ], - [ - -12.515117239983272, - -69.2726267426863 - ], - [ - -12.815449480661682, - -69.83450884481346 - ], - [ - -13.0003931613105, - -70.44418645344759 - ], - [ - -13.062841, - -71.07823 - ], - [ - -13.0003931613105, - -71.71227354655242 - ], - [ - -12.815449480661684, - -72.32195115518654 - ], - [ - -12.515117239983272, - -72.88383325731371 - ], - [ - -12.11093803885628, - -73.37632703885629 - ], - [ - -11.618444257313708, - -73.78050623998328 - ], - [ - -11.056562155186544, - -74.08083848066168 - ], - [ - -10.446884546552418, - -74.2657821613105 - ], - [ - -9.812841, - -74.32823 - ], - [ - -9.178797453447583, - -74.2657821613105 - ], - [ - -8.569119844813457, - -74.08083848066168 - ], - [ - -8.007237742686295, - -73.78050623998328 - ], - [ - -7.514743961143722, - -73.37632703885629 - ], - [ - -7.110564760016729, - -72.88383325731371 - ], - [ - -6.810232519338319, - -72.32195115518655 - ], - [ - -6.625288838689502, - -71.71227354655242 - ] - ], - "weight": 0.5 - }, - { - "index": 7, - "center": [ - 362.787159, - -375.97823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 365.865389, - -375.97823 - ], - [ - 365.80624167369564, - -375.37769711806027 - ], - [ - 365.63107269336217, - -374.8002423779908 - ], - [ - 365.346613704678, - -374.26805704161205 - ], - [ - 364.96379630705184, - -373.80159269294813 - ], - [ - 364.4973319583879, - -373.41877529532195 - ], - [ - 363.9651466220092, - -373.1343163066378 - ], - [ - 363.3876918819397, - -372.95914732630433 - ], - [ - 362.787159, - -372.9 - ], - [ - 362.18662611806025, - -372.95914732630433 - ], - [ - 361.6091713779908, - -373.1343163066378 - ], - [ - 361.07698604161203, - -373.41877529532195 - ], - [ - 360.6105216929481, - -373.80159269294813 - ], - [ - 360.2277042953219, - -374.26805704161205 - ], - [ - 359.9432453066378, - -374.8002423779908 - ], - [ - 359.7680763263043, - -375.37769711806027 - ], - [ - 359.70892899999996, - -375.97823 - ], - [ - 359.7680763263043, - -376.5787628819397 - ], - [ - 359.9432453066378, - -377.1562176220092 - ], - [ - 360.2277042953219, - -377.68840295838794 - ], - [ - 360.6105216929481, - -378.15486730705186 - ], - [ - 361.07698604161203, - -378.53768470467804 - ], - [ - 361.6091713779908, - -378.8221436933622 - ], - [ - 362.18662611806025, - -378.99731267369566 - ], - [ - 362.787159, - -379.05646 - ], - [ - 363.3876918819397, - -378.99731267369566 - ], - [ - 363.9651466220092, - -378.8221436933622 - ], - [ - 364.4973319583879, - -378.53768470467804 - ], - [ - 364.96379630705184, - -378.15486730705186 - ], - [ - 365.346613704678, - -377.68840295838794 - ], - [ - 365.63107269336217, - -377.1562176220092 - ], - [ - 365.80624167369564, - -376.5787628819397 - ] - ], - "weight": 0.5 - }, - { - "index": 8, - "center": [ - 250.707159, - -375.97823 - ], - "diameter": 6.5, - "is_circular": true, - "boundary": [ - [ - 253.957159, - -375.97823 - ], - [ - 253.89471116131048, - -375.3441864534476 - ], - [ - 253.70976748066167, - -374.73450884481343 - ], - [ - 253.40943523998325, - -374.1726267426863 - ], - [ - 253.00525603885626, - -373.6801329611437 - ], - [ - 252.5127622573137, - -373.2759537600167 - ], - [ - 251.95088015518652, - -372.9756215193383 - ], - [ - 251.3412025465524, - -372.7906778386895 - ], - [ - 250.707159, - -372.72823 - ], - [ - 250.07311545344757, - -372.7906778386895 - ], - [ - 249.46343784481346, - -372.9756215193383 - ], - [ - 248.90155574268627, - -373.2759537600167 - ], - [ - 248.40906196114372, - -373.6801329611437 - ], - [ - 248.00488276001673, - -374.1726267426863 - ], - [ - 247.7045505193383, - -374.73450884481343 - ], - [ - 247.5196068386895, - -375.3441864534476 - ], - [ - 247.457159, - -375.97823 - ], - [ - 247.5196068386895, - -376.6122735465524 - ], - [ - 247.7045505193383, - -377.22195115518656 - ], - [ - 248.00488276001673, - -377.7838332573137 - ], - [ - 248.40906196114372, - -378.27632703885627 - ], - [ - 248.90155574268627, - -378.6805062399833 - ], - [ - 249.46343784481346, - -378.9808384806617 - ], - [ - 250.07311545344757, - -379.1657821613105 - ], - [ - 250.707159, - -379.22823 - ], - [ - 251.3412025465524, - -379.1657821613105 - ], - [ - 251.95088015518652, - -378.9808384806617 - ], - [ - 252.51276225731368, - -378.6805062399833 - ], - [ - 253.00525603885626, - -378.27632703885627 - ], - [ - 253.40943523998325, - -377.7838332573137 - ], - [ - 253.70976748066167, - -377.22195115518656 - ], - [ - 253.89471116131048, - -376.6122735465524 - ] - ], - "weight": 0.5 - }, - { - "index": 9, - "center": [ - 291.457159, - -314.17823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 294.535389, - -314.17823 - ], - [ - 294.47624167369565, - -313.57769711806026 - ], - [ - 294.3010726933622, - -313.0002423779908 - ], - [ - 294.01661370467804, - -312.46805704161204 - ], - [ - 293.63379630705185, - -312.0015926929481 - ], - [ - 293.16733195838793, - -311.61877529532194 - ], - [ - 292.6351466220092, - -311.3343163066378 - ], - [ - 292.0576918819397, - -311.1591473263043 - ], - [ - 291.457159, - -311.09999999999997 - ], - [ - 290.85662611806026, - -311.1591473263043 - ], - [ - 290.2791713779908, - -311.3343163066378 - ], - [ - 289.74698604161205, - -311.61877529532194 - ], - [ - 289.2805216929481, - -312.0015926929481 - ], - [ - 288.89770429532194, - -312.46805704161204 - ], - [ - 288.6132453066378, - -313.0002423779908 - ], - [ - 288.4380763263043, - -313.57769711806026 - ], - [ - 288.37892899999997, - -314.17823 - ], - [ - 288.4380763263043, - -314.7787628819397 - ], - [ - 288.6132453066378, - -315.3562176220092 - ], - [ - 288.89770429532194, - -315.8884029583879 - ], - [ - 289.2805216929481, - -316.35486730705185 - ], - [ - 289.74698604161205, - -316.73768470467803 - ], - [ - 290.2791713779908, - -317.0221436933622 - ], - [ - 290.85662611806026, - -317.19731267369565 - ], - [ - 291.457159, - -317.25646 - ], - [ - 292.0576918819397, - -317.19731267369565 - ], - [ - 292.6351466220092, - -317.0221436933622 - ], - [ - 293.16733195838793, - -316.73768470467803 - ], - [ - 293.63379630705185, - -316.35486730705185 - ], - [ - 294.01661370467804, - -315.8884029583879 - ], - [ - 294.3010726933622, - -315.3562176220092 - ], - [ - 294.47624167369565, - -314.7787628819397 - ] - ], - "weight": 0.5 - }, - { - "index": 10, - "center": [ - 44.987159, - -71.07823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 48.065388999999996, - -71.07823 - ], - [ - 48.006241673695634, - -70.47769711806029 - ], - [ - 47.831072693362216, - -69.90024237799082 - ], - [ - 47.546613704678066, - -69.36805704161208 - ], - [ - 47.16379630705187, - -68.90159269294814 - ], - [ - 46.69733195838793, - -68.51877529532194 - ], - [ - 46.16514662200919, - -68.2343163066378 - ], - [ - 45.587691881939705, - -68.05914732630437 - ], - [ - 44.987159, - -68.0 - ], - [ - 44.38662611806029, - -68.05914732630437 - ], - [ - 43.80917137799081, - -68.2343163066378 - ], - [ - 43.27698604161207, - -68.51877529532194 - ], - [ - 42.81052169294813, - -68.90159269294814 - ], - [ - 42.42770429532193, - -69.36805704161208 - ], - [ - 42.14324530663778, - -69.90024237799082 - ], - [ - 41.96807632630436, - -70.47769711806029 - ], - [ - 41.908929, - -71.07823 - ], - [ - 41.96807632630436, - -71.67876288193972 - ], - [ - 42.14324530663778, - -72.25621762200919 - ], - [ - 42.42770429532193, - -72.78840295838793 - ], - [ - 42.81052169294813, - -73.25486730705187 - ], - [ - 43.27698604161207, - -73.63768470467807 - ], - [ - 43.80917137799081, - -73.92214369336222 - ], - [ - 44.38662611806029, - -74.09731267369564 - ], - [ - 44.987159, - -74.15646000000001 - ], - [ - 45.587691881939705, - -74.09731267369564 - ], - [ - 46.16514662200919, - -73.92214369336222 - ], - [ - 46.69733195838793, - -73.63768470467807 - ], - [ - 47.16379630705186, - -73.25486730705187 - ], - [ - 47.546613704678066, - -72.78840295838793 - ], - [ - 47.831072693362216, - -72.2562176220092 - ], - [ - 48.006241673695634, - -71.67876288193972 - ] - ], - "weight": 0.5 - }, - { - "index": 11, - "center": [ - 194.447159, - -375.97823 - ], - "diameter": 6.5, - "is_circular": true, - "boundary": [ - [ - 197.697159, - -375.97823 - ], - [ - 197.6347111613105, - -375.3441864534476 - ], - [ - 197.44976748066168, - -374.73450884481343 - ], - [ - 197.14943523998326, - -374.1726267426863 - ], - [ - 196.74525603885627, - -373.6801329611437 - ], - [ - 196.25276225731372, - -373.2759537600167 - ], - [ - 195.69088015518653, - -372.9756215193383 - ], - [ - 195.08120254655242, - -372.7906778386895 - ], - [ - 194.447159, - -372.72823 - ], - [ - 193.81311545344758, - -372.7906778386895 - ], - [ - 193.20343784481346, - -372.9756215193383 - ], - [ - 192.64155574268628, - -373.2759537600167 - ], - [ - 192.14906196114373, - -373.6801329611437 - ], - [ - 191.74488276001674, - -374.1726267426863 - ], - [ - 191.44455051933832, - -374.73450884481343 - ], - [ - 191.2596068386895, - -375.3441864534476 - ], - [ - 191.197159, - -375.97823 - ], - [ - 191.2596068386895, - -376.6122735465524 - ], - [ - 191.44455051933832, - -377.22195115518656 - ], - [ - 191.74488276001674, - -377.7838332573137 - ], - [ - 192.14906196114373, - -378.27632703885627 - ], - [ - 192.64155574268628, - -378.6805062399833 - ], - [ - 193.20343784481346, - -378.9808384806617 - ], - [ - 193.81311545344758, - -379.1657821613105 - ], - [ - 194.447159, - -379.22823 - ], - [ - 195.08120254655242, - -379.1657821613105 - ], - [ - 195.69088015518653, - -378.9808384806617 - ], - [ - 196.2527622573137, - -378.6805062399833 - ], - [ - 196.74525603885627, - -378.27632703885627 - ], - [ - 197.14943523998326, - -377.7838332573137 - ], - [ - 197.44976748066168, - -377.22195115518656 - ], - [ - 197.6347111613105, - -376.6122735465524 - ] - ], - "weight": 0.5 - }, - { - "index": 12, - "center": [ - 291.457159, - -375.97823 - ], - "diameter": 6.15646, - "is_circular": true, - "boundary": [ - [ - 294.535389, - -375.97823 - ], - [ - 294.47624167369565, - -375.37769711806027 - ], - [ - 294.3010726933622, - -374.8002423779908 - ], - [ - 294.01661370467804, - -374.26805704161205 - ], - [ - 293.63379630705185, - -373.80159269294813 - ], - [ - 293.16733195838793, - -373.41877529532195 - ], - [ - 292.6351466220092, - -373.1343163066378 - ], - [ - 292.0576918819397, - -372.95914732630433 - ], - [ - 291.457159, - -372.9 - ], - [ - 290.85662611806026, - -372.95914732630433 - ], - [ - 290.2791713779908, - -373.1343163066378 - ], - [ - 289.74698604161205, - -373.41877529532195 - ], - [ - 289.2805216929481, - -373.80159269294813 - ], - [ - 288.89770429532194, - -374.26805704161205 - ], - [ - 288.6132453066378, - -374.8002423779908 - ], - [ - 288.4380763263043, - -375.37769711806027 - ], - [ - 288.37892899999997, - -375.97823 - ], - [ - 288.4380763263043, - -376.5787628819397 - ], - [ - 288.6132453066378, - -377.1562176220092 - ], - [ - 288.89770429532194, - -377.68840295838794 - ], - [ - 289.2805216929481, - -378.15486730705186 - ], - [ - 289.74698604161205, - -378.53768470467804 - ], - [ - 290.2791713779908, - -378.8221436933622 - ], - [ - 290.85662611806026, - -378.99731267369566 - ], - [ - 291.457159, - -379.05646 - ], - [ - 292.0576918819397, - -378.99731267369566 - ], - [ - 292.6351466220092, - -378.8221436933622 - ], - [ - 293.16733195838793, - -378.53768470467804 - ], - [ - 293.63379630705185, - -378.15486730705186 - ], - [ - 294.01661370467804, - -377.68840295838794 - ], - [ - 294.3010726933622, - -377.1562176220092 - ], - [ - 294.47624167369565, - -376.5787628819397 - ] - ], - "weight": 0.5 - }, - { - "index": 13, - "center": [ - 125.187159, - -158.57823 - ], - "diameter": 8.2, - "is_circular": true, - "boundary": [ - [ - 129.287159, - -158.57823 - ], - [ - 129.20837864965324, - -157.77835967973385 - ], - [ - 128.97506508329627, - -157.00922792730313 - ], - [ - 128.59618441044043, - -156.30039204461963 - ], - [ - 128.08629680286484, - -155.67909219713513 - ], - [ - 127.46499695538036, - -155.16920458955957 - ], - [ - 126.75616107269686, - -154.79032391670373 - ], - [ - 125.98702932026612, - -154.55701035034676 - ], - [ - 125.187159, - -154.47823 - ], - [ - 124.38728867973387, - -154.55701035034676 - ], - [ - 123.61815692730313, - -154.79032391670373 - ], - [ - 122.90932104461963, - -155.16920458955954 - ], - [ - 122.28802119713515, - -155.67909219713513 - ], - [ - 121.77813358955956, - -156.30039204461963 - ], - [ - 121.39925291670372, - -157.00922792730313 - ], - [ - 121.16593935034675, - -157.77835967973385 - ], - [ - 121.087159, - -158.57823 - ], - [ - 121.16593935034675, - -159.37810032026613 - ], - [ - 121.39925291670372, - -160.14723207269685 - ], - [ - 121.77813358955956, - -160.85606795538035 - ], - [ - 122.28802119713515, - -161.47736780286485 - ], - [ - 122.90932104461963, - -161.9872554104404 - ], - [ - 123.61815692730312, - -162.36613608329625 - ], - [ - 124.38728867973387, - -162.59944964965322 - ], - [ - 125.187159, - -162.67822999999999 - ], - [ - 125.98702932026612, - -162.59944964965322 - ], - [ - 126.75616107269687, - -162.36613608329625 - ], - [ - 127.46499695538036, - -161.98725541044044 - ], - [ - 128.08629680286484, - -161.47736780286485 - ], - [ - 128.59618441044043, - -160.85606795538035 - ], - [ - 128.97506508329627, - -160.14723207269685 - ], - [ - 129.20837864965324, - -159.37810032026613 - ] - ], - "weight": 0.5 - }, - { - "index": 14, - "center": [ - 125.187159, - -71.07823 - ], - "diameter": 8.2, - "is_circular": true, - "boundary": [ - [ - 129.287159, - -71.07823 - ], - [ - 129.20837864965324, - -70.27835967973388 - ], - [ - 128.97506508329627, - -69.50922792730314 - ], - [ - 128.59618441044043, - -68.80039204461964 - ], - [ - 128.08629680286484, - -68.17909219713516 - ], - [ - 127.46499695538036, - -67.66920458955957 - ], - [ - 126.75616107269686, - -67.29032391670373 - ], - [ - 125.98702932026612, - -67.05701035034676 - ], - [ - 125.187159, - -66.97823000000001 - ], - [ - 124.38728867973387, - -67.05701035034676 - ], - [ - 123.61815692730313, - -67.29032391670373 - ], - [ - 122.90932104461963, - -67.66920458955957 - ], - [ - 122.28802119713515, - -68.17909219713516 - ], - [ - 121.77813358955956, - -68.80039204461964 - ], - [ - 121.39925291670372, - -69.50922792730313 - ], - [ - 121.16593935034675, - -70.27835967973388 - ], - [ - 121.087159, - -71.07823 - ], - [ - 121.16593935034675, - -71.87810032026613 - ], - [ - 121.39925291670372, - -72.64723207269687 - ], - [ - 121.77813358955956, - -73.35606795538037 - ], - [ - 122.28802119713515, - -73.97736780286485 - ], - [ - 122.90932104461963, - -74.48725541044044 - ], - [ - 123.61815692730312, - -74.86613608329628 - ], - [ - 124.38728867973387, - -75.09944964965325 - ], - [ - 125.187159, - -75.17823 - ], - [ - 125.98702932026612, - -75.09944964965325 - ], - [ - 126.75616107269687, - -74.86613608329628 - ], - [ - 127.46499695538036, - -74.48725541044044 - ], - [ - 128.08629680286484, - -73.97736780286485 - ], - [ - 128.59618441044043, - -73.35606795538037 - ], - [ - 128.97506508329627, - -72.64723207269688 - ], - [ - 129.20837864965324, - -71.87810032026613 - ] - ], - "weight": 0.5 - }, - { - "index": 15, - "center": [ - 194.447159, - -275.57823 - ], - "diameter": 6.5, - "is_circular": true, - "boundary": [ - [ - 197.697159, - -275.57823 - ], - [ - 197.6347111613105, - -274.9441864534476 - ], - [ - 197.44976748066168, - -274.33450884481346 - ], - [ - 197.14943523998326, - -273.7726267426863 - ], - [ - 196.74525603885627, - -273.28013296114375 - ], - [ - 196.25276225731372, - -272.8759537600167 - ], - [ - 195.69088015518653, - -272.5756215193383 - ], - [ - 195.08120254655242, - -272.3906778386895 - ], - [ - 194.447159, - -272.32823 - ], - [ - 193.81311545344758, - -272.3906778386895 - ], - [ - 193.20343784481346, - -272.5756215193383 - ], - [ - 192.64155574268628, - -272.8759537600167 - ], - [ - 192.14906196114373, - -273.28013296114375 - ], - [ - 191.74488276001674, - -273.7726267426863 - ], - [ - 191.44455051933832, - -274.33450884481346 - ], - [ - 191.2596068386895, - -274.9441864534476 - ], - [ - 191.197159, - -275.57823 - ], - [ - 191.2596068386895, - -276.2122735465524 - ], - [ - 191.44455051933832, - -276.8219511551866 - ], - [ - 191.74488276001674, - -277.3838332573137 - ], - [ - 192.14906196114373, - -277.8763270388563 - ], - [ - 192.64155574268628, - -278.2805062399833 - ], - [ - 193.20343784481346, - -278.5808384806617 - ], - [ - 193.81311545344758, - -278.76578216131054 - ], - [ - 194.447159, - -278.82823 - ], - [ - 195.08120254655242, - -278.76578216131054 - ], - [ - 195.69088015518653, - -278.5808384806617 - ], - [ - 196.2527622573137, - -278.2805062399833 - ], - [ - 196.74525603885627, - -277.8763270388563 - ], - [ - 197.14943523998326, - -277.3838332573137 - ], - [ - 197.44976748066168, - -276.8219511551866 - ], - [ - 197.6347111613105, - -276.2122735465524 - ] - ], - "weight": 0.5 - } - ], - "thickness": null +{ + "schema_version": "2.0", + "units": "mm", + "sandbox_id": "sandbox_1", + "outer_boundary": [ + [ + 381.787159, + 14.92177 + ], + [ + 132.687159, + 14.92177 + ], + [ + 132.687159, + -13.57823 + ], + [ + 88.687159, + -13.57823 + ], + [ + 88.687159, + 14.92177 + ], + [ + -13.412841, + 14.92177 + ], + [ + -13.412841, + 0.02177 + ], + [ + -30.812841, + 0.02177 + ], + [ + -30.812841, + -254.17823 + ], + [ + 169.435852, + -254.17823 + ], + [ + 169.435852, + -417.57823 + ], + [ + 197.121675, + -417.57823 + ], + [ + 197.121675, + -401.57823 + ], + [ + 212.121675, + -401.57823 + ], + [ + 212.121675, + -417.57823 + ], + [ + 289.687159, + -417.57823 + ], + [ + 304.687159, + -406.57823 + ], + [ + 317.687159, + -406.57823 + ], + [ + 332.687159, + -417.57823 + ], + [ + 381.787159, + -417.57823 + ], + [ + 381.787159, + -395.17823 + ], + [ + 404.187159, + -395.17823 + ], + [ + 404.187159, + -322.57823 + ], + [ + 352.787159, + -322.57823 + ], + [ + 352.787159, + -304.17823 + ], + [ + 361.187159, + -304.17823 + ], + [ + 361.187159, + -24.57823 + ], + [ + 404.187159, + -24.57823 + ], + [ + 404.187159, + 0.02177 + ], + [ + 381.787159, + 0.02177 + ] + ], + "outer_boundary_typed": [ + { + "type": "line", + "start": [ + 381.787159, + 14.92177 + ], + "end": [ + 132.687159, + 14.92177 + ] + }, + { + "type": "line", + "start": [ + 132.687159, + 14.92177 + ], + "end": [ + 132.687159, + -13.57823 + ] + }, + { + "type": "line", + "start": [ + 132.687159, + -13.57823 + ], + "end": [ + 88.687159, + -13.57823 + ] + }, + { + "type": "line", + "start": [ + 88.687159, + -13.57823 + ], + "end": [ + 88.687159, + 14.92177 + ] + }, + { + "type": "line", + "start": [ + 88.687159, + 14.92177 + ], + "end": [ + -13.412841, + 14.92177 + ] + }, + { + "type": "line", + "start": [ + -13.412841, + 14.92177 + ], + "end": [ + -13.412841, + 0.02177 + ] + }, + { + "type": "line", + "start": [ + -13.412841, + 0.02177 + ], + "end": [ + -30.812841, + 0.02177 + ] + }, + { + "type": "line", + "start": [ + -30.812841, + 0.02177 + ], + "end": [ + -30.812841, + -254.17823 + ] + }, + { + "type": "line", + "start": [ + -30.812841, + -254.17823 + ], + "end": [ + 169.435852, + -254.17823 + ] + }, + { + "type": "line", + "start": [ + 169.435852, + -254.17823 + ], + "end": [ + 169.435852, + -417.57823 + ] + }, + { + "type": "line", + "start": [ + 169.435852, + -417.57823 + ], + "end": [ + 197.121675, + -417.57823 + ] + }, + { + "type": "line", + "start": [ + 197.121675, + -417.57823 + ], + "end": [ + 197.121675, + -401.57823 + ] + }, + { + "type": "line", + "start": [ + 197.121675, + -401.57823 + ], + "end": [ + 212.121675, + -401.57823 + ] + }, + { + "type": "line", + "start": [ + 212.121675, + -401.57823 + ], + "end": [ + 212.121675, + -417.57823 + ] + }, + { + "type": "line", + "start": [ + 212.121675, + -417.57823 + ], + "end": [ + 289.687159, + -417.57823 + ] + }, + { + "type": "line", + "start": [ + 289.687159, + -417.57823 + ], + "end": [ + 304.687159, + -406.57823 + ] + }, + { + "type": "line", + "start": [ + 304.687159, + -406.57823 + ], + "end": [ + 317.687159, + -406.57823 + ] + }, + { + "type": "line", + "start": [ + 317.687159, + -406.57823 + ], + "end": [ + 332.687159, + -417.57823 + ] + }, + { + "type": "line", + "start": [ + 332.687159, + -417.57823 + ], + "end": [ + 381.787159, + -417.57823 + ] + }, + { + "type": "line", + "start": [ + 381.787159, + -417.57823 + ], + "end": [ + 381.787159, + -395.17823 + ] + }, + { + "type": "line", + "start": [ + 381.787159, + -395.17823 + ], + "end": [ + 404.187159, + -395.17823 + ] + }, + { + "type": "line", + "start": [ + 404.187159, + -395.17823 + ], + "end": [ + 404.187159, + -322.57823 + ] + }, + { + "type": "line", + "start": [ + 404.187159, + -322.57823 + ], + "end": [ + 352.787159, + -322.57823 + ] + }, + { + "type": "line", + "start": [ + 352.787159, + -322.57823 + ], + "end": [ + 352.787159, + -304.17823 + ] + }, + { + "type": "line", + "start": [ + 352.787159, + -304.17823 + ], + "end": [ + 361.187159, + -304.17823 + ] + }, + { + "type": "line", + "start": [ + 361.187159, + -304.17823 + ], + "end": [ + 361.187159, + -24.57823 + ] + }, + { + "type": "line", + "start": [ + 361.187159, + -24.57823 + ], + "end": [ + 404.187159, + -24.57823 + ] + }, + { + "type": "line", + "start": [ + 404.187159, + -24.57823 + ], + "end": [ + 404.187159, + 0.02177 + ] + }, + { + "type": "line", + "start": [ + 404.187159, + 0.02177 + ], + "end": [ + 381.787159, + 0.02177 + ] + }, + { + "type": "line", + "start": [ + 381.787159, + 0.02177 + ], + "end": [ + 381.787159, + 14.92177 + ] + } + ], + "inner_boundaries": [ + { + "index": 0, + "segments": [ + { + "type": "arc", + "start": [ + 0.0, + 0.0 + ], + "end": [ + 0.0, + 0.0 + ], + "center": [ + 0.0, + -3.07823 + ], + "radius": 3.07823, + "mid": [ + 0.0, + -6.15646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 1, + "segments": [ + { + "type": "arc", + "start": [ + 366.187159, + 1.02177 + ], + "end": [ + 366.187159, + 1.02177 + ], + "center": [ + 366.187159, + -3.07823 + ], + "radius": 4.1, + "mid": [ + 366.187159, + -7.17823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 2, + "segments": [ + { + "type": "arc", + "start": [ + 44.987159, + 0.0 + ], + "end": [ + 44.987159, + 0.0 + ], + "center": [ + 44.987159, + -3.07823 + ], + "radius": 3.07823, + "mid": [ + 44.987159, + -6.15646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 3, + "segments": [ + { + "type": "arc", + "start": [ + 250.707159, + -272.32823 + ], + "end": [ + 250.707159, + -272.32823 + ], + "center": [ + 250.707159, + -275.57823 + ], + "radius": 3.25, + "mid": [ + 250.707159, + -278.82823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 4, + "segments": [ + { + "type": "arc", + "start": [ + 44.987159, + -155.5 + ], + "end": [ + 44.987159, + -155.5 + ], + "center": [ + 44.987159, + -158.57823 + ], + "radius": 3.07823, + "mid": [ + 44.987159, + -161.65646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 5, + "segments": [ + { + "type": "arc", + "start": [ + 125.187159, + -232.47823 + ], + "end": [ + 125.187159, + -232.47823 + ], + "center": [ + 125.187159, + -236.57823 + ], + "radius": 4.1, + "mid": [ + 125.187159, + -240.67823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 6, + "segments": [ + { + "type": "arc", + "start": [ + -9.812841, + -67.82823 + ], + "end": [ + -9.812841, + -67.82823 + ], + "center": [ + -9.812841, + -71.07823 + ], + "radius": 3.25, + "mid": [ + -9.812841, + -74.32823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 7, + "segments": [ + { + "type": "arc", + "start": [ + 362.787159, + -372.9 + ], + "end": [ + 362.787159, + -372.9 + ], + "center": [ + 362.787159, + -375.97823 + ], + "radius": 3.07823, + "mid": [ + 362.787159, + -379.05646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 8, + "segments": [ + { + "type": "arc", + "start": [ + 250.707159, + -372.72823 + ], + "end": [ + 250.707159, + -372.72823 + ], + "center": [ + 250.707159, + -375.97823 + ], + "radius": 3.25, + "mid": [ + 250.707159, + -379.22823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 9, + "segments": [ + { + "type": "arc", + "start": [ + 291.457159, + -311.1 + ], + "end": [ + 291.457159, + -311.1 + ], + "center": [ + 291.457159, + -314.17823 + ], + "radius": 3.07823, + "mid": [ + 291.457159, + -317.25646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 10, + "segments": [ + { + "type": "arc", + "start": [ + 44.987159, + -68.0 + ], + "end": [ + 44.987159, + -68.0 + ], + "center": [ + 44.987159, + -71.07823 + ], + "radius": 3.07823, + "mid": [ + 44.987159, + -74.15646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 11, + "segments": [ + { + "type": "arc", + "start": [ + 194.447159, + -372.72823 + ], + "end": [ + 194.447159, + -372.72823 + ], + "center": [ + 194.447159, + -375.97823 + ], + "radius": 3.25, + "mid": [ + 194.447159, + -379.22823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 12, + "segments": [ + { + "type": "arc", + "start": [ + 291.457159, + -372.9 + ], + "end": [ + 291.457159, + -372.9 + ], + "center": [ + 291.457159, + -375.97823 + ], + "radius": 3.07823, + "mid": [ + 291.457159, + -379.05646 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 13, + "segments": [ + { + "type": "arc", + "start": [ + 125.187159, + -154.47823 + ], + "end": [ + 125.187159, + -154.47823 + ], + "center": [ + 125.187159, + -158.57823 + ], + "radius": 4.1, + "mid": [ + 125.187159, + -162.67823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 14, + "segments": [ + { + "type": "arc", + "start": [ + 125.187159, + -66.97823 + ], + "end": [ + 125.187159, + -66.97823 + ], + "center": [ + 125.187159, + -71.07823 + ], + "radius": 4.1, + "mid": [ + 125.187159, + -75.17823 + ], + "clockwise": false + } + ], + "num_segments": 1 + }, + { + "index": 15, + "segments": [ + { + "type": "arc", + "start": [ + 194.447159, + -272.32823 + ], + "end": [ + 194.447159, + -272.32823 + ], + "center": [ + 194.447159, + -275.57823 + ], + "radius": 3.25, + "mid": [ + 194.447159, + -278.82823 + ], + "clockwise": false + } + ], + "num_segments": 1 + } + ], + "num_inner_boundaries": 16, + "holes": [ + { + "index": 0, + "center": [ + 0.0, + -3.07823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 3.07823, + -3.07823 + ], + [ + 3.019082673695636, + -2.4776971180602936 + ], + [ + 2.843913693362218, + -1.9002423779908098 + ], + [ + 2.559454704678064, + -1.36805704161207 + ], + [ + 2.1766373070518665, + -0.9015926929481339 + ], + [ + 1.7101729583879304, + -0.518775295321936 + ], + [ + 1.1779876220091905, + -0.23431630663778202 + ], + [ + 0.6005328819397067, + -0.05914732630436381 + ], + [ + 1.8848722582696786e-16, + 0.0 + ], + [ + -0.6005328819397063, + -0.05914732630436381 + ], + [ + -1.17798762200919, + -0.23431630663778202 + ], + [ + -1.7101729583879293, + -0.5187752953219356 + ], + [ + -2.176637307051866, + -0.9015926929481335 + ], + [ + -2.559454704678064, + -1.36805704161207 + ], + [ + -2.843913693362218, + -1.9002423779908093 + ], + [ + -3.019082673695636, + -2.4776971180602922 + ], + [ + -3.07823, + -3.0782299999999996 + ], + [ + -3.019082673695636, + -3.678762881939707 + ], + [ + -2.8439136933622184, + -4.25621762200919 + ], + [ + -2.5594547046780645, + -4.7884029583879295 + ], + [ + -2.1766373070518665, + -5.254867307051866 + ], + [ + -1.71017295838793, + -5.637684704678064 + ], + [ + -1.177987622009192, + -5.922143693362218 + ], + [ + -0.6005328819397078, + -6.097312673695636 + ], + [ + -5.654616774809036e-16, + -6.15646 + ], + [ + 0.6005328819397067, + -6.097312673695637 + ], + [ + 1.177987622009191, + -5.922143693362218 + ], + [ + 1.710172958387929, + -5.6376847046780645 + ], + [ + 2.1766373070518656, + -5.2548673070518666 + ], + [ + 2.559454704678064, + -4.78840295838793 + ], + [ + 2.8439136933622176, + -4.256217622009192 + ], + [ + 3.0190826736956358, + -3.678762881939708 + ] + ], + "weight": 0.5 + }, + { + "index": 1, + "center": [ + 366.187159, + -3.07823 + ], + "diameter": 8.2, + "is_circular": true, + "boundary": [ + [ + 370.28715900000003, + -3.07823 + ], + [ + 370.20837864965324, + -2.2783596797338745 + ], + [ + 369.9750650832963, + -1.5092279273031322 + ], + [ + 369.59618441044046, + -0.8003920446196311 + ], + [ + 369.08629680286487, + -0.17909219713515556 + ], + [ + 368.4649969553804, + 0.33079541044043514 + ], + [ + 367.7561610726969, + 0.7096760832962752 + ], + [ + 366.9870293202661, + 0.9429896496532444 + ], + [ + 366.187159, + 1.0217699999999996 + ], + [ + 365.3872886797339, + 0.9429896496532444 + ], + [ + 364.6181569273031, + 0.7096760832962752 + ], + [ + 363.9093210446196, + 0.33079541044043603 + ], + [ + 363.28802119713515, + -0.17909219713515512 + ], + [ + 362.77813358955956, + -0.8003920446196311 + ], + [ + 362.39925291670374, + -1.5092279273031315 + ], + [ + 362.1659393503468, + -2.2783596797338728 + ], + [ + 362.087159, + -3.0782299999999996 + ], + [ + 362.1659393503468, + -3.8781003202661264 + ], + [ + 362.39925291670374, + -4.647232072696868 + ], + [ + 362.77813358955956, + -5.356067955380368 + ], + [ + 363.28802119713515, + -5.977367802864844 + ], + [ + 363.9093210446196, + -6.487255410440435 + ], + [ + 364.6181569273031, + -6.866136083296274 + ], + [ + 365.3872886797339, + -7.099449649653243 + ], + [ + 366.187159, + -7.178229999999999 + ], + [ + 366.9870293202661, + -7.099449649653245 + ], + [ + 367.7561610726969, + -6.866136083296275 + ], + [ + 368.4649969553804, + -6.4872554104404365 + ], + [ + 369.08629680286487, + -5.977367802864846 + ], + [ + 369.59618441044046, + -5.356067955380369 + ], + [ + 369.9750650832963, + -4.6472320726968706 + ], + [ + 370.20837864965324, + -3.8781003202661277 + ] + ], + "weight": 0.5 + }, + { + "index": 2, + "center": [ + 44.987159, + -3.07823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 48.065388999999996, + -3.07823 + ], + [ + 48.006241673695634, + -2.4776971180602936 + ], + [ + 47.831072693362216, + -1.9002423779908098 + ], + [ + 47.546613704678066, + -1.36805704161207 + ], + [ + 47.16379630705187, + -0.9015926929481339 + ], + [ + 46.69733195838793, + -0.518775295321936 + ], + [ + 46.16514662200919, + -0.23431630663778202 + ], + [ + 45.587691881939705, + -0.05914732630436381 + ], + [ + 44.987159, + 0.0 + ], + [ + 44.38662611806029, + -0.05914732630436381 + ], + [ + 43.80917137799081, + -0.23431630663778202 + ], + [ + 43.27698604161207, + -0.5187752953219356 + ], + [ + 42.81052169294813, + -0.9015926929481335 + ], + [ + 42.42770429532193, + -1.36805704161207 + ], + [ + 42.14324530663778, + -1.9002423779908093 + ], + [ + 41.96807632630436, + -2.4776971180602922 + ], + [ + 41.908929, + -3.0782299999999996 + ], + [ + 41.96807632630436, + -3.678762881939707 + ], + [ + 42.14324530663778, + -4.25621762200919 + ], + [ + 42.42770429532193, + -4.7884029583879295 + ], + [ + 42.81052169294813, + -5.254867307051866 + ], + [ + 43.27698604161207, + -5.637684704678064 + ], + [ + 43.80917137799081, + -5.922143693362218 + ], + [ + 44.38662611806029, + -6.097312673695636 + ], + [ + 44.987159, + -6.15646 + ], + [ + 45.587691881939705, + -6.097312673695637 + ], + [ + 46.16514662200919, + -5.922143693362218 + ], + [ + 46.69733195838793, + -5.6376847046780645 + ], + [ + 47.16379630705186, + -5.2548673070518666 + ], + [ + 47.546613704678066, + -4.78840295838793 + ], + [ + 47.831072693362216, + -4.256217622009192 + ], + [ + 48.006241673695634, + -3.678762881939708 + ] + ], + "weight": 0.5 + }, + { + "index": 3, + "center": [ + 250.707159, + -275.57823 + ], + "diameter": 6.5, + "is_circular": true, + "boundary": [ + [ + 253.957159, + -275.57823 + ], + [ + 253.89471116131048, + -274.9441864534476 + ], + [ + 253.70976748066167, + -274.33450884481346 + ], + [ + 253.40943523998325, + -273.7726267426863 + ], + [ + 253.00525603885626, + -273.28013296114375 + ], + [ + 252.5127622573137, + -272.8759537600167 + ], + [ + 251.95088015518652, + -272.5756215193383 + ], + [ + 251.3412025465524, + -272.3906778386895 + ], + [ + 250.707159, + -272.32823 + ], + [ + 250.07311545344757, + -272.3906778386895 + ], + [ + 249.46343784481346, + -272.5756215193383 + ], + [ + 248.90155574268627, + -272.8759537600167 + ], + [ + 248.40906196114372, + -273.28013296114375 + ], + [ + 248.00488276001673, + -273.7726267426863 + ], + [ + 247.7045505193383, + -274.33450884481346 + ], + [ + 247.5196068386895, + -274.9441864534476 + ], + [ + 247.457159, + -275.57823 + ], + [ + 247.5196068386895, + -276.2122735465524 + ], + [ + 247.7045505193383, + -276.8219511551866 + ], + [ + 248.00488276001673, + -277.3838332573137 + ], + [ + 248.40906196114372, + -277.8763270388563 + ], + [ + 248.90155574268627, + -278.2805062399833 + ], + [ + 249.46343784481346, + -278.5808384806617 + ], + [ + 250.07311545344757, + -278.76578216131054 + ], + [ + 250.707159, + -278.82823 + ], + [ + 251.3412025465524, + -278.76578216131054 + ], + [ + 251.95088015518652, + -278.5808384806617 + ], + [ + 252.51276225731368, + -278.2805062399833 + ], + [ + 253.00525603885626, + -277.8763270388563 + ], + [ + 253.40943523998325, + -277.3838332573137 + ], + [ + 253.70976748066167, + -276.8219511551866 + ], + [ + 253.89471116131048, + -276.2122735465524 + ] + ], + "weight": 0.5 + }, + { + "index": 4, + "center": [ + 44.987159, + -158.57823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 48.065388999999996, + -158.57823 + ], + [ + 48.006241673695634, + -157.9776971180603 + ], + [ + 47.831072693362216, + -157.4002423779908 + ], + [ + 47.546613704678066, + -156.86805704161205 + ], + [ + 47.16379630705187, + -156.40159269294813 + ], + [ + 46.69733195838793, + -156.01877529532192 + ], + [ + 46.16514662200919, + -155.73431630663777 + ], + [ + 45.587691881939705, + -155.55914732630436 + ], + [ + 44.987159, + -155.5 + ], + [ + 44.38662611806029, + -155.55914732630436 + ], + [ + 43.80917137799081, + -155.73431630663777 + ], + [ + 43.27698604161207, + -156.01877529532192 + ], + [ + 42.81052169294813, + -156.40159269294813 + ], + [ + 42.42770429532193, + -156.86805704161205 + ], + [ + 42.14324530663778, + -157.4002423779908 + ], + [ + 41.96807632630436, + -157.9776971180603 + ], + [ + 41.908929, + -158.57823 + ], + [ + 41.96807632630436, + -159.1787628819397 + ], + [ + 42.14324530663778, + -159.7562176220092 + ], + [ + 42.42770429532193, + -160.28840295838793 + ], + [ + 42.81052169294813, + -160.75486730705185 + ], + [ + 43.27698604161207, + -161.13768470467807 + ], + [ + 43.80917137799081, + -161.42214369336222 + ], + [ + 44.38662611806029, + -161.59731267369563 + ], + [ + 44.987159, + -161.65645999999998 + ], + [ + 45.587691881939705, + -161.59731267369563 + ], + [ + 46.16514662200919, + -161.42214369336222 + ], + [ + 46.69733195838793, + -161.13768470467807 + ], + [ + 47.16379630705186, + -160.75486730705185 + ], + [ + 47.546613704678066, + -160.28840295838793 + ], + [ + 47.831072693362216, + -159.7562176220092 + ], + [ + 48.006241673695634, + -159.1787628819397 + ] + ], + "weight": 0.5 + }, + { + "index": 5, + "center": [ + 125.187159, + -236.57823 + ], + "diameter": 8.2, + "is_circular": true, + "boundary": [ + [ + 129.287159, + -236.57823 + ], + [ + 129.20837864965324, + -235.77835967973385 + ], + [ + 128.97506508329627, + -235.00922792730313 + ], + [ + 128.59618441044043, + -234.30039204461963 + ], + [ + 128.08629680286484, + -233.67909219713513 + ], + [ + 127.46499695538036, + -233.16920458955957 + ], + [ + 126.75616107269686, + -232.79032391670373 + ], + [ + 125.98702932026612, + -232.55701035034676 + ], + [ + 125.187159, + -232.47823 + ], + [ + 124.38728867973387, + -232.55701035034676 + ], + [ + 123.61815692730313, + -232.79032391670373 + ], + [ + 122.90932104461963, + -233.16920458955954 + ], + [ + 122.28802119713515, + -233.67909219713513 + ], + [ + 121.77813358955956, + -234.30039204461963 + ], + [ + 121.39925291670372, + -235.00922792730313 + ], + [ + 121.16593935034675, + -235.77835967973385 + ], + [ + 121.087159, + -236.57823 + ], + [ + 121.16593935034675, + -237.37810032026613 + ], + [ + 121.39925291670372, + -238.14723207269685 + ], + [ + 121.77813358955956, + -238.85606795538035 + ], + [ + 122.28802119713515, + -239.47736780286485 + ], + [ + 122.90932104461963, + -239.9872554104404 + ], + [ + 123.61815692730312, + -240.36613608329625 + ], + [ + 124.38728867973387, + -240.59944964965322 + ], + [ + 125.187159, + -240.67822999999999 + ], + [ + 125.98702932026612, + -240.59944964965322 + ], + [ + 126.75616107269687, + -240.36613608329625 + ], + [ + 127.46499695538036, + -239.98725541044044 + ], + [ + 128.08629680286484, + -239.47736780286485 + ], + [ + 128.59618441044043, + -238.85606795538035 + ], + [ + 128.97506508329627, + -238.14723207269685 + ], + [ + 129.20837864965324, + -237.37810032026613 + ] + ], + "weight": 0.5 + }, + { + "index": 6, + "center": [ + -9.812841, + -71.07823 + ], + "diameter": 6.5, + "is_circular": true, + "boundary": [ + [ + -6.562841000000001, + -71.07823 + ], + [ + -6.625288838689501, + -70.44418645344759 + ], + [ + -6.810232519338319, + -69.83450884481346 + ], + [ + -7.110564760016729, + -69.2726267426863 + ], + [ + -7.51474396114372, + -68.78013296114372 + ], + [ + -8.007237742686293, + -68.37595376001673 + ], + [ + -8.569119844813459, + -68.07562151933833 + ], + [ + -9.178797453447583, + -67.89067783868951 + ], + [ + -9.812841, + -67.82823 + ], + [ + -10.446884546552416, + -67.89067783868951 + ], + [ + -11.056562155186542, + -68.07562151933833 + ], + [ + -11.618444257313707, + -68.37595376001673 + ], + [ + -12.110938038856279, + -68.78013296114372 + ], + [ + -12.515117239983272, + -69.2726267426863 + ], + [ + -12.815449480661682, + -69.83450884481346 + ], + [ + -13.0003931613105, + -70.44418645344759 + ], + [ + -13.062841, + -71.07823 + ], + [ + -13.0003931613105, + -71.71227354655242 + ], + [ + -12.815449480661684, + -72.32195115518654 + ], + [ + -12.515117239983272, + -72.88383325731371 + ], + [ + -12.11093803885628, + -73.37632703885629 + ], + [ + -11.618444257313708, + -73.78050623998328 + ], + [ + -11.056562155186544, + -74.08083848066168 + ], + [ + -10.446884546552418, + -74.2657821613105 + ], + [ + -9.812841, + -74.32823 + ], + [ + -9.178797453447583, + -74.2657821613105 + ], + [ + -8.569119844813457, + -74.08083848066168 + ], + [ + -8.007237742686295, + -73.78050623998328 + ], + [ + -7.514743961143722, + -73.37632703885629 + ], + [ + -7.110564760016729, + -72.88383325731371 + ], + [ + -6.810232519338319, + -72.32195115518655 + ], + [ + -6.625288838689502, + -71.71227354655242 + ] + ], + "weight": 0.5 + }, + { + "index": 7, + "center": [ + 362.787159, + -375.97823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 365.865389, + -375.97823 + ], + [ + 365.80624167369564, + -375.37769711806027 + ], + [ + 365.63107269336217, + -374.8002423779908 + ], + [ + 365.346613704678, + -374.26805704161205 + ], + [ + 364.96379630705184, + -373.80159269294813 + ], + [ + 364.4973319583879, + -373.41877529532195 + ], + [ + 363.9651466220092, + -373.1343163066378 + ], + [ + 363.3876918819397, + -372.95914732630433 + ], + [ + 362.787159, + -372.9 + ], + [ + 362.18662611806025, + -372.95914732630433 + ], + [ + 361.6091713779908, + -373.1343163066378 + ], + [ + 361.07698604161203, + -373.41877529532195 + ], + [ + 360.6105216929481, + -373.80159269294813 + ], + [ + 360.2277042953219, + -374.26805704161205 + ], + [ + 359.9432453066378, + -374.8002423779908 + ], + [ + 359.7680763263043, + -375.37769711806027 + ], + [ + 359.70892899999996, + -375.97823 + ], + [ + 359.7680763263043, + -376.5787628819397 + ], + [ + 359.9432453066378, + -377.1562176220092 + ], + [ + 360.2277042953219, + -377.68840295838794 + ], + [ + 360.6105216929481, + -378.15486730705186 + ], + [ + 361.07698604161203, + -378.53768470467804 + ], + [ + 361.6091713779908, + -378.8221436933622 + ], + [ + 362.18662611806025, + -378.99731267369566 + ], + [ + 362.787159, + -379.05646 + ], + [ + 363.3876918819397, + -378.99731267369566 + ], + [ + 363.9651466220092, + -378.8221436933622 + ], + [ + 364.4973319583879, + -378.53768470467804 + ], + [ + 364.96379630705184, + -378.15486730705186 + ], + [ + 365.346613704678, + -377.68840295838794 + ], + [ + 365.63107269336217, + -377.1562176220092 + ], + [ + 365.80624167369564, + -376.5787628819397 + ] + ], + "weight": 0.5 + }, + { + "index": 8, + "center": [ + 250.707159, + -375.97823 + ], + "diameter": 6.5, + "is_circular": true, + "boundary": [ + [ + 253.957159, + -375.97823 + ], + [ + 253.89471116131048, + -375.3441864534476 + ], + [ + 253.70976748066167, + -374.73450884481343 + ], + [ + 253.40943523998325, + -374.1726267426863 + ], + [ + 253.00525603885626, + -373.6801329611437 + ], + [ + 252.5127622573137, + -373.2759537600167 + ], + [ + 251.95088015518652, + -372.9756215193383 + ], + [ + 251.3412025465524, + -372.7906778386895 + ], + [ + 250.707159, + -372.72823 + ], + [ + 250.07311545344757, + -372.7906778386895 + ], + [ + 249.46343784481346, + -372.9756215193383 + ], + [ + 248.90155574268627, + -373.2759537600167 + ], + [ + 248.40906196114372, + -373.6801329611437 + ], + [ + 248.00488276001673, + -374.1726267426863 + ], + [ + 247.7045505193383, + -374.73450884481343 + ], + [ + 247.5196068386895, + -375.3441864534476 + ], + [ + 247.457159, + -375.97823 + ], + [ + 247.5196068386895, + -376.6122735465524 + ], + [ + 247.7045505193383, + -377.22195115518656 + ], + [ + 248.00488276001673, + -377.7838332573137 + ], + [ + 248.40906196114372, + -378.27632703885627 + ], + [ + 248.90155574268627, + -378.6805062399833 + ], + [ + 249.46343784481346, + -378.9808384806617 + ], + [ + 250.07311545344757, + -379.1657821613105 + ], + [ + 250.707159, + -379.22823 + ], + [ + 251.3412025465524, + -379.1657821613105 + ], + [ + 251.95088015518652, + -378.9808384806617 + ], + [ + 252.51276225731368, + -378.6805062399833 + ], + [ + 253.00525603885626, + -378.27632703885627 + ], + [ + 253.40943523998325, + -377.7838332573137 + ], + [ + 253.70976748066167, + -377.22195115518656 + ], + [ + 253.89471116131048, + -376.6122735465524 + ] + ], + "weight": 0.5 + }, + { + "index": 9, + "center": [ + 291.457159, + -314.17823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 294.535389, + -314.17823 + ], + [ + 294.47624167369565, + -313.57769711806026 + ], + [ + 294.3010726933622, + -313.0002423779908 + ], + [ + 294.01661370467804, + -312.46805704161204 + ], + [ + 293.63379630705185, + -312.0015926929481 + ], + [ + 293.16733195838793, + -311.61877529532194 + ], + [ + 292.6351466220092, + -311.3343163066378 + ], + [ + 292.0576918819397, + -311.1591473263043 + ], + [ + 291.457159, + -311.09999999999997 + ], + [ + 290.85662611806026, + -311.1591473263043 + ], + [ + 290.2791713779908, + -311.3343163066378 + ], + [ + 289.74698604161205, + -311.61877529532194 + ], + [ + 289.2805216929481, + -312.0015926929481 + ], + [ + 288.89770429532194, + -312.46805704161204 + ], + [ + 288.6132453066378, + -313.0002423779908 + ], + [ + 288.4380763263043, + -313.57769711806026 + ], + [ + 288.37892899999997, + -314.17823 + ], + [ + 288.4380763263043, + -314.7787628819397 + ], + [ + 288.6132453066378, + -315.3562176220092 + ], + [ + 288.89770429532194, + -315.8884029583879 + ], + [ + 289.2805216929481, + -316.35486730705185 + ], + [ + 289.74698604161205, + -316.73768470467803 + ], + [ + 290.2791713779908, + -317.0221436933622 + ], + [ + 290.85662611806026, + -317.19731267369565 + ], + [ + 291.457159, + -317.25646 + ], + [ + 292.0576918819397, + -317.19731267369565 + ], + [ + 292.6351466220092, + -317.0221436933622 + ], + [ + 293.16733195838793, + -316.73768470467803 + ], + [ + 293.63379630705185, + -316.35486730705185 + ], + [ + 294.01661370467804, + -315.8884029583879 + ], + [ + 294.3010726933622, + -315.3562176220092 + ], + [ + 294.47624167369565, + -314.7787628819397 + ] + ], + "weight": 0.5 + }, + { + "index": 10, + "center": [ + 44.987159, + -71.07823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 48.065388999999996, + -71.07823 + ], + [ + 48.006241673695634, + -70.47769711806029 + ], + [ + 47.831072693362216, + -69.90024237799082 + ], + [ + 47.546613704678066, + -69.36805704161208 + ], + [ + 47.16379630705187, + -68.90159269294814 + ], + [ + 46.69733195838793, + -68.51877529532194 + ], + [ + 46.16514662200919, + -68.2343163066378 + ], + [ + 45.587691881939705, + -68.05914732630437 + ], + [ + 44.987159, + -68.0 + ], + [ + 44.38662611806029, + -68.05914732630437 + ], + [ + 43.80917137799081, + -68.2343163066378 + ], + [ + 43.27698604161207, + -68.51877529532194 + ], + [ + 42.81052169294813, + -68.90159269294814 + ], + [ + 42.42770429532193, + -69.36805704161208 + ], + [ + 42.14324530663778, + -69.90024237799082 + ], + [ + 41.96807632630436, + -70.47769711806029 + ], + [ + 41.908929, + -71.07823 + ], + [ + 41.96807632630436, + -71.67876288193972 + ], + [ + 42.14324530663778, + -72.25621762200919 + ], + [ + 42.42770429532193, + -72.78840295838793 + ], + [ + 42.81052169294813, + -73.25486730705187 + ], + [ + 43.27698604161207, + -73.63768470467807 + ], + [ + 43.80917137799081, + -73.92214369336222 + ], + [ + 44.38662611806029, + -74.09731267369564 + ], + [ + 44.987159, + -74.15646000000001 + ], + [ + 45.587691881939705, + -74.09731267369564 + ], + [ + 46.16514662200919, + -73.92214369336222 + ], + [ + 46.69733195838793, + -73.63768470467807 + ], + [ + 47.16379630705186, + -73.25486730705187 + ], + [ + 47.546613704678066, + -72.78840295838793 + ], + [ + 47.831072693362216, + -72.2562176220092 + ], + [ + 48.006241673695634, + -71.67876288193972 + ] + ], + "weight": 0.5 + }, + { + "index": 11, + "center": [ + 194.447159, + -375.97823 + ], + "diameter": 6.5, + "is_circular": true, + "boundary": [ + [ + 197.697159, + -375.97823 + ], + [ + 197.6347111613105, + -375.3441864534476 + ], + [ + 197.44976748066168, + -374.73450884481343 + ], + [ + 197.14943523998326, + -374.1726267426863 + ], + [ + 196.74525603885627, + -373.6801329611437 + ], + [ + 196.25276225731372, + -373.2759537600167 + ], + [ + 195.69088015518653, + -372.9756215193383 + ], + [ + 195.08120254655242, + -372.7906778386895 + ], + [ + 194.447159, + -372.72823 + ], + [ + 193.81311545344758, + -372.7906778386895 + ], + [ + 193.20343784481346, + -372.9756215193383 + ], + [ + 192.64155574268628, + -373.2759537600167 + ], + [ + 192.14906196114373, + -373.6801329611437 + ], + [ + 191.74488276001674, + -374.1726267426863 + ], + [ + 191.44455051933832, + -374.73450884481343 + ], + [ + 191.2596068386895, + -375.3441864534476 + ], + [ + 191.197159, + -375.97823 + ], + [ + 191.2596068386895, + -376.6122735465524 + ], + [ + 191.44455051933832, + -377.22195115518656 + ], + [ + 191.74488276001674, + -377.7838332573137 + ], + [ + 192.14906196114373, + -378.27632703885627 + ], + [ + 192.64155574268628, + -378.6805062399833 + ], + [ + 193.20343784481346, + -378.9808384806617 + ], + [ + 193.81311545344758, + -379.1657821613105 + ], + [ + 194.447159, + -379.22823 + ], + [ + 195.08120254655242, + -379.1657821613105 + ], + [ + 195.69088015518653, + -378.9808384806617 + ], + [ + 196.2527622573137, + -378.6805062399833 + ], + [ + 196.74525603885627, + -378.27632703885627 + ], + [ + 197.14943523998326, + -377.7838332573137 + ], + [ + 197.44976748066168, + -377.22195115518656 + ], + [ + 197.6347111613105, + -376.6122735465524 + ] + ], + "weight": 0.5 + }, + { + "index": 12, + "center": [ + 291.457159, + -375.97823 + ], + "diameter": 6.15646, + "is_circular": true, + "boundary": [ + [ + 294.535389, + -375.97823 + ], + [ + 294.47624167369565, + -375.37769711806027 + ], + [ + 294.3010726933622, + -374.8002423779908 + ], + [ + 294.01661370467804, + -374.26805704161205 + ], + [ + 293.63379630705185, + -373.80159269294813 + ], + [ + 293.16733195838793, + -373.41877529532195 + ], + [ + 292.6351466220092, + -373.1343163066378 + ], + [ + 292.0576918819397, + -372.95914732630433 + ], + [ + 291.457159, + -372.9 + ], + [ + 290.85662611806026, + -372.95914732630433 + ], + [ + 290.2791713779908, + -373.1343163066378 + ], + [ + 289.74698604161205, + -373.41877529532195 + ], + [ + 289.2805216929481, + -373.80159269294813 + ], + [ + 288.89770429532194, + -374.26805704161205 + ], + [ + 288.6132453066378, + -374.8002423779908 + ], + [ + 288.4380763263043, + -375.37769711806027 + ], + [ + 288.37892899999997, + -375.97823 + ], + [ + 288.4380763263043, + -376.5787628819397 + ], + [ + 288.6132453066378, + -377.1562176220092 + ], + [ + 288.89770429532194, + -377.68840295838794 + ], + [ + 289.2805216929481, + -378.15486730705186 + ], + [ + 289.74698604161205, + -378.53768470467804 + ], + [ + 290.2791713779908, + -378.8221436933622 + ], + [ + 290.85662611806026, + -378.99731267369566 + ], + [ + 291.457159, + -379.05646 + ], + [ + 292.0576918819397, + -378.99731267369566 + ], + [ + 292.6351466220092, + -378.8221436933622 + ], + [ + 293.16733195838793, + -378.53768470467804 + ], + [ + 293.63379630705185, + -378.15486730705186 + ], + [ + 294.01661370467804, + -377.68840295838794 + ], + [ + 294.3010726933622, + -377.1562176220092 + ], + [ + 294.47624167369565, + -376.5787628819397 + ] + ], + "weight": 0.5 + }, + { + "index": 13, + "center": [ + 125.187159, + -158.57823 + ], + "diameter": 8.2, + "is_circular": true, + "boundary": [ + [ + 129.287159, + -158.57823 + ], + [ + 129.20837864965324, + -157.77835967973385 + ], + [ + 128.97506508329627, + -157.00922792730313 + ], + [ + 128.59618441044043, + -156.30039204461963 + ], + [ + 128.08629680286484, + -155.67909219713513 + ], + [ + 127.46499695538036, + -155.16920458955957 + ], + [ + 126.75616107269686, + -154.79032391670373 + ], + [ + 125.98702932026612, + -154.55701035034676 + ], + [ + 125.187159, + -154.47823 + ], + [ + 124.38728867973387, + -154.55701035034676 + ], + [ + 123.61815692730313, + -154.79032391670373 + ], + [ + 122.90932104461963, + -155.16920458955954 + ], + [ + 122.28802119713515, + -155.67909219713513 + ], + [ + 121.77813358955956, + -156.30039204461963 + ], + [ + 121.39925291670372, + -157.00922792730313 + ], + [ + 121.16593935034675, + -157.77835967973385 + ], + [ + 121.087159, + -158.57823 + ], + [ + 121.16593935034675, + -159.37810032026613 + ], + [ + 121.39925291670372, + -160.14723207269685 + ], + [ + 121.77813358955956, + -160.85606795538035 + ], + [ + 122.28802119713515, + -161.47736780286485 + ], + [ + 122.90932104461963, + -161.9872554104404 + ], + [ + 123.61815692730312, + -162.36613608329625 + ], + [ + 124.38728867973387, + -162.59944964965322 + ], + [ + 125.187159, + -162.67822999999999 + ], + [ + 125.98702932026612, + -162.59944964965322 + ], + [ + 126.75616107269687, + -162.36613608329625 + ], + [ + 127.46499695538036, + -161.98725541044044 + ], + [ + 128.08629680286484, + -161.47736780286485 + ], + [ + 128.59618441044043, + -160.85606795538035 + ], + [ + 128.97506508329627, + -160.14723207269685 + ], + [ + 129.20837864965324, + -159.37810032026613 + ] + ], + "weight": 0.5 + }, + { + "index": 14, + "center": [ + 125.187159, + -71.07823 + ], + "diameter": 8.2, + "is_circular": true, + "boundary": [ + [ + 129.287159, + -71.07823 + ], + [ + 129.20837864965324, + -70.27835967973388 + ], + [ + 128.97506508329627, + -69.50922792730314 + ], + [ + 128.59618441044043, + -68.80039204461964 + ], + [ + 128.08629680286484, + -68.17909219713516 + ], + [ + 127.46499695538036, + -67.66920458955957 + ], + [ + 126.75616107269686, + -67.29032391670373 + ], + [ + 125.98702932026612, + -67.05701035034676 + ], + [ + 125.187159, + -66.97823000000001 + ], + [ + 124.38728867973387, + -67.05701035034676 + ], + [ + 123.61815692730313, + -67.29032391670373 + ], + [ + 122.90932104461963, + -67.66920458955957 + ], + [ + 122.28802119713515, + -68.17909219713516 + ], + [ + 121.77813358955956, + -68.80039204461964 + ], + [ + 121.39925291670372, + -69.50922792730313 + ], + [ + 121.16593935034675, + -70.27835967973388 + ], + [ + 121.087159, + -71.07823 + ], + [ + 121.16593935034675, + -71.87810032026613 + ], + [ + 121.39925291670372, + -72.64723207269687 + ], + [ + 121.77813358955956, + -73.35606795538037 + ], + [ + 122.28802119713515, + -73.97736780286485 + ], + [ + 122.90932104461963, + -74.48725541044044 + ], + [ + 123.61815692730312, + -74.86613608329628 + ], + [ + 124.38728867973387, + -75.09944964965325 + ], + [ + 125.187159, + -75.17823 + ], + [ + 125.98702932026612, + -75.09944964965325 + ], + [ + 126.75616107269687, + -74.86613608329628 + ], + [ + 127.46499695538036, + -74.48725541044044 + ], + [ + 128.08629680286484, + -73.97736780286485 + ], + [ + 128.59618441044043, + -73.35606795538037 + ], + [ + 128.97506508329627, + -72.64723207269688 + ], + [ + 129.20837864965324, + -71.87810032026613 + ] + ], + "weight": 0.5 + }, + { + "index": 15, + "center": [ + 194.447159, + -275.57823 + ], + "diameter": 6.5, + "is_circular": true, + "boundary": [ + [ + 197.697159, + -275.57823 + ], + [ + 197.6347111613105, + -274.9441864534476 + ], + [ + 197.44976748066168, + -274.33450884481346 + ], + [ + 197.14943523998326, + -273.7726267426863 + ], + [ + 196.74525603885627, + -273.28013296114375 + ], + [ + 196.25276225731372, + -272.8759537600167 + ], + [ + 195.69088015518653, + -272.5756215193383 + ], + [ + 195.08120254655242, + -272.3906778386895 + ], + [ + 194.447159, + -272.32823 + ], + [ + 193.81311545344758, + -272.3906778386895 + ], + [ + 193.20343784481346, + -272.5756215193383 + ], + [ + 192.64155574268628, + -272.8759537600167 + ], + [ + 192.14906196114373, + -273.28013296114375 + ], + [ + 191.74488276001674, + -273.7726267426863 + ], + [ + 191.44455051933832, + -274.33450884481346 + ], + [ + 191.2596068386895, + -274.9441864534476 + ], + [ + 191.197159, + -275.57823 + ], + [ + 191.2596068386895, + -276.2122735465524 + ], + [ + 191.44455051933832, + -276.8219511551866 + ], + [ + 191.74488276001674, + -277.3838332573137 + ], + [ + 192.14906196114373, + -277.8763270388563 + ], + [ + 192.64155574268628, + -278.2805062399833 + ], + [ + 193.20343784481346, + -278.5808384806617 + ], + [ + 193.81311545344758, + -278.76578216131054 + ], + [ + 194.447159, + -278.82823 + ], + [ + 195.08120254655242, + -278.76578216131054 + ], + [ + 195.69088015518653, + -278.5808384806617 + ], + [ + 196.2527622573137, + -278.2805062399833 + ], + [ + 196.74525603885627, + -277.8763270388563 + ], + [ + 197.14943523998326, + -277.3838332573137 + ], + [ + 197.44976748066168, + -276.8219511551866 + ], + [ + 197.6347111613105, + -276.2122735465524 + ] + ], + "weight": 0.5 + } + ], + "thickness": null, + "transform": { + "origin": [ + 197.57823, + 184.187159, + 6.35 + ], + "x_axis": [ + 0.0, + -1.0, + 0.0 + ], + "y_axis": [ + 1.0, + 0.0, + -0.0 + ], + "normal": [ + 0.0, + 0.0, + 1.0 + ] + } } \ No newline at end of file diff --git a/tools/adaptive-isogrid/test_data/geometry_sandbox_2_brain.json b/tools/adaptive-isogrid/test_data/geometry_sandbox_2_brain.json index 723ba844..c6915aa8 100644 --- a/tools/adaptive-isogrid/test_data/geometry_sandbox_2_brain.json +++ b/tools/adaptive-isogrid/test_data/geometry_sandbox_2_brain.json @@ -1,5 +1,5 @@ { - "schema_version": "1.0", + "schema_version": "2.0", "units": "mm", "sandbox_id": "sandbox_2", "outer_boundary": [ @@ -7,6 +7,66 @@ 0.0, 0.0 ], + [ + 0.735129, + -0.036115 + ], + [ + 1.463177, + -0.14411 + ], + [ + 2.177135, + -0.322947 + ], + [ + 2.870126, + -0.570904 + ], + [ + 3.535476, + -0.885591 + ], + [ + 4.166777, + -1.263978 + ], + [ + 4.75795, + -1.702422 + ], + [ + 5.303301, + -2.196699 + ], + [ + 5.797578, + -2.74205 + ], + [ + 6.236022, + -3.333223 + ], + [ + 6.614409, + -3.964524 + ], + [ + 6.929096, + -4.629874 + ], + [ + 7.177053, + -5.322865 + ], + [ + 7.35589, + -6.036823 + ], + [ + 7.463885, + -6.764871 + ], [ 7.5, -7.5 @@ -39,6 +99,66 @@ 102.5, -7.5 ], + [ + 102.64411, + -8.963177 + ], + [ + 103.070904, + -10.370126 + ], + [ + 103.763978, + -11.666777 + ], + [ + 104.696699, + -12.803301 + ], + [ + 105.833223, + -13.736022 + ], + [ + 107.129874, + -14.429096 + ], + [ + 108.536823, + -14.85589 + ], + [ + 110.0, + -15.0 + ], + [ + 111.463177, + -14.85589 + ], + [ + 112.870126, + -14.429096 + ], + [ + 114.166777, + -13.736022 + ], + [ + 115.303301, + -12.803301 + ], + [ + 116.236022, + -11.666777 + ], + [ + 116.929096, + -10.370126 + ], + [ + 117.35589, + -8.963177 + ], [ 117.5, -7.5 @@ -63,6 +183,66 @@ 117.5, 102.5 ], + [ + 117.35589, + 101.036823 + ], + [ + 116.929096, + 99.629874 + ], + [ + 116.236022, + 98.333223 + ], + [ + 115.303301, + 97.196699 + ], + [ + 114.166777, + 96.263978 + ], + [ + 112.870126, + 95.570904 + ], + [ + 111.463177, + 95.14411 + ], + [ + 110.0, + 95.0 + ], + [ + 108.536823, + 95.14411 + ], + [ + 107.129874, + 95.570904 + ], + [ + 105.833223, + 96.263978 + ], + [ + 104.696699, + 97.196699 + ], + [ + 103.763978, + 98.333223 + ], + [ + 103.070904, + 99.629874 + ], + [ + 102.64411, + 101.036823 + ], [ 102.5, 102.5 @@ -79,6 +259,66 @@ 7.5, 102.5 ], + [ + 7.463885, + 101.764871 + ], + [ + 7.35589, + 101.036823 + ], + [ + 7.177053, + 100.322865 + ], + [ + 6.929096, + 99.629874 + ], + [ + 6.614409, + 98.964524 + ], + [ + 6.236022, + 98.333223 + ], + [ + 5.797578, + 97.74205 + ], + [ + 5.303301, + 97.196699 + ], + [ + 4.75795, + 96.702422 + ], + [ + 4.166777, + 96.263978 + ], + [ + 3.535476, + 95.885591 + ], + [ + 2.870126, + 95.570904 + ], + [ + 2.177135, + 95.322947 + ], + [ + 1.463177, + 95.14411 + ], + [ + 0.735129, + 95.036115 + ], [ 0.0, 95.0 @@ -90,14 +330,295 @@ [ -13.5, 0.0 - ], - [ - 0.0, - 0.0 ] ], + "outer_boundary_typed": [ + { + "type": "arc", + "start": [ + 0.0, + 0.0 + ], + "end": [ + 7.5, + -7.5 + ], + "center": [ + 0.0, + -7.5 + ], + "radius": 7.5, + "mid": [ + 5.303301, + -2.196699 + ], + "clockwise": true + }, + { + "type": "line", + "start": [ + 7.5, + -7.5 + ], + "end": [ + 7.5, + -22.6 + ] + }, + { + "type": "line", + "start": [ + 7.5, + -22.6 + ], + "end": [ + 22.5, + -22.6 + ] + }, + { + "type": "line", + "start": [ + 22.5, + -22.6 + ], + "end": [ + 22.5, + -13.496098 + ] + }, + { + "type": "line", + "start": [ + 22.5, + -13.496098 + ], + "end": [ + 74.5, + -13.496098 + ] + }, + { + "type": "line", + "start": [ + 74.5, + -13.496098 + ], + "end": [ + 74.5, + -22.6 + ] + }, + { + "type": "line", + "start": [ + 74.5, + -22.6 + ], + "end": [ + 102.5, + -22.6 + ] + }, + { + "type": "line", + "start": [ + 102.5, + -22.6 + ], + "end": [ + 102.5, + -7.5 + ] + }, + { + "type": "arc", + "start": [ + 102.5, + -7.5 + ], + "end": [ + 117.5, + -7.5 + ], + "center": [ + 110.0, + -7.5 + ], + "radius": 7.5, + "mid": [ + 110.0, + 0.0 + ], + "clockwise": false + }, + { + "type": "line", + "start": [ + 117.5, + -7.5 + ], + "end": [ + 117.5, + -22.6 + ] + }, + { + "type": "line", + "start": [ + 117.5, + -22.6 + ], + "end": [ + 140.748693, + -22.6 + ] + }, + { + "type": "line", + "start": [ + 140.748693, + -22.6 + ], + "end": [ + 140.748693, + 124.4 + ] + }, + { + "type": "line", + "start": [ + 140.748693, + 124.4 + ], + "end": [ + 117.5, + 124.4 + ] + }, + { + "type": "line", + "start": [ + 117.5, + 124.4 + ], + "end": [ + 117.5, + 102.5 + ] + }, + { + "type": "arc", + "start": [ + 117.5, + 102.5 + ], + "end": [ + 102.5, + 102.5 + ], + "center": [ + 110.0, + 102.5 + ], + "radius": 7.5, + "mid": [ + 110.0, + 95.0 + ], + "clockwise": true + }, + { + "type": "line", + "start": [ + 102.5, + 102.5 + ], + "end": [ + 102.5, + 124.4 + ] + }, + { + "type": "line", + "start": [ + 102.5, + 124.4 + ], + "end": [ + 7.5, + 124.4 + ] + }, + { + "type": "line", + "start": [ + 7.5, + 124.4 + ], + "end": [ + 7.5, + 102.5 + ] + }, + { + "type": "arc", + "start": [ + 7.5, + 102.5 + ], + "end": [ + 0.0, + 95.0 + ], + "center": [ + 0.0, + 102.5 + ], + "radius": 7.5, + "mid": [ + 5.303301, + 97.196699 + ], + "clockwise": true + }, + { + "type": "line", + "start": [ + 0.0, + 95.0 + ], + "end": [ + -13.5, + 95.0 + ] + }, + { + "type": "line", + "start": [ + -13.5, + 95.0 + ], + "end": [ + -13.5, + 0.0 + ] + }, + { + "type": "line", + "start": [ + -13.5, + 0.0 + ], + "end": [ + 0.0, + 0.0 + ] + } + ], "inner_boundaries": [], "num_inner_boundaries": 0, + "holes": [], "thickness": null, "transform": { "origin": [ @@ -120,6 +641,5 @@ 0.0, 1.0 ] - }, - "holes": [] + } } \ No newline at end of file