openscad-parts/Stenen_kastje_Ruben/functions.scad

17 lines
598 B
OpenSCAD

// input : list of numbers
// output : sorted list of numbers
function quicksort(arr) = !(len(arr)>0) ? [] : let(
pivot = arr[floor(len(arr)/2)],
lesser = [ for (y = arr) if (y < pivot) y ],
equal = [ for (y = arr) if (y == pivot) y ],
greater = [ for (y = arr) if (y > pivot) y ]
) concat(
quicksort(lesser), equal, quicksort(greater)
);
module cuben(name, size){
cube(size=size, center=false);
// sizes should be ordered biggest to smallest
size_sorted=quicksort(size);
echo(str("#### ", name, ": " , size_sorted[2], "x", size_sorted[1], "x", size_sorted[0]));
};