mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-19 13:01:37 +02:00
refactor
This commit is contained in:
@@ -4,12 +4,12 @@ use <../../util/sorted.scad>;
|
|||||||
_key = function(elem) elem[2];
|
_key = function(elem) elem[2];
|
||||||
|
|
||||||
function _neighbors(fcord, seed, grid_w) =
|
function _neighbors(fcord, seed, grid_w) =
|
||||||
let(range = [-1:1])
|
let(range = [-1:1], fx = fcord.x, fy = fcord.y)
|
||||||
[
|
[
|
||||||
for(y = range, x = range)
|
for(y = range, x = range)
|
||||||
let(
|
let(
|
||||||
nx = fcord.x + x,
|
nx = fx + x,
|
||||||
ny = fcord.y + y,
|
ny = fy + y,
|
||||||
sd_base = abs(nx + ny * grid_w),
|
sd_base = abs(nx + ny * grid_w),
|
||||||
sd1 = _lookup_noise_table(seed + sd_base),
|
sd1 = _lookup_noise_table(seed + sd_base),
|
||||||
sd2 = _lookup_noise_table(sd1 * 255 + sd_base),
|
sd2 = _lookup_noise_table(sd1 * 255 + sd_base),
|
||||||
@@ -29,15 +29,14 @@ function _nz_worley2_classic(p, nbrs, dist) =
|
|||||||
|
|
||||||
function _nz_worley2_border(p, nbrs) =
|
function _nz_worley2_border(p, nbrs) =
|
||||||
let(
|
let(
|
||||||
cells = [
|
cells = [for(nbr = nbrs) [each nbr, norm(nbr - p)]],
|
||||||
for(nbr = nbrs)
|
|
||||||
[each nbr, norm(nbr - p)]
|
|
||||||
],
|
|
||||||
sorted_cells = sorted(cells, key = _key),
|
sorted_cells = sorted(cells, key = _key),
|
||||||
a = [sorted_cells[0].x, sorted_cells[0].y],
|
fst = sorted_cells[0],
|
||||||
m = (a + [sorted_cells[1].x, sorted_cells[1].y]) / 2
|
snd = orted_cells[1],
|
||||||
|
a = [fst.x, fst.y],
|
||||||
|
m = (a + [snd.x, snd.y]) / 2
|
||||||
)
|
)
|
||||||
[a[0], a[1], (p - m) * (a - m)];
|
[fst.x, fst.y, (p - m) * (a - m)];
|
||||||
|
|
||||||
function _nz_worley2(p, seed, grid_w, dist) =
|
function _nz_worley2(p, seed, grid_w, dist) =
|
||||||
let(
|
let(
|
||||||
|
@@ -4,14 +4,14 @@ use <../../util/sorted.scad>;
|
|||||||
_key = function(elem) elem[3];
|
_key = function(elem) elem[3];
|
||||||
|
|
||||||
function _neighbors(fcord, seed, grid_w) =
|
function _neighbors(fcord, seed, grid_w) =
|
||||||
let(range = [-1:1])
|
let(range = [-1:1], fx = fcord.x, fy = fcord.y, fz = fcord.z)
|
||||||
[
|
[
|
||||||
for(z = range, y = range, x = range)
|
for(z = range, y = range, x = range)
|
||||||
let(
|
let(
|
||||||
nx = fcord.x + x,
|
nx = fx + x,
|
||||||
ny = fcord.y + y,
|
ny = fy + y,
|
||||||
nz = fcord.z + z,
|
nz = fz + z,
|
||||||
sd_base = abs(nx + ny * grid_w + nz * grid_w * grid_w),
|
sd_base = abs(nx + ny * grid_w + nz * grid_w ^ 2),
|
||||||
sd1 = _lookup_noise_table(seed + sd_base),
|
sd1 = _lookup_noise_table(seed + sd_base),
|
||||||
sd2 = _lookup_noise_table(sd1 * 255 + sd_base),
|
sd2 = _lookup_noise_table(sd1 * 255 + sd_base),
|
||||||
sd3 = _lookup_noise_table(sd2 * 255 + sd_base),
|
sd3 = _lookup_noise_table(sd2 * 255 + sd_base),
|
||||||
@@ -31,15 +31,14 @@ function _nz_worley3_classic(p, nbrs, dist) =
|
|||||||
|
|
||||||
function _nz_worley3_border(p, nbrs) =
|
function _nz_worley3_border(p, nbrs) =
|
||||||
let(
|
let(
|
||||||
cells = [
|
cells = [for(nbr = nbrs) [each nbr, norm(nbr - p)]],
|
||||||
for(nbr = nbrs)
|
|
||||||
[each nbr, norm(nbr - p)]
|
|
||||||
],
|
|
||||||
sorted_cells = sorted(cells, key = _key),
|
sorted_cells = sorted(cells, key = _key),
|
||||||
a = [sorted_cells[0].x, sorted_cells[0].y, sorted_cells[0].z],
|
fst = sorted_cells[0],
|
||||||
m = (a + [sorted_cells[1].x, sorted_cells[1].y, sorted_cells[1].z]) / 2
|
snd = sorted_cells[1],
|
||||||
|
a = [fst.x, fst.y, fst.z],
|
||||||
|
m = (a + [snd.x, snd.y, snd.z]) / 2
|
||||||
)
|
)
|
||||||
[a[0], a[1], a[2], (p - m) * (a - m)];
|
[fst.x, fst.y, fst.z, (p - m) * (a - m)];
|
||||||
|
|
||||||
function _nz_worley3(p, seed, grid_w, dist) =
|
function _nz_worley3(p, seed, grid_w, dist) =
|
||||||
let(
|
let(
|
||||||
|
Reference in New Issue
Block a user