diff --git a/src/experimental/_impl/_lsystem2_impl.scad b/src/experimental/_impl/_lsystem2_impl.scad index 867c72c8..979120c4 100644 --- a/src/experimental/_impl/_lsystem2_impl.scad +++ b/src/experimental/_impl/_lsystem2_impl.scad @@ -10,23 +10,23 @@ function _join(strs) = let(leng = len(strs)) [for(i = 0, s = strs[0]; i < leng; i = i + 1, s = str(s, strs[i])) s][leng - 1]; -function c_or_v(c, v, rand_n, rule, derived_pr, leng, i = 0) = +function c_or_v(c, v, rand_n, rule, rule_pr, leng, i = 0) = i == leng ? c : ( let(idx = search([v[i]], rule, num_returns_per_match=0, index_col_num = 1)[0][0]) - rand_n < derived_pr[idx - 1] ? v[i] : c_or_v(c, v, rand_n, rule, derived_pr, leng, i + 1) + rand_n < rule_pr[idx - 1] ? v[i] : c_or_v(c, v, rand_n, rule, rule_pr, leng, i + 1) ); -function _derive1_p(base, rule, derived_pr) = +function _derive1_p(base, rule, rule_pr) = let(rand_n = rands(0, 1, 1)[0]) _join([ for(c = base) let(v = [for(r = rule) if(r[0] == c) r[1]]) v == [] ? c : - c_or_v(c, v, rand_n, rule, derived_pr, len(v)) + c_or_v(c, v, rand_n, rule, rule_pr, len(v)) ]); -function _derive_p(base, rule, derived_pr, n, i = 0) = - i == n ? base : _derive_p(_derive1_p(base, rule, derived_pr), rule, derived_pr, n, i + 1); +function _derive_p(base, rule, rule_pr, n, i = 0) = + i == n ? base : _derive_p(_derive1_p(base, rule, rule_pr), rule, rule_pr, n, i + 1); function _derive1(base, rule) = _join([ for(c = base) @@ -37,10 +37,10 @@ function _derive1(base, rule) = _join([ function _derive(base, rule, n, i = 0) = i == n ? base : _derive(_derive1(base, rule), rule, n, i + 1); -function _lsystem2_derive(rule, n, derived_pr) = +function _lsystem2_derive(rule, n, rule_pr) = let(base = assoc_lookup(rule, "S")) - is_undef(derived_pr) ? _derive(base, rule, n) : - _derive_p(base, rule, derived_pr, n); + is_undef(rule_pr) ? _derive(base, rule, n) : + _derive_p(base, rule, rule_pr, n); function _next_stack(t, code, stack) = code == "[" ? concat([t], stack) : diff --git a/src/experimental/lsystem2.scad b/src/experimental/lsystem2.scad index 573fc99b..543ef8fb 100644 --- a/src/experimental/lsystem2.scad +++ b/src/experimental/lsystem2.scad @@ -1,9 +1,9 @@ use ; use ; -function lsystem2(rule, n, angle, leng = 1, heading = 0, start = [0, 0], forward_chars = "F", derived_pr) = +function lsystem2(rule, n, angle, leng = 1, heading = 0, start = [0, 0], forward_chars = "F", rule_pr) = let( - derived = _lsystem2_derive(rule, n, derived_pr), + derived = _lsystem2_derive(rule, n, rule_pr), codes = forward_chars == "F" ? derived : _join([ for(c = derived) let(idx = search(c, forward_chars))