From b160f126d81e4f0702372e110263cde7ca9fd19a Mon Sep 17 00:00:00 2001 From: Revar Desmera Date: Fri, 7 Jul 2023 19:21:59 -0700 Subject: [PATCH] Added color_overlaps() --- color.scad | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/color.scad b/color.scad index 5338728..3c6a51b 100644 --- a/color.scad +++ b/color.scad @@ -123,6 +123,45 @@ module rainbow(list, stride=1, maxhues, shuffle=false, seed) } +// Module: color_overlaps() +// Synopsis: Shows ghostly children, with overlaps highlighted in color. +// SynTags: Trans +// Topics: Debugging +// See Also: rainbow(), debug_vnf() +// Usage: +// color_overlaps([color]) CHILDREN; +// Description: +// Displays the given children in ghostly transparent gray, while the places where the +// they overlap are highlighted with the given color. +// Arguments: +// color = The color to highlight overlaps with. Default: "red" +// Example(2D): 2D Overlaps +// color_overlaps() { +// circle(d=50); +// left(20) circle(d=50); +// right(20) circle(d=50); +// } +// Example(): 3D Overlaps +// color_overlaps() { +// cuboid(50); +// left(30) sphere(d=50); +// right(30) sphere(d=50); +// xcyl(d=10,l=120); +// } +module color_overlaps(color="red") { + pairs = [for (i=[0:1:$children-1], j=[i+1:1:$children-1]) [i,j]]; + for (p = pairs) { + color(color) { + intersection() { + children(p.x); + children(p.y); + } + } + } + %children(); +} + + // Section: Colorspace Conversion // Function&Module: hsl()