diff --git a/src/__comm__/__polytransversals.scad b/src/__comm__/__polytransversals.scad
deleted file mode 100644
index bbf39539..00000000
--- a/src/__comm__/__polytransversals.scad
+++ /dev/null
@@ -1,22 +0,0 @@
-use <../util/reverse.scad>;
-
-function __polytransversals(transversals) =
- let(
- leng_trs = len(transversals),
- leng_tr = len(transversals[0]),
- lefts = [
- for(i = 1; i < leng_trs - 1; i = i + 1)
- let(tr = transversals[leng_trs - i])
- tr[0]
- ],
- rights = [
- for(i = 1; i < leng_trs - 1; i = i + 1)
- let(tr = transversals[i])
- tr[leng_tr - 1]
- ]
- ) concat(
- transversals[0],
- rights,
- reverse(transversals[leng_trs - 1]),
- lefts
- );
\ No newline at end of file
diff --git a/src/_impl/_shape_glued2circles_impl.scad b/src/_impl/_shape_glued2circles_impl.scad
deleted file mode 100644
index f737a17d..00000000
--- a/src/_impl/_shape_glued2circles_impl.scad
+++ /dev/null
@@ -1,66 +0,0 @@
-use <../ptf/ptf_rotate.scad>;
-use <../shape_pie.scad>;
-use <../bezier_curve.scad>;
-
-function _glued2circles_pie_curve(radius, centre_dist, tangent_angle) =
- let(
- begin_ang = 90 + tangent_angle,
- shape_pts = shape_pie(radius, [-begin_ang, begin_ang]),
- leng = len(shape_pts)
- )
- [
- for(i = 1; i < leng; i = i + 1)
- shape_pts[i] + [centre_dist / 2, 0]
- ];
-
-function _glued2circles_bezier(radius, centre_dist, tangent_angle, t_step, ctrl_p1) =
- let(
- ctrl_p = ptf_rotate([radius * tan(tangent_angle), -radius], tangent_angle),
- ctrl_p2 = [-ctrl_p[0], ctrl_p[1]] + [centre_dist / 2, 0],
- ctrl_p3 = [-ctrl_p2[0], ctrl_p2[1]],
- ctrl_p4 = [-ctrl_p1[0], ctrl_p1[1]]
- )
- bezier_curve(
- t_step,
- [
- ctrl_p1,
- ctrl_p2,
- ctrl_p3,
- ctrl_p4
- ]
- );
-
-function _glued2circles_lower_half_curve(curve_pts, leng) =
- [
- for(i = 0; i < leng; i = i + 1)
- let(p = curve_pts[leng - 1 - i])
- if(p[0] >= 0) p
- ];
-
-function _glued2circles_half_glued_circle(radius, centre_dist, tangent_angle, t_step) =
- let(
- pie_curve_pts = _glued2circles_pie_curve(radius, centre_dist, tangent_angle),
- curve_pts = _glued2circles_bezier(radius, centre_dist, tangent_angle, t_step, pie_curve_pts[0]),
- lower_curve_pts = _glued2circles_lower_half_curve(curve_pts, len(curve_pts)),
- leng_half_curve_pts = len(lower_curve_pts),
- upper_curve_pts = [
- for(i = 0; i < leng_half_curve_pts; i = i + 1)
- let(pt = lower_curve_pts[leng_half_curve_pts - 1 - i])
- [pt[0], -pt[1]]
- ]
- ) concat(
- lower_curve_pts,
- pie_curve_pts,
- upper_curve_pts
- );
-
-function _shape_glued2circles_impl(radius, centre_dist, tangent_angle, t_step) =
- let(
- half_glued_circles = _glued2circles_half_glued_circle(radius, centre_dist, tangent_angle, t_step),
- leng_half_glued_circles = len(half_glued_circles),
- left_half_glued_circles = [
- for(i = 0; i < leng_half_glued_circles; i = i + 1)
- let(pt = half_glued_circles[leng_half_glued_circles - 1 - i])
- [-pt[0], pt[1]]
- ]
- ) concat(half_glued_circles, left_half_glued_circles);
\ No newline at end of file
diff --git a/src/_impl/_shape_path_extend_impl.scad b/src/_impl/_shape_path_extend_impl.scad
index 0b106e8e..e3abdf8c 100644
--- a/src/_impl/_shape_path_extend_impl.scad
+++ b/src/_impl/_shape_path_extend_impl.scad
@@ -1,6 +1,27 @@
use <../__comm__/__to3d.scad>;
-use <../__comm__/__polytransversals.scad>;
use <../ptf/ptf_rotate.scad>;
+use <../util/reverse.scad>;
+
+function __polytransversals(transversals) =
+ let(
+ leng_trs = len(transversals),
+ leng_tr = len(transversals[0]),
+ lefts = [
+ for(i = 1; i < leng_trs - 1; i = i + 1)
+ let(tr = transversals[leng_trs - i])
+ tr[0]
+ ],
+ rights = [
+ for(i = 1; i < leng_trs - 1; i = i + 1)
+ let(tr = transversals[i])
+ tr[leng_tr - 1]
+ ]
+ ) concat(
+ transversals[0],
+ rights,
+ reverse(transversals[leng_trs - 1]),
+ lefts
+ );
function _shape_path_extend_az(p1, p2) =
let(
diff --git a/src/circle_path.scad b/src/circle_path.scad
deleted file mode 100644
index 5a5e6e8f..00000000
--- a/src/circle_path.scad
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
-* circle_path.scad
-*
-* @copyright Justin Lin, 2017
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-circle_path.html
-*
-**/
-
-use <__comm__/__frags.scad>;
-
-function circle_path(radius, n) =
- let(
- _ = echo("circle_path is deprecated: use shape_circle instead."),
- _frags = __frags(radius),
- step_a = 360 / _frags,
- end_a = 360 - step_a * ((is_undef(n) || n > _frags) ? 1 : _frags - n + 1)
- )
- [
- for(a = 0; a <= end_a; a = a + step_a)
- [radius * cos(a), radius * sin(a)]
- ];
diff --git a/src/pixel/_impl/_px_circle_impl.scad b/src/pixel/_impl/_px_circle_impl.scad
deleted file mode 100644
index 873803cf..00000000
--- a/src/pixel/_impl/_px_circle_impl.scad
+++ /dev/null
@@ -1,54 +0,0 @@
-function _px_circle_y(f, y) = f >= 0 ? y - 1 : y;
-function _px_circle_ddf_y(f, ddf_y) = f >= 0 ? ddf_y + 2 : ddf_y;
-function _px_circle_f(f, ddf_y) = f >= 0 ? f + ddf_y : f;
-
-function _px_circle(f, ddf_x, ddf_y, x, y, filled) =
- x >= y ? [] :
- let(
- ny = _px_circle_y(f, y),
- nddf_y = _px_circle_ddf_y(f, ddf_y),
- nx = x + 1,
- nddf_x = ddf_x + 2,
- nf = _px_circle_f(f, ddf_y) + nddf_x
- )
- concat(
- filled ?
- concat(
- [for(xi = -nx; xi <= nx; xi = xi + 1) [xi, -ny]],
- [for(xi = -ny; xi <= ny; xi = xi + 1) [xi, -nx]],
- [for(xi = -ny; xi <= ny; xi = xi + 1) [xi, nx]],
- [for(xi = -nx; xi <= nx; xi = xi + 1) [xi, ny]]
- )
- :
- [
- [-nx, -ny], [nx, -ny],
- [-ny, -nx], [ny, -nx],
- [-ny, nx], [ny, nx],
- [-nx, ny], [nx, ny]
- ],
- _px_circle(nf, nddf_x, nddf_y, nx, ny, filled)
- );
-
-function _px_circle_impl(radius, filled) =
- let(
- f = 1 - radius,
- ddf_x = 1,
- ddf_y = -2 * radius,
- x = 0,
- y = radius
- )
- concat(
- filled ?
- concat(
- [[0, radius], [0, -radius]],
- [for(xi = -radius; xi <= radius; xi = xi + 1) [xi, 0]]
- )
- :
- [
- [0, -radius],
- [-radius, 0],
- [radius, 0],
- [0, radius]
- ],
- _px_circle(f, ddf_x, ddf_y, x, y, filled)
- );
\ No newline at end of file
diff --git a/src/pixel/_impl/_px_cylinder_impl.scad b/src/pixel/_impl/_px_cylinder_impl.scad
deleted file mode 100644
index a7639bd4..00000000
--- a/src/pixel/_impl/_px_cylinder_impl.scad
+++ /dev/null
@@ -1,50 +0,0 @@
-
-function _px_cylinder_px_circle(radius, filled, thickness) =
- let(range = [-radius: radius - 1])
- filled ? [
- for(y = range)
- for(x = range)
- let(v = [x, y])
- if(norm(v) < radius) v
- ] :
- let(ishell = radius * radius - 2 * thickness * radius)
- [
- for(y = range)
- for(x = range)
- let(
- v = [x, y],
- leng = norm(v)
- )
- if(leng < radius && (leng * leng) > ishell) v
- ];
-
-function _px_cylinder_diff_r(r, h, filled, thickness) =
- let(
- r1 = r[0],
- r2 = r[1]
- )
- r1 == r2 ? _px_cylinder_same_r(r1, h, filled, thickness) :
- let(dr = (r2 - r1) / (h - 1))
- [
- for(i = 0; i < h; i = i + 1)
- let(r = round(r1 + dr * i))
- each [
- for(pt = _px_cylinder_px_circle(r, filled, thickness))
- [pt[0], pt[1], i]
- ]
- ];
-
-function _px_cylinder_same_r(r, h, filled, thickness) =
- let(c = _px_cylinder_px_circle(r, filled, thickness))
- [
- for(i = 0; i < h; i = i + 1)
- each [
- for(pt = c)
- [pt[0], pt[1], i]
- ]
- ];
-
-function _px_cylinder_impl(r, h, filled, thickness) =
- is_num(r) ?
- _px_cylinder_same_r(r, h, filled, thickness) :
- _px_cylinder_diff_r(r, h, filled, thickness);
\ No newline at end of file
diff --git a/src/pixel/_impl/_px_from_impl.scad b/src/pixel/_impl/_px_from_impl.scad
deleted file mode 100644
index f0cd564e..00000000
--- a/src/pixel/_impl/_px_from_impl.scad
+++ /dev/null
@@ -1,21 +0,0 @@
-function _px_from_row(r_count, row_bits, width, height, center, invert) =
- let(
- half_w = width / 2,
- half_h = height / 2,
- offset_x = center ? 0 : half_w,
- offset_y = center ? -half_h : 0,
- bit = invert ? 0 : 1
- )
- [for(i = 0; i < width; i = i + 1) if(row_bits[i] == bit) [i - half_w + offset_x, r_count + offset_y]];
-
-function _px_from_impl(binaries, center, invert) =
- let(
- width = len(binaries[0]),
- height = len(binaries),
- offset_i = height / 2
- )
- [
- for(i = height - 1; i > -1; i = i - 1)
- let(row = _px_from_row(height - i - 1, binaries[i], width, height, center, invert))
- if(row != []) each row
- ];
\ No newline at end of file
diff --git a/src/pixel/_impl/_px_gray_impl.scad b/src/pixel/_impl/_px_gray_impl.scad
deleted file mode 100644
index 1da800fb..00000000
--- a/src/pixel/_impl/_px_gray_impl.scad
+++ /dev/null
@@ -1,29 +0,0 @@
-function _px_gray_row(r_count, row_bits, width, height, center, invert, normalize) =
- let(
- half_w = width / 2,
- half_h = height / 2,
- offset_x = center ? 0 : half_w,
- offset_y = center ? -half_h : 0,
- level = invert ? 0 : 255,
- nmal = normalize ? 255 : 1
- )
- [
- for(i = 0; i < width; i = i + 1)
- if(row_bits[i] != level)
- [
- [i - half_w + offset_x, r_count + offset_y],
- invert ? row_bits[i] / nmal : (255 - row_bits[i]) / nmal
- ]
- ];
-
-function _px_gray_impl(levels, center, invert, normalize) =
- let(
- width = len(levels[0]),
- height = len(levels),
- offset_i = height / 2
- )
- [
- for(i = height - 1; i > -1; i = i - 1)
- let(row = _px_gray_row(height - i - 1, levels[i], width, height, center, invert, normalize))
- if(row != []) each row
- ];
\ No newline at end of file
diff --git a/src/pixel/_impl/_px_line_impl.scad b/src/pixel/_impl/_px_line_impl.scad
deleted file mode 100644
index f586bc34..00000000
--- a/src/pixel/_impl/_px_line_impl.scad
+++ /dev/null
@@ -1,202 +0,0 @@
-
-use <../../__comm__/__to3d.scad>;
-use <../../__comm__/__to2d.scad>;
-
-function _px_line_zsgn(a) = a == 0 ? a : a / abs(a);
-
-// x-dominant
-function _px_line_xdominant_y(y, yd, sy) = yd >= 0 ? y + sy : y;
-function _px_line_xdominant_yd(yd, ax, ay) = (yd >= 0 ? yd - ax : yd) + ay;
-function _px_line_xdominant_z(z, zd, sz) = zd >= 0 ? z + sz : z;
-function _px_line_xdominant_zd(zd, ax, az) = (zd >= 0 ? zd - ax : zd) + az;
-
-function _px_line_xdominant(start, end, a, s) =
- let(
- x = start[0],
- y = start[1],
- z = start[2],
- ax = a[0],
- ay = a[1],
- az = a[2],
- sx = s[0],
- sy = s[1],
- sz = s[2],
- shrx = floor(ax / 2),
- yd = ay - shrx,
- zd = az - shrx,
- endx = end[0]
- )
- concat(
- [start],
- _px_line_xdominant_sub(
- x + sx,
- _px_line_xdominant_y(y, yd, sy),
- _px_line_xdominant_z(z, zd, sz),
- endx,
- a,
- s,
- _px_line_xdominant_yd(yd, ax, ay),
- _px_line_xdominant_zd(zd, ax, az)
- )
- );
-
-function _px_line_xdominant_sub(x, y, z, endx, a, s, yd, zd) =
- let(
- ax = a[0],
- ay = a[1],
- az = a[2],
- sx = s[0],
- sy = s[1],
- sz = s[2]
- )
- x == endx ? [] :
- concat([[x, y, z]],
- _px_line_xdominant_sub(
- x + sx,
- _px_line_xdominant_y(y, yd, sy),
- _px_line_xdominant_z(z, zd, sz),
- endx,
- a,
- s,
- _px_line_xdominant_yd(yd, ax, ay),
- _px_line_xdominant_zd(zd, ax, az)
- )
- );
-
-// y-dominant
-function _px_line_ydominant_x(x, xd, sx) = xd >= 0 ? x + sx : x;
-function _px_line_ydominant_xd(xd, ax, ay) = (xd >= 0 ? xd - ay : xd) + ax;
-function _px_line_ydominant_z(z, zd, sz) = zd >= 0 ? z + sz : z;
-function _px_line_ydominant_zd(zd, ay, az) = (zd >= 0 ? zd - ay : zd) + az;
-
-function _px_line_ydominant(start, end, a, s) =
- let(
- x = start[0],
- y = start[1],
- z = start[2],
- ax = a[0],
- ay = a[1],
- az = a[2],
- sx = s[0],
- sy = s[1],
- sz = s[2],
- shry = floor(ay / 2),
- xd = ax - shry,
- zd = az - shry,
- endy = end[1]
- )
- concat(
- [start],
- _px_line_ydominant_sub(
- _px_line_ydominant_x(x, xd, sx),
- y + sy,
- _px_line_ydominant_z(z, zd, sz),
- endy,
- a,
- s,
- _px_line_ydominant_xd(xd, ax, ay),
- _px_line_ydominant_zd(zd, ay, az)
- )
- );
-
-function _px_line_ydominant_sub(x, y, z, endy, a, s, xd, zd) =
- let(
- ax = a[0],
- ay = a[1],
- az = a[2],
- sx = s[0],
- sy = s[1],
- sz = s[2]
- )
- y == endy ? [] :
- concat([[x, y, z]],
- _px_line_ydominant_sub(
- _px_line_ydominant_x(x, xd, sx),
- y + sy,
- _px_line_ydominant_z(z, zd, sz),
- endy,
- a,
- s,
- _px_line_ydominant_xd(xd, ax, ay),
- _px_line_ydominant_zd(zd, ay, az)
- )
- );
-
-// z-dominant
-function _px_line_zdominant_x(x, xd, sx) = xd >= 0 ? x + sx : x;
-function _px_line_zdominant_xd(xd, ax, az) = (xd >= 0 ? xd - az : xd) + ax;
-
-function _px_line_zdominant_y(y, yd, sy) = yd >= 0 ? y + sy : y;
-function _px_line_zdominant_yd(yd, ay, az) = (yd >= 0 ? yd - az : yd) + ay;
-
-function _px_line_zdominant(start, end, a, s) =
- let(
- x = start[0],
- y = start[1],
- z = start[2],
- ax = a[0],
- ay = a[1],
- az = a[2],
- sx = s[0],
- sy = s[1],
- sz = s[2],
- shrz = floor(az / 2),
- xd = ax - shrz,
- yd = ay - shrz,
- endz = end[2]
- )
- concat(
- [start],
- _px_line_zdominant_sub(
- _px_line_zdominant_x(x, xd, sx),
- _px_line_zdominant_y(y, yd, sy),
- z + sz,
- endz,
- a,
- s,
- _px_line_zdominant_xd(xd, ax, az),
- _px_line_zdominant_yd(yd, ay, az)
- )
- );
-
-function _px_line_zdominant_sub(x, y, z, endz, a, s, xd, yd) =
- let(
- ax = a[0],
- ay = a[1],
- az = a[2],
- sx = s[0],
- sy = s[1],
- sz = s[2]
- )
- z == endz ? [] :
- concat([[x, y, z]],
- _px_line_zdominant_sub(
- _px_line_zdominant_x(x, xd, sx),
- _px_line_zdominant_y(y, yd, sy),
- z + sz,
- endz,
- a,
- s,
- _px_line_zdominant_xd(xd, ax, az),
- _px_line_zdominant_yd(yd, ay, az)
- )
- );
-
-function _px_line_impl(p1, p2) =
- let(
- is_2d = len(p1) == 2,
- start_pt = is_2d ? __to3d(p1) : p1,
- end_pt = is_2d ? __to3d(p2) : p2,
- dt = end_pt - start_pt,
- ax = floor(abs(dt[0]) * 2),
- ay = floor(abs(dt[1]) * 2),
- az = floor(abs(dt[2]) * 2),
- sx = _px_line_zsgn(dt[0]),
- sy = _px_line_zsgn(dt[1]),
- sz = _px_line_zsgn(dt[2]),
- points = ax >= max(ay, az) ? _px_line_xdominant(start_pt, end_pt, [ax, ay, az], [sx, sy, sz]) : (
- ay >= max(ax, az) ? _px_line_ydominant(start_pt, end_pt, [ax, ay, az], [sx, sy, sz]) :
- _px_line_zdominant(start_pt, end_pt, [ax, ay, az], [sx, sy, sz])
- )
- )
- is_2d ? [for(pt = points) __to2d(pt)] : points;
\ No newline at end of file
diff --git a/src/pixel/px_ascii.scad b/src/pixel/px_ascii.scad
deleted file mode 100644
index 551ecccb..00000000
--- a/src/pixel/px_ascii.scad
+++ /dev/null
@@ -1,974 +0,0 @@
-/**
-* px_ascii.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_ascii.html
-*
-**/
-
-use ;
-
-function px_ascii(char, center = false, invert = false) =
- let(
- _ = echo("pixel/px_ascii is deprecated: use voxel/vx_ascii instead."),
- code = ord(char)
- )
- assert(code > 31 && code < 127, "not printable character")
- let(
- idx = code - 32,
- binaries = [
- [// " "
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "!"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "\""
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,0,1,0,0],
- [0,0,0,1,0,1,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "#"
- [0,0,0,0,0,0,0,0],
- [0,0,1,0,0,1,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,1,0,0,1,0,0],
- [0,0,1,0,0,1,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,1,0,0,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "$"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,0,1,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,1,0,0,1,0],
- [0,1,1,1,1,1,0,0],
- [0,0,0,1,0,0,0,0]
- ],
- [// "%"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,0,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "&"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,0,0,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,0,0,1,0,1,0],
- [0,1,0,0,0,1,0,0],
- [0,0,1,1,1,0,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "'"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "("
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// ")"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "*"
- [0,0,0,0,0,0,0,0],
- [0,1,0,1,0,1,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,1,0,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,1,0,1,0,1,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "+"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// ","
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0]
- ],
- [// "-"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "."
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "/"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "0"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,1,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "1"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "2"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "3"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "4"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "5"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,0,0,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "6"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "7"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "8"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "9"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// ":"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// ";"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0]
- ],
- [// "<"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,0,1,1,0]
- ],
- [// "="
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// ">"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,0,0,0,0,0]
- ],
- [// "?"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "@"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,1,0,1,0],
- [0,1,1,0,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "A"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "B"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "C"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "D"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,0,0,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "E"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "F"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "G"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "H"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "I"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "J"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,1,0,0,1,1,0,0],
- [0,1,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0],
- ],
- [// "K"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,1,1,0,0,0],
- [0,1,1,1,1,0,0,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "L"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "M"
- [0,0,0,0,0,0,0,0],
- [1,1,0,0,0,1,1,0],
- [1,1,1,0,1,1,1,0],
- [1,1,1,1,1,1,1,0],
- [1,1,0,1,0,1,1,0],
- [1,1,0,0,0,1,1,0],
- [1,1,0,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "N"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,0,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "O"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "P"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "Q"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,0,1,1,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "R"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "S"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "T"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "U"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "V"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "W"
- [0,0,0,0,0,0,0,0],
- [1,1,0,0,0,1,1,0],
- [1,1,0,0,0,1,1,0],
- [1,1,0,1,0,1,1,0],
- [1,1,1,1,1,1,1,0],
- [1,1,1,0,1,1,1,0],
- [1,1,0,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "X"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "Y"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "Z"
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "/"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "\\"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,0,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "]"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "^"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,0,0,0,0,1,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "_"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [1,1,1,1,1,1,1,1]
- ],
- [// "`"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,0,0,0,0],
- [0,0,0,0,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "a"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "b"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "c"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "d"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "e"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "f"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,1,1,1,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "g"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,1,1,1,1,1,0,0]
- ],
- [// "h"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "i"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "j"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,1,1,1,1,0,0]
- ],
- [// "k"
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,1,1,0,0,0],
- [0,1,1,0,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "l"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "m"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,1,1],
- [0,1,1,1,1,1,1,1],
- [0,1,1,0,1,0,1,1],
- [0,1,1,0,0,0,1,1],
- [0,0,0,0,0,0,0,0]
- ],
- [// "n"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "o"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "p"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0]
- ],
- [// "q"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,1,1,0],
- [0,0,0,0,0,1,1,0]
- ],
- [// "r"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,1,1,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "s"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,1,1,0],
- [0,1,1,0,0,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,0,0,1,1,0],
- [0,1,1,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "t"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "u"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "v"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "w"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,0,1,1],
- [0,1,1,0,1,0,1,1],
- [0,1,1,1,1,1,1,1],
- [0,0,1,1,1,1,1,0],
- [0,0,1,1,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "x"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,1,1,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,1,1,0,0],
- [0,1,1,0,0,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "y"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "z"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,1,1,1,1,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "{"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,1,1,0,0,0,0],
- [0,1,1,1,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,0,0,1,1,1,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "|"
- [0,0,0,0,0,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "}"
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,1,1,1,0],
- [0,0,0,0,1,1,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,1,1,1,0,0,0],
- [0,0,0,0,0,0,0,0]
- ],
- [// "~"
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,1,1,0,0,0,0],
- [0,1,0,1,1,0,1,0],
- [0,0,0,0,1,1,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0],
- [0,0,0,0,0,0,0,0]
- ]
- ]
- )
- px_from(binaries[idx], center = center, invert = invert);
\ No newline at end of file
diff --git a/src/pixel/px_circle.scad b/src/pixel/px_circle.scad
deleted file mode 100644
index d55c8040..00000000
--- a/src/pixel/px_circle.scad
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
-* px_circle.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_circle.html
-*
-**/
-
-use <_impl/_px_circle_impl.scad>;
-use <../util/sort.scad>;
-use <../util/dedup.scad>;
-
-function px_circle(radius, filled = false) =
- let(
- _ = echo("pixel/px_circle is deprecated: use voxel/vx_circle instead."),
- all = _px_circle_impl(radius, filled)
- )
- dedup(sort(all, by = "vt"), sorted = true);
\ No newline at end of file
diff --git a/src/pixel/px_cylinder.scad b/src/pixel/px_cylinder.scad
deleted file mode 100644
index 63cf6352..00000000
--- a/src/pixel/px_cylinder.scad
+++ /dev/null
@@ -1,20 +0,0 @@
-/**
-* px_cylinder.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_cylinder.html
-*
-**/
-
-use <_impl/_px_cylinder_impl.scad>;
-use <../util/sort.scad>;
-use <../util/dedup.scad>;
-
-function px_cylinder(r, h, filled = false, thickness = 1) =
- let(
- _ = echo("pixel/px_cylinder is deprecated: use voxel/vx_cylinder instead."),
- all = _px_cylinder_impl(r, h, filled, thickness)
- )
- dedup(sort(all, by = "vt"), sorted = true);
\ No newline at end of file
diff --git a/src/pixel/px_from.scad b/src/pixel/px_from.scad
deleted file mode 100644
index 040512ef..00000000
--- a/src/pixel/px_from.scad
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
-* px_from.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_from.html
-*
-**/
-
-use <_impl/_px_from_impl.scad>;
-
-function px_from(binaries, center = false, invert = false) =
- let(
- _ = echo("pixel/px_from is deprecated: use voxel/vx_from instead.")
- )
- _px_from_impl(binaries, center, invert);
\ No newline at end of file
diff --git a/src/pixel/px_gray.scad b/src/pixel/px_gray.scad
deleted file mode 100644
index 15e9ba2b..00000000
--- a/src/pixel/px_gray.scad
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
-* px_gray.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_gray.html
-*
-**/
-
-use <_impl/_px_gray_impl.scad>;
-
-function px_gray(levels, center = false, invert = false, normalize = false) =
- let(
- _ = echo("pixel/px_gray is deprecated: use voxel/vx_gray instead.")
- )
- _px_gray_impl(levels, center, invert, normalize);
\ No newline at end of file
diff --git a/src/pixel/px_line.scad b/src/pixel/px_line.scad
deleted file mode 100644
index 52ae407a..00000000
--- a/src/pixel/px_line.scad
+++ /dev/null
@@ -1,17 +0,0 @@
-/**
-* px_line.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_line.html
-*
-**/
-
-use <_impl/_px_line_impl.scad>;
-
-function px_line(p1, p2) =
- let(
- _ = echo("pixel/px_line is deprecated: use voxel/vx_line instead.")
- )
- _px_line_impl(p1, p2);
\ No newline at end of file
diff --git a/src/pixel/px_polygon.scad b/src/pixel/px_polygon.scad
deleted file mode 100644
index ae176a50..00000000
--- a/src/pixel/px_polygon.scad
+++ /dev/null
@@ -1,34 +0,0 @@
-use <../in_shape.scad>;
-use <../util/sort.scad>;
-use <../util/dedup.scad>;
-use ;
-
-function px_polygon(points, filled = false) =
- let(
- _ = echo("pixel/px_polygon is deprecated: use voxel/vx_polygon instead."),
- contour = px_polyline(concat(points, [points[0]]))
- )
- !filled ? contour :
- let(
- sortedXY = sort(contour, by = "vt"),
- ys = [for(p = sortedXY) p[1]],
- rows = [
- for(y = [min(ys):max(ys)])
- let(
- idxes = search(y, sortedXY, num_returns_per_match = 0, index_col_num = 1)
- )
- [for(i = idxes) sortedXY[i]]
- ],
- all = concat(
- sortedXY,
- [
- for(row = rows)
- let(to = len(row) - 1, y = row[0][1])
- if(to > 0 && (row[0][0] + 1 != row[to][0]))
- for(i = [row[0][0] + 1:row[to][0] - 1])
- let(p = [i, y])
- if(in_shape(points, p)) p
- ]
- )
- )
- dedup(sort(all, by = "vt"), sorted = true);
\ No newline at end of file
diff --git a/src/pixel/px_polyline.scad b/src/pixel/px_polyline.scad
deleted file mode 100644
index 9c33be9b..00000000
--- a/src/pixel/px_polyline.scad
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
-* px_polyline.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_polyline.html
-*
-**/
-
-use <../__comm__/__to3d.scad>;
-use <../__comm__/__to2d.scad>;
-use <../__comm__/__lines_from.scad>;
-use <../util/sort.scad>;
-use <../util/dedup.scad>;
-use ;
-
-function px_polyline(points) =
- let(
- _ = echo("pixel/px_polyline is deprecated: use voxel/vx_polyline instead."),
- is_2d = len(points[0]) == 2,
- pts = is_2d ? [for(pt = points) __to3d(pt)] : points,
- polyline = [for(line = __lines_from(pts)) each px_line(line[0], line[1])]
- )
- dedup(is_2d ?
- sort([for(pt = polyline) __to2d(pt)], by = "vt")
- :
- sort(polyline, by = "vt")
- , sorted = true);
\ No newline at end of file
diff --git a/src/pixel/px_sphere.scad b/src/pixel/px_sphere.scad
deleted file mode 100644
index 9475be12..00000000
--- a/src/pixel/px_sphere.scad
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
-* px_sphere.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-px_sphere.html
-*
-**/
-
-function px_sphere(radius, filled = false, thickness = 1) =
- let(
- _ = echo("pixel/px_sphere is deprecated: use voxel/vx_sphere instead."),
- range = [-radius: radius - 1]
- )
- filled ? [
- for(z = range)
- for(y = range)
- for(x = range)
- let(v = [x, y, z])
- if(norm(v) < radius) v
- ] :
- let(ishell = radius * radius - 2 * thickness * radius)
- [
- for(z = range)
- for(y = range)
- for(x = range)
- let(
- v = [x, y, z],
- leng = norm(v)
- )
- if(leng < radius && (leng * leng) > ishell) v
- ];
-
\ No newline at end of file
diff --git a/src/polysections.scad b/src/polysections.scad
deleted file mode 100644
index 0d677d7b..00000000
--- a/src/polysections.scad
+++ /dev/null
@@ -1,255 +0,0 @@
-/**
-* polysections.scad
-*
-* @copyright Justin Lin, 2017
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-polysections.html
-*
-**/
-
-use ;
-
-module polysections(sections, triangles = "SOLID") {
- echo("polysections is deprecated: use sweep instead.");
-
- function side_indexes(sects, begin_idx = 0) =
- let(
- leng_sects = len(sects),
- leng_pts_sect = len(sects[0]),
- range_j = [begin_idx:leng_pts_sect:begin_idx + (leng_sects - 2) * leng_pts_sect],
- range_i = [0:leng_pts_sect - 1]
- )
- concat(
- [
- for(j = range_j)
- for(i = range_i)
- [
- j + i,
- j + (i + 1) % leng_pts_sect,
- j + (i + 1) % leng_pts_sect + leng_pts_sect
- ]
- ],
- [
- for(j = range_j)
- for(i = range_i)
- [
- j + i,
- j + (i + 1) % leng_pts_sect + leng_pts_sect ,
- j + i + leng_pts_sect
- ]
- ]
- );
-
- function search_at(f_sect, p, leng_pts_sect, i = 0) =
- i < leng_pts_sect ?
- (p == f_sect[i] ? i : search_at(f_sect, p, leng_pts_sect, i + 1)) : -1;
-
- function the_same_after_twisting(f_sect, l_sect, leng_pts_sect) =
- let(
- found_at_i = search_at(f_sect, l_sect[0], leng_pts_sect)
- )
- found_at_i <= 0 ? false :
- l_sect == concat(
- [for(i = found_at_i; i < leng_pts_sect; i = i + 1) f_sect[i]],
- [for(i = 0; i < found_at_i; i = i + 1) f_sect[i]]
- );
-
- function to_v_pts(sects) =
- [
- for(sect = sects)
- for(pt = sect)
- pt
- ];
-
- module solid_sections(sects) {
-
- leng_sects = len(sects);
- leng_pts_sect = len(sects[0]);
- first_sect = sects[0];
- last_sect = sects[leng_sects - 1];
-
- v_pts = [
- for(sect = sects)
- for(pt = sect)
- pt
- ];
-
- begin_end_the_same =
- first_sect == last_sect ||
- the_same_after_twisting(first_sect, last_sect, leng_pts_sect);
-
- if(begin_end_the_same) {
- f_idxes = side_indexes(sects);
-
- polyhedron(
- v_pts,
- f_idxes
- );
-
- // hook for testing
- test_polysections_solid(v_pts, f_idxes, triangles);
- } else {
- range_i = [0:leng_pts_sect - 1];
- first_idxes = [for(i = range_i) leng_pts_sect - 1 - i];
- last_idxes = [
- for(i = range_i)
- i + leng_pts_sect * (leng_sects - 1)
- ];
-
- f_idxes = concat([first_idxes], side_indexes(sects), [last_idxes]);
-
- polyhedron(
- v_pts,
- f_idxes
- );
-
- // hook for testing
- test_polysections_solid(v_pts, f_idxes, triangles);
- }
- }
-
- module hollow_sections(sects) {
- leng_sects = len(sects);
- leng_sect = len(sects[0]);
- half_leng_sect = leng_sect / 2;
- half_leng_v_pts = leng_sects * half_leng_sect;
-
- function strip_sects(begin_idx, end_idx) =
- [
- for(i = 0; i < leng_sects; i = i + 1)
- [
- for(j = begin_idx; j <= end_idx; j = j + 1)
- sects[i][j]
- ]
- ];
-
- function first_idxes() =
- [
- for(i = 0; i < half_leng_sect; i = i + 1)
- [
- i,
- i + half_leng_v_pts,
- (i + 1) % half_leng_sect + half_leng_v_pts,
- (i + 1) % half_leng_sect
- ]
- ];
-
- function last_idxes(begin_idx) =
- [
- for(i = 0; i < half_leng_sect; i = i + 1)
- [
- begin_idx + i,
- begin_idx + (i + 1) % half_leng_sect,
- begin_idx + (i + 1) % half_leng_sect + half_leng_v_pts,
- begin_idx + i + half_leng_v_pts
- ]
- ];
-
- outer_sects = strip_sects(0, half_leng_sect - 1);
- inner_sects = strip_sects(half_leng_sect, leng_sect - 1);
-
- outer_v_pts = to_v_pts(outer_sects);
- inner_v_pts = to_v_pts(inner_sects);
-
- outer_idxes = side_indexes(outer_sects);
- inner_idxes = [
- for(idxes = side_indexes(inner_sects, half_leng_v_pts))
- reverse(idxes)
- ];
-
- first_outer_sect = outer_sects[0];
- last_outer_sect = outer_sects[leng_sects - 1];
- first_inner_sect = inner_sects[0];
- last_inner_sect = inner_sects[leng_sects - 1];
-
- leng_pts_sect = len(first_outer_sect);
-
- begin_end_the_same =
- (first_outer_sect == last_outer_sect && first_inner_sect == last_inner_sect) ||
- (
- the_same_after_twisting(first_outer_sect, last_outer_sect, leng_pts_sect) &&
- the_same_after_twisting(first_inner_sect, last_inner_sect, leng_pts_sect)
- );
-
- v_pts = concat(outer_v_pts, inner_v_pts);
-
- if(begin_end_the_same) {
- f_idxes = concat(outer_idxes, inner_idxes);
-
- polyhedron(
- v_pts,
- f_idxes
- );
-
- // hook for testing
- test_polysections_solid(v_pts, f_idxes, triangles);
- } else {
- first_idxes = first_idxes();
- last_idxes = last_idxes(half_leng_v_pts - half_leng_sect);
-
- f_idxes = concat(first_idxes, outer_idxes, inner_idxes, last_idxes);
-
- polyhedron(
- v_pts,
- f_idxes
- );
-
- // hook for testing
- test_polysections_solid(v_pts, f_idxes, triangles);
- }
- }
-
- module triangles_defined_sections() {
- module tri_sections(tri1, tri2) {
- hull() polyhedron(
- points = concat(tri1, tri2),
- faces = [
- [0, 1, 2],
- [3, 5, 4],
- [1, 3, 4], [2, 1, 4], [2, 3, 0],
- [0, 3, 1], [2, 4, 5], [2, 5, 3]
- ]
- );
- }
-
- module two_sections(section1, section2) {
- for(idx = triangles) {
- tri_sections(
- [
- section1[idx[0]],
- section1[idx[1]],
- section1[idx[2]]
- ],
- [
- section2[idx[0]],
- section2[idx[1]],
- section2[idx[2]]
- ]
- );
- }
- }
-
- for(i = [0:len(sections) - 2]) {
- two_sections(
- sections[i],
- sections[i + 1]
- );
- }
- }
-
- if(triangles == "SOLID") {
- solid_sections(sections);
- } else if(triangles == "HOLLOW") {
- hollow_sections(sections);
- }
- else {
- triangles_defined_sections();
- }
-}
-
-// override it to test
-
-module test_polysections_solid(points, faces, triangles) {
-
-}
\ No newline at end of file
diff --git a/src/polytransversals.scad b/src/polytransversals.scad
deleted file mode 100644
index e0cebbd9..00000000
--- a/src/polytransversals.scad
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
-* polytransversals.scad
-*
-* @copyright Justin Lin, 2017
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-polytransversals.html
-*
-**/
-
-use <__comm__/__polytransversals.scad>;
-
-module polytransversals(transversals) {
- echo("polytransversals is deprecated.");
- polygon(
- __polytransversals(transversals)
- );
-}
\ No newline at end of file
diff --git a/src/rotate_p.scad b/src/rotate_p.scad
deleted file mode 100644
index f1990aed..00000000
--- a/src/rotate_p.scad
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
-* rotate_p.scad
-*
-* @copyright Justin Lin, 2017
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-rotate_p.html
-*
-**/
-
-use ;
-
-function rotate_p(point, a, v) =
- let(_ = echo("rotate_p is deprecated: use ptf_rotate instead."))
- _rotate_p_impl(point, a, v);
\ No newline at end of file
diff --git a/src/shape_glued2circles.scad b/src/shape_glued2circles.scad
deleted file mode 100644
index d78df425..00000000
--- a/src/shape_glued2circles.scad
+++ /dev/null
@@ -1,15 +0,0 @@
-
-/**
-* shape_glued2circles.scad
-*
-* @copyright Justin Lin, 2017
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-shape_glued2circles.html
-*
-**/
-
-use <_impl/_shape_glued2circles_impl.scad>;
-
-function shape_glued2circles(radius, centre_dist, tangent_angle = 30, t_step = 0.1) =
- _shape_glued2circles_impl(radius, centre_dist, tangent_angle, t_step);
\ No newline at end of file
diff --git a/src/voronoi2d.scad b/src/voronoi2d.scad
deleted file mode 100644
index 7d307d76..00000000
--- a/src/voronoi2d.scad
+++ /dev/null
@@ -1,57 +0,0 @@
-/**
-* voronoi2d.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi2d.html
-*
-**/
-
-module voronoi2d(points, spacing = 1, r = 0, delta = 0, chamfer = false, region_type = "square") {
- echo("voronoi2d is deprecated: use voronoi/vrn2_from instead.");
-
- xs = [for(p = points) p[0]];
- ys = [for(p = points) abs(p[1])];
-
- region_size = max([(max(xs) - min(xs) / 2), (max(ys) - min(ys)) / 2]);
- half_region_size = 0.5 * region_size;
- offset_leng = spacing * 0.5 + half_region_size;
-
- function normalize(v) = v / norm(v);
-
- module region(pt) {
- intersection_for(p = points) {
- if(pt != p) {
- v = p - pt;
- translate((pt + p) / 2 - normalize(v) * offset_leng)
- rotate(atan2(v[1], v[0]))
- children();
- }
- }
- }
-
- module offseted_region(pt) {
- if(r != 0) {
- offset(r)
- region(pt)
- children();
- }
- else {
- offset(delta = delta, chamfer = chamfer)
- region(pt)
- children();
- }
- }
-
- for(p = points) {
- if(region_type == "square") {
- offseted_region(p)
- square(region_size, center = true);
- }
- else {
- offseted_region(p)
- circle(half_region_size);
- }
- }
-}
\ No newline at end of file
diff --git a/src/voronoi3d.scad b/src/voronoi3d.scad
deleted file mode 100644
index 0fa069d4..00000000
--- a/src/voronoi3d.scad
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
-* voronoi3d.scad
-*
-* @copyright Justin Lin, 2019
-* @license https://opensource.org/licenses/lgpl-3.0.html
-*
-* @see https://openhome.cc/eGossip/OpenSCAD/lib2x-voronoi3d.html
-*
-**/
-
-use <__comm__/__angy_angz.scad>;
-
-// slow but workable
-
-module voronoi3d(points, spacing = 1) {
- echo("voronoi3d is deprecated: use voronoi/vrn3_from instead.");
-
- xs = [for(p = points) p[0]];
- ys = [for(p = points) abs(p[1])];
- zs = [for(p = points) abs(p[2])];
-
- space_size = max([max(xs) - min(xs), max(ys) - min(ys), max(zs) - min(zs)]);
- half_space_size = 0.5 * space_size;
- double_space_size = 2 * space_size;
- offset_leng = (spacing + space_size) * 0.5;
-
- function normalize(v) = v / norm(v);
-
- module space(pt) {
- intersection_for(p = points) {
- if(pt != p) {
- v = p - pt;
- ryz = __angy_angz(p, pt);
-
- translate((pt + p) / 2 - normalize(v) * offset_leng)
- rotate([0, -ryz[0], ryz[1]])
- cube([space_size, double_space_size, double_space_size], center = true);
- }
- }
- }
-
- for(p = points) {
- space(p);
- }
-}
\ No newline at end of file
diff --git a/test/test_all.scad b/test/test_all.scad
index 1acbefcb..90a95c4c 100644
--- a/test/test_all.scad
+++ b/test/test_all.scad
@@ -44,7 +44,6 @@ include ;
include ;
include ;
include ;
-include ;
include ;
include ;
include ;