for gyroid, this is even a bit faster
This commit is contained in:
parent
337dea86f7
commit
04576e0f04
1 changed files with 4 additions and 20 deletions
|
|
@ -111,22 +111,9 @@ function fillGyroid(target) {
|
||||||
let tile_z = 1 / tile;
|
let tile_z = 1 / tile;
|
||||||
let gyroid = base.gyroid.slice(target.zValue() * tile_z, (1 - density) * 500);
|
let gyroid = base.gyroid.slice(target.zValue() * tile_z, (1 - density) * 500);
|
||||||
|
|
||||||
// gyroid.polys.forEach(poly => {
|
|
||||||
// for (let tx=0; tx<=tile_x; tx++) {
|
|
||||||
// for (let ty=0; ty<=tile_y; ty++) {
|
|
||||||
// target.newline();
|
|
||||||
// let bx = tx * tile + bounds.min.x;
|
|
||||||
// let by = ty * tile + bounds.min.y;
|
|
||||||
// poly.forEach(point => {
|
|
||||||
// target.emit(bx + point.x * tile, by + point.y * tile);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// });
|
|
||||||
let polys = [];
|
let polys = [];
|
||||||
if (gyroid.dir == 'lr') {
|
if (gyroid.dir == 'lr') {
|
||||||
for (let ty=0; ty<=tile_y; ty++) {
|
for (let ty=0; ty<=tile_y; ty++) {
|
||||||
let temp = [];
|
|
||||||
for (let tx=0; tx<=tile_x; tx++) {
|
for (let tx=0; tx<=tile_x; tx++) {
|
||||||
for (let poly of gyroid.polys) {
|
for (let poly of gyroid.polys) {
|
||||||
target.newline();
|
target.newline();
|
||||||
|
|
@ -137,15 +124,13 @@ function fillGyroid(target) {
|
||||||
z: 0
|
z: 0
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
temp.push(base.newPolygon().setOpen(true).addObj(points));
|
polys.push(base.newPolygon().setOpen(true).addObj(points));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
polys.appendAll(connectOpenPolys(temp));
|
polys = connectOpenPolys(polys);
|
||||||
// console.log(gyroid.dir, temp.length);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (let tx=0; tx<=tile_x; tx++) {
|
for (let tx=0; tx<=tile_x; tx++) {
|
||||||
let temp = [];
|
|
||||||
for (let ty=0; ty<=tile_y; ty++) {
|
for (let ty=0; ty<=tile_y; ty++) {
|
||||||
for (let poly of gyroid.polys) {
|
for (let poly of gyroid.polys) {
|
||||||
target.newline();
|
target.newline();
|
||||||
|
|
@ -156,13 +141,12 @@ function fillGyroid(target) {
|
||||||
z: 0
|
z: 0
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
temp.push(base.newPolygon().setOpen(true).addObj(points));
|
polys.push(base.newPolygon().setOpen(true).addObj(points));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
polys.appendAll(connectOpenPolys(temp));
|
polys = connectOpenPolys(polys);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
polys = connectOpenPolys(polys);
|
|
||||||
for (let poly of polys.filter(p => p.perimeter() > 2)) {
|
for (let poly of polys.filter(p => p.perimeter() > 2)) {
|
||||||
target.newline();
|
target.newline();
|
||||||
for (let point of poly.points) {
|
for (let point of poly.points) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue