flo-mat 4.1.2 → 4.1.4
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__/find-2-prong/get-medial/dd-get-medial-point-coeffs-same-curve.spec.ts +1 -1
- package/__tests__/get-mats1.ts +23 -22
- package/__tests__/specific-cases/specific-cases.spec.ts +1 -14
- package/__tests__/specific-cases/test-svgs/achispado.svg +37 -24
- package/browser/index.js +408 -198
- package/browser/index.min.js +1 -1
- package/node/cp-node/fs/insert-cp-node.d.ts +12 -1
- package/node/cp-node/fs/insert-cp-node.js +21 -6
- package/node/cp-node/fs/insert-cp-node.js.map +1 -1
- package/node/cp-node/fs/is-order-correct.d.ts +9 -1
- package/node/cp-node/fs/is-order-correct.js +51 -10
- package/node/cp-node/fs/is-order-correct.js.map +1 -1
- package/node/cp-node/fs/remove-cp-node.js +1 -1
- package/node/cp-node/fs/remove-cp-node.js.map +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/node/debug/functions/check-ordering.d.ts +4 -0
- package/node/debug/functions/check-ordering.js +43 -0
- package/node/debug/functions/check-ordering.js.map +1 -0
- package/node/find-2-prong/add-2-prong.js +4 -2
- package/node/find-2-prong/add-2-prong.js.map +1 -1
- package/node/find-2-prong/find-and-add-2-prongs.js +1 -1
- package/node/find-2-prong/find-and-add-2-prongs.js.map +1 -1
- package/node/find-2-prong/get-initial-bezier-pieces.js +2 -2
- package/node/find-2-prong/get-initial-bezier-pieces.js.map +1 -1
- package/node/find-3-prong/find-3-prong-for-delta3s.d.ts +1 -1
- package/node/find-3-prong/find-3-prong-for-delta3s.js.map +1 -1
- package/node/find-3-prong/find-3-prong.d.ts +1 -1
- package/node/find-3-prong/find-3-prong.js.map +1 -1
- package/node/find-3-prong/find-and-add-3-prong.js +1 -1
- package/node/find-3-prong/find-and-add-3-prong.js.map +1 -1
- package/node/find-3-prong/find-and-add-3-prongs-on-loop.d.ts +1 -1
- package/node/find-3-prong/find-and-add-3-prongs-on-loop.js +6 -2
- package/node/find-3-prong/find-and-add-3-prongs-on-loop.js.map +1 -1
- package/node/find-3-prong/three-prong-info.d.ts +1 -1
- package/node/find-mat/create-initial-cp-tree.js +2 -2
- package/node/find-mat/create-initial-cp-tree.js.map +1 -1
- package/node/find-mat/find-mat.js +2 -2
- package/node/find-mat/find-mat.js.map +1 -1
- package/node/find-mat/get-for-1-prongs-on-loop.js +3 -1
- package/node/find-mat/get-for-1-prongs-on-loop.js.map +1 -1
- package/node/mat/add-to-cp-tree.d.ts +4 -1
- package/node/mat/add-to-cp-tree.js +11 -4
- package/node/mat/add-to-cp-tree.js.map +1 -1
- package/node/mat/get-boundary-piece-beziers.d.ts +2 -2
- package/node/mat/get-boundary-piece-beziers.js +1 -1
- package/node/mat/get-boundary-piece-beziers.js.map +1 -1
- package/node/mat/get-closeby-cp-if-exist.js +2 -2
- package/node/mat/get-closeby-cp-if-exist.js.map +1 -1
- package/node/mat/{get-cp-node-to-left-or-same.d.ts → get-cp-node-neighbors.d.ts} +2 -2
- package/node/mat/get-cp-node-neighbors.js +31 -0
- package/node/mat/get-cp-node-neighbors.js.map +1 -0
- package/package.json +11 -11
- package/src/cp-node/fs/insert-cp-node.ts +22 -7
- package/src/cp-node/fs/is-order-correct copy.ts +60 -0
- package/src/cp-node/fs/is-order-correct.ts +61 -13
- package/src/cp-node/fs/remove-cp-node.ts +1 -1
- package/src/cp-node/stringification/from-stringifyable.ts +2 -1
- package/src/cp-node/stringification/to-stringifyable.ts +2 -2
- package/src/debug/functions/check-ordering.ts +44 -61
- package/src/find-2-prong/add-2-prong.ts +3 -1
- package/src/find-2-prong/find-and-add-2-prongs.ts +1 -1
- package/src/find-2-prong/get-initial-bezier-pieces.ts +2 -2
- package/src/find-3-prong/find-3-prong-for-delta3s.ts +14 -6
- package/src/find-3-prong/find-3-prong.ts +1 -1
- package/src/find-3-prong/find-and-add-3-prong.ts +1 -4
- package/src/find-3-prong/find-and-add-3-prongs-on-loop.ts +6 -3
- package/src/find-3-prong/three-prong-info.ts +1 -1
- package/src/find-mat/create-initial-cp-tree.ts +2 -2
- package/src/find-mat/find-mat.ts +3 -2
- package/src/find-mat/get-for-1-prongs-on-loop.ts +3 -1
- package/src/mat/add-to-cp-tree copy.ts +71 -0
- package/src/mat/add-to-cp-tree.ts +12 -4
- package/src/mat/get-boundary-piece-beziers.ts +2 -2
- package/src/mat/get-closeby-cp-if-exist.ts +2 -2
- package/src/mat/{get-cp-node-to-left-or-same.ts → get-cp-node-neighbors.ts} +12 -10
- package/node/mat/get-cp-node-to-left-or-same.js +0 -30
- package/node/mat/get-cp-node-to-left-or-same.js.map +0 -1
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
import type { CpNode } from "../cp-node.js";
|
|
2
2
|
import type { PointOnShape } from "../../point-on-shape/point-on-shape.js";
|
|
3
3
|
import { RbTree } from "flo-ll-rb-tree";
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param insertIfOrderWrong order cannot be checked for hole-closers since they're on different loops
|
|
7
|
+
* @param isHoleClosing
|
|
8
|
+
* @param isIntersection
|
|
9
|
+
* @param cpTree
|
|
10
|
+
* @param pos
|
|
11
|
+
* @param pred predecessor (to `pos`) on sampe loop (found via `cpTree`)
|
|
12
|
+
* @param succ successor (to `pos`) on sampe loop (found via `cpTree`)
|
|
13
|
+
* @param lastInsertId
|
|
14
|
+
*/
|
|
15
|
+
declare function insertCpNode(insertIfOrderWrong: boolean, isHoleClosing: boolean, isIntersection: boolean, cpTree: RbTree<CpNode>, pos: PointOnShape, pred: CpNode | undefined, succ: CpNode | undefined, lastInsertId: {
|
|
5
16
|
id: number;
|
|
6
17
|
}): CpNode | undefined;
|
|
7
18
|
export { insertCpNode };
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import { isOrderCorrect } from "./is-order-correct.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param insertIfOrderWrong order cannot be checked for hole-closers since they're on different loops
|
|
5
|
+
* @param isHoleClosing
|
|
6
|
+
* @param isIntersection
|
|
7
|
+
* @param cpTree
|
|
8
|
+
* @param pos
|
|
9
|
+
* @param pred predecessor (to `pos`) on sampe loop (found via `cpTree`)
|
|
10
|
+
* @param succ successor (to `pos`) on sampe loop (found via `cpTree`)
|
|
11
|
+
* @param lastInsertId
|
|
12
|
+
*/
|
|
13
|
+
function insertCpNode(insertIfOrderWrong, isHoleClosing, isIntersection, cpTree, pos, pred, succ, lastInsertId) {
|
|
14
|
+
if (pred !== undefined && succ !== undefined) {
|
|
15
|
+
// !isOrderCorrect(cpTree, pos, pred.next, false)) {
|
|
16
|
+
const orderCorrect = isOrderCorrect(cpTree, pred, pos, succ, false);
|
|
17
|
+
// if (!orderCorrect) {
|
|
18
|
+
// console.log('aaaaa');
|
|
19
|
+
// }
|
|
20
|
+
if (!insertIfOrderWrong && !orderCorrect) {
|
|
6
21
|
return undefined;
|
|
7
22
|
}
|
|
8
23
|
}
|
|
@@ -17,8 +32,8 @@ function insertCpNode(insertIfOrderWrong, isHoleClosing, isIntersection, cpTree,
|
|
|
17
32
|
prevOnCircle: undefined
|
|
18
33
|
};
|
|
19
34
|
lastInsertId.id++;
|
|
20
|
-
const prev =
|
|
21
|
-
const next =
|
|
35
|
+
const prev = pred === undefined ? cpNode : pred;
|
|
36
|
+
const next = pred === undefined ? cpNode : prev.next;
|
|
22
37
|
next.prev = cpNode;
|
|
23
38
|
prev.next = cpNode;
|
|
24
39
|
cpNode.prev = prev;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insert-cp-node.js","sourceRoot":"","sources":["../../../src/cp-node/fs/insert-cp-node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,SAAS,YAAY,CACb,kBAA2B,EAC3B,aAAsB,EACtB,cAAuB,EACvB,MAAsB,EACtB,GAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"insert-cp-node.js","sourceRoot":"","sources":["../../../src/cp-node/fs/insert-cp-node.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD;;;;;;;;;;GAUG;AACH,SAAS,YAAY,CACb,kBAA2B,EAC3B,aAAsB,EACtB,cAAuB,EACvB,MAAsB,EACtB,GAAiB,EACjB,IAAwB,EACxB,IAAwB,EACxB,YAA4B;IAEhC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3C,oDAAoD;QACpD,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACpE,uBAAuB;QACvB,4BAA4B;QAC5B,IAAI;QACJ,IAAI,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;YACvC,OAAO,SAAS,CAAC;QACrB,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAoB;QAC5B,YAAY,EAAE,GAAG;QACjB,aAAa;QACb,cAAc;QACd,EAAE,EAAE,YAAY,CAAC,EAAE;QACnB,IAAI,EAAE,SAAU;QAChB,IAAI,EAAE,SAAU;QAChB,YAAY,EAAE,SAAU;QACxB,YAAY,EAAE,SAAU;KAC3B,CAAC;IACF,YAAY,CAAC,EAAE,EAAE,CAAC;IAElB,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;IAEpD,IAAwB,CAAC,IAAI,GAAG,MAAM,CAAC;IACvC,IAAwB,CAAC,IAAI,GAAG,MAAM,CAAC;IACxC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;IAEnB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtB,OAAO,MAAgB,CAAC;AAC5B,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { CpNode } from "../cp-node.js";
|
|
2
2
|
import { RbTree } from "flo-ll-rb-tree";
|
|
3
3
|
import { PointOnShape } from "../../point-on-shape/point-on-shape.js";
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param cpTree
|
|
7
|
+
* @param pos
|
|
8
|
+
* @param succ
|
|
9
|
+
* @param alreadyInserted set to `true` if the given `pos` has already been
|
|
10
|
+
* inserted, `false` otherwise.
|
|
11
|
+
*/
|
|
12
|
+
declare function isOrderCorrect(cpTree: RbTree<CpNode>, pred: CpNode, pos: PointOnShape, succ: CpNode, alreadyInserted: boolean): boolean;
|
|
5
13
|
export { isOrderCorrect };
|
|
@@ -1,20 +1,61 @@
|
|
|
1
1
|
import { comparePoss } from "../../point-on-shape/compare-poss.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param cpTree
|
|
5
|
+
* @param pos
|
|
6
|
+
* @param succ
|
|
7
|
+
* @param alreadyInserted set to `true` if the given `pos` has already been
|
|
8
|
+
* inserted, `false` otherwise.
|
|
9
|
+
*/
|
|
10
|
+
function isOrderCorrect(cpTree, pred, pos, succ, alreadyInserted) {
|
|
11
|
+
if (cpTree.size <= (alreadyInserted ? 2 : 1)) {
|
|
5
12
|
return true;
|
|
6
13
|
}
|
|
7
|
-
|
|
14
|
+
const a = pred.pointOnShape;
|
|
15
|
+
const b = pos;
|
|
16
|
+
const c = succ.pointOnShape;
|
|
17
|
+
// Let a = pred, b = pos, and c = succ.
|
|
18
|
+
// For a cyclic order we need:
|
|
19
|
+
// `(a < b && b < c)` || `(b < c && c < a)` || `(c < a && a < b)`
|
|
20
|
+
// Let `X = a < b, Y = b < c, Z = c < a` then
|
|
21
|
+
// `(X && Y)` || `(Y && Z)` || `(Z && X)`
|
|
22
|
+
const _X = comparePoss(a, b);
|
|
23
|
+
if (_X === 0) { // two points must have different order
|
|
24
|
+
// console.log('aaa');
|
|
25
|
+
// throw 'a';
|
|
8
26
|
return false;
|
|
9
27
|
}
|
|
10
|
-
const
|
|
11
|
-
if (
|
|
28
|
+
const _Y = comparePoss(b, c);
|
|
29
|
+
if (_Y === 0) { // two points must have different order
|
|
30
|
+
// console.log('bbb');
|
|
31
|
+
// throw 'b';
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const _Z = comparePoss(c, a);
|
|
35
|
+
if (_Z === 0) {
|
|
36
|
+
// console.log('bbb');
|
|
37
|
+
// throw 'c';
|
|
38
|
+
return false;
|
|
39
|
+
} // impossible anyway at this point
|
|
40
|
+
// Now neither `_X` nor `_Y` nor `_Z` === `0`
|
|
41
|
+
const X = _X < 0;
|
|
42
|
+
const Y = _Y < 0;
|
|
43
|
+
const Z = _Z < 0;
|
|
44
|
+
// Cyclic order condition
|
|
45
|
+
if ((X && Y) || (Y && Z) || (Z && X)) {
|
|
12
46
|
return true;
|
|
13
47
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
//
|
|
17
|
-
return
|
|
48
|
+
// throw 'd';
|
|
49
|
+
// console.log(_X, _Y, _Z);
|
|
50
|
+
// console.log(cpTree.toArr().map(v => {
|
|
51
|
+
// return {
|
|
52
|
+
// curveIdx: v.pointOnShape.curve.idx,
|
|
53
|
+
// t: v.pointOnShape.t,
|
|
54
|
+
// order: v.pointOnShape.order,
|
|
55
|
+
// order2: v.pointOnShape.order2
|
|
56
|
+
// }
|
|
57
|
+
// }));
|
|
58
|
+
return false;
|
|
18
59
|
}
|
|
19
60
|
export { isOrderCorrect };
|
|
20
61
|
//# sourceMappingURL=is-order-correct.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-order-correct.js","sourceRoot":"","sources":["../../../src/cp-node/fs/is-order-correct.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE,SAAS,cAAc,CACf,MAAsB,EACtB,GAAiB,EACjB,IAAY;
|
|
1
|
+
{"version":3,"file":"is-order-correct.js","sourceRoot":"","sources":["../../../src/cp-node/fs/is-order-correct.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGnE;;;;;;;GAOG;AACH,SAAS,cAAc,CACf,MAAsB,EACtB,IAAY,EACZ,GAAiB,EACjB,IAAY,EACZ,eAAwB;IAE5B,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAC5B,MAAM,CAAC,GAAG,GAAG,CAAC;IACd,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;IAE5B,uCAAuC;IACvC,8BAA8B;IAC9B,iEAAiE;IACjE,6CAA6C;IAC7C,yCAAyC;IAEzC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAE,uCAAuC;QACpD,sBAAsB;QACtB,aAAa;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAE,uCAAuC;QACpD,sBAAsB;QACtB,aAAa;QACb,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QACX,sBAAsB;QACtB,aAAa;QACb,OAAO,KAAK,CAAC;IACjB,CAAC,CAAE,kCAAkC;IAErC,6CAA6C;IAC7C,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACjB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEjB,yBAAyB;IACzB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IAEtD,aAAa;IAEb,2BAA2B;IAC3B,wCAAwC;IACxC,eAAe;IACf,8CAA8C;IAC9C,+BAA+B;IAC/B,uCAAuC;IACvC,wCAAwC;IACxC,QAAQ;IACR,OAAO;IAEP,OAAO,KAAK,CAAC;AACjB,CAAC;AAGD,OAAO,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -5,7 +5,7 @@ function removeCpNode(cpNode, meta) {
|
|
|
5
5
|
prev.next = next;
|
|
6
6
|
next.prev = prev;
|
|
7
7
|
const cpTree = cpTrees.get(cpNode.pointOnShape.curve.loop);
|
|
8
|
-
cpTree.remove(cpNode
|
|
8
|
+
cpTree.remove(cpNode);
|
|
9
9
|
}
|
|
10
10
|
export { removeCpNode };
|
|
11
11
|
//# sourceMappingURL=remove-cp-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-cp-node.js","sourceRoot":"","sources":["../../../src/cp-node/fs/remove-cp-node.ts"],"names":[],"mappings":"AAKA,SAAS,YAAY,CACb,MAAc,EACd,IAAa;IAEjB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACxB,IAAwB,CAAC,IAAI,GAAG,IAAI,CAAC;IACrC,IAAwB,CAAC,IAAI,GAAG,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IAC5D,MAAM,CAAC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"remove-cp-node.js","sourceRoot":"","sources":["../../../src/cp-node/fs/remove-cp-node.ts"],"names":[],"mappings":"AAKA,SAAS,YAAY,CACb,MAAc,EACd,IAAa;IAEjB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACxB,IAAwB,CAAC,IAAI,GAAG,IAAI,CAAC;IACrC,IAAwB,CAAC,IAAI,GAAG,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IAC5D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC;AAGD,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { getAllOnLoop } from "../../cp-node/fs/get-all-on-loop.js";
|
|
2
|
+
import { getProngCount } from "../../cp-node/fs/get-prong-count.js";
|
|
3
|
+
import { isOrderCorrect } from "../../cp-node/fs/is-order-correct.js";
|
|
4
|
+
function checkOrdering(meta, cpStart) {
|
|
5
|
+
const { cpTrees } = meta;
|
|
6
|
+
const cpNodes = getAllOnLoop(cpStart);
|
|
7
|
+
const wrongsPerLoop = new Map();
|
|
8
|
+
for (const cpNode of cpNodes) {
|
|
9
|
+
const pos = cpNode.pointOnShape;
|
|
10
|
+
const loop = pos.curve.loop;
|
|
11
|
+
if (loop !== cpNode.prev.pointOnShape.curve.loop ||
|
|
12
|
+
loop !== cpNode.next.pointOnShape.curve.loop) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
const cpTree = cpTrees.get(loop);
|
|
16
|
+
const orderCorrect = isOrderCorrect(cpTree, cpNode.prev, cpNode.pointOnShape, cpNode.next, true);
|
|
17
|
+
if (!orderCorrect) {
|
|
18
|
+
const A = toOrder(cpNode);
|
|
19
|
+
const B = toOrder(cpNode.next);
|
|
20
|
+
let wrongs = wrongsPerLoop.getOrInsert(loop, []);
|
|
21
|
+
wrongs.push([A, B]);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (const [loop, wrongs] of wrongsPerLoop) {
|
|
25
|
+
for (const wrong of wrongs) {
|
|
26
|
+
const A = wrong[0];
|
|
27
|
+
const B = wrong[1];
|
|
28
|
+
// const c = comparePoss(A.cpNode.pointOnShape, B.cpNode.pointOnShape);
|
|
29
|
+
console.log(A);
|
|
30
|
+
console.log(B);
|
|
31
|
+
console.log('---------');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function toOrder(cpNode) {
|
|
36
|
+
const prongCount = getProngCount(cpNode);
|
|
37
|
+
const { pointOnShape } = cpNode;
|
|
38
|
+
const { p, t, order, order2, curve } = pointOnShape;
|
|
39
|
+
const curveIdx = curve.idx;
|
|
40
|
+
return { cpNode, prongCount, p, curveIdx, t, order, order2 };
|
|
41
|
+
}
|
|
42
|
+
export { checkOrdering };
|
|
43
|
+
//# sourceMappingURL=check-ordering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-ordering.js","sourceRoot":"","sources":["../../../src/debug/functions/check-ordering.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAetE,SAAS,aAAa,CACd,IAAa,EACb,OAAe;IAEnB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtC,MAAM,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAC;IAC3D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC;QAChC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAE5B,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI;YAC5C,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAE/C,SAAS;QACb,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAElC,MAAM,YAAY,GAAG,cAAc,CAC/B,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAC9D,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,MAAM,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAC,MAAM,CAAC,IAAI,aAAa,EAAE,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,uEAAuE;YAEvE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;AACL,CAAC;AAGD,SAAS,OAAO,CACR,MAAc;IAElB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAChC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,YAAY,CAAC;IACpD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC;IAE3B,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACjE,CAAC;AAGD,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -53,12 +53,14 @@ function closeHole(meta, cpNodes) {
|
|
|
53
53
|
const [cpNodeSource, cpNodeAntipode] = cpNodes;
|
|
54
54
|
// Antipode - create and insert twin
|
|
55
55
|
const posAntipode = cpNodeAntipode.pointOnShape;
|
|
56
|
-
const cpNodeAntipodeTwin = insertCpNode(true, true, false, cpTrees.get(posAntipode.curve.loop), { ...posAntipode, order2: +1 }, cpNodeAntipode,
|
|
56
|
+
const cpNodeAntipodeTwin = insertCpNode(true, true, false, cpTrees.get(posAntipode.curve.loop), { ...posAntipode, order2: +1 }, cpNodeAntipode, undefined, // unused
|
|
57
|
+
meta.lastInsertId);
|
|
57
58
|
cpNodeAntipodeTwin.holeCloserTwin = cpNodeAntipode;
|
|
58
59
|
cpNodeAntipode.holeCloserTwin = cpNodeAntipodeTwin;
|
|
59
60
|
// Source - create and insert twin
|
|
60
61
|
const posSource = cpNodeSource.pointOnShape;
|
|
61
|
-
const cpNodeSourceTwin = insertCpNode(true, true, false, cpTrees.get(posSource.curve.loop), { ...
|
|
62
|
+
const cpNodeSourceTwin = insertCpNode(true, true, false, cpTrees.get(posSource.curve.loop), { ...posSource, order2: -1 }, cpNodeSource.prev, undefined, // unused
|
|
63
|
+
meta.lastInsertId);
|
|
62
64
|
cpNodeSourceTwin.holeCloserTwin = cpNodeSource;
|
|
63
65
|
cpNodeSource.holeCloserTwin = cpNodeSourceTwin;
|
|
64
66
|
// Connect graph
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-2-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/add-2-prong.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAG/D;;;;;;;;;;GAUG;AACH,SAAS,SAAS,CACV,IAAa,EACb,MAAc,EACd,UAA2B,EAC3B,YAA6B,EAC7B,aAAsB;IAE1B,UAAU,GAAG,UAAU,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;QACvD,CAAC,CAAC,UAAU,CAAC;IAEjB,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAiB;QAC9B,GAAG,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;KAC3D,CAAC;IACF,MAAM,SAAS,GAAiB;QAC5B,GAAG,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;KACvD,CAAA;IAED,uEAAuE;IACvE,mCAAmC;IACnC,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrE,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,WAAW,CACtC,aAAa,EAAE,aAAa,EAAE,MAAM,EACpC,CAAC,WAAW,EAAE,aAAa,CAAC,EAC5B,IAAI,EACJ,CAAC,SAAS,EAAE,WAAW,CAAC,CAC3B,CAAC;IAEF,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACrB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAChB,SAAS,CAAC,IAAI,EAAE,OAAmB,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,6BAA6B;AACrD,CAAC;AAGD,SAAS,SAAS,CACV,IAAa,EACb,OAAiB;IAErB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,OAA4B,CAAC;IAEpE,oCAAoC;IACpC,MAAM,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC;IAChD,MAAM,kBAAkB,GAAG,YAAY,CACnC,IAAI,EAAE,IAAI,EAAE,KAAK,EACjB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAE,EACpC,EAAE,GAAG,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAC9B,cAAc,EACd,IAAI,CAAC,YAAY,CACA,CAAC;IACtB,kBAAkB,CAAC,cAAc,GAAG,cAAc,CAAC;IACnD,cAAc,CAAC,cAAc,GAAG,kBAAkB,CAAC;IAEnD,kCAAkC;IAClC,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC;IAC5C,MAAM,gBAAgB,GAAG,YAAY,CACjC,IAAI,EAAE,IAAI,EAAE,KAAK,EACjB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAE,EAClC,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"add-2-prong.js","sourceRoot":"","sources":["../../src/find-2-prong/add-2-prong.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ function findAndAdd2Prongs(meta, angleIncrement, for2Prongs, for1Prong) {
|
|
|
19
19
|
const angleIncrement_ = angleIncrement * PI / 180;
|
|
20
20
|
for (let i = 0; i < for2Prongs.length; i++) {
|
|
21
21
|
const pos = for2Prongs[i];
|
|
22
|
-
const angles = getValidAngles(angleIncrement_, pos);
|
|
22
|
+
const angles = for1Prong ? [0] : getValidAngles(angleIncrement_, pos);
|
|
23
23
|
for (const angle of angles) {
|
|
24
24
|
const twoProngInfo = find2Prong_(false, for1Prong, angle, pos);
|
|
25
25
|
if (twoProngInfo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-and-add-2-prongs.js","sourceRoot":"","sources":["../../src/find-2-prong/find-and-add-2-prongs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;AAC3B,8EAA8E;AAG9E;;;;;;;;GAQG;AACH,SAAS,iBAAiB,CAClB,IAAa,EACb,cAAsB,EACtB,UAA6B,EAC7B,SAAkB;IAEtB,IAAI,OAAO,CAAC;IAEZ,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAErC,MAAM,eAAe,GAAG,cAAc,GAAC,EAAE,GAAC,GAAG,CAAC;IAC9C,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAE1B,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"find-and-add-2-prongs.js","sourceRoot":"","sources":["../../src/find-2-prong/find-and-add-2-prongs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getCpNodeNeighbors } from '../mat/get-cp-node-neighbors.js';
|
|
2
2
|
import { getBoundaryPieceBeziers } from '../mat/get-boundary-piece-beziers.js';
|
|
3
3
|
import { calcPosOrder } from '../point-on-shape/calc-pos-order.js';
|
|
4
4
|
import { isPosCorner } from '../point-on-shape/is-pos-corner.js';
|
|
@@ -19,7 +19,7 @@ function getInitialCurvePieces(angle, isHoleClosing, loop, loops, meta, yPos, xO
|
|
|
19
19
|
? +1
|
|
20
20
|
: calcPosOrder(xO, yPos)
|
|
21
21
|
: 0;
|
|
22
|
-
const cpNode =
|
|
22
|
+
const cpNode = getCpNodeNeighbors(cpTrees.get(loop), yPos, order, 0)?.[0];
|
|
23
23
|
if (!cpNode ||
|
|
24
24
|
// The special case if there is only a single sharp corner or
|
|
25
25
|
// two-way terminating 2-prong currently in the MAT. Don't remove!
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-initial-bezier-pieces.js","sourceRoot":"","sources":["../../src/find-2-prong/get-initial-bezier-pieces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"get-initial-bezier-pieces.js","sourceRoot":"","sources":["../../src/find-2-prong/get-initial-bezier-pieces.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAGpE,gBAAgB;AAChB,SAAS,qBAAqB,CACtB,KAAa,EACb,aAAsB,EACtB,IAAU,EACV,KAAa,EACb,IAAa,EACb,IAAqB,EACrB,EAAY;IAEhB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAEzB,IAAI,aAAa,EAAE,CAAC;QAChB,OAAO,KAAK;aACX,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;aAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM;aACvB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACxC,CAAC;IACN,CAAC;IAED,MAAM,KAAK,GACP,WAAW,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM;QAC3C,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC;QAC5B,CAAC,CAAC,CAAC,CAAC;IAEZ,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM;QACP,8DAA8D;QAC9D,kEAAkE;QAClE,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAEhC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,uBAAuB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAGD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
|
@@ -12,7 +12,7 @@ import type { ThreeProngInfo } from './three-prong-info.js';
|
|
|
12
12
|
*
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
|
-
declare function find3ProngForDelta3s(δs: CpNode
|
|
15
|
+
declare function find3ProngForDelta3s(δs: [CpNode, CpNode][], idx: number, k: number, curvePiecess: CurvePiece[][], maxCoordPowerOf2: number): {
|
|
16
16
|
error: number;
|
|
17
17
|
threeProngInfo: ThreeProngInfo;
|
|
18
18
|
} | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-3-prong-for-delta3s.js","sourceRoot":"","sources":["../../src/find-3-prong/find-3-prong-for-delta3s.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACnI,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kEAAkE,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;AAGhC;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CACrB,
|
|
1
|
+
{"version":3,"file":"find-3-prong-for-delta3s.js","sourceRoot":"","sources":["../../src/find-3-prong/find-3-prong-for-delta3s.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ import type { ThreeProngInfo } from './three-prong-info.js';
|
|
|
9
9
|
*
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
|
-
declare function find3Prong(δs: CpNode
|
|
12
|
+
declare function find3Prong(δs: [CpNode, CpNode][], maxCoordPowerOf2: number): ThreeProngInfo;
|
|
13
13
|
export { find3Prong };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-3-prong.js","sourceRoot":"","sources":["../../src/find-3-prong/find-3-prong.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E;;;;;;;;GAQG;AACH,SAAS,UAAU,CACX,
|
|
1
|
+
{"version":3,"file":"find-3-prong.js","sourceRoot":"","sources":["../../src/find-3-prong/find-3-prong.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAG/E;;;;;;;;GAQG;AACH,SAAS,UAAU,CACX,EAAsB,EACtB,gBAAwB;IAE5B,4EAA4E;IAC5E,iDAAiD;IACjD,iDAAiD;IAEjD,MAAM,YAAY,GAAG,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IAErD,2EAA2E;IAC3E,IAAI,UAA0B,CAAC;IAE/B,IAAI,aAAa,GAAG,QAAQ,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,oBAAoB,CAC1B,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,CAC3C,CAAC;YAEF,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;gBAAC,SAAS;YAAC,CAAC;YAElC,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,CAAC;YAEpC,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;gBACxB,aAAa,GAAG,KAAK,CAAC;gBACtB,UAAU,GAAG,cAAc,CAAC;YAChC,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,UAAW,CAAC;AACvB,CAAC;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -36,7 +36,7 @@ function findAndAdd3Prong(meta, visitedCps) {
|
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
const cpNodes = closeBysFor3Prong.length === 0
|
|
39
|
-
? addToCpTree(true, false, circle, orders, meta, poss, δ3s
|
|
39
|
+
? addToCpTree(true, false, circle, orders, meta, poss, δ3s).cpNodes
|
|
40
40
|
: [];
|
|
41
41
|
return { closeBysFor3Prong, cpNodes: cpNodes };
|
|
42
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-and-add-3-prong.js","sourceRoot":"","sources":["../../src/find-3-prong/find-and-add-3-prong.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,IAAI,EAAE,GAAG,CAAC,CAAC;AACX;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACjB,IAAa,EACb,UAAoB;IAExB,MAAM,EAAE,GAAuB,EAAE,CAAC;IAClC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"find-and-add-3-prong.js","sourceRoot":"","sources":["../../src/find-3-prong/find-and-add-3-prong.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,IAAI,EAAE,GAAG,CAAC,CAAC;AACX;;;;;;;GAOG;AACH,SAAS,gBAAgB,CACjB,IAAa,EACb,UAAoB;IAExB,MAAM,EAAE,GAAuB,EAAE,CAAC;IAClC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAE7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,cAAc,CAAC;IAE7C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,iBAAiB,GAAa,EAAE,CAAC;IACvC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC5C,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;QACL,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,KAAK,CAAC;QAC1C,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO;QACnE,CAAC,CAAC,EAAE,CAAC;IAET,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAmB,EAAE,CAAC;AAC/D,CAAC;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -6,6 +6,6 @@ import type { MatMeta } from '../mat/mat-meta.js';
|
|
|
6
6
|
*
|
|
7
7
|
* @param meta
|
|
8
8
|
* @param cpStart The CpNode to start traversing from.
|
|
9
|
-
|
|
9
|
+
*/
|
|
10
10
|
declare function findAndAdd3ProngsOnLoop(meta: MatMeta, cpStart: CpNode | undefined): CpNode | undefined;
|
|
11
11
|
export { findAndAdd3ProngsOnLoop };
|
|
@@ -8,7 +8,7 @@ import { getAllOnCircle } from '../cp-node/fs/get-all-on-circle.js';
|
|
|
8
8
|
*
|
|
9
9
|
* @param meta
|
|
10
10
|
* @param cpStart The CpNode to start traversing from.
|
|
11
|
-
|
|
11
|
+
*/
|
|
12
12
|
function findAndAdd3ProngsOnLoop(meta, cpStart) {
|
|
13
13
|
if (cpStart === undefined) {
|
|
14
14
|
return undefined;
|
|
@@ -19,7 +19,11 @@ function findAndAdd3ProngsOnLoop(meta, cpStart) {
|
|
|
19
19
|
reLoop = false;
|
|
20
20
|
const cpNodeSet = new Set(getAllOnLoop(cpStart));
|
|
21
21
|
for (const cpNode of cpNodeSet) {
|
|
22
|
-
const
|
|
22
|
+
const threeProngs = findAndAdd3Prongs(meta, cpNode);
|
|
23
|
+
if (threeProngs === undefined) {
|
|
24
|
+
return getFirstItemOfSet(cpNodeGoodSet);
|
|
25
|
+
}
|
|
26
|
+
const { closeBysFor3Prong, addedCpNodes } = threeProngs;
|
|
23
27
|
if (addedCpNodes.length > 0) {
|
|
24
28
|
reLoop = true;
|
|
25
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-and-add-3-prongs-on-loop.js","sourceRoot":"","sources":["../../src/find-3-prong/find-and-add-3-prongs-on-loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE;;;;;;
|
|
1
|
+
{"version":3,"file":"find-and-add-3-prongs-on-loop.js","sourceRoot":"","sources":["../../src/find-3-prong/find-and-add-3-prongs-on-loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGpE;;;;;;GAMG;AACH,SAAS,uBAAuB,CACxB,IAAa,EACb,OAA2B;IAE/B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,SAAU,CAAC;IAAC,CAAC;IAEjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,OAAO,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,KAAK,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACpD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,iBAAiB,CAAC,aAAa,CAAE,CAAC;YAC7C,CAAC;YACD,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC;YAExD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAC,MAAM,GAAG,IAAI,CAAC;YAAC,CAAC;YAE/C,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gBAClC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC;gBACd,eAAe,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;YACvE,CAAC;YAED,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC;QACD,OAAO,GAAG,iBAAiB,CAAC,aAAa,CAAE,CAAC;IAChD,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAGD,oDAAoD;AACpD,SAAS,iBAAiB,CAAI,GAAW;IACrC,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAGD,SAAS,eAAe,CAChB,IAAa,EACb,iBAA2B,EAC3B,SAAsB,EACtB,aAA0B;IAE9B,MAAM,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACrC,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QAChC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IACH,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChC,CAAC;AAGD,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
|
|
@@ -4,6 +4,6 @@ import type { PrePointOnShape } from '../point-on-shape/point-on-shape.js';
|
|
|
4
4
|
interface ThreeProngInfo {
|
|
5
5
|
readonly circle: Circle;
|
|
6
6
|
readonly poss: PrePointOnShape[];
|
|
7
|
-
readonly δ3s: CpNode[][];
|
|
7
|
+
readonly δ3s: [[CpNode, CpNode], [CpNode, CpNode], [CpNode, CpNode]];
|
|
8
8
|
}
|
|
9
9
|
export type { ThreeProngInfo };
|
|
@@ -26,8 +26,8 @@ function createInitialCpTree(loops, sharpCornerss, lastInsertId) {
|
|
|
26
26
|
const { curve } = ppos;
|
|
27
27
|
const pos1 = { ...ppos, curve, t: 1, circle, order: -1, order2: 0 };
|
|
28
28
|
const pos2 = { ...ppos, curve: curve.next, t: 0, circle, order: +1, order2: 0 };
|
|
29
|
-
cpNode1 = insertCpNode(true, false, false, cpTree, pos1, cpNode2, lastInsertId);
|
|
30
|
-
cpNode2 = insertCpNode(true, false, false, cpTree, pos2, cpNode1, lastInsertId);
|
|
29
|
+
cpNode1 = insertCpNode(true, false, false, cpTree, pos1, cpNode2, undefined, /* unused */ lastInsertId);
|
|
30
|
+
cpNode2 = insertCpNode(true, false, false, cpTree, pos2, cpNode1, undefined, /* unused */ lastInsertId);
|
|
31
31
|
cpNode1.prevOnCircle = cpNode2;
|
|
32
32
|
cpNode2.prevOnCircle = cpNode1;
|
|
33
33
|
cpNode1.nextOnCircle = cpNode2;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-initial-cp-tree.js","sourceRoot":"","sources":["../../src/find-mat/create-initial-cp-tree.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CACpB,KAAa,EACb,aAAkC,EAClC,YAA4B;IAEhC,MAAM,OAAO,GAA8B,IAAI,GAAG,EAAE,CAAC;IAErD,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAE9B,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,OAAO,GAAgC,SAAS,CAAC;QACrD,IAAI,OAAO,GAAgC,SAAS,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAEvB,MAAM,IAAI,GAAiB,EAAE,GAAG,IAAI,EAAE,KAAK,EAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,GAAiB,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAE9F,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"create-initial-cp-tree.js","sourceRoot":"","sources":["../../src/find-mat/create-initial-cp-tree.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE;;;;;;;;;;;GAWG;AACH,SAAS,mBAAmB,CACpB,KAAa,EACb,aAAkC,EAClC,YAA4B;IAEhC,MAAM,OAAO,GAA8B,IAAI,GAAG,EAAE,CAAC;IAErD,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAE9B,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,OAAO,GAAgC,SAAS,CAAC;QACrD,IAAI,OAAO,GAAgC,SAAS,CAAC;QACrD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC7C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;YAEvB,MAAM,IAAI,GAAiB,EAAE,GAAG,IAAI,EAAE,KAAK,EAAc,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,GAAiB,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;YAE9F,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,YAAY,CAAE,CAAC;YACzG,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,YAAY,CAAE,CAAC;YAEzG,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;YAC/B,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC;QACnC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -58,10 +58,10 @@ function findMat(loops, maxCoordPowerOf2, options) {
|
|
|
58
58
|
}
|
|
59
59
|
if (typeof _debug_ !== 'undefined') {
|
|
60
60
|
if (_debug_.directives.stopAfterThreeProngs) {
|
|
61
|
-
return { cpNode
|
|
61
|
+
return { cpNode, meta };
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
|
-
// if (cpNode !== undefined) { checkOrdering(
|
|
64
|
+
// if (cpNode !== undefined) { checkOrdering(meta, cpNode); }
|
|
65
65
|
const mat = { cpNode, meta };
|
|
66
66
|
addDebugInfo4();
|
|
67
67
|
return mat;
|
|
@@ -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,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uDAAuD,CAAC;AACpG,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,7 +22,9 @@ function getFor1ProngsOnLoop(minBezLength) {
|
|
|
22
22
|
return { curve, t, isSource: true, p, pDd };
|
|
23
23
|
}));
|
|
24
24
|
}
|
|
25
|
-
return poss
|
|
25
|
+
return poss
|
|
26
|
+
// keep away from edges
|
|
27
|
+
.filter(pos => pos.t > 2 ** -20 && pos.t < 2 ** -20);
|
|
26
28
|
};
|
|
27
29
|
}
|
|
28
30
|
export { getFor1ProngsOnLoop };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-for-1-prongs-on-loop.js","sourceRoot":"","sources":["../../src/find-mat/get-for-1-prongs-on-loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;GAMG;AACH,SAAS,mBAAmB,CACpB,YAAoB;IAExB,OAAO,UAAS,IAAU;QACtB,MAAM,IAAI,GAAsB,EAAE,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAE7B,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC;gBACnD,SAAS;YACb,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAErB,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAClD,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;YAC/C,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,OAAO,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"get-for-1-prongs-on-loop.js","sourceRoot":"","sources":["../../src/find-mat/get-for-1-prongs-on-loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD;;;;;;GAMG;AACH,SAAS,mBAAmB,CACpB,YAAoB;IAExB,OAAO,UAAS,IAAU;QACtB,MAAM,IAAI,GAAsB,EAAE,CAAC;QAEnC,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAE7B,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,YAAY,EAAE,CAAC;gBACnD,SAAS;YACb,CAAC;YAED,MAAM,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC;YAErB,IAAI,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAClD,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAA;YAC/C,CAAC,CAAC,CAAC,CAAC;QACR,CAAC;QAED,OAAO,IAAI;YACP,uBAAuB;aACtB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAE,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAE,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC,CAAA;AACL,CAAC;AAGD,OAAO,EAAE,mBAAmB,EAAE,CAAA"}
|