flo-mat 4.1.2 → 4.1.3
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/__tests__/get-mats1.ts +23 -22
- package/browser/index.js +4 -3
- package/browser/index.min.js +1 -1
- package/node/cp-node/stringification/from-stringifyable.js +2 -1
- package/node/cp-node/stringification/from-stringifyable.js.map +1 -1
- package/node/cp-node/stringification/to-stringifyable.js +2 -2
- package/node/cp-node/stringification/to-stringifyable.js.map +1 -1
- package/package.json +4 -4
- package/src/cp-node/stringification/from-stringifyable.ts +2 -1
- package/src/cp-node/stringification/to-stringifyable.ts +2 -2
|
@@ -3,6 +3,7 @@ import { loopFromStringifyable } from './loop-from-stringifyable.js';
|
|
|
3
3
|
function fromStringifyable(cpNodesStringifyable) {
|
|
4
4
|
const { cpNodes: _cpNodes, loops: _loops } = cpNodesStringifyable;
|
|
5
5
|
const loops = _loops.map(loopFromStringifyable);
|
|
6
|
+
const loopsByIdx = new Map(loops.map(loop => [loop.idx, loop]));
|
|
6
7
|
//--------------------------------------------------------------------------
|
|
7
8
|
// First pass: build all CpNode objects with proper `cp`.
|
|
8
9
|
// Edges still hold number ids at this point.
|
|
@@ -11,7 +12,7 @@ function fromStringifyable(cpNodesStringifyable) {
|
|
|
11
12
|
const { id, pointOnShape, isHoleClosing, isIntersection } = cpNode_;
|
|
12
13
|
const { circle, order, order2 } = pointOnShape;
|
|
13
14
|
const { curveIdx, loopIdx, p, pDd, t, isSource } = pointOnShape;
|
|
14
|
-
const curve =
|
|
15
|
+
const curve = loopsByIdx.get(loopIdx).curves[curveIdx];
|
|
15
16
|
const pointOnShape_ = {
|
|
16
17
|
circle,
|
|
17
18
|
curve, p, pDd, t, isSource,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"from-stringifyable.js","sourceRoot":"","sources":["../../../src/cp-node/stringification/from-stringifyable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,SAAS,iBAAiB,CAClB,oBAAyC;IAE7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"from-stringifyable.js","sourceRoot":"","sources":["../../../src/cp-node/stringification/from-stringifyable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAGrE,SAAS,iBAAiB,CAClB,oBAAyC;IAE7C,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhE,4EAA4E;IAC5E,yDAAyD;IACzD,6CAA6C;IAC7C,4EAA4E;IAC5E,MAAM,OAAO,GAAa,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC7C,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;QACpE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAC/C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;QAEhE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,aAAa,GAAiB;YAChC,MAAM;YACN,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;YAC1B,KAAK,EAAE,MAAM;SAChB,CAAC;QAEF,OAAO;YACH,GAAG,OAAO;YACV,EAAE,EAAE,aAAa,EAAE,cAAc;YACjC,YAAY,EAAE,aAAa;SACpB,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAC5E,oEAAoE;IACpE,4EAA4E;IAC5E,MAAM,OAAO,GAAG,IAAI,GAAG,CAAiB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAErE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAkC,CAAC;YACzD,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAEnC,aAAa;YACb,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACpC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACtB,CAAC;AAGD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -20,8 +20,8 @@ function toStringifyable(cpNode) {
|
|
|
20
20
|
loopSet.add(loop);
|
|
21
21
|
}
|
|
22
22
|
const posSimplified = {
|
|
23
|
-
curveIdx, loopIdx: loop.idx, p, t, isSource,
|
|
24
|
-
circle, order, order2
|
|
23
|
+
curveIdx, loopIdx: loop.idx, p, pDd, t, isSource,
|
|
24
|
+
circle, order, order2
|
|
25
25
|
};
|
|
26
26
|
cpNodes_.push({
|
|
27
27
|
id, isHoleClosing, isIntersection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"to-stringifyable.js","sourceRoot":"","sources":["../../../src/cp-node/stringification/to-stringifyable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE;;;;GAIG;AACH,SAAS,eAAe,CAChB,MAAc;IAElB,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAC;IAEhC,4EAA4E;IAC5E,mDAAmD;IACnD,4DAA4D;IAC5D,4EAA4E;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC;QACA,MAAM,EACF,EAAE,EAAE,aAAa,EAAE,cAAc,EACjC,YAAY,EACZ,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,GACzD,GAAG,MAAM,CAAA;QAEV,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAC3E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,aAAa,GAA2B;YAC1C,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAI,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ;
|
|
1
|
+
{"version":3,"file":"to-stringifyable.js","sourceRoot":"","sources":["../../../src/cp-node/stringification/to-stringifyable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE;;;;GAIG;AACH,SAAS,eAAe,CAChB,MAAc;IAElB,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAQ,CAAC;IAEhC,4EAA4E;IAC5E,mDAAmD;IACnD,4DAA4D;IAC5D,4EAA4E;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC;IACvB,GAAG,CAAC;QACA,MAAM,EACF,EAAE,EAAE,aAAa,EAAE,cAAc,EACjC,YAAY,EACZ,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,GACzD,GAAG,MAAM,CAAA;QAEV,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAC3E,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;QAED,MAAM,aAAa,GAA2B;YAC1C,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ;YACjD,MAAM,EAAE,KAAK,EAAE,MAAM;SACxB,CAAC;QAEF,QAAQ,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,aAAa,EAAE,cAAc;YACjC,YAAY,EAAE,aAAa;YAC3B,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,IAAI,EAAE,IAAI,CAAC,EAAE;YACb,YAAY,EAAE,YAAY,CAAC,EAAE;YAC7B,YAAY,EAAE,YAAY,CAAC,EAAE;YAC7B,cAAc,EAAE,cAAc,EAAE,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC,QAAQ,MAAM,KAAK,OAAO,EAAE;IAC7B,4EAA4E;IAE5E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAI,GAAG,CAAC,CAAC,GAAI,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAE9C,OAAO;QACH,OAAO,EAAE,QAAQ;QACjB,KAAK,EAAE,MAAM;KAChB,CAAC;AACN,CAAC;AAGD,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "flo-mat",
|
|
3
3
|
"sideEffects": false,
|
|
4
4
|
"description": "Medial / Scale Axis Transform (MAT/SAT) Library.",
|
|
5
|
-
"version": "4.1.
|
|
5
|
+
"version": "4.1.3",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Floris Steenkamp"
|
|
8
8
|
},
|
|
@@ -47,15 +47,15 @@
|
|
|
47
47
|
"@swc/core": "^1.16.1",
|
|
48
48
|
"@swc/jest": "^0.2.39",
|
|
49
49
|
"@types/jest": "^30.0.0",
|
|
50
|
+
"jest": "^30.5.1",
|
|
51
|
+
"jest-ts-webcompat-resolver": "^1.0.1",
|
|
52
|
+
"ts-node": "^10.9.2",
|
|
50
53
|
"@types/node": "^26.4.1",
|
|
51
54
|
"c8": "^12.0.0",
|
|
52
55
|
"cheerio": "^1.2.0",
|
|
53
56
|
"circular-dependency-plugin": "^5.2.2",
|
|
54
|
-
"jest": "^30.5.1",
|
|
55
|
-
"jest-ts-webcompat-resolver": "^1.0.1",
|
|
56
57
|
"rimraf": "^6.1.3",
|
|
57
58
|
"ts-loader": "^9.6.2",
|
|
58
|
-
"ts-node": "^10.9.2",
|
|
59
59
|
"typescript": "^6.0.3",
|
|
60
60
|
"webpack": "^5.110.3",
|
|
61
61
|
"webpack-cli": "^7.2.3"
|
|
@@ -10,6 +10,7 @@ function fromStringifyable(
|
|
|
10
10
|
|
|
11
11
|
const { cpNodes: _cpNodes, loops: _loops } = cpNodesStringifyable;
|
|
12
12
|
const loops = _loops.map(loopFromStringifyable);
|
|
13
|
+
const loopsByIdx = new Map(loops.map(loop => [loop.idx, loop]));
|
|
13
14
|
|
|
14
15
|
//--------------------------------------------------------------------------
|
|
15
16
|
// First pass: build all CpNode objects with proper `cp`.
|
|
@@ -20,7 +21,7 @@ function fromStringifyable(
|
|
|
20
21
|
const { circle, order, order2 } = pointOnShape;
|
|
21
22
|
const { curveIdx, loopIdx, p, pDd, t, isSource } = pointOnShape;
|
|
22
23
|
|
|
23
|
-
const curve =
|
|
24
|
+
const curve = loopsByIdx.get(loopIdx)!.curves[curveIdx];
|
|
24
25
|
|
|
25
26
|
const pointOnShape_: PointOnShape = {
|
|
26
27
|
circle,
|
|
@@ -35,8 +35,8 @@ function toStringifyable(
|
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
const posSimplified: PointOnShapeSimplified = {
|
|
38
|
-
curveIdx, loopIdx: loop.idx!, p, t, isSource,
|
|
39
|
-
circle, order, order2
|
|
38
|
+
curveIdx, loopIdx: loop.idx!, p, pDd, t, isSource,
|
|
39
|
+
circle, order, order2
|
|
40
40
|
};
|
|
41
41
|
|
|
42
42
|
cpNodes_.push({
|