function extrude_shape(xf, shape, n) {
if (n == null) n = 1;
let new_part = shape;
let old_line_base = 0;
for (let ii = 0; ii < n; ii++) {
new_part = xform_shape(xf, new_part);
let shape_length = shape[0].length;
let new_line_base = shape[1].length;
augment(shape, new_part);
var new_part_length = new_part[0].length;
for (let jj = 0; jj < new_part_length; jj++) {
shape[1].push([shape_length + jj - new_part_length, shape_length + jj]);
}
var nlines = new_part[1].length;
for (let jj = 0; jj < nlines; jj++) {
const old_line = shape[1][old_line_base + jj];
const new_line = shape[1][new_line_base + jj];
shape[2].push([old_line[0], old_line[1], new_line[0]]);
shape[2].push([new_line[1], new_line[0], old_line[1]]);
}
old_line_base = new_line_base;
}
}