flo-mat 4.0.2 → 4.0.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__/specific-cases/specific-cases.spec.ts +6 -0
- package/browser/index.js +4511 -7115
- package/browser/index.min.js +1 -1
- package/node/cp-node/fs/is-on-same-loop.d.ts +3 -0
- package/node/cp-node/fs/is-on-same-loop.js +6 -0
- package/node/cp-node/fs/is-on-same-loop.js.map +1 -0
- package/node/debug/debug.d.ts +10 -15
- package/node/debug/debug.js +35 -46
- package/node/debug/debug.js.map +1 -1
- package/node/find-2-prong/add-1-prong.js +1 -4
- package/node/find-2-prong/add-1-prong.js.map +1 -1
- package/node/find-mat/find-mat.js +1 -2
- package/node/find-mat/find-mat.js.map +1 -1
- package/node/find-mat/get-meta.d.ts +1 -6
- package/node/find-mat/get-meta.js +4 -26
- package/node/find-mat/get-meta.js.map +1 -1
- package/node/index.d.ts +4 -2
- package/node/index.js +3 -1
- package/node/index.js.map +1 -1
- package/node/reconstruct-from-mat/filter-zero-length.d.ts +10 -0
- package/node/reconstruct-from-mat/filter-zero-length.js +14 -0
- package/node/reconstruct-from-mat/filter-zero-length.js.map +1 -0
- package/node/reconstruct-from-mat/get-all-on-loop-by-loop.d.ts +7 -0
- package/node/reconstruct-from-mat/get-all-on-loop-by-loop.js +38 -0
- package/node/reconstruct-from-mat/get-all-on-loop-by-loop.js.map +1 -0
- package/node/reconstruct-from-mat/get-bezier-piece-length.d.ts +3 -0
- package/node/reconstruct-from-mat/get-bezier-piece-length.js +6 -0
- package/node/reconstruct-from-mat/get-bezier-piece-length.js.map +1 -0
- package/node/reconstruct-from-mat/get-boundary.d.ts +7 -0
- package/node/reconstruct-from-mat/get-boundary.js +18 -0
- package/node/reconstruct-from-mat/get-boundary.js.map +1 -0
- package/node/reconstruct-from-mat/get-cp-nodess-for-sat.d.ts +4 -0
- package/node/reconstruct-from-mat/get-cp-nodess-for-sat.js +15 -0
- package/node/reconstruct-from-mat/get-cp-nodess-for-sat.js.map +1 -0
- package/node/reconstruct-from-mat/get-matching-beziers.d.ts +10 -0
- package/node/reconstruct-from-mat/get-matching-beziers.js +29 -0
- package/node/reconstruct-from-mat/get-matching-beziers.js.map +1 -0
- package/node/reconstruct-from-mat/get-mbss-by-loop-per-sat.d.ts +6 -0
- package/node/reconstruct-from-mat/get-mbss-by-loop-per-sat.js +10 -0
- package/node/reconstruct-from-mat/get-mbss-by-loop-per-sat.js.map +1 -0
- package/node/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.d.ts +7 -0
- package/node/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.js +47 -0
- package/node/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.js.map +1 -0
- package/node/reconstruct-from-mat/get-sats2.d.ts +10 -0
- package/node/reconstruct-from-mat/get-sats2.js +16 -0
- package/node/reconstruct-from-mat/get-sats2.js.map +1 -0
- package/node/reconstruct-from-mat/is-fully-terminating.d.ts +3 -0
- package/node/reconstruct-from-mat/is-fully-terminating.js +19 -0
- package/node/reconstruct-from-mat/is-fully-terminating.js.map +1 -0
- package/node/reconstruct-from-mat/matched-beziers.d.ts +10 -0
- package/node/reconstruct-from-mat/matched-beziers.js +2 -0
- package/node/reconstruct-from-mat/matched-beziers.js.map +1 -0
- package/node/reconstruct-from-mat/reconstruct-from-mat.d.ts +4 -0
- package/node/reconstruct-from-mat/reconstruct-from-mat.js +28 -0
- package/node/reconstruct-from-mat/reconstruct-from-mat.js.map +1 -0
- package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.d.ts +12 -0
- package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.js +46 -0
- package/node/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.js.map +1 -0
- package/node/reconstruct-from-mat/split-tri-path.d.ts +5 -0
- package/node/reconstruct-from-mat/split-tri-path.js +209 -0
- package/node/reconstruct-from-mat/split-tri-path.js.map +1 -0
- package/node/sat/add-debug-info.js +1 -2
- package/node/sat/add-debug-info.js.map +1 -1
- package/node/utils/clip.d.ts +2 -0
- package/node/utils/clip.js +6 -0
- package/node/utils/clip.js.map +1 -0
- package/package.json +2 -2
- package/src/cp-node/fs/is-on-same-loop.ts +15 -0
- package/src/debug/debug.ts +54 -72
- package/src/find-2-prong/add-1-prong.ts +1 -5
- package/src/find-mat/find-mat.ts +1 -2
- package/src/find-mat/get-meta.ts +3 -38
- package/src/index.ts +5 -3
- package/src/reconstruct-from-mat/filter-zero-length.ts +23 -0
- package/src/reconstruct-from-mat/get-all-on-loop-by-loop.ts +52 -0
- package/src/reconstruct-from-mat/get-bezier-piece-length.ts +12 -0
- package/src/reconstruct-from-mat/get-boundary.ts +32 -0
- package/src/reconstruct-from-mat/get-cp-nodess-for-sat.ts +24 -0
- package/src/reconstruct-from-mat/get-matching-beziers.ts +46 -0
- package/src/reconstruct-from-mat/get-mbss-by-loop-per-sat.ts +19 -0
- package/src/reconstruct-from-mat/get-mbss-by-loop-with-opp-arr.ts +69 -0
- package/src/reconstruct-from-mat/get-sats2.ts +25 -0
- package/src/reconstruct-from-mat/is-fully-terminating.ts +27 -0
- package/src/reconstruct-from-mat/matched-beziers.ts +14 -0
- package/src/reconstruct-from-mat/reconstruct-from-mat.ts +45 -0
- package/src/reconstruct-from-mat/remove-sat-induced-trivial-3prongs.ts +62 -0
- package/src/reconstruct-from-mat/split-tri-path.ts +280 -0
- package/src/sat/add-debug-info.ts +1 -2
- package/src/utils/clip.ts +13 -0
- package/node/debug/functions/general.d.ts +0 -48
- package/node/debug/functions/general.js +0 -53
- package/node/debug/functions/general.js.map +0 -1
- package/node/point-on-shape/pos-to-human-string.d.ts +0 -8
- package/node/point-on-shape/pos-to-human-string.js +0 -12
- package/node/point-on-shape/pos-to-human-string.js.map +0 -1
- package/src/debug/elem-type-two-prong.ts +0 -8
- package/src/debug/functions/cmp-cp-on-delta.ts +0 -54
- package/src/debug/functions/general.ts +0 -79
- package/src/debug/functions/three-prong.ts +0 -249
- package/src/debug/functions/two-prong.ts +0 -203
- package/src/find-2-prong/add-debug-info.ts +0 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-on-same-loop.js","sourceRoot":"","sources":["../../../src/cp-node/fs/is-on-same-loop.ts"],"names":[],"mappings":"AAGA,SAAS,YAAY,CACb,OAAe,EACf,OAAe;IAEnB,OAAO,CACH,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;QAC/B,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC;AACN,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
package/node/debug/debug.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { DebugElems } from './debug-elem-types.js';
|
|
1
|
+
import type { DrawElemFunctions } from './functions/draw-elem/draw-elem.js';
|
|
2
|
+
import type { DebugElems } from './debug-elem-types.js';
|
|
4
3
|
/** @internal */
|
|
5
4
|
interface Debug {
|
|
6
5
|
/** Generated by debug object for later inspection */
|
|
7
|
-
|
|
6
|
+
elems: GeneratedElems;
|
|
7
|
+
timing: Timing;
|
|
8
8
|
/**
|
|
9
9
|
* These functions are meant to be used in the console, e.g. in the
|
|
10
10
|
* console try typing d.fs.twoProng.traceConvergence(0);
|
|
11
11
|
*/
|
|
12
|
-
fs:
|
|
13
|
-
directives:
|
|
12
|
+
fs: DebugFunctions;
|
|
13
|
+
directives: Directives;
|
|
14
14
|
}
|
|
15
15
|
/** @internal */
|
|
16
16
|
type GeneratedElems = {
|
|
17
17
|
[T in keyof DebugElems]: DebugElems[T][];
|
|
18
18
|
};
|
|
19
19
|
/** @internal */
|
|
20
|
-
interface
|
|
20
|
+
interface Timing {
|
|
21
21
|
holeClosers: number;
|
|
22
22
|
oneAnd2Prongs: number;
|
|
23
23
|
threeProngs: number;
|
|
@@ -25,16 +25,11 @@ interface ITiming {
|
|
|
25
25
|
simplifyMat: number;
|
|
26
26
|
}
|
|
27
27
|
/** @internal */
|
|
28
|
-
interface
|
|
29
|
-
elems: GeneratedElems;
|
|
30
|
-
timing: ITiming;
|
|
31
|
-
}
|
|
32
|
-
/** @internal */
|
|
33
|
-
interface IDebugFunctions extends IGeneralDebugFunctions {
|
|
28
|
+
interface DebugFunctions {
|
|
34
29
|
drawElem: DrawElemFunctions;
|
|
35
30
|
}
|
|
36
31
|
/** @internal */
|
|
37
|
-
interface
|
|
32
|
+
interface Directives {
|
|
38
33
|
stopAfterHoleClosers: boolean;
|
|
39
34
|
stopAfterHoleClosersNum: number;
|
|
40
35
|
stopAfterTwoProngs: boolean;
|
|
@@ -43,4 +38,4 @@ interface IDirectives {
|
|
|
43
38
|
stopAfterThreeProngsNum: number;
|
|
44
39
|
}
|
|
45
40
|
declare function enableDebugForMat(debugOn: boolean): void;
|
|
46
|
-
export { Debug, GeneratedElems,
|
|
41
|
+
export { Debug, GeneratedElems, Timing, DebugFunctions, Directives, enableDebugForMat };
|
package/node/debug/debug.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { generalDebugFunctions } from './functions/general.js';
|
|
2
1
|
import { drawElemFs } from './functions/draw-elem/draw-elem.js';
|
|
3
2
|
function enableDebugForMat(debugOn) {
|
|
4
3
|
if (!debugOn) {
|
|
@@ -8,59 +7,49 @@ function enableDebugForMat(debugOn) {
|
|
|
8
7
|
let debug = window._debug_;
|
|
9
8
|
debug = {
|
|
10
9
|
...debug,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
...(!debug ? {} : !debug.generated ? {} : debug.generated),
|
|
10
|
+
elems: {
|
|
11
|
+
...debug?.elems,
|
|
14
12
|
// @ts-ignore
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
oneAnd2Prongs: 0,
|
|
45
|
-
threeProngs: 0,
|
|
46
|
-
sats: 0,
|
|
47
|
-
simplifyMat: 0,
|
|
48
|
-
}
|
|
13
|
+
oneProng: [],
|
|
14
|
+
// oneProngAtDullCorner : [],
|
|
15
|
+
twoProng: [],
|
|
16
|
+
// twoProng_regular : [],
|
|
17
|
+
// twoProng_failed : [],
|
|
18
|
+
// twoProng_notAdded : [],
|
|
19
|
+
// twoProng_deleted : [],
|
|
20
|
+
// twoProng_holeClosing : [],
|
|
21
|
+
looseBoundingBox: [],
|
|
22
|
+
tightBoundingBox: [],
|
|
23
|
+
// sharpCorner : [],
|
|
24
|
+
// dullCorner : [],
|
|
25
|
+
vertex: [],
|
|
26
|
+
threeProng: [],
|
|
27
|
+
boundingHull: [],
|
|
28
|
+
mat: [],
|
|
29
|
+
// sat : [],
|
|
30
|
+
cpNode: [],
|
|
31
|
+
maxVertex: [],
|
|
32
|
+
leaves: [],
|
|
33
|
+
// culls : [],
|
|
34
|
+
},
|
|
35
|
+
timing: {
|
|
36
|
+
...debug?.timing,
|
|
37
|
+
holeClosers: 0,
|
|
38
|
+
oneAnd2Prongs: 0,
|
|
39
|
+
threeProngs: 0,
|
|
40
|
+
sats: 0,
|
|
41
|
+
simplifyMat: 0,
|
|
49
42
|
},
|
|
50
43
|
fs: {
|
|
51
|
-
|
|
52
|
-
...(!debug ? {} : !debug.fs ? {} : debug.fs),
|
|
53
|
-
// @ts-ignore
|
|
44
|
+
...debug?.fs,
|
|
54
45
|
drawElem: {
|
|
55
|
-
|
|
56
|
-
...(!debug ? {} : !debug.fs ? {} : !debug.fs.drawElem ? {} : debug.fs.drawElem),
|
|
46
|
+
...debug?.fs?.drawElem,
|
|
57
47
|
...drawElemFs
|
|
58
|
-
}
|
|
59
|
-
...generalDebugFunctions
|
|
48
|
+
}
|
|
60
49
|
},
|
|
61
50
|
directives: {
|
|
62
51
|
//...debug?.directives,
|
|
63
|
-
...
|
|
52
|
+
...debug?.directives,
|
|
64
53
|
stopAfterHoleClosers: false,
|
|
65
54
|
stopAfterHoleClosersNum: undefined,
|
|
66
55
|
stopAfterTwoProngs: false,
|
package/node/debug/debug.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug/debug.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/debug/debug.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAiDhE,SAAS,iBAAiB,CAAC,OAAgB;IACvC,IAAI,CAAC,OAAO,EAAE,CAAC;QACV,MAAc,CAAC,OAAO,GAAG,SAAS,CAAC;QACpC,OAAO;IACX,CAAC;IAED,IAAI,KAAK,GAAW,MAAc,CAAC,OAAO,CAAC;IAE3C,KAAK,GAAG;QACJ,GAAG,KAAK;QACR,KAAK,EAAE;YACH,GAAG,KAAK,EAAE,KAAK;YACf,aAAa;YAEb,QAAQ,EAAe,EAAE;YACzB,6BAA6B;YAC7B,QAAQ,EAAe,EAAE;YACzB,6BAA6B;YAC7B,6BAA6B;YAC7B,6BAA6B;YAC7B,6BAA6B;YAC7B,6BAA6B;YAC7B,gBAAgB,EAAO,EAAE;YACzB,gBAAgB,EAAO,EAAE;YACzB,6BAA6B;YAC7B,6BAA6B;YAC7B,MAAM,EAAiB,EAAE;YACzB,UAAU,EAAa,EAAE;YACzB,YAAY,EAAW,EAAE;YACzB,GAAG,EAAoB,EAAE;YACzB,6BAA6B;YAC7B,MAAM,EAAiB,EAAE;YACzB,SAAS,EAAc,EAAE;YACzB,MAAM,EAAiB,EAAE;YACzB,6BAA6B;SAChC;QACD,MAAM,EAAE;YACJ,GAAG,KAAK,EAAE,MAAM;YAChB,WAAW,EAAE,CAAC;YACd,aAAa,EAAE,CAAC;YAChB,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,CAAC;YACP,WAAW,EAAE,CAAC;SACjB;QACD,EAAE,EAAE;YACA,GAAG,KAAK,EAAE,EAAE;YACZ,QAAQ,EAAE;gBACN,GAAG,KAAK,EAAE,EAAE,EAAE,QAAQ;gBACtB,GAAG,UAAU;aAChB;SACJ;QACD,UAAU,EAAE;YACR,uBAAuB;YACvB,GAAG,KAAK,EAAE,UAAU;YACpB,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,SAAU;YACnC,kBAAkB,EAAE,KAAK;YACzB,qBAAqB,EAAE,SAAU;YACjC,oBAAoB,EAAE,KAAK;YAC3B,uBAAuB,EAAE,SAAU;SACtC;KACJ,CAAC;IAED,MAAc,CAAC,OAAO,GAAG,KAAK,CAAC;AACpC,CAAC;AAGD,OAAO,EAEyB,iBAAiB,EAChD,CAAA"}
|
|
@@ -33,10 +33,7 @@ function add1Prong(meta, radius, center, pos) {
|
|
|
33
33
|
if (getCloseByCpIfExist(meta, pos, circle, order, 0, 1)) {
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
|
|
37
|
-
// if (typeof _debug_ !== 'undefined') {
|
|
38
|
-
// _debug_.generated.elems.oneProng.push(cpNodes);
|
|
39
|
-
// }
|
|
36
|
+
addToCpTree(false, false, circle, [-0.5, +0.5], meta, [pos, pos]);
|
|
40
37
|
}
|
|
41
38
|
export { add1Prong };
|
|
42
39
|
//# sourceMappingURL=add-1-prong.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-1-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/add-1-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE;;;;;GAKG;AACH,SAAS,SAAS,CACV,IAAa,EACb,MAAc,EACd,MAAgB,EAChB,GAAoB;IAExB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAChD,sCAAsC;QAEtC,SAAS;QACT,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,kEAAkE;QAClE,oEAAoE;QAEpE,kCAAkC;QAElC,yCAAyC;QACrC,0DAA0D;QAC9D,IAAI;QAEJ,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO;IACX,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"add-1-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/add-1-prong.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE;;;;;GAKG;AACH,SAAS,SAAS,CACV,IAAa,EACb,MAAc,EACd,MAAgB,EAChB,GAAoB;IAExB,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;QAChD,sCAAsC;QAEtC,SAAS;QACT,gEAAgE;QAChE,wEAAwE;QACxE,mEAAmE;QACnE,mEAAmE;QACnE,qEAAqE;QACrE,kEAAkE;QAClE,oEAAoE;QAEpE,kCAAkC;QAElC,yCAAyC;QACrC,0DAA0D;QAC9D,IAAI;QAEJ,OAAO;IACX,CAAC;IAED,MAAM,MAAM,GAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAE1C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/C,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACtD,OAAO;IACX,CAAC;IAED,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACtE,CAAC;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { findAndAdd3ProngsOnLoop } from '../find-3-prong/find-and-add-3-prongs-on-loop.js';
|
|
2
2
|
import { createInitialCpTree } from './create-initial-cp-tree.js';
|
|
3
|
-
import {
|
|
3
|
+
import { getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 } from './get-meta.js';
|
|
4
4
|
import { getSharpCornersOnLoop } from './get-sharp-corners.js';
|
|
5
5
|
import { getDullCornersOnLoop } from './get-dull-corners-on-loop.js';
|
|
6
6
|
import { findAndAdd2ProngsOnAllLoops } from '../find-2-prong/find-and-add-2-prongs-on-all-loops.js';
|
|
@@ -27,7 +27,6 @@ function findMat(loops, maxCoordPowerOf2, options) {
|
|
|
27
27
|
const lastInsertId = { id: 0 };
|
|
28
28
|
const cpTrees = createInitialCpTree(loops, sharpCornersPerLoop, lastInsertId);
|
|
29
29
|
const _meta = getPartialMeta(loops);
|
|
30
|
-
const pointToCpNode = getPointToCpNode(loops, cpTrees);
|
|
31
30
|
const meta = {
|
|
32
31
|
maxCoordPowerOf2, squaredDiagonalLength, loops, cpTrees, // pointToCpNode,
|
|
33
32
|
lastInsertId, ..._meta
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kDAAkD,CAAC;AAC3F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import type { Loop } from 'flo-boolean';
|
|
2
|
-
import type { CpNode } from '../cp-node/cp-node.js';
|
|
3
|
-
import type { TriMap } from '../utils/tri-map.js';
|
|
4
2
|
import type { MatMeta } from '../mat/mat-meta.js';
|
|
5
|
-
import { RbTree } from 'flo-ll-rb-tree';
|
|
6
|
-
/** @internal */
|
|
7
|
-
declare function getPointToCpNode(loops: Loop[], cpTrees: Map<Loop, RbTree<CpNode>>): TriMap<Loop, number, number, CpNode>;
|
|
8
3
|
/** @internal */
|
|
9
4
|
declare function getPartialMeta(loops: Loop[]): Omit<MatMeta, 'cpTrees' | 'loops' | 'maxCoordPowerOf2' | 'squaredDiagonalLength' | 'lastInsertId'>;
|
|
10
5
|
/** @internal */
|
|
11
6
|
declare function addDebugInfo2(): void;
|
|
12
7
|
declare function addDebugInfo3(): void;
|
|
13
8
|
declare function addDebugInfo4(): void;
|
|
14
|
-
export {
|
|
9
|
+
export { getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 };
|
|
@@ -1,25 +1,8 @@
|
|
|
1
|
-
// import { TriMapFs } from '../utils/tri-map.js';
|
|
2
1
|
import { getBoundingHull, getBoundingBoxTight } from 'flo-bezier3';
|
|
3
2
|
import { getBoundingBox$ } from '../geometry/get-bounding-box-.js';
|
|
4
3
|
import { getCorner } from '../corner/get-corner.js';
|
|
5
4
|
let timingStart;
|
|
6
5
|
/** @internal */
|
|
7
|
-
function getPointToCpNode(loops, cpTrees) {
|
|
8
|
-
timingStart = performance.now();
|
|
9
|
-
// const pointToCpNode: TriMap<Loop,number,number,CpNode> = new Map();
|
|
10
|
-
// for (const loop of loops) {
|
|
11
|
-
// // Populate `posMap`
|
|
12
|
-
// const cpTree = cpTrees.get(loop)!;
|
|
13
|
-
// const cpNodes = cpTree.toArrayInOrder();
|
|
14
|
-
// for (const cpNode of cpNodes) {
|
|
15
|
-
// const { p, t } = cpNode.pointOnShape;
|
|
16
|
-
// TriMapFs.set(pointToCpNode,loop,p[0],p[1],cpNode);
|
|
17
|
-
// }
|
|
18
|
-
// }
|
|
19
|
-
// return pointToCpNode;
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
/** @internal */
|
|
23
6
|
function getPartialMeta(loops) {
|
|
24
7
|
const looseBoundingBoxes = [];
|
|
25
8
|
const tightBoundingBoxes = [];
|
|
@@ -57,28 +40,23 @@ function addDebugInfo2() {
|
|
|
57
40
|
if (typeof _debug_ === 'undefined') {
|
|
58
41
|
return;
|
|
59
42
|
}
|
|
60
|
-
const timing = _debug_.generated.timing;
|
|
61
43
|
const now = performance.now();
|
|
62
|
-
timing.holeClosers += now - timingStart;
|
|
44
|
+
_debug_.timing.holeClosers += now - timingStart;
|
|
63
45
|
timingStart = now;
|
|
64
46
|
}
|
|
65
47
|
function addDebugInfo3() {
|
|
66
48
|
if (typeof _debug_ === 'undefined') {
|
|
67
49
|
return;
|
|
68
50
|
}
|
|
69
|
-
const generated = _debug_.generated;
|
|
70
|
-
const timing = generated.timing;
|
|
71
51
|
const now = performance.now();
|
|
72
|
-
timing.oneAnd2Prongs += now - timingStart;
|
|
52
|
+
_debug_.timing.oneAnd2Prongs += now - timingStart;
|
|
73
53
|
timingStart = now;
|
|
74
54
|
}
|
|
75
55
|
function addDebugInfo4() {
|
|
76
56
|
if (typeof _debug_ === 'undefined') {
|
|
77
57
|
return;
|
|
78
58
|
}
|
|
79
|
-
|
|
80
|
-
const timing = generated.timing;
|
|
81
|
-
timing.threeProngs += performance.now() - timingStart;
|
|
59
|
+
_debug_.timing.threeProngs += performance.now() - timingStart;
|
|
82
60
|
}
|
|
83
|
-
export {
|
|
61
|
+
export { getPartialMeta, addDebugInfo2, addDebugInfo3, addDebugInfo4 };
|
|
84
62
|
//# sourceMappingURL=get-meta.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-meta.js","sourceRoot":"","sources":["../../src/find-mat/get-meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get-meta.js","sourceRoot":"","sources":["../../src/find-mat/get-meta.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOpD,IAAI,WAAmB,CAAC;AAGxB,gBAAgB;AAChB,SAAS,cAAc,CACf,KAAa;IAUjB,MAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,MAAM,kBAAkB,GAAiB,EAAE,CAAC;IAC5C,MAAM,aAAa,GAAiB,EAAE,CAAC;IACvC,MAAM,YAAY,GAAY,EAAE,CAAC;IACjC,MAAM,WAAW,GAAY,EAAE,CAAC;IAEhC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,EAAE,IAAI,CAAE,CAAC;YAExC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEzB,MAAM,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;YAC7C,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1C,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;YACjD,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAE1C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClD,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACtB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO;QACH,kBAAkB;QAClB,kBAAkB;QAClB,aAAa;QACb,YAAY;QACZ,WAAW;KACd,CAAA;AACL,CAAC;AAGD,gBAAgB;AAChB,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,GAAG,WAAW,CAAC;IAChD,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAC,aAAa,IAAI,GAAG,GAAG,WAAW,CAAC;IAClD,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAClE,CAAC;AAGD,OAAO,EACH,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,CAAA"}
|
package/node/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export type { PointOnShape } from './point-on-shape/point-on-shape.js';
|
|
|
7
7
|
export type { Circle } from './geometry/circle.js';
|
|
8
8
|
export type { CurvePiece } from './mat/curve-piece.js';
|
|
9
9
|
export type { DrawElemFunctions } from './debug/functions/draw-elem/draw-elem.js';
|
|
10
|
-
export type { ITiming } from './debug/debug.js';
|
|
10
|
+
export type { Timing as ITiming } from './debug/debug.js';
|
|
11
11
|
export type { DebugElems } from './debug/debug-elem-types.js';
|
|
12
12
|
export type { Debug } from './debug/debug.js';
|
|
13
13
|
export type { DebugElemKey } from './debug/debug-elem-types.js';
|
|
@@ -39,7 +39,7 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
|
|
|
39
39
|
export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
|
|
40
40
|
export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
|
|
41
41
|
export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
|
|
42
|
-
export { getPartialMeta
|
|
42
|
+
export { getPartialMeta } from './find-mat/get-meta.js';
|
|
43
43
|
export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
|
|
44
44
|
export { getChildren } from './cp-node/fs/get-children.js';
|
|
45
45
|
export { getVertexForwardChildren } from './cp-node/fs/get-vertex-forward-children.js';
|
|
@@ -76,3 +76,5 @@ export { getInitialDegAngleBetweenMatCurves } from './cp-node/fs/get-angle-betwe
|
|
|
76
76
|
export { getAllVertices } from './cp-node/fs/get-all-vertices.js';
|
|
77
77
|
export { isTrivial } from './cp-node/fs/is-trivial.js';
|
|
78
78
|
export { scaleCircle } from './geometry/circle.js';
|
|
79
|
+
export { isOnSameLoop } from './cp-node/fs/is-on-same-loop.js';
|
|
80
|
+
export { reconstructFromMats } from './reconstruct-from-mat/reconstruct-from-mat.js';
|
package/node/index.js
CHANGED
|
@@ -26,7 +26,7 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
|
|
|
26
26
|
export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
|
|
27
27
|
export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
|
|
28
28
|
export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
|
|
29
|
-
export { getPartialMeta
|
|
29
|
+
export { getPartialMeta } from './find-mat/get-meta.js';
|
|
30
30
|
export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
|
|
31
31
|
// CpNodeFs functions
|
|
32
32
|
export { getChildren } from './cp-node/fs/get-children.js';
|
|
@@ -64,4 +64,6 @@ export { getInitialDegAngleBetweenMatCurves } from './cp-node/fs/get-angle-betwe
|
|
|
64
64
|
export { getAllVertices } from './cp-node/fs/get-all-vertices.js';
|
|
65
65
|
export { isTrivial } from './cp-node/fs/is-trivial.js';
|
|
66
66
|
export { scaleCircle } from './geometry/circle.js';
|
|
67
|
+
export { isOnSameLoop } from './cp-node/fs/is-on-same-loop.js';
|
|
68
|
+
export { reconstructFromMats } from './reconstruct-from-mat/reconstruct-from-mat.js';
|
|
67
69
|
//# sourceMappingURL=index.js.map
|
package/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAepF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,mDAAmD,CAAC;AACnG,OAAO,EAAE,+BAA+B,EAAE,MAAM,qDAAqD,CAAC;AACtG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAC7E,OAAO,EAAE,yCAAyC,EAAE,MAAM,6EAA6E,CAAC;AACxI,OAAO,EAAE,+BAA+B,EAAE,MAAM,iEAAiE,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { BezierPiece } from "flo-bezier3";
|
|
2
|
+
/**
|
|
3
|
+
* Filters out zero-length bezier pieces.
|
|
4
|
+
*
|
|
5
|
+
* * **note** will return at least one bezier piece, even if all pieces are zero-length.
|
|
6
|
+
*
|
|
7
|
+
* @param bezierPieces
|
|
8
|
+
*/
|
|
9
|
+
declare function filterZeroLength(bezierPieces: BezierPiece[]): BezierPiece[];
|
|
10
|
+
export { filterZeroLength };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { isBezierPieceZeroLength } from "flo-bezier3";
|
|
2
|
+
/**
|
|
3
|
+
* Filters out zero-length bezier pieces.
|
|
4
|
+
*
|
|
5
|
+
* * **note** will return at least one bezier piece, even if all pieces are zero-length.
|
|
6
|
+
*
|
|
7
|
+
* @param bezierPieces
|
|
8
|
+
*/
|
|
9
|
+
function filterZeroLength(bezierPieces) {
|
|
10
|
+
const bezierPieces_ = bezierPieces.filter(bezierPiece => !isBezierPieceZeroLength(bezierPiece));
|
|
11
|
+
return bezierPieces_.length > 0 ? bezierPieces_ : [bezierPieces[0]];
|
|
12
|
+
}
|
|
13
|
+
export { filterZeroLength };
|
|
14
|
+
//# sourceMappingURL=filter-zero-length.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filter-zero-length.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/filter-zero-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtD;;;;;;GAMG;AACH,SAAS,gBAAgB,CACjB,YAA2B;IAE/B,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CACrC,WAAW,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CACvD,CAAC;IAEF,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CpNode } from '../cp-node/cp-node.js';
|
|
2
|
+
/**
|
|
3
|
+
* Returns all `CpNode`s on the MAT that this `CpNode` is part of
|
|
4
|
+
* starting from the current one and going anti-clockwise around the shape.
|
|
5
|
+
*/
|
|
6
|
+
declare function getAllOnLoop_ByLoop(cpNode: CpNode): CpNode[][];
|
|
7
|
+
export { getAllOnLoop_ByLoop };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns all `CpNode`s on the MAT that this `CpNode` is part of
|
|
3
|
+
* starting from the current one and going anti-clockwise around the shape.
|
|
4
|
+
*/
|
|
5
|
+
function getAllOnLoop_ByLoop(cpNode) {
|
|
6
|
+
const cpNodess = [];
|
|
7
|
+
const cpStarts = [cpNode];
|
|
8
|
+
const cpStartSet = new Set(cpStarts);
|
|
9
|
+
if (cpNode.isHoleClosing) {
|
|
10
|
+
cpStartSet.add(cpNode.prevOnCircle.holeCloserTwin);
|
|
11
|
+
}
|
|
12
|
+
cpStartSet.add(cpNode);
|
|
13
|
+
while (cpStarts.length > 0) {
|
|
14
|
+
const cpNodes = [];
|
|
15
|
+
const cpStart = cpStarts.pop();
|
|
16
|
+
const _loop = cpStart.pointOnShape.curve.loop;
|
|
17
|
+
let cpNode = cpStart;
|
|
18
|
+
do {
|
|
19
|
+
const loop = cpNode.pointOnShape.curve.loop;
|
|
20
|
+
if (_loop === loop) {
|
|
21
|
+
cpNodes.push(cpNode);
|
|
22
|
+
cpNode = cpNode.next;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const twin = cpNode.holeCloserTwin;
|
|
26
|
+
if (!cpStartSet.has(twin)) {
|
|
27
|
+
cpStartSet.add(twin);
|
|
28
|
+
cpStartSet.add(twin.prevOnCircle.holeCloserTwin);
|
|
29
|
+
cpStarts.push(twin);
|
|
30
|
+
}
|
|
31
|
+
cpNode = cpNode.prev.holeCloserTwin;
|
|
32
|
+
} while (cpNode !== cpStart);
|
|
33
|
+
cpNodess.push(cpNodes);
|
|
34
|
+
}
|
|
35
|
+
return cpNodess;
|
|
36
|
+
}
|
|
37
|
+
export { getAllOnLoop_ByLoop };
|
|
38
|
+
//# sourceMappingURL=get-all-on-loop-by-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-all-on-loop-by-loop.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-all-on-loop-by-loop.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,SAAS,mBAAmB,CACpB,MAAc;IAElB,MAAM,QAAQ,GAAe,EAAE,CAAC;IAEhC,MAAM,QAAQ,GAAa,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC;IACxD,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEvB,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,EAAG,CAAC;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QAC9C,IAAI,MAAM,GAAG,OAAO,CAAC;QAErB,GAAG,CAAC;YACA,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;YAC5C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;gBACrB,SAAS;YACb,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,cAAe,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC;gBAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAED,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,cAAe,CAAC;QACzC,CAAC,QAAQ,MAAM,KAAK,OAAO,EAAE;QAE7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-bezier-piece-length.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-bezier-piece-length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,SAAS,oBAAoB,CACrB,WAAwB;IAE5B,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAGD,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { getBoundaryBezierPartsToNext } from '../cp-node/fs/get-boundary-bezier-parts-to-next.js';
|
|
2
|
+
import { filterZeroLength } from "./filter-zero-length.js";
|
|
3
|
+
import { isFullyTerminating } from './is-fully-terminating.js';
|
|
4
|
+
function getBoundary(cpNode) {
|
|
5
|
+
const cpNodeOpp = isFullyTerminating(cpNode)
|
|
6
|
+
? undefined // no opposite boundary
|
|
7
|
+
: cpNode.next.prevOnCircle;
|
|
8
|
+
const boundaryBeziers = filterZeroLength(getBoundaryBezierPartsToNext(cpNode));
|
|
9
|
+
const boundaryBeziersOpp = cpNodeOpp === undefined
|
|
10
|
+
? undefined
|
|
11
|
+
: filterZeroLength(getBoundaryBezierPartsToNext(cpNodeOpp));
|
|
12
|
+
return {
|
|
13
|
+
boundaryBeziers,
|
|
14
|
+
boundaryBeziersOpp
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export { getBoundary };
|
|
18
|
+
//# sourceMappingURL=get-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-boundary.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-boundary.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAE,MAAM,oDAAoD,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,SAAS,WAAW,CACZ,MAAc;IAKlB,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACxC,CAAC,CAAC,SAAS,CAAC,uBAAuB;QACnC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAE/B,MAAM,eAAe,GACjB,gBAAgB,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D,MAAM,kBAAkB,GAAG,SAAS,KAAK,SAAS;QAC9C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,gBAAgB,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhE,OAAO;QACH,eAAe;QACf,kBAAkB;KACrB,CAAC;AACN,CAAC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { isOnSameLoop } from "../cp-node/fs/is-on-same-loop.js";
|
|
2
|
+
import { isFullyTerminating } from "./is-fully-terminating.js";
|
|
3
|
+
import { getAllOnLoop_ByLoop } from "./get-all-on-loop-by-loop.js";
|
|
4
|
+
function getCpNodessForSat(sat) {
|
|
5
|
+
let { cpNode } = sat;
|
|
6
|
+
while (!isFullyTerminating(cpNode)) {
|
|
7
|
+
cpNode = cpNode.next;
|
|
8
|
+
}
|
|
9
|
+
if (!isOnSameLoop(cpNode, cpNode.next)) {
|
|
10
|
+
cpNode = cpNode.holeCloserTwin;
|
|
11
|
+
}
|
|
12
|
+
return getAllOnLoop_ByLoop(cpNode);
|
|
13
|
+
}
|
|
14
|
+
export { getCpNodessForSat };
|
|
15
|
+
//# sourceMappingURL=get-cp-nodess-for-sat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-cp-nodess-for-sat.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-cp-nodess-for-sat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAGnE,SAAS,iBAAiB,CAClB,GAAQ;IAEZ,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAErB,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,cAAe,CAAC;IACpC,CAAC;IAED,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAGD,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { CpNode } from '../cp-node/cp-node.js';
|
|
2
|
+
import type { MatchedBeziers } from './matched-beziers.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns a correspondence between boundary bezier curves and a medial axis
|
|
5
|
+
* bezier curve. They will later be interpolated.
|
|
6
|
+
*
|
|
7
|
+
* @param cpNode the start `CpNode`
|
|
8
|
+
*/
|
|
9
|
+
declare function getMatchingBeziers(cpNode: CpNode): MatchedBeziers[] | undefined;
|
|
10
|
+
export { getMatchingBeziers };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { getMatCurveToNext } from '../cp-node/fs/get-mat-curve-to-next.js';
|
|
2
|
+
import { splitTriPath } from './split-tri-path.js';
|
|
3
|
+
import { getBoundary } from './get-boundary.js';
|
|
4
|
+
import { isOnSameLoop } from '../cp-node/fs/is-on-same-loop.js';
|
|
5
|
+
/**
|
|
6
|
+
* Returns a correspondence between boundary bezier curves and a medial axis
|
|
7
|
+
* bezier curve. They will later be interpolated.
|
|
8
|
+
*
|
|
9
|
+
* @param cpNode the start `CpNode`
|
|
10
|
+
*/
|
|
11
|
+
function getMatchingBeziers(cpNode) {
|
|
12
|
+
const medialBezier = {
|
|
13
|
+
ps: getMatCurveToNext(cpNode),
|
|
14
|
+
ts: [0, 1]
|
|
15
|
+
};
|
|
16
|
+
if (cpNode.isHoleClosing && // short-circuit
|
|
17
|
+
!isOnSameLoop(cpNode, cpNode.next)) {
|
|
18
|
+
// We get here for half of hole-closers, as only half of hole-closers are on a different loop.
|
|
19
|
+
// This cpNode indicates we should connect the hole
|
|
20
|
+
// console.log('hole-closing dummy case');
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const r = getBoundary(cpNode);
|
|
24
|
+
const { boundaryBeziers, boundaryBeziersOpp } = r;
|
|
25
|
+
const matchedBezierss = splitTriPath(boundaryBeziers, medialBezier, boundaryBeziersOpp ?? []);
|
|
26
|
+
return matchedBezierss;
|
|
27
|
+
}
|
|
28
|
+
export { getMatchingBeziers };
|
|
29
|
+
//# sourceMappingURL=get-matching-beziers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-matching-beziers.js","sourceRoot":"","sources":["../../src/reconstruct-from-mat/get-matching-beziers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE;;;;;GAKG;AACH,SAAS,kBAAkB,CACnB,MAAc;IAElB,MAAM,YAAY,GAAgB;QAC9B,EAAE,EAAE,iBAAiB,CAAC,MAAM,CAAC;QAC7B,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC;KACZ,CAAC;IAEF,IAAI,MAAM,CAAC,aAAa,IAAK,gBAAgB;QACzC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAErC,8FAA8F;QAC9F,mDAAmD;QACnD,0CAA0C;QAC1C,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAElD,MAAM,eAAe,GAAqB,YAAY,CAClD,eAAe,EACf,YAAY,EACZ,kBAAkB,IAAI,EAAE,CAC3B,CAAC;IAEF,OAAO,eAAe,CAAC;AAC3B,CAAC;AAGD,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Mat } from "../mat/mat.js";
|
|
2
|
+
declare function getMbssByLoopPerSat(mats: Mat[], satScale: number): {
|
|
3
|
+
mbssByLoop: (import("./matched-beziers.js").MatchedBeziers[] | undefined)[][];
|
|
4
|
+
oppArr: [[number, number], [number, number]][];
|
|
5
|
+
}[];
|
|
6
|
+
export { getMbssByLoopPerSat };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { getSats2 } from "./get-sats2.js";
|
|
2
|
+
import { getMbssByLoopWithOppArr } from "./get-mbss-by-loop-with-opp-arr.js";
|
|
3
|
+
import { getCpNodessForSat } from "./get-cp-nodess-for-sat.js";
|
|
4
|
+
function getMbssByLoopPerSat(mats, satScale) {
|
|
5
|
+
const sats = getSats2(mats, satScale);
|
|
6
|
+
const cpNodessPerSat = sats.map(getCpNodessForSat);
|
|
7
|
+
return cpNodessPerSat.map(getMbssByLoopWithOppArr);
|
|
8
|
+
}
|
|
9
|
+
export { getMbssByLoopPerSat };
|
|
10
|
+
//# sourceMappingURL=get-mbss-by-loop-per-sat.js.map
|