17 lines
598 B
OpenSCAD
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]));
|
|
};
|