From b0309c4912e6c4281c6f16e00cc44f8a310ca3a4 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Fri, 8 Jan 2021 11:52:17 +0800 Subject: [PATCH] elaborate 1020 --- src/_impl/_contours_impl.scad | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/src/_impl/_contours_impl.scad b/src/_impl/_contours_impl.scad index 96c4fe35..4c153f8f 100644 --- a/src/_impl/_contours_impl.scad +++ b/src/_impl/_contours_impl.scad @@ -1152,25 +1152,47 @@ function _case1020_isobands(cell_pts, lower, upper) = center_p_z < lower ? [ [ interpolated_pt(cell_pts[0], cell_pts[1], lower), + interpolated_pt(cell_pts[1], center_p, lower), interpolated_pt(cell_pts[1], cell_pts[2], lower), [cell_pts[1][0], cell_pts[1][1], cell_pts[1][2]] ], [ interpolated_pt(cell_pts[0], cell_pts[3], lower), interpolated_pt(cell_pts[0], cell_pts[3], upper), + interpolated_pt(cell_pts[3], center_p, upper), interpolated_pt(cell_pts[2], cell_pts[3], upper), - interpolated_pt(cell_pts[2], cell_pts[3], lower) + interpolated_pt(cell_pts[2], cell_pts[3], lower), + interpolated_pt(cell_pts[3], center_p, lower) ] - ] : [ + ] : + center_p_z >= lower && center_p_z <= upper ? [ [ interpolated_pt(cell_pts[0], cell_pts[3], lower), interpolated_pt(cell_pts[0], cell_pts[3], upper), + interpolated_pt(cell_pts[3], center_p, upper), interpolated_pt(cell_pts[2], cell_pts[3], upper), interpolated_pt(cell_pts[2], cell_pts[3], lower), + interpolated_pt(cell_pts[2], center_p, lower), interpolated_pt(cell_pts[1], cell_pts[2], lower), [cell_pts[1][0], cell_pts[1][1], cell_pts[1][2]], - interpolated_pt(cell_pts[0], cell_pts[1], lower) + interpolated_pt(cell_pts[0], cell_pts[1], lower), + interpolated_pt(cell_pts[0], center_p, lower) ] + ] : [ + [ + [cell_pts[1][0], cell_pts[1][1], cell_pts[1][2]], + interpolated_pt(cell_pts[0], cell_pts[1], lower), + interpolated_pt(cell_pts[0], center_p, lower), + interpolated_pt(cell_pts[0], cell_pts[3], lower), + interpolated_pt(cell_pts[0], cell_pts[3], upper), + interpolated_pt(cell_pts[0], center_p, upper), + interpolated_pt(cell_pts[1], center_p, upper), + interpolated_pt(cell_pts[2], center_p, upper), + interpolated_pt(cell_pts[2], cell_pts[3], upper), + interpolated_pt(cell_pts[2], cell_pts[3], lower), + interpolated_pt(cell_pts[2], center_p, lower), + interpolated_pt(cell_pts[1], cell_pts[2], lower) + ] ]; function _case0212_isobands(cell_pts, lower, upper) =