{ "nodes": [ { "datums": [ { "expr": "0", "name": "xmin", "type": "float", "uid": 0 }, { "expr": "0", "name": "ymin", "type": "float", "uid": 1 }, { "expr": "40", "name": "xmax", "type": "float", "uid": 2 }, { "expr": "3", "name": "ymax", "type": "float", "uid": 3 }, { "expr": "1", "name": "r", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('iiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5',float('0.000000'),float('0.000000'),float('-inf'),float('40.000000'),float('3.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ -168, -169 ], "name": "r0", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rounded rectangle (corner)')", "", "input('xmin', float)", "input('ymin', float)", "input('xmax', float)", "input('ymax', float)", "input('r', float)", "", "# This is the circle's radius in actual units (not a 0-1 fraction)", "r_ = r * min(xmax - xmin, ymax - ymin) / 2", "", "output('shape', fab.shapes.rounded_rectangle(xmin, xmax, ymin, ymax, r))", "", "def drag_r(this, x, y, z):", " if abs(this.xmax - this.xmin) < abs(this.ymax - this.ymin):", " d = abs(this.xmax - this.xmin)", " mid = this.ymax - d / 2", " else:", " d = abs(this.ymax - this.ymin)", " mid = (this.ymin + this.ymax) / 2", " r = 1 - (y - mid) / (d/2)", " this.r = float(min(1, max(0, r)))", "", "# UI", "sb.ui.wireframe(", " [(xmin, ymin, 0), (xmax, ymin, 0), (xmax, ymax, 0), (xmin, ymax, 0)],", " close=True)", "sb.ui.wireframe([(xmax - r_, ymax, 0), (xmax, ymax - r_, 0)])", "sb.ui.point(xmin, ymin)", "sb.ui.point(xmax, ymax)", "sb.ui.point(xmax, ymax - r_, drag=drag_r, relative=False)", "", "" ], "uid": 0 }, { "datums": [ { "expr": "4", "name": "x0", "type": "float", "uid": 0 }, { "expr": "1", "name": "y0", "type": "float", "uid": 1 }, { "expr": "20", "name": "x1", "type": "float", "uid": 2 }, { "expr": "1", "name": "y1", "type": "float", "uid": 3 }, { "expr": "4", "name": "x2", "type": "float", "uid": 4 }, { "expr": "-16", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16',float('4.000000'),float('-16.000000'),float('-inf'),float('20.000000'),float('1.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ -158, 55 ], "name": "t0", "script": [ "import fab", "", "title('Triangle')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "input('x2', float)", "input('y2', float)", "", "output('shape', fab.shapes.triangle(x0, y0, x1, y1, x2, y2))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0), (x2, y2, 0)], close=True)", "sb.ui.point(x0, y0, 0)", "sb.ui.point(x1, y1, 0)", "sb.ui.point(x2, y2, 0)", "" ], "uid": 1 }, { "datums": [ { "expr": "0", "name": "x0", "type": "float", "uid": 0 }, { "expr": "-16", "name": "y0", "type": "float", "uid": 1 }, { "expr": "4", "name": "x1", "type": "float", "uid": 2 }, { "expr": "1", "name": "y1", "type": "float", "uid": 3 }, { "expr": "\u0012fab.types.Shape('aa-f0X-Xf4a-f-16Y-Yf1',float('0.000000'),float('-16.000000'),float('-inf'),float('4.000000'),float('1.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 117.08051758755045, -159.65525125575067 ], "name": "r1", "script": [ "# Neil Gershenfeld 1/24/15", "# Matt Keeter 6/11/15", "", "import fab", "", "title('Rectangle (corner)')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('shape', fab.shapes.rectangle(x0, x1, y0, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y0, 0),", " (x1, y1, 0), (x0, y1, 0)], close=True)", "sb.ui.point(x0, y0)", "sb.ui.point(x1, y1)", "", "" ], "uid": 2 }, { "datums": [ { "expr": "\u0011[__0.__5]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__2.__4,__1.__6]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16',float('0.000000'),float('-16.000000'),float('-inf'),float('40.000000'),float('3.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 186.84593881964292, 93.912094904113701 ], "name": "u0", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 3 }, { "datums": [ { "expr": "3", "name": "x0", "type": "float", "uid": 0 }, { "expr": "0", "name": "y0", "type": "float", "uid": 1 }, { "expr": "15.5", "name": "x1", "type": "float", "uid": 2 }, { "expr": "0", "name": "y1", "type": "float", "uid": 3 }, { "expr": "3", "name": "x2", "type": "float", "uid": 4 }, { "expr": "-13", "name": "y2", "type": "float", "uid": 5 }, { "expr": "\u0012fab.types.Shape('ni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('3.000000'),float('-13.000000'),float('-inf'),float('15.500000'),float('0.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 6 } ], "inspector": [ 415.75667014842003, -171.1939230022906 ], "name": "t1", "script": [ "import fab", "", "title('Triangle')", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "input('x2', float)", "input('y2', float)", "", "output('shape', fab.shapes.triangle(x0, y0, x1, y1, x2, y2))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0), (x2, y2, 0)], close=True)", "sb.ui.point(x0, y0, 0)", "sb.ui.point(x1, y1, 0)", "sb.ui.point(x2, y2, 0)", "" ], "uid": 4 }, { "datums": [ { "expr": "\u0011[__3.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__4.__6]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('0.000000'),float('-16.000000'),float('-inf'),float('40.000000'),float('3.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 460.75621562330787, 94.890345892698221 ], "name": "d0", "script": [ "import fab.types", "", "title('Difference')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a & ~b)", "" ], "uid": 5 }, { "datums": [ { "expr": "\u0011[__5.__2]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0", "name": "x0", "type": "float", "uid": 1 }, { "expr": "0", "name": "y0", "type": "float", "uid": 2 }, { "expr": "0", "name": "x1", "type": "float", "uid": 3 }, { "expr": "20", "name": "y1", "type": "float", "uid": 4 }, { "expr": "\u0012fab.types.Shape('m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('0.000000'),float('4.000000'),float('-inf'),float('40.000000'),float('23.000000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 5 } ], "inspector": [ 770.39811185043231, 81.708890650803454 ], "name": "s0", "script": [ "# Neil Gershenfeld 1/25/15", "# Matt Keeter 6/13/15", "", "import fab", "", "title('Set origin (XY)')", "", "input('a',fab.types.Shape)", "", "input('x0', float)", "input('y0', float)", "input('x1', float)", "input('y1', float)", "", "output('out', fab.shapes.origin_xy(a, x0, y0, x1, y1))", "", "# UI", "sb.ui.wireframe([(x0, y0, 0), (x1, y1, 0)], color=sb.color.green)", "sb.ui.point(x0, y0, color=sb.color.green)", "sb.ui.point(x1, y1, color=sb.color.green)", "", "" ], "uid": 6 }, { "datums": [ { "expr": "\u0011[__6.__5]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "20", "name": "x", "type": "float", "uid": 1 }, { "expr": "11.7", "name": "y", "type": "float", "uid": 2 }, { "expr": "2", "name": "n", "type": "int", "uid": 3 }, { "expr": "\u0012fab.types.Shape('im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('0.000000'),float('0.400000'),float('-inf'),float('40.000000'),float('23.000000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 4 } ], "inspector": [ 766.45798929054649, 307.95187069709459 ], "name": "a0", "script": [ "import fab", "import math", "", "title('Array (polar)')", "", "input('shape', fab.types.Shape)", "input('x', float)", "input('y', float)", "input('n', int)", "", "output('array', fab.shapes.iterate_polar(shape, x, y, n))", "", "# UI", "sb.ui.wireframe([", " (math.cos(i/36. * 2*math.pi) * 0.3 + x,", " math.sin(i/36. * 2*math.pi) * 0.3 + y, 0)", " for i in range(36)], close=True, color=sb.color.teal)", "", "sb.ui.point(x, y, 0, color=sb.color.teal)", "" ], "uid": 7 }, { "datums": [ { "expr": "\u0011[__7.__4]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "0.0", "name": "_x", "type": "float", "uid": 1 }, { "expr": "0.0", "name": "_y", "type": "float", "uid": 2 }, { "expr": "1", "name": "i", "type": "int", "uid": 3 }, { "expr": "2", "name": "j", "type": "int", "uid": 4 }, { "expr": "1", "name": "dx", "type": "float", "uid": 5 }, { "expr": "24", "name": "dy", "type": "float", "uid": 6 }, { "expr": "\u0012fab.types.Shape('im-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf0-Yf24-Zf0m-Xf0-Yf0-Zf0im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('0.000000'),float('0.400000'),float('-inf'),float('40.000000'),float('47.000000'),float('inf'))", "name": "array", "type": "_fabtypes.Shape", "uid": 7 } ], "inspector": [ 775.7287951299005, 523.11967466452268 ], "name": "a1", "script": [ "import fab", "", "title('Array (2D)')", "", "input('shape', fab.types.Shape)", "input('_x', float)", "input('_y', float)", "input('i', int)", "input('j', int)", "input('dx', float)", "input('dy', float)", "", "output('array', fab.shapes.iterate2d(shape, i, j, dx, dy))", "", "# UI", "sb.ui.wireframe([", " (_x + dx, _y, 0), (_x, _y, 0), (_x, _y + dy, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + dx, _y - 0.3, 0), (_x + dx, _y + 0.3, 0)], color=sb.color.teal)", "sb.ui.wireframe([", " (_x + 0.3, _y + dy, 0), (_x - 0.3, _y + dy, 0)], color=sb.color.teal)", "", "sb.ui.point(_x, _y, 0, color=sb.color.teal)", "sb.ui.point(_x + dx, _y, 0, color=sb.color.teal, drag=(dx, None, None))", "sb.ui.point(_x, _y + dy, 0, color=sb.color.teal, drag=(None, dy, None))", "" ], "uid": 8 }, { "datums": [ { "expr": "\u0011[__8.__7]", "name": "a", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0011[__7.__4]", "name": "b", "type": "_fabtypes.Shape", "uid": 1 }, { "expr": "\u0012fab.types.Shape('iim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf0-Yf24-Zf0m-Xf0-Yf0-Zf0im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('0.000000'),float('0.400000'),float('-inf'),float('40.000000'),float('47.000000'),float('inf'))", "name": "shape", "type": "_fabtypes.Shape", "uid": 2 } ], "inspector": [ 1131.7684216125986, 463.44822888529956 ], "name": "u1", "script": [ "import fab.types", "", "title('Union')", "input('a', fab.types.Shape)", "input('b', fab.types.Shape)", "", "output('shape', a | b)", "" ], "uid": 9 }, { "datums": [ { "expr": "\u0011[__9.__2]", "name": "shape", "type": "_fabtypes.Shape", "uid": 0 }, { "expr": "\u0012fab.types.Shape('iim-Xf0-Yf0-Zf0m-Xf0-Yf0-Zf0im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf0-Yf24-Zf0m-Xf0-Yf0-Zf0im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13im-Xf20-Yf11.7-Zf0m+*f1X*f0Y+*f-0X*f1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13m-Xf20-Yf11.7-Zf0m+*f-1X*f1.22465e-16Y+*f-1.22465e-16X*f-1Y_m-Xf-20-Yf-11.7-Zf0m-Xf0-Yf20-Zf0aiiiiiiaa-f0X-Xf40a-f1.5Y-Yf1.5aa-f1.5X-Xf38.5a-f0Y-Yf3-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf1.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5-r+q-Xf38.5q-Yf1.5f1.5iaa-f0X-Xf4a-f-16Y-Yf1ni-*f0-Xf4*f16-Yf1i-*f-17-Xf20*f-16-Yf1-*f17-Xf4*f0-Yf-16nni-*f0-Xf3*f12.5-Yf0i-*f-13-Xf15.5*f-12.5-Yf0-*f13-Xf3*f0-Yf-13',float('0.000000'),float('0.400000'),float('-inf'),float('40.000000'),float('47.000000'),float('inf'))", "name": "out", "type": "_fabtypes.Shape", "uid": 1 } ], "inspector": [ 1405.2529149778952, 476.84241599369824 ], "name": "h0", "script": [ "import fab", "", "title('Heightmap (.png)')", "", "input('shape', fab.types.Shape)", "output('out', shape)", "", "sb.export.heightmap(shape)", "" ], "uid": 10 } ], "protocol": 6, "type": "sb" }