mirror of
https://github.com/JustinSDK/dotSCAD.git
synced 2025-08-15 11:14:17 +02:00
refactor
This commit is contained in:
@@ -15,12 +15,14 @@ module polysections(sections, triangles = "SOLID") {
|
|||||||
function side_indexes(sects, begin_idx = 0) =
|
function side_indexes(sects, begin_idx = 0) =
|
||||||
let(
|
let(
|
||||||
leng_sects = len(sects),
|
leng_sects = len(sects),
|
||||||
leng_pts_sect = len(sects[0])
|
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(
|
concat(
|
||||||
[
|
[
|
||||||
for(j = [begin_idx:leng_pts_sect:begin_idx + (leng_sects - 2) * leng_pts_sect])
|
for(j = range_j)
|
||||||
for(i = [0:leng_pts_sect - 1])
|
for(i = range_i)
|
||||||
[
|
[
|
||||||
j + i,
|
j + i,
|
||||||
j + (i + 1) % leng_pts_sect,
|
j + (i + 1) % leng_pts_sect,
|
||||||
@@ -28,8 +30,8 @@ module polysections(sections, triangles = "SOLID") {
|
|||||||
]
|
]
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
for(j = [begin_idx:leng_pts_sect:begin_idx + (leng_sects - 2) * leng_pts_sect])
|
for(j = range_j)
|
||||||
for(i = [0:leng_pts_sect - 1])
|
for(i = range_i)
|
||||||
[
|
[
|
||||||
j + i,
|
j + i,
|
||||||
j + (i + 1) % leng_pts_sect + leng_pts_sect ,
|
j + (i + 1) % leng_pts_sect + leng_pts_sect ,
|
||||||
@@ -48,8 +50,8 @@ module polysections(sections, triangles = "SOLID") {
|
|||||||
)
|
)
|
||||||
found_at_i <= 0 ? false :
|
found_at_i <= 0 ? false :
|
||||||
l_sect == concat(
|
l_sect == concat(
|
||||||
[for(i = [found_at_i:leng_pts_sect-1]) f_sect[i]],
|
[for(i = found_at_i; i < leng_pts_sect; i = i + 1) f_sect[i]],
|
||||||
[for(i = [0:found_at_i - 1]) f_sect[i]]
|
[for(i = 0; i < found_at_i; i = i + 1) f_sect[i]]
|
||||||
);
|
);
|
||||||
|
|
||||||
function to_v_pts(sects) =
|
function to_v_pts(sects) =
|
||||||
@@ -87,9 +89,10 @@ module polysections(sections, triangles = "SOLID") {
|
|||||||
// hook for testing
|
// hook for testing
|
||||||
test_polysections_solid(v_pts, f_idxes);
|
test_polysections_solid(v_pts, f_idxes);
|
||||||
} else {
|
} else {
|
||||||
first_idxes = [for(i = [0:leng_pts_sect - 1]) leng_pts_sect - 1 - i];
|
range_i = [0:leng_pts_sect - 1];
|
||||||
|
first_idxes = [for(i = range_i) leng_pts_sect - 1 - i];
|
||||||
last_idxes = [
|
last_idxes = [
|
||||||
for(i = [0:leng_pts_sect - 1])
|
for(i = range_i)
|
||||||
i + leng_pts_sect * (leng_sects - 1)
|
i + leng_pts_sect * (leng_sects - 1)
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -113,16 +116,16 @@ module polysections(sections, triangles = "SOLID") {
|
|||||||
|
|
||||||
function strip_sects(begin_idx, end_idx) =
|
function strip_sects(begin_idx, end_idx) =
|
||||||
[
|
[
|
||||||
for(i = [0:leng_sects - 1])
|
for(i = 0; i < leng_sects; i = i + 1)
|
||||||
[
|
[
|
||||||
for(j = [begin_idx:end_idx])
|
for(j = begin_idx; j <= end_idx; j = j + 1)
|
||||||
sects[i][j]
|
sects[i][j]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
function first_idxes() =
|
function first_idxes() =
|
||||||
[
|
[
|
||||||
for(i = [0:half_leng_sect - 1])
|
for(i = 0; i < half_leng_sect; i = i + 1)
|
||||||
[
|
[
|
||||||
i,
|
i,
|
||||||
i + half_leng_v_pts,
|
i + half_leng_v_pts,
|
||||||
@@ -133,7 +136,7 @@ module polysections(sections, triangles = "SOLID") {
|
|||||||
|
|
||||||
function last_idxes(begin_idx) =
|
function last_idxes(begin_idx) =
|
||||||
[
|
[
|
||||||
for(i = [0:half_leng_sect - 1])
|
for(i = 0; i < half_leng_sect; i = i + 1)
|
||||||
[
|
[
|
||||||
begin_idx + i,
|
begin_idx + i,
|
||||||
begin_idx + (i + 1) % half_leng_sect,
|
begin_idx + (i + 1) % half_leng_sect,
|
||||||
|
Reference in New Issue
Block a user