@mark1russell7/packing 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.d.ts.map +1 -1
- package/build/index.js +80 -25
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/src/maxrects.ts +67 -17
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Item","Sides","ContractMeasureSpec","Direction","SelectLevel","Portfolio","LayoutContainer","LayoutEdge","LayoutInput","ContainerTest","PackHard"],"sources":["../src/vector.ts","../src/rect.ts","../src/order.ts","../src/contract.ts","../src/space.ts","../src/maxrects.ts","../src/shelf.ts","../src/pack.ts","../src/skyline.ts","../src/free.ts","../src/push.ts","../src/metrics.ts","../src/measures.ts","../src/strategy.ts","../src/adapters.ts","../src/convert.ts","../src/registry.ts","../src/portfolio.ts","../src/layout-input.ts","../src/portfolio-cell.ts","../src/portfolio-sets.ts","../src/portfolio-strategy.ts","../src/check.ts","../src/generators.ts","../src/corpus.ts"],"mappings":";;qBACa;;EAIX,YAAY,YAAO;;MAMf;MACA,EAAE;;MAEF;MACA,EAAE;;EAGN,IAAI,WAAW;;EAMf,MAAM,GAAG;;EAMT,IAAI,OAAO,SAAS;;EAKpB;;EAKA,SAAS;;EAKT,MAAM,KAAK,QAAQ,KAAK,SAAS;;SAQ1B,GAAG,iBAAiB;;SAKpB,IAAI,SAAS,WAAW;;SASxB,IAAI,SAAS,WAAW;;aASpB,YAAY;;;qBCxEZ,KAAK;;;EAKhB,KAAK;;EAEL;;EAEA;;EAEA;;;;;EAKA;;MAGI,YAAY;;MAEZ,QAAQ;;EAGZ;;EAEA;;EAGA,WAAW;;EAOX,YAAY,QAAQ;;EAMpB;;SAGO,OAAO,GAAG,OAAO,KAAK,OAAO,KAAK;;SAKlC,SAAS,GAAG,OAAO,KAAK,OAAO,KAAK;;SAKpC,YAAY,GAAG,OAAO,KAAK;;SAK3B,SAAS,GAAG,OAAO,KAAK;;SAKxB,UAAU,GAAG,OAAO,KAAK;;;;;;KC/DtB;;qBAGC,sBAAsB;;wBAGnB,aAAa,OAAO,aAAa,GAAG,GAAG,KAAK,IAAI,GAAG,KAAK;;wBCiBxD,SAAS,MAAM,KAAKA,oBAAkBC;;;;;;;wBAWtC,SAAS,MAAMD,SAAOA;;UC/BrB;WACN;WACA;;;UAIM;WACN;WACA;WACA;WACA;;;;;;;;;;;UAYM;;WAEN;;WAEA;;;;;WAKA;;EAET,KAAK,YAAY,aAAa;;;;;EAK9B,OAAO,YAAY,YAAY,gBAAgB;;EAE/C,KAAK,MAAM;;EAEX,KAAK,WAAW,WAAW,YAAY;;;;;EAKvC,MAAM,YAAY,YAAY;;;;;;wBAmWhB,UAAU,OAAO,YAAY;;;;;;;;;;qBCzYhC;;KAGD,uBAAuB;;qBAGtB;;UAGI;;EAEf,YAAY;;;;;EAKZ,QAAQ;;EAER,OAAO;;;;;;EAMP;;EAEA,WAAW;;;;;EAKX,SAAS;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["Item","Sides","ContractMeasureSpec","Direction","SelectLevel","Portfolio","LayoutContainer","LayoutEdge","LayoutInput","ContainerTest","PackHard"],"sources":["../src/vector.ts","../src/rect.ts","../src/order.ts","../src/contract.ts","../src/space.ts","../src/maxrects.ts","../src/shelf.ts","../src/pack.ts","../src/skyline.ts","../src/free.ts","../src/push.ts","../src/metrics.ts","../src/measures.ts","../src/strategy.ts","../src/adapters.ts","../src/convert.ts","../src/registry.ts","../src/portfolio.ts","../src/layout-input.ts","../src/portfolio-cell.ts","../src/portfolio-sets.ts","../src/portfolio-strategy.ts","../src/check.ts","../src/generators.ts","../src/corpus.ts"],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -868,14 +868,18 @@ function inside(a, b) {
|
|
|
868
868
|
function cut(free, b, minW, minH) {
|
|
869
869
|
const kept = [];
|
|
870
870
|
const parts = [];
|
|
871
|
+
const sides = [];
|
|
871
872
|
let hits = 0;
|
|
872
|
-
const add = (x0, y0, x1, y1) => {
|
|
873
|
-
if (x1 - x0 >= minW && y1 - y0 >= minH)
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
873
|
+
const add = (side, x0, y0, x1, y1) => {
|
|
874
|
+
if (x1 - x0 >= minW && y1 - y0 >= minH) {
|
|
875
|
+
parts.push({
|
|
876
|
+
x0,
|
|
877
|
+
y0,
|
|
878
|
+
x1,
|
|
879
|
+
y1
|
|
880
|
+
});
|
|
881
|
+
sides.push(side);
|
|
882
|
+
}
|
|
879
883
|
};
|
|
880
884
|
for (const f of free) {
|
|
881
885
|
if (b.x0 >= f.x1 || b.x1 <= f.x0 || b.y0 >= f.y1 || b.y1 <= f.y0) {
|
|
@@ -883,21 +887,54 @@ function cut(free, b, minW, minH) {
|
|
|
883
887
|
continue;
|
|
884
888
|
}
|
|
885
889
|
hits++;
|
|
886
|
-
if (b.x0 > f.x0) add(f.x0, f.y0, b.x0, f.y1);
|
|
887
|
-
if (b.x1 < f.x1) add(b.x1, f.y0, f.x1, f.y1);
|
|
888
|
-
if (b.y0 > f.y0) add(f.x0, f.y0, f.x1, b.y0);
|
|
889
|
-
if (b.y1 < f.y1) add(f.x0, b.y1, f.x1, f.y1);
|
|
890
|
+
if (b.x0 > f.x0) add(0, f.x0, f.y0, b.x0, f.y1);
|
|
891
|
+
if (b.x1 < f.x1) add(1, b.x1, f.y0, f.x1, f.y1);
|
|
892
|
+
if (b.y0 > f.y0) add(2, f.x0, f.y0, f.x1, b.y0);
|
|
893
|
+
if (b.y1 < f.y1) add(3, f.x0, b.y1, f.x1, f.y1);
|
|
894
|
+
}
|
|
895
|
+
if (parts.length === 0) return {
|
|
896
|
+
free: kept,
|
|
897
|
+
hits
|
|
898
|
+
};
|
|
899
|
+
const near = [
|
|
900
|
+
[],
|
|
901
|
+
[],
|
|
902
|
+
[],
|
|
903
|
+
[]
|
|
904
|
+
];
|
|
905
|
+
for (const k of kept) {
|
|
906
|
+
if (k.x1 === b.x0) near[0].push(k);
|
|
907
|
+
if (k.x0 === b.x1) near[1].push(k);
|
|
908
|
+
if (k.y1 === b.y0) near[2].push(k);
|
|
909
|
+
if (k.y0 === b.y1) near[3].push(k);
|
|
910
|
+
}
|
|
911
|
+
const order = parts.map((_, i) => i).sort((i, j) => byExtent(parts[i], parts[j]) || i - j);
|
|
912
|
+
const gone = new Uint8Array(parts.length);
|
|
913
|
+
const stay = [
|
|
914
|
+
[],
|
|
915
|
+
[],
|
|
916
|
+
[],
|
|
917
|
+
[]
|
|
918
|
+
];
|
|
919
|
+
for (const i of order) {
|
|
920
|
+
const p = parts[i];
|
|
921
|
+
const own = stay[sides[i]];
|
|
922
|
+
let drop = false;
|
|
923
|
+
for (const q of own) if (inside(p, q)) {
|
|
924
|
+
drop = true;
|
|
925
|
+
break;
|
|
926
|
+
}
|
|
927
|
+
if (drop) gone[i] = 1;
|
|
928
|
+
else own.push(p);
|
|
890
929
|
}
|
|
891
|
-
const count = kept.length;
|
|
892
930
|
for (let i = 0; i < parts.length; i++) {
|
|
931
|
+
if (gone[i] === 1) continue;
|
|
893
932
|
const p = parts[i];
|
|
894
933
|
let drop = false;
|
|
895
|
-
for (
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
if (inside(p, q) && (j < i || !inside(q, p))) drop = true;
|
|
934
|
+
for (const k of near[sides[i]]) if (inside(p, k)) {
|
|
935
|
+
drop = true;
|
|
936
|
+
break;
|
|
899
937
|
}
|
|
900
|
-
for (let k = 0; k < count && !drop; k++) if (inside(p, kept[k])) drop = true;
|
|
901
938
|
if (!drop) kept.push(p);
|
|
902
939
|
}
|
|
903
940
|
return {
|
|
@@ -905,6 +942,17 @@ function cut(free, b, minW, minH) {
|
|
|
905
942
|
hits
|
|
906
943
|
};
|
|
907
944
|
}
|
|
945
|
+
/**
|
|
946
|
+
* This function orders two boxes. The smaller `x0` comes first, then the smaller `y0`, then the larger `x1`, then the
|
|
947
|
+
* larger `y1`. Thus a box comes before each other box in it.
|
|
948
|
+
*/
|
|
949
|
+
function byExtent(a, b) {
|
|
950
|
+
if (a.x0 !== b.x0) return a.x0 < b.x0 ? -1 : 1;
|
|
951
|
+
if (a.y0 !== b.y0) return a.y0 < b.y0 ? -1 : 1;
|
|
952
|
+
if (a.x1 !== b.x1) return a.x1 > b.x1 ? -1 : 1;
|
|
953
|
+
if (a.y1 !== b.y1) return a.y1 > b.y1 ? -1 : 1;
|
|
954
|
+
return 0;
|
|
955
|
+
}
|
|
908
956
|
/** This function adds a range to the edges at a coordinate. */
|
|
909
957
|
function addEdge(edges, at, a, b) {
|
|
910
958
|
const list = edges.get(at);
|
|
@@ -1109,22 +1157,29 @@ function runMaxRects(rects, outer, options = {}) {
|
|
|
1109
1157
|
s1 = -contact(f.x0, f.y0, bw, bh);
|
|
1110
1158
|
s2 = f.y0 + bh;
|
|
1111
1159
|
}
|
|
1112
|
-
const
|
|
1160
|
+
const x = f.x0;
|
|
1161
|
+
const y = f.y0;
|
|
1162
|
+
if (best === void 0 || s1 < best.s1 || s1 === best.s1 && (s2 < best.s2 || s2 === best.s2 && (y < best.y || y === best.y && x < best.x))) best = {
|
|
1113
1163
|
index: i,
|
|
1114
1164
|
turn: t === 1,
|
|
1115
|
-
x
|
|
1116
|
-
y
|
|
1165
|
+
x,
|
|
1166
|
+
y,
|
|
1117
1167
|
w: bw,
|
|
1118
1168
|
h: bh,
|
|
1119
1169
|
s1,
|
|
1120
1170
|
s2
|
|
1121
1171
|
};
|
|
1122
|
-
if (
|
|
1123
|
-
const ly =
|
|
1124
|
-
if (low === void 0 || ly < low.s1 || ly === low.s1 &&
|
|
1125
|
-
|
|
1172
|
+
if (rule === "bl") continue;
|
|
1173
|
+
const ly = y + bh;
|
|
1174
|
+
if (low === void 0 || ly < low.s1 || ly === low.s1 && x < low.s2) low = {
|
|
1175
|
+
index: i,
|
|
1176
|
+
turn: t === 1,
|
|
1177
|
+
x,
|
|
1178
|
+
y,
|
|
1179
|
+
w: bw,
|
|
1180
|
+
h: bh,
|
|
1126
1181
|
s1: ly,
|
|
1127
|
-
s2:
|
|
1182
|
+
s2: x
|
|
1128
1183
|
};
|
|
1129
1184
|
}
|
|
1130
1185
|
}
|