fix: cells ids can go over UINT16_MAX (v1.97.11)

This commit is contained in:
Azgaar 2024-05-27 11:24:57 +02:00
parent 97ea5a5472
commit 79168d35a4

10
main.js
View file

@ -1196,11 +1196,6 @@ function reGraph() {
newCells.h.push(height);
}
function getCellArea(i) {
const area = Math.abs(d3.polygonArea(getPackPolygon(i)));
return Math.min(area, UINT16_MAX);
}
const {cells: packCells, vertices} = calculateVoronoi(newCells.p, grid.boundary);
pack.vertices = vertices;
pack.cells = packCells;
@ -1208,7 +1203,10 @@ function reGraph() {
pack.cells.g = createTypedArray({maxValue: grid.points.length, from: newCells.g});
pack.cells.q = d3.quadtree(newCells.p.map(([x, y], i) => [x, y, i]));
pack.cells.h = createTypedArray({maxValue: 100, from: newCells.h});
pack.cells.area = createTypedArray({maxValue: UINT32_MAX, from: pack.cells.i}).map(getCellArea);
pack.cells.area = createTypedArray({maxValue: UINT16_MAX, length: packCells.i.length}).map((_, cellId) => {
const area = Math.abs(d3.polygonArea(getPackPolygon(cellId)));
return Math.min(area, UINT16_MAX);
});
TIME && console.timeEnd("reGraph");
}