fractalScene = {
let scene = loadedScene.clone();
let matrices = [];
for (let tetra of scene.children) {
if (tetra.name.substring(0,4) === "copy") {
matrices.push(tetra.matrix);
}
}
for (let level = 1; level < maxLevel+1; ++level) {
let old_tetras = [];
let new_tetras = [];
for (let tetra of scene.children) {
if (tetra.name.substring(0,4) === "copy") {
old_tetras.push(tetra);
for (let matrix of matrices) {
let t = tetra.clone();
if (level > colorLevel)
t.matrix.multiplyMatrices(t.matrix, matrix);
else
t.matrix.multiplyMatrices(matrix, t.matrix);
t.matrixAutoUpdate = false;
new_tetras.push(t);
}
}
}
for (let t of old_tetras) scene.remove(t);
for (let t of new_tetras) scene.add(t);
}
return scene
}