From 5d4eec1ad865f893aec56e3c6980ba539325bef9 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Fri, 8 Jan 2021 12:11:01 +0800 Subject: [PATCH] elaborate 2010 --- src/_impl/_contours_impl.scad | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/_impl/_contours_impl.scad b/src/_impl/_contours_impl.scad index b4b2fda0..46503c65 100644 --- a/src/_impl/_contours_impl.scad +++ b/src/_impl/_contours_impl.scad @@ -1254,25 +1254,47 @@ function _case2010_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), interpolated_pt(cell_pts[1], cell_pts[2], upper), + interpolated_pt(cell_pts[1], center_p, upper), interpolated_pt(cell_pts[0], cell_pts[1], upper) ], [ + interpolated_pt(cell_pts[3], center_p, lower), interpolated_pt(cell_pts[0], cell_pts[3], lower), [cell_pts[3][0], cell_pts[3][1], cell_pts[3][2]], interpolated_pt(cell_pts[2], cell_pts[3], lower) ] - ] : [ + ] : + center_p_z >= lower && center_p_z <= upper ? [ [ interpolated_pt(cell_pts[0], cell_pts[3], lower), [cell_pts[3][0], cell_pts[3][1], cell_pts[3][2]], 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), interpolated_pt(cell_pts[1], cell_pts[2], upper), + interpolated_pt(cell_pts[1], center_p, upper), interpolated_pt(cell_pts[0], cell_pts[1], upper), - 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) ] + ] : [ + [ + interpolated_pt(cell_pts[0], cell_pts[1], upper), + 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), + [cell_pts[3][0], cell_pts[3][1], cell_pts[3][2]], + 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), + interpolated_pt(cell_pts[1], cell_pts[2], upper), + interpolated_pt(cell_pts[2], center_p, upper), + interpolated_pt(cell_pts[3], center_p, upper), + interpolated_pt(cell_pts[0], center_p, upper) + ] ]; function _isobands_of(cell_pts, lower, upper) =