flo-mat 3.0.7 → 3.0.9
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/browser/index.js +23 -19
- package/browser/index.min.js +1 -1
- package/node/cp-node/cp-node-fs.d.ts +11 -11
- package/node/cp-node/cp-node-fs.js +11 -11
- package/node/cp-node/cp-node.d.ts +15 -15
- package/node/find-mat/find-mat.js +4 -0
- package/node/find-mat/find-mat.js.map +1 -1
- package/node/find-mat/get-meta.js.map +1 -1
- package/node/index.d.ts +1 -0
- package/node/index.js +1 -1
- package/node/index.js.map +1 -1
- package/node/mat/mat.d.ts +1 -1
- package/node/point-on-shape/compare-poss.d.ts +3 -3
- package/node/point-on-shape/compare-poss.js +3 -3
- package/node/point-on-shape/get-osculating-circle.d.ts +1 -1
- package/node/point-on-shape/get-osculating-circle.js +1 -1
- package/node/point-on-shape/pos-to-human-string.d.ts +1 -1
- package/node/point-on-shape/pos-to-human-string.js +1 -1
- package/node/sat/to-scale-axis.d.ts +1 -1
- package/node/sat/to-scale-axis.js +1 -1
- package/package.json +1 -1
- package/src/find-mat/find-mat.ts +6 -0
- package/src/find-mat/get-meta.ts +7 -1
- package/src/index.ts +1 -1
|
@@ -36,17 +36,17 @@ declare const CpNodeFs: {
|
|
|
36
36
|
/**
|
|
37
37
|
* Returns the children of this `CpNode` when seen as a MAT edge. Only
|
|
38
38
|
* children in a 'forward' direction are returned. These include all edges
|
|
39
|
-
* except the 'backward' edge given by
|
|
39
|
+
* except the 'backward' edge given by `prevOnCircle`, even terminating
|
|
40
40
|
* edges.
|
|
41
41
|
*/
|
|
42
42
|
getChildren: typeof getChildren;
|
|
43
43
|
/**
|
|
44
|
-
* Similar to
|
|
44
|
+
* Similar to `getChildren` but returns the child nodes of the tree when
|
|
45
45
|
* `CpNode` is seen as a MAT vertex point (as opposed to edge). In this
|
|
46
46
|
* way the dual graph of the tree can easily be traversed - see e.g.
|
|
47
|
-
*
|
|
47
|
+
* `traverseVertices`. Generally, however, traversing the edges is
|
|
48
48
|
* preferred as it returns the entire Medial Axis (by utilizing
|
|
49
|
-
*
|
|
49
|
+
* `getMatCurveToNext` on each returned edge).
|
|
50
50
|
*/
|
|
51
51
|
getVertexForwardChildren: typeof getVertexForwardChildren;
|
|
52
52
|
/**
|
|
@@ -78,7 +78,7 @@ declare const CpNodeFs: {
|
|
|
78
78
|
* maximal disk. It can be seen as a limiting case of a two-prong where the
|
|
79
79
|
* distance between two of the contact points tend to zero. One point
|
|
80
80
|
* (represented by a `CpNode` of course) will be terminating with the
|
|
81
|
-
* other point being its
|
|
81
|
+
* other point being its `next`, whereas the other point will *not* be
|
|
82
82
|
* terminating and 'points' back into the shape.
|
|
83
83
|
*/
|
|
84
84
|
isTerminating: typeof isTerminating;
|
|
@@ -97,7 +97,7 @@ declare const CpNodeFs: {
|
|
|
97
97
|
* limiting case of a two-prong having zero radius.
|
|
98
98
|
*
|
|
99
99
|
* Note that two `CpNode`s are stored for each sharp corner, one being
|
|
100
|
-
* terminating and one not. See
|
|
100
|
+
* terminating and one not. See `isTerminating` for more details.
|
|
101
101
|
*/
|
|
102
102
|
isSharp: typeof isSharp;
|
|
103
103
|
/**
|
|
@@ -106,7 +106,7 @@ declare const CpNodeFs: {
|
|
|
106
106
|
* corners.
|
|
107
107
|
*
|
|
108
108
|
* Note, however, that two `CpNode`s are stored for each such point to
|
|
109
|
-
* preserve symmetry - see
|
|
109
|
+
* preserve symmetry - see `isTerminating` for more details.
|
|
110
110
|
*/
|
|
111
111
|
isOneProng: typeof isOneProng;
|
|
112
112
|
/**
|
|
@@ -114,15 +114,15 @@ declare const CpNodeFs: {
|
|
|
114
114
|
* by this `CpNode`.
|
|
115
115
|
*
|
|
116
116
|
* Note, however, that even one-prongs and sharp corners will return 2 (see
|
|
117
|
-
*
|
|
118
|
-
*
|
|
117
|
+
* `isTerminating` for more details); if this is not desired use
|
|
118
|
+
* `getRealProngCount` instead which will return 1 in these cases.
|
|
119
119
|
*/
|
|
120
120
|
getProngCount: typeof getProngCount;
|
|
121
121
|
/**
|
|
122
122
|
* Returns the number of contact points (up to planar coordinates) on the
|
|
123
123
|
* maximal disk circle implied by this `CpNode`.
|
|
124
124
|
*
|
|
125
|
-
* See also
|
|
125
|
+
* See also `getProngCount`.
|
|
126
126
|
*/
|
|
127
127
|
getRealProngCount: typeof getRealProngCount;
|
|
128
128
|
/**
|
|
@@ -159,7 +159,7 @@ declare const CpNodeFs: {
|
|
|
159
159
|
* Traverses the MAT tree and calls the given callback function for each vertex
|
|
160
160
|
* (represented by a `CpNode`) on the MAT.
|
|
161
161
|
*
|
|
162
|
-
* It is usually preferable to use
|
|
162
|
+
* It is usually preferable to use `traverseEdges` as it allows for the
|
|
163
163
|
* traversal of all the smooth curves representing the MAT.
|
|
164
164
|
* @param cpNode Any `CpNode` representing the start vertex.
|
|
165
165
|
* @param traverseVerticesCallback A callback function taking a single `CpNode` as parameter.
|
|
@@ -38,17 +38,17 @@ const CpNodeFs = {
|
|
|
38
38
|
/**
|
|
39
39
|
* Returns the children of this `CpNode` when seen as a MAT edge. Only
|
|
40
40
|
* children in a 'forward' direction are returned. These include all edges
|
|
41
|
-
* except the 'backward' edge given by
|
|
41
|
+
* except the 'backward' edge given by `prevOnCircle`, even terminating
|
|
42
42
|
* edges.
|
|
43
43
|
*/
|
|
44
44
|
getChildren,
|
|
45
45
|
/**
|
|
46
|
-
* Similar to
|
|
46
|
+
* Similar to `getChildren` but returns the child nodes of the tree when
|
|
47
47
|
* `CpNode` is seen as a MAT vertex point (as opposed to edge). In this
|
|
48
48
|
* way the dual graph of the tree can easily be traversed - see e.g.
|
|
49
|
-
*
|
|
49
|
+
* `traverseVertices`. Generally, however, traversing the edges is
|
|
50
50
|
* preferred as it returns the entire Medial Axis (by utilizing
|
|
51
|
-
*
|
|
51
|
+
* `getMatCurveToNext` on each returned edge).
|
|
52
52
|
*/
|
|
53
53
|
getVertexForwardChildren,
|
|
54
54
|
/**
|
|
@@ -80,7 +80,7 @@ const CpNodeFs = {
|
|
|
80
80
|
* maximal disk. It can be seen as a limiting case of a two-prong where the
|
|
81
81
|
* distance between two of the contact points tend to zero. One point
|
|
82
82
|
* (represented by a `CpNode` of course) will be terminating with the
|
|
83
|
-
* other point being its
|
|
83
|
+
* other point being its `next`, whereas the other point will *not* be
|
|
84
84
|
* terminating and 'points' back into the shape.
|
|
85
85
|
*/
|
|
86
86
|
isTerminating,
|
|
@@ -99,7 +99,7 @@ const CpNodeFs = {
|
|
|
99
99
|
* limiting case of a two-prong having zero radius.
|
|
100
100
|
*
|
|
101
101
|
* Note that two `CpNode`s are stored for each sharp corner, one being
|
|
102
|
-
* terminating and one not. See
|
|
102
|
+
* terminating and one not. See `isTerminating` for more details.
|
|
103
103
|
*/
|
|
104
104
|
isSharp,
|
|
105
105
|
/**
|
|
@@ -108,7 +108,7 @@ const CpNodeFs = {
|
|
|
108
108
|
* corners.
|
|
109
109
|
*
|
|
110
110
|
* Note, however, that two `CpNode`s are stored for each such point to
|
|
111
|
-
* preserve symmetry - see
|
|
111
|
+
* preserve symmetry - see `isTerminating` for more details.
|
|
112
112
|
*/
|
|
113
113
|
isOneProng,
|
|
114
114
|
/**
|
|
@@ -116,15 +116,15 @@ const CpNodeFs = {
|
|
|
116
116
|
* by this `CpNode`.
|
|
117
117
|
*
|
|
118
118
|
* Note, however, that even one-prongs and sharp corners will return 2 (see
|
|
119
|
-
*
|
|
120
|
-
*
|
|
119
|
+
* `isTerminating` for more details); if this is not desired use
|
|
120
|
+
* `getRealProngCount` instead which will return 1 in these cases.
|
|
121
121
|
*/
|
|
122
122
|
getProngCount,
|
|
123
123
|
/**
|
|
124
124
|
* Returns the number of contact points (up to planar coordinates) on the
|
|
125
125
|
* maximal disk circle implied by this `CpNode`.
|
|
126
126
|
*
|
|
127
|
-
* See also
|
|
127
|
+
* See also `getProngCount`.
|
|
128
128
|
*/
|
|
129
129
|
getRealProngCount,
|
|
130
130
|
/**
|
|
@@ -161,7 +161,7 @@ const CpNodeFs = {
|
|
|
161
161
|
* Traverses the MAT tree and calls the given callback function for each vertex
|
|
162
162
|
* (represented by a `CpNode`) on the MAT.
|
|
163
163
|
*
|
|
164
|
-
* It is usually preferable to use
|
|
164
|
+
* It is usually preferable to use `traverseEdges` as it allows for the
|
|
165
165
|
* traversal of all the smooth curves representing the MAT.
|
|
166
166
|
* @param cpNode Any `CpNode` representing the start vertex.
|
|
167
167
|
* @param traverseVerticesCallback A callback function taking a single `CpNode` as parameter.
|
|
@@ -9,41 +9,41 @@ import { ContactPoint } from '../contact-point/contact-point.js';
|
|
|
9
9
|
* represents the entire MAT.
|
|
10
10
|
*
|
|
11
11
|
* To get the maximal disk circle (of which the center is on the medial axis)
|
|
12
|
-
* use
|
|
12
|
+
* use `cp.circle`.
|
|
13
13
|
*
|
|
14
|
-
* To get the boundary point, use
|
|
14
|
+
* To get the boundary point, use `cp.pointOnShape`.
|
|
15
15
|
*
|
|
16
|
-
* The edge
|
|
16
|
+
* The edge `next` (resp. `prev`) allows one to move anti-clockwise (resp.
|
|
17
17
|
* clockwise) on the shape boundary to the next `CpNode`. This also imposes a
|
|
18
18
|
* direction of traversal of the MAT edges and vertices.
|
|
19
19
|
*
|
|
20
|
-
* The edge
|
|
20
|
+
* The edge `nextOnCircle` (resp. `prevOnCircle`) allows one to go
|
|
21
21
|
* anti-clockwise (resp. clockwise) around the maximal disks implied by
|
|
22
22
|
* the CpNode to the next maximal disk contact point. This is equivalent to
|
|
23
23
|
* following other branches on the MAT.
|
|
24
24
|
*
|
|
25
|
-
* Call
|
|
26
|
-
* (replacing the older CpNode
|
|
25
|
+
* Call `getMatCurveBetween(cpNodeFrom, cpNodeTo)` or `getMatCurveToNext(cpNode)`
|
|
26
|
+
* (replacing the older CpNode.`matCurveToNextVertex`) to get a bezier curve
|
|
27
27
|
* from the maximal disk of this `CpNode` to the next `CpNode`'s
|
|
28
28
|
* maximal disk and thus directly representing a piece of the medial axis.
|
|
29
29
|
*
|
|
30
|
-
* The function,
|
|
30
|
+
* The function, `getChildren`, returns the children of this `CpNode` when
|
|
31
31
|
* seen as a MAT edge. Only children in a 'forward' direction are returned. These
|
|
32
|
-
* include all edges except the 'backward' edge given by
|
|
32
|
+
* include all edges except the 'backward' edge given by `prevOnCircle`. For
|
|
33
33
|
* `CpNode`s having a maximal disk with 2 contact points (a 2-prong, the usual
|
|
34
|
-
* case) the children will be the single edge
|
|
35
|
-
* be the edges
|
|
36
|
-
* easily traverse the MAT tree - see e.g. the implementation of
|
|
34
|
+
* case) the children will be the single edge `next`. For a 3-prong this will
|
|
35
|
+
* be the edges `next` and `nextOnCircle`, etc. `getChildren` allows one to
|
|
36
|
+
* easily traverse the MAT tree - see e.g. the implementation of `traverseEdges`.
|
|
37
37
|
*
|
|
38
|
-
* The getter,
|
|
38
|
+
* The getter, `getVertexForwardChildren`, is similar to `getChildren` but returns the
|
|
39
39
|
* child nodes of the tree when `CpNode` is seen as a MAT vertex point (as
|
|
40
40
|
* opposed to edge). In this way the dual graph of the tree can easily be
|
|
41
|
-
* traversed - see e.g.
|
|
41
|
+
* traversed - see e.g. `traverseVertices`. Generally, however, traversing the
|
|
42
42
|
* edges is preferred as it returns the entire Medial Axis (by utilizing
|
|
43
|
-
*
|
|
43
|
+
* `getMatCurveToNext` on each returned edge).
|
|
44
44
|
*
|
|
45
45
|
* It may be worth mentioning that by traversing from the CpNode by following
|
|
46
|
-
*
|
|
46
|
+
* `next` repeatedly until one is back at the same CpNode allows one
|
|
47
47
|
* to 'go around' the shape boundary and at the same time traverse the MAT twice
|
|
48
48
|
* in opposite directions.
|
|
49
49
|
*/
|
|
@@ -33,6 +33,10 @@ function findMat(loops, maxCoordinate, options) {
|
|
|
33
33
|
maxCoordinate, squaredDiagonalLength, loops, cpTrees, pointToCpNode,
|
|
34
34
|
lastInsertId, ..._meta
|
|
35
35
|
};
|
|
36
|
+
// const cpTrees: Map<Loop, LlRbTree<CpNode>> = new Map();
|
|
37
|
+
// const lastInsertId = { id: 0 };
|
|
38
|
+
// createInitialCpTree(loops, cpTrees, sharpCornersPerLoop, lastInsertId);
|
|
39
|
+
// const meta = getMeta(maxCoordinate, squaredDiagonalLength, loops, cpTrees, lastInsertId);
|
|
36
40
|
let cpNode;
|
|
37
41
|
cpNode = findAndAddHoleClosing2Prongs(meta);
|
|
38
42
|
if (typeof _debug_ !== 'undefined') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9G,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;AAK5D;;;;;GAKG;AACH,SAAS,OAAO,CACR,KAAa,EACb,aAAqB,EACrB,OAA6B;IAEjC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE1E,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAE/D,MAAM,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,qBAAqB,GACvB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;QACxC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAgC,IAAI,GAAG,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/B,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,GAAY;QAClB,aAAa,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa;QACnE,YAAY,EAAE,GAAG,KAAK;KACzB,CAAC;
|
|
1
|
+
{"version":3,"file":"find-mat.js","sourceRoot":"","sources":["../../src/find-mat/find-mat.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9G,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;AAK5D;;;;;GAKG;AACH,SAAS,OAAO,CACR,KAAa,EACb,aAAqB,EACrB,OAA6B;IAEjC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE1E,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IACnE,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACjE,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACxF,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAE/D,MAAM,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,qBAAqB,GACvB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC;QACxC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC;IAE7C,MAAM,OAAO,GAAgC,IAAI,GAAG,EAAE,CAAC;IACvD,MAAM,YAAY,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;IAC/B,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,YAAY,CAAC,CAAC;IAEvE,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,IAAI,GAAY;QAClB,aAAa,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa;QACnE,YAAY,EAAE,GAAG,KAAK;KACzB,CAAC;IACF,0DAA0D;IAC1D,kCAAkC;IAClC,0EAA0E;IAE1E,4FAA4F;IAG5F,IAAI,MAA0B,CAAC;IAE/B,MAAM,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,MAAO,EAAE,IAAI,EAAE,CAAC;QAAC,CAAC;IACtF,CAAC;IACD,aAAa,EAAE,CAAC;IAEhB,MAAM,kBAAkB,GAAG,KAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC5D,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC;IAEhG,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC;IAE9F,MAAM,iBAAiB,GAAG,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC1D,MAAM,GAAG,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC;IAE/F,aAAa,EAAE,CAAC;IAEhB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,MAAO,EAAE,IAAI,EAAE,CAAC;QAAC,CAAC;IACpF,CAAC;IAED,MAAM,GAAG,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE/C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAAC,OAAO,SAAU,CAAC;IAAC,CAAC;IAEhD,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC;YAAC,OAAO,EAAE,MAAM,EAAE,MAAO,EAAE,IAAI,EAAE,CAAC;QAAC,CAAC;IACtF,CAAC;IAED,8EAA8E;IAE9E,gEAAgE;IAEhE,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAE7B,aAAa,EAAE,CAAC;IAEhB,OAAO,GAAG,CAAC;AACf,CAAC;AAGD,OAAO,EAAE,OAAO,EAAE,CAAA;AAIlB,wCAAwC;AACxC,mDAAmD;AACnD,8CAA8C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-meta.js","sourceRoot":"","sources":["../../src/find-mat/get-meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOpD,IAAI,WAAmB,CAAC;AAGxB,gBAAgB;AAChB,SAAS,gBAAgB,CACjB,KAAa,EACb,OAAoC;IAExC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,aAAa,GAAsC,IAAI,GAAG,EAAE,CAAC;IAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC3B,oBAAoB;QACpB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;YACxC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAGD,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,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,CAAC,WAAW,IAAI,GAAG,GAAG,WAAW,CAAC;IACxC,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,CAAC,aAAa,IAAI,GAAG,GAAG,WAAW,CAAC;IAC1C,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEhC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAC1D,CAAC;AAGD,OAAO,
|
|
1
|
+
{"version":3,"file":"get-meta.js","sourceRoot":"","sources":["../../src/find-mat/get-meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAInE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGnE,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAOpD,IAAI,WAAmB,CAAC;AAGxB,gBAAgB;AAChB,SAAS,gBAAgB,CACjB,KAAa,EACb,OAAoC;IAExC,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEhC,MAAM,aAAa,GAAsC,IAAI,GAAG,EAAE,CAAC;IAC/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC3B,oBAAoB;QACpB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;QACxC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC;YACxC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AAGD,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,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAC9B,MAAM,CAAC,WAAW,IAAI,GAAG,GAAG,WAAW,CAAC;IACxC,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAE9B,MAAM,CAAC,aAAa,IAAI,GAAG,GAAG,WAAW,CAAC;IAC1C,WAAW,GAAG,GAAG,CAAC;AACtB,CAAC;AAGD,SAAS,aAAa;IAClB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QAAC,OAAO;IAAC,CAAC;IAE/C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAEhC,MAAM,CAAC,WAAW,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;AAC1D,CAAC;AAGD,OAAO,EACH,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EAChB,CAAA"}
|
package/node/index.d.ts
CHANGED
|
@@ -46,4 +46,5 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
|
|
|
46
46
|
export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
|
|
47
47
|
export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
|
|
48
48
|
export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
|
|
49
|
+
export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
|
|
49
50
|
export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
|
package/node/index.js
CHANGED
|
@@ -30,6 +30,6 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
|
|
|
30
30
|
export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
|
|
31
31
|
export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
|
|
32
32
|
export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
|
|
33
|
-
|
|
33
|
+
export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
|
|
34
34
|
export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
|
|
35
35
|
//# 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;AAmBpF,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,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,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,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,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,
|
|
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;AAmBpF,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,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,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,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,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,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,sDAAsD,CAAC"}
|
package/node/mat/mat.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { MatMeta } from './mat-meta.js';
|
|
|
3
3
|
/**
|
|
4
4
|
* Represents a complete Medial Axis Transform (MAT).
|
|
5
5
|
*
|
|
6
|
-
* The MAT is fully described through its `CpNode` property. The
|
|
6
|
+
* The MAT is fully described through its `CpNode` property. The `cpTrees`
|
|
7
7
|
* property is only added to facilitate extension of the MAT, e.g. by adding
|
|
8
8
|
* extra maximal disks and is typically not used. See `CpNode` for more
|
|
9
9
|
* details.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { PointOnShape } from "./point-on-shape.js";
|
|
2
2
|
/**
|
|
3
|
-
* Compares two
|
|
3
|
+
* Compares two `PointOnShape`s according to their cyclic ordering imposed
|
|
4
4
|
* by their relative positions on the shape boundary.
|
|
5
|
-
* @param a The first
|
|
6
|
-
* @param b The second
|
|
5
|
+
* @param a The first `PointOnShape`.
|
|
6
|
+
* @param b The second `PointOnShape`.
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
declare function comparePoss(a: PointOnShape, b: PointOnShape): number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Compares two
|
|
2
|
+
* Compares two `PointOnShape`s according to their cyclic ordering imposed
|
|
3
3
|
* by their relative positions on the shape boundary.
|
|
4
|
-
* @param a The first
|
|
5
|
-
* @param b The second
|
|
4
|
+
* @param a The first `PointOnShape`.
|
|
5
|
+
* @param b The second `PointOnShape`.
|
|
6
6
|
* @internal
|
|
7
7
|
*/
|
|
8
8
|
function comparePoss(a, b) {
|
|
@@ -5,7 +5,7 @@ import { PointOnShape } from './point-on-shape.js';
|
|
|
5
5
|
*
|
|
6
6
|
* @param minCurvature If not Number.POSITIVE_INFINITY then the
|
|
7
7
|
* circle radius will be limited to this value.
|
|
8
|
-
* @param pos The
|
|
8
|
+
* @param pos The `PointOnShape` identifying the point.
|
|
9
9
|
* @param useMaxRadius
|
|
10
10
|
*/
|
|
11
11
|
declare function getOsculatingCircle(minCurvature: number, pos: PointOnShape, useMaxRadius?: boolean): Circle;
|
|
@@ -4,7 +4,7 @@ import { tangentExact, ddCurvature } from 'flo-bezier3';
|
|
|
4
4
|
*
|
|
5
5
|
* @param minCurvature If not Number.POSITIVE_INFINITY then the
|
|
6
6
|
* circle radius will be limited to this value.
|
|
7
|
-
* @param pos The
|
|
7
|
+
* @param pos The `PointOnShape` identifying the point.
|
|
8
8
|
* @param useMaxRadius
|
|
9
9
|
*/
|
|
10
10
|
function getOsculatingCircle(minCurvature, pos,
|
|
@@ -8,7 +8,7 @@ import { Mat } from '../mat/mat.js';
|
|
|
8
8
|
* boundary of the shape. The SAT is a simplification of the MAT that preserves
|
|
9
9
|
* less detail the higher the applied scale factor. The severity at which noise
|
|
10
10
|
* are removed depends on the local scale of the shape.
|
|
11
|
-
* @param mat The Medial Axis Transform (
|
|
11
|
+
* @param mat The Medial Axis Transform (`Mat`) on which to apply the SAT.
|
|
12
12
|
* @param s The scale factor >= 1 (e.g. 1.3)
|
|
13
13
|
*/
|
|
14
14
|
declare function toScaleAxis(mat: Mat, s: number): Mat;
|
|
@@ -13,7 +13,7 @@ import { getSatCulls } from './get-sat-culls.js';
|
|
|
13
13
|
* boundary of the shape. The SAT is a simplification of the MAT that preserves
|
|
14
14
|
* less detail the higher the applied scale factor. The severity at which noise
|
|
15
15
|
* are removed depends on the local scale of the shape.
|
|
16
|
-
* @param mat The Medial Axis Transform (
|
|
16
|
+
* @param mat The Medial Axis Transform (`Mat`) on which to apply the SAT.
|
|
17
17
|
* @param s The scale factor >= 1 (e.g. 1.3)
|
|
18
18
|
*/
|
|
19
19
|
function toScaleAxis(mat, s) {
|
package/package.json
CHANGED
package/src/find-mat/find-mat.ts
CHANGED
|
@@ -54,6 +54,12 @@ function findMat(
|
|
|
54
54
|
maxCoordinate, squaredDiagonalLength, loops, cpTrees, pointToCpNode,
|
|
55
55
|
lastInsertId, ..._meta
|
|
56
56
|
};
|
|
57
|
+
// const cpTrees: Map<Loop, LlRbTree<CpNode>> = new Map();
|
|
58
|
+
// const lastInsertId = { id: 0 };
|
|
59
|
+
// createInitialCpTree(loops, cpTrees, sharpCornersPerLoop, lastInsertId);
|
|
60
|
+
|
|
61
|
+
// const meta = getMeta(maxCoordinate, squaredDiagonalLength, loops, cpTrees, lastInsertId);
|
|
62
|
+
|
|
57
63
|
|
|
58
64
|
let cpNode: CpNode | undefined;
|
|
59
65
|
|
package/src/find-mat/get-meta.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -49,5 +49,5 @@ export { getSharpCornersOnLoop } from './find-mat/get-sharp-corners.js';
|
|
|
49
49
|
export { getFor2ProngsOnLoop } from './find-mat/get-for-2-prongs-on-loop.js';
|
|
50
50
|
export { getPotentialClosestPointsOnCurveCertified } from './closest-boundary-point/get-potential-closest-points-on-curve-certified.js';
|
|
51
51
|
export { getCloseBoundaryPointsCertified } from './closest-boundary-point/get-close-boundary-points-certified.js';
|
|
52
|
-
|
|
52
|
+
export { getPartialMeta, getPointToCpNode } from './find-mat/get-meta.js';
|
|
53
53
|
export { findAndAddHoleClosing2Prongs } from './find-2-prong/find-and-add-hole-closing-2-prongs.js';
|