@faicad/cq-compat 0.16.1 → 0.17.0
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/dist/gear-test-harness.d.ts +7 -4
- package/dist/gear-test-harness.d.ts.map +1 -1
- package/dist/gear-test-harness.js +10 -6
- package/dist/gear-test-harness.js.map +1 -1
- package/dist/gears.d.ts +8 -3
- package/dist/gears.d.ts.map +1 -1
- package/dist/gears.js.map +1 -1
- package/dist/workplane.d.ts.map +1 -1
- package/dist/workplane.js +125 -105
- package/dist/workplane.js.map +1 -1
- package/package.json +2 -2
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
* These ops call the occt-wasm kernel directly via `getKernel()` (the native
|
|
5
5
|
* singleton that `registerOcctBrepEngine()` initializes) and wrap results with
|
|
6
6
|
* `fromHandle`. `fromHandle` needs `getBackends().kernel.brep` to be a MESHABLE
|
|
7
|
-
* kernel
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* kernel. Since the 2026-09-24 narrowing (D12), `kernel.brep` must be the **L1
|
|
8
|
+
* adapter** (`BrepEngineApi`) — the L1 normalized method names
|
|
9
|
+
* (`surfaceCenterOfMass` / `subShapeHashes` / `uvBounds` …) exist only on the
|
|
10
|
+
* adapter, not on the raw `OcctKernel`. So we wire `occtEngine.primitives`
|
|
11
|
+
* (the L1 adapter over the SAME kernel singleton) into `configureBackends`;
|
|
12
|
+
* `createOcctPrimitives()` internally uses the same `initOcctWasm()` singleton,
|
|
13
|
+
* so handle spaces stay consistent across ops and fixtures.
|
|
11
14
|
*
|
|
12
15
|
* This file is NOT a test (no `*.test.ts`); it is imported by the E1–E4 specs.
|
|
13
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gear-test-harness.d.ts","sourceRoot":"","sources":["../src/gear-test-harness.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gear-test-harness.d.ts","sourceRoot":"","sources":["../src/gear-test-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,WAAW,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAE5C;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBvD;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,IAAI,UAAU,CAEnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,IAAI,GAAE,OAAO,CAAC,SAAS,CAAM,GAAG,SAAS,CAgB7D;AAED;;;;;GAKG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAEvC;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAEzC"}
|
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
* These ops call the occt-wasm kernel directly via `getKernel()` (the native
|
|
5
5
|
* singleton that `registerOcctBrepEngine()` initializes) and wrap results with
|
|
6
6
|
* `fromHandle`. `fromHandle` needs `getBackends().kernel.brep` to be a MESHABLE
|
|
7
|
-
* kernel
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* kernel. Since the 2026-09-24 narrowing (D12), `kernel.brep` must be the **L1
|
|
8
|
+
* adapter** (`BrepEngineApi`) — the L1 normalized method names
|
|
9
|
+
* (`surfaceCenterOfMass` / `subShapeHashes` / `uvBounds` …) exist only on the
|
|
10
|
+
* adapter, not on the raw `OcctKernel`. So we wire `occtEngine.primitives`
|
|
11
|
+
* (the L1 adapter over the SAME kernel singleton) into `configureBackends`;
|
|
12
|
+
* `createOcctPrimitives()` internally uses the same `initOcctWasm()` singleton,
|
|
13
|
+
* so handle spaces stay consistent across ops and fixtures.
|
|
11
14
|
*
|
|
12
15
|
* This file is NOT a test (no `*.test.ts`); it is imported by the E1–E4 specs.
|
|
13
16
|
*/
|
|
@@ -27,7 +30,6 @@ export { brepOf };
|
|
|
27
30
|
*/
|
|
28
31
|
export async function setupNativeKernel() {
|
|
29
32
|
await registerOcctBrepEngine();
|
|
30
|
-
const k = getKernel();
|
|
31
33
|
// Capability declaration is NOT re-typed here: take back the honest declaration
|
|
32
34
|
// the OCCT adapter itself carries. Before this, the harness hand-mirrored it with
|
|
33
35
|
// `evolution: true` — a second home for the same fact, which silently desynced the
|
|
@@ -35,6 +37,8 @@ export async function setupNativeKernel() {
|
|
|
35
37
|
// dual-ops that gate on a capability (e.g. union → 'fuse') still dispatch to brep
|
|
36
38
|
// instead of throwing E_BREP_UNSUPPORTED in the bare-kernel test path.
|
|
37
39
|
const occtEngine = await getBrepEngine(OCCT_BREP_ENGINE_ID);
|
|
40
|
+
// 收窄后(2026-09-24)注入 L1 适配器而非裸 occt-wasm:L1 归一化方法名只在
|
|
41
|
+
// 适配器上(occt-primitives.ts)。句柄空间同一(适配器内部 = initOcctWasm 单例)。
|
|
38
42
|
configureBackends({
|
|
39
43
|
contractVersion: CONTRACT_VERSION,
|
|
40
44
|
config: {
|
|
@@ -42,7 +46,7 @@ export async function setupNativeKernel() {
|
|
|
42
46
|
brepEngineId: 'occt',
|
|
43
47
|
brepCapabilities: occtEngine.capabilities,
|
|
44
48
|
},
|
|
45
|
-
kernel: { brep:
|
|
49
|
+
kernel: { brep: occtEngine.primitives, csg: undefined, sdf: undefined },
|
|
46
50
|
fonts: undefined,
|
|
47
51
|
texture: undefined,
|
|
48
52
|
assets: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gear-test-harness.js","sourceRoot":"","sources":["../src/gear-test-harness.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gear-test-harness.js","sourceRoot":"","sources":["../src/gear-test-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAC/H,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,CAAA;AAKjB;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,sBAAsB,EAAE,CAAA;IAC9B,gFAAgF;IAChF,kFAAkF;IAClF,mFAAmF;IACnF,gFAAgF;IAChF,kFAAkF;IAClF,uEAAuE;IACvE,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,mBAAmB,CAAC,CAAA;IAC3D,oDAAoD;IACpD,4DAA4D;IAC5D,iBAAiB,CAAC;QAChB,eAAe,EAAE,gBAAgB;QACjC,MAAM,EAAE;YACN,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,MAAM;YACpB,gBAAgB,EAAE,UAAU,CAAC,YAAY;SAC1C;QACD,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE;QACvE,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,SAAS,EAA2B,CAAA;AAC7C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,IAAI,CAAC,OAA2B,EAAE;IAChD,OAAO;QACL,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjB,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,EAAE;QACP,eAAe,EAAE,KAAK;QACtB,GAAG,IAAI;KACR,CAAA;AACH,CAAC;AAiBD;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAAC,KAAY;IAC/B,OAAO,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAA2B,CAAS,CAAA;AACjF,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,IAAI,CAAC,KAAY;IAC/B,OAAO,MAAM,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAA2B,CAAC,CAAA;AACzE,CAAC","sourcesContent":["/**\n * Shared harness for the E1–E4 gear-extension ops.\n *\n * These ops call the occt-wasm kernel directly via `getKernel()` (the native\n * singleton that `registerOcctBrepEngine()` initializes) and wrap results with\n * `fromHandle`. `fromHandle` needs `getBackends().kernel.brep` to be a MESHABLE\n * kernel. Since the 2026-09-24 narrowing (D12), `kernel.brep` must be the **L1\n * adapter** (`BrepEngineApi`) — the L1 normalized method names\n * (`surfaceCenterOfMass` / `subShapeHashes` / `uvBounds` …) exist only on the\n * adapter, not on the raw `OcctKernel`. So we wire `occtEngine.primitives`\n * (the L1 adapter over the SAME kernel singleton) into `configureBackends`;\n * `createOcctPrimitives()` internally uses the same `initOcctWasm()` singleton,\n * so handle spaces stay consistent across ops and fixtures.\n *\n * This file is NOT a test (no `*.test.ts`); it is imported by the E1–E4 specs.\n */\n\nimport { registerOcctBrepEngine, configureBackends, getBrepEngine, CONTRACT_VERSION, OCCT_BREP_ENGINE_ID } from '@faicad/faijs'\nimport { getKernel } from '@faicad/faijs/occt-kernel/occtKernel'\nimport { brepOf } from '@faicad/faijs/shape'\nexport { brepOf }\nimport type { OcctKernel, ShapeHandle } from 'occt-wasm'\nimport type { Shape } from '@faicad/faijs/mesh/types'\nimport type { Workplane } from './workplane'\n\n/**\n * Initialise the native occt-wasm kernel for the E1–E4 specs.\n *\n * Calls `registerOcctBrepEngine()` (which boots the kernel singleton and\n * registers the OCCT engine) and then wires that SAME instance into the\n * backend registry via `configureBackends`, so `fromHandle` can resolve a\n * meshable kernel. Must be awaited in `beforeAll` before any op is invoked.\n *\n * @returns a promise that resolves once the kernel and backends are ready\n */\nexport async function setupNativeKernel(): Promise<void> {\n await registerOcctBrepEngine()\n // Capability declaration is NOT re-typed here: take back the honest declaration\n // the OCCT adapter itself carries. Before this, the harness hand-mirrored it with\n // `evolution: true` — a second home for the same fact, which silently desynced the\n // moment the adapter moved to a per-kernel-function list (`BrepEvolutionKind`).\n // dual-ops that gate on a capability (e.g. union → 'fuse') still dispatch to brep\n // instead of throwing E_BREP_UNSUPPORTED in the bare-kernel test path.\n const occtEngine = await getBrepEngine(OCCT_BREP_ENGINE_ID)\n // 收窄后(2026-09-24)注入 L1 适配器而非裸 occt-wasm:L1 归一化方法名只在\n // 适配器上(occt-primitives.ts)。句柄空间同一(适配器内部 = initOcctWasm 单例)。\n configureBackends({\n contractVersion: CONTRACT_VERSION,\n config: {\n mode: 'brep',\n brepEngineId: 'occt',\n brepCapabilities: occtEngine.capabilities,\n },\n kernel: { brep: occtEngine.primitives, csg: undefined, sdf: undefined },\n fonts: undefined,\n texture: undefined,\n assets: undefined,\n events: undefined,\n })\n}\n\n/**\n * Return the shared native occt-wasm kernel singleton.\n *\n * The same instance the E1–E4 ops obtain internally via `getKernel()`, so\n * fixtures built here and op outputs share one handle space.\n *\n * @returns the live `OcctKernel` instance (valid after {@link setupNativeKernel})\n */\nexport function kernel(): OcctKernel {\n return getKernel() as unknown as OcctKernel\n}\n\n/**\n * Build a minimal valid root `Workplane` without touching the `cad.*` backend.\n *\n * Defaults to the XY plane at the origin (normal +Z, xDir +X, yDir +Y) with no\n * shape and no pending wires; pass `over` to override any field (e.g.\n * `{ shape }` or `{ normal, origin }`).\n *\n * @param over - partial overrides merged onto the default workplane\n * @returns a `Workplane` literal suitable as the first argument of an op\n */\nexport function mkWP(over: Partial<Workplane> = {}): Workplane {\n return {\n __cq: true,\n plane: 'XY',\n origin: [0, 0, 0],\n normal: [0, 0, 1],\n xDir: [1, 0, 0],\n yDir: [0, 1, 0],\n shape: null,\n faceSel: null,\n edgeSel: null,\n vertexSel: null,\n pts: [],\n forConstruction: false,\n ...over,\n }\n}\n\n/**\n * Axis-aligned bounding box of a shape, in the kernel's field naming.\n *\n * Mirrors the `BoundingBox` record returned by the native\n * `getBoundingBox` call (all six min/max fields, no `minX`-style aliases).\n */\nexport type BBox = {\n xmin: number\n xmax: number\n ymin: number\n ymax: number\n zmin: number\n zmax: number\n}\n\n/**\n * Compute the axis-aligned bounding box of a shape through the native kernel.\n *\n * @param shape - a faijs `Shape` carrying a BREP handle (see `brepOf`)\n * @returns the six-field bounding box\n */\nexport function bbox(shape: Shape): BBox {\n return kernel().getBoundingBox(brepOf(shape) as unknown as ShapeHandle) as BBox\n}\n\n/**\n * Surface area of a face (or total area of a shell/solid), via the native\n * kernel's `getSurfaceArea`.\n *\n * @param shape - a faijs `Shape` carrying a BREP handle (see `brepOf`)\n * @returns the area in model units squared\n */\nexport function area(shape: Shape): number {\n return kernel().getSurfaceArea(brepOf(shape) as unknown as ShapeHandle)\n}\n"]}
|
package/dist/gears.d.ts
CHANGED
|
@@ -28,12 +28,15 @@ export interface GearAxis {
|
|
|
28
28
|
* that renames a binding turns red immediately instead of failing at runtime
|
|
29
29
|
* with `undefined is not a function`.
|
|
30
30
|
*/
|
|
31
|
-
export
|
|
31
|
+
export type GearKernel = Omit<BrepEngineApi, 'interpolatePoints'> & {
|
|
32
32
|
/** `GeomAPI_PointsToBSplineSurface`: point grid → B-spline surface → Face. */
|
|
33
33
|
bsplineSurface(points: BrepVec3[], rows: number, cols: number): BrepHandle;
|
|
34
34
|
/** `GeomAPI_PointsToBSpline`: point list → approximated B-spline curve (with Tol3D). */
|
|
35
35
|
approximatePoints(points: BrepVec3[], tolerance?: number): BrepHandle;
|
|
36
|
-
/** Cubic B-spline interpolation curve through all points.
|
|
36
|
+
/** Cubic B-spline interpolation curve through all points (occt periodic 语义).
|
|
37
|
+
* ⚠️ 收窄后(2026-09-24):type 交叉继承全部 L1 方法,仅 Omit 掉
|
|
38
|
+
* `interpolatePoints`(L1 是 brepkit degree 语义)并覆盖为本包 occt 原生
|
|
39
|
+
* periodic 语义。运行时 kernel 是 raw occt-wasm 平台面,调用不变。 */
|
|
37
40
|
interpolatePoints(points: BrepVec3[], periodic?: boolean): BrepHandle;
|
|
38
41
|
/** `BRepBuilderAPI_Sewing`: faces → sewn shell (cq `make_shell` analogue). */
|
|
39
42
|
sew(shapes: BrepHandle[], tolerance?: number): BrepHandle;
|
|
@@ -66,7 +69,9 @@ export interface GearKernel extends BrepEngineApi {
|
|
|
66
69
|
isWire(shape: BrepHandle): boolean;
|
|
67
70
|
isShell(shape: BrepHandle): boolean;
|
|
68
71
|
isEdge(shape: BrepHandle): boolean;
|
|
69
|
-
|
|
72
|
+
/** `BRepOffsetAPI_ThruSections`: wires → shell(occt 平台方法,收窄后不在 L1)。 */
|
|
73
|
+
loft(wires: BrepHandle[], isSolid?: boolean, ruled?: boolean): BrepHandle;
|
|
74
|
+
};
|
|
70
75
|
/**
|
|
71
76
|
* Get the raw occt-wasm kernel (process-wide singleton).
|
|
72
77
|
*
|
package/dist/gears.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gears.d.ts","sourceRoot":"","sources":["../src/gears.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAExC,8CAA8C;AAC9C,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAA;IACf,SAAS,EAAE,QAAQ,CAAA;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"gears.d.ts","sourceRoot":"","sources":["../src/gears.ts"],"names":[],"mappings":"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"}
|
package/dist/gears.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gears.js","sourceRoot":"","sources":["../src/gears.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAyE5C,IAAI,iBAAiB,GAA+B,IAAI,CAAA;AAExD;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,iBAAiB,GAAG,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAA0B,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAWD,SAAS,QAAQ,CAAC,CAAO,EAAE,CAAO;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB,EAAE,IAAgB;IAC/D,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACpD,OAAO;YACL,IAAI;YACJ,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;YACxC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC;SACxC,CAAA;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+DAA+D;QAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;QAC9C,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;YACtC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;QAC7B,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACnF,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAkB,EAClB,KAAmB,EACnB,GAAW;IAEX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,kEAAkE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClG,CAAC;IACD,MAAM,IAAI,GAAmB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAA;IACtE,MAAM,IAAI,GAAG,IAAI,KAAK,CAAU,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,MAAM,KAAK,GAAiB,EAAE,CAAA;IAE9B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,KAAK,CAAC;YAAE,SAAQ;QACzB,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;QAElB,MAAM,KAAK,GAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE1B,+EAA+E;QAC/E,SAAS,CAAC;YACR,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;YACd,IAAI,IAAI,GAAG,QAAQ,CAAA;YACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,CAAC,CAAC;oBAAE,SAAQ;gBACrB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;gBAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;oBACzB,IAAI,GAAG,CAAC,CAAA;oBACR,KAAK,GAAG,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;YACD,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAK;YACpB,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAA;YAClB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;YACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACvD,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;gBAChB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzD,CAAC;YACD,iEAAiE;YACjE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;YACvD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvB,yCAAyC;YACzC,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG;gBAAE,MAAK;QACxC,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;YACvD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAC7C,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,KAAiB,EACjB,QAAsB,EAAE;IAExB,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAkB,EAClB,KAAmB,EACnB,SAAiB;IAEjB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAC1C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,sDAAsD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAC5F,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC;AAeD,uFAAuF;AACvF,MAAM,CAAC,MAAM,2BAA2B,GAAsC;IAC5E,aAAa;IACb,iBAAiB;IACjB,iBAAiB;CAClB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAA2B,iBAAiB,CAAA;AAoB1F;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAkB,EAClB,IAAoB,EACpB,QAAgC,EAChC,UAAiC,EAAE;IAEnC,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAA;IACrC,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC1C,KAAK,iBAAiB;YACpB,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QACpF,KAAK,iBAAiB;YACpB,OAAO,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAA;IACxF,CAAC;AACH,CAAC;AAED,8DAA8D;AAC9D,SAAS,mBAAmB,CAAC,MAAkB,EAAE,IAAoB;IACnE,MAAM,IAAI,GAAW,EAAE,CAAA;IACvB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,MAAM,CAAC,IAAI,GAAG;YAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChE,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC1D,CAAC;AAED,8CAA8C;AAC9C,SAAS,gBAAgB,CACvB,MAAkB,EAClB,IAAoB,EACpB,SAAsC;IAEtC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACzE,0EAA0E;IAC1E,wEAAwE;IACxE,+DAA+D;IAC/D,OAAO,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;AAC/D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB,EAAE,KAAiB;IAChE,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,6CAA6C,KAAK,CAAC,MAAM,eAAe,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAC9G,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAkB,EAAE,IAAgB,EAAE,CAAO;IAC9E,MAAM,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AASD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAkB,EAClB,IAAgB,EAChB,YAAoB;IAEpB,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAC7C,IAAI,CAAC,GAAG,GAAG;YAAE,GAAG,GAAG,CAAC,CAAA;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAA;IAChB,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,CAAA;AACrF,CAAC","sourcesContent":["/**\n * gears — raw-handle primitives for the cq_gears port (E1–E6 companion layer).\n *\n * cq_gears' tooth faces are B-spline patches built from (u,v) point grids and\n * assembled by sewing — these need raw kernel construction primitives that no\n * Workplane op exposes (bsplineSurface / approximatePoints / interpolatePoints,\n * tolerant edge chaining, sew+makeSolid). The fai_cq_gears v1 port probed them\n * in its own `kernel.ts` / `geom-build.ts` / `spline-face.ts`; per the port\n * plan (§4) the implementations must live INSIDE cq-compat — this file is that\n * landing spot. fai_cq_gears only imports from here; it must not touch\n * occt-wasm directly.\n *\n * Everything here is a verbatim port of the proven v1 implementations (same\n * kernel call sequence → bit-identical geometry).\n */\n\nimport { initOcctWasm } from '@faicad/faijs'\nimport type { BrepEngineApi, BrepHandle, BrepVec3 } from '@faicad/faijs'\nimport type { Vec3 } from './geom-types'\n\n/** Rotation/mirror axis (occt-wasm shape). */\nexport interface GearAxis {\n point: BrepVec3\n direction: BrepVec3\n}\n\n/**\n * Raw occt-wasm capability surface — superset of `BrepEngineApi`.\n *\n * Declares exactly the methods the cq_gears port consumes; the probe test in\n * fai_cq_gears asserts each one exists on the live kernel, so a kernel upgrade\n * that renames a binding turns red immediately instead of failing at runtime\n * with `undefined is not a function`.\n */\nexport interface GearKernel extends BrepEngineApi {\n // ── surface / curve construction (CadQuery makeSplineApprox family) ──\n /** `GeomAPI_PointsToBSplineSurface`: point grid → B-spline surface → Face. */\n bsplineSurface(points: BrepVec3[], rows: number, cols: number): BrepHandle\n /** `GeomAPI_PointsToBSpline`: point list → approximated B-spline curve (with Tol3D). */\n approximatePoints(points: BrepVec3[], tolerance?: number): BrepHandle\n /** Cubic B-spline interpolation curve through all points. */\n interpolatePoints(points: BrepVec3[], periodic?: boolean): BrepHandle\n\n // ── topology construction ──\n /** `BRepBuilderAPI_Sewing`: faces → sewn shell (cq `make_shell` analogue). */\n sew(shapes: BrepHandle[], tolerance?: number): BrepHandle\n makeSolid(shell: BrepHandle): BrepHandle\n /** TopAbs_ShapeEnum type name (\"solid\" / \"shell\" / \"face\" …, for diagnostics/assertions). */\n getShapeType(shape: BrepHandle): string\n buildSolidFromFaces(faces: BrepHandle[], tolerance?: number): BrepHandle\n makeNonPlanarFace(wire: BrepHandle): BrepHandle\n makeFaceOnSurface(face: BrepHandle, wire: BrepHandle): BrepHandle\n outerWire(face: BrepHandle): BrepHandle\n\n // ── healing ──\n healWire(wire: BrepHandle, tolerance?: number): BrepHandle\n healFace(face: BrepHandle, tolerance?: number): BrepHandle\n\n // ── transforms / booleans ──\n rotate(shape: BrepHandle, axis: GearAxis, angleRad: number): BrepHandle\n /** `BRepPrimAPI_MakeRevol`: face/wire revolved around `axis` (cq `Workplane.revolve`, 360°=2π). */\n revolve(shape: BrepHandle, axis: GearAxis, angleRad: number): BrepHandle\n mirror(shape: BrepHandle, point: BrepVec3, normal: BrepVec3): BrepHandle\n reverseShape(shape: BrepHandle): BrepHandle\n vertexPosition(vertex: BrepHandle): BrepVec3\n split(shape: BrepHandle, tools: BrepHandle[]): BrepHandle\n fillet(solid: BrepHandle, edges: BrepHandle[], radius: number): BrepHandle\n shell(\n solid: BrepHandle, facesToRemove: BrepHandle[], thickness: number, tolerance: number,\n ): BrepHandle\n thicken(shape: BrepHandle, thickness: number, tolerance: number): BrepHandle\n makeCircleArc(\n center: BrepVec3, normal: BrepVec3, radius: number, startAngle: number, endAngle: number,\n ): BrepHandle\n makeHelixWire(\n origin: BrepVec3, axis: BrepVec3, pitch: number, height: number, radius: number,\n ): BrepHandle\n\n // ── queries ──\n getSurfaceArea(shape: BrepHandle): number\n projectPointOnFace(face: BrepHandle, point: BrepVec3): BrepVec3\n surfaceType(face: BrepHandle): string\n subShapeCount(shape: BrepHandle, type: 'vertex' | 'edge' | 'wire' | 'face' | 'shell' | 'solid'): number\n isFace(shape: BrepHandle): boolean\n isWire(shape: BrepHandle): boolean\n isShell(shape: BrepHandle): boolean\n isEdge(shape: BrepHandle): boolean\n}\n\nlet gearKernelPromise: Promise<GearKernel> | null = null\n\n/**\n * Get the raw occt-wasm kernel (process-wide singleton).\n *\n * Same instance as `initOcctWasm()` — this only asserts the richer\n * `GearKernel` type, never constructs a second kernel (handles are indices\n * into one kernel arena and must not cross instances).\n *\n * @returns the raw kernel (promise; initializes wasm on first call)\n */\nexport function getGearKernel(): Promise<GearKernel> {\n if (!gearKernelPromise) {\n gearKernelPromise = initOcctWasm().then((k) => k as unknown as GearKernel)\n }\n return gearKernelPromise\n}\n\n// ── tolerant edge chaining (port of fai_cq_gears v1 geom-build.ts) ─────────\n\n/** The two endpoints of an edge (order = the edge's parameter direction). */\nexport interface GearEdgeEnds {\n edge: BrepHandle\n a: Vec3\n b: Vec3\n}\n\nfunction gearDist(a: Vec3, b: Vec3): number {\n return Math.hypot(a.x - b.x, a.y - b.y, a.z - b.z)\n}\n\n/**\n * Endpoints of an edge, via the curve parameter domain.\n *\n * ⚠️ Endpoint red line (probed 2026-09-11): `getSubShapes(edge, 'vertex')`\n * returns fewer than 2 vertices for **B-spline curve edges** (OCCT stores no\n * explicit vertices on them), which used to make edge chaining treat every\n * edge as its own wire. The correct path is `curveParameters(edge)` →\n * `curvePointAtParam(edge, param)` — valid for ALL edge kinds (line / arc /\n * B-spline); the vertex fallback only covers degenerate edges without an\n * underlying curve.\n *\n * @param kernel raw OCCT kernel\n * @param edge edge handle\n * @returns both endpoints (closed edges: first == last)\n */\nexport function gearEdgeEnds(kernel: GearKernel, edge: BrepHandle): GearEdgeEnds {\n try {\n const { first, last } = kernel.curveParameters(edge)\n return {\n edge,\n a: kernel.curvePointAtParam(edge, first),\n b: kernel.curvePointAtParam(edge, last),\n }\n } catch {\n // Fallback: rare degenerate edges without an underlying curve.\n const vs = kernel.getSubShapes(edge, 'vertex')\n if (vs.length < 2) {\n const p = kernel.vertexPosition(vs[0])\n return { edge, a: p, b: p }\n }\n return { edge, a: kernel.vertexPosition(vs[0]), b: kernel.vertexPosition(vs[1]) }\n }\n}\n\n/**\n * TS port of OCCT `ShapeAnalysis_FreeBounds::ConnectEdgesToWires` — chain\n * unordered edges into wires by endpoint proximity within `tol`.\n *\n * faijs/occt-wasm has no such binding and `makeWire(edges)` is\n * `BRepBuilderAPI_MakeWire` — measured (2026-09-08) to silently drop edges on\n * unordered input (68 edges → 9-edge broken wire). Endpoint pairing is O(n²)\n * (n = 4·z teeth, at most a few hundred — fine).\n *\n * Gaps above OCCT precision (~1e-7) get a bridging line segment, matching\n * upstream ConnectEdgesToWires behaviour.\n *\n * @param kernel raw OCCT kernel\n * @param edges unordered edge set\n * @param tol endpoint pairing tolerance (mm); cq uses `wire_comb_tol = 1e-2`\n * @returns one or more wires, each with its edges chained head-to-tail\n */\nexport function connectEdgesToWires(\n kernel: GearKernel,\n edges: BrepHandle[],\n tol: number,\n): BrepHandle[] {\n if (!Number.isFinite(tol) || tol <= 0) {\n throw new Error(`connectEdgesToWires: tol must be a positive finite number, got ${String(tol)}`)\n }\n const pool: GearEdgeEnds[] = edges.map((e) => gearEdgeEnds(kernel, e))\n const used = new Array<boolean>(pool.length).fill(false)\n const wires: BrepHandle[] = []\n\n for (let start = 0; start < pool.length; start++) {\n if (used[start]) continue\n used[start] = true\n\n const chain: BrepHandle[] = [pool[start].edge]\n let tail = pool[start].b\n const head = pool[start].a\n\n // Chain forward: find an unused edge whose endpoint touches `tail` within tol.\n for (;;) {\n let found = -1\n let best = Infinity\n for (let j = 0; j < pool.length; j++) {\n if (used[j]) continue\n const dA = gearDist(pool[j].a, tail)\n const dB = gearDist(pool[j].b, tail)\n const d = Math.min(dA, dB)\n if (d <= tol && d < best) {\n best = d\n found = j\n }\n }\n if (found < 0) break\n used[found] = true\n const e = pool[found]\n const flip = gearDist(e.a, tail) <= gearDist(e.b, tail)\n if (best > 1e-7) {\n chain.push(kernel.makeLineEdge(tail, flip ? e.a : e.b))\n }\n // Edge points the wrong way: reverseShape makes a reversed copy.\n chain.push(flip ? e.edge : kernel.reverseShape(e.edge))\n tail = flip ? e.b : e.a\n // Back at the start ⇒ closed loop, stop.\n if (gearDist(tail, head) <= tol) break\n }\n\n // Close the loop: bridge the tail-to-head gap too.\n const endGap = gearDist(tail, head)\n if (chain.length > 1 && endGap > 1e-7 && endGap <= tol) {\n chain.push(kernel.makeLineEdge(tail, head))\n }\n\n wires.push(kernel.makeWire(chain))\n }\n return wires\n}\n\n/**\n * cq `Face.makeFromWires(outer, holes)` analogue.\n *\n * @param kernel raw OCCT kernel\n * @param outer outer wire\n * @param holes inner hole wires (may be empty)\n * @returns face handle\n */\nexport function gearFaceFromWires(\n kernel: GearKernel,\n outer: BrepHandle,\n holes: BrepHandle[] = [],\n): BrepHandle {\n const f = kernel.makeFace(outer)\n return holes.length > 0 ? kernel.addHolesInFace(f, holes) : f\n}\n\n/**\n * cq `make_shell(faces, tol)` + `Solid.makeSolid(shell)` analogue.\n *\n * A non-shell sew result is NOT silently swallowed — that is a construction\n * failure signal.\n *\n * @param kernel raw OCCT kernel\n * @param faces faces to sew\n * @param sewingTol sewing tolerance (mm, cq `shell_sewing_tol`)\n * @returns solid built from the sewn shell\n */\nexport function gearShellToSolid(\n kernel: GearKernel,\n faces: BrepHandle[],\n sewingTol: number,\n): BrepHandle {\n const shell = kernel.sew(faces, sewingTol)\n if (!kernel.isShell(shell) && !kernel.isSolid(shell)) {\n throw new Error(\n `gearShellToSolid: sew did not produce a shell (got ${String(kernel.getShapeType(shell))})`,\n )\n }\n return kernel.makeSolid(shell)\n}\n\n// ── spline tooth faces (port of fai_cq_gears v1 spline-face.ts) ────────────\n\n/**\n * Tooth-face B-spline face strategies (mirrors cq `Face.makeSplineApprox`).\n *\n * | strategy | how | semantic delta vs cq |\n * |---|---|---|\n * | `grid-approx` | `kernel.bsplineSurface(flat, rows, cols)` (also `GeomAPI_PointsToBSplineSurface`) | OCCT default DegMin/DegMax/Tol3D; cq passes 3/8/1e-2 explicitly |\n * | `row-approx-loft` | per-row `approximatePoints(row, tol)` → `loft(wires, false, false)` | curve-level tol same name/meaning; surface is skinned, not fitted at once |\n * | `row-interp-loft` | per-row `interpolatePoints(row)` → `loft` | passes through every sample point (interpolation) |\n */\nexport type GearSplineFaceStrategy = 'grid-approx' | 'row-approx-loft' | 'row-interp-loft'\n\n/** All selectable strategies (tests iterate in this order for the deviation table). */\nexport const GEAR_SPLINE_FACE_STRATEGIES: readonly GearSplineFaceStrategy[] = [\n 'grid-approx',\n 'row-approx-loft',\n 'row-interp-loft',\n]\n\n/**\n * Default strategy chosen by P0 measurement (2026-09-08).\n *\n * Per the measured table in the fai_cq_gears spike: S2's area relative\n * deviation is 5.6e-7 / max sample-point distance 2.6e-6 mm — about three\n * orders of magnitude better than S1/S3. See\n * `docs/analysis/2026-09-08-fai-cq-gears-spike.md`.\n */\nexport const DEFAULT_GEAR_SPLINE_FACE_STRATEGY: GearSplineFaceStrategy = 'row-approx-loft'\n\n/** Face building options (tolerance + degrees, aligned with cq `makeSplineApprox`). */\nexport interface GearSplineFaceOptions {\n /** Approximation tolerance (mm). cq's `spline_approx_tol`, default 1e-2. */\n tolerance?: number\n /** Surface minimum degree (cq: 3) — only meaningful for grid-approx/row-approx-loft. */\n minDeg?: number\n /** Surface maximum degree (cq: 8). */\n maxDeg?: number\n}\n\n/** A row×col point grid with its dimensions (structural — no gear types here). */\nexport interface GearSplineGrid {\n /** `rows` point rows of `cols` points each. */\n points: Vec3[][]\n rows: number\n cols: number\n}\n\n/**\n * Build a face from a row×col point grid with the given strategy.\n *\n * @throws kernel errors propagate verbatim (never swallowed — red line)\n *\n * @param kernel raw OCCT kernel\n * @param grid row×col point grid\n * @param strategy face building strategy\n * @param options tolerance/degree options\n * @returns single face handle (Face)\n */\nexport function buildGearSplineFace(\n kernel: GearKernel,\n grid: GearSplineGrid,\n strategy: GearSplineFaceStrategy,\n options: GearSplineFaceOptions = {},\n): BrepHandle {\n const tol = options.tolerance ?? 1e-2\n switch (strategy) {\n case 'grid-approx':\n return buildGearGridApprox(kernel, grid)\n case 'row-approx-loft':\n return buildGearRowLoft(kernel, grid, (row) => kernel.approximatePoints(row, tol))\n case 'row-interp-loft':\n return buildGearRowLoft(kernel, grid, (row) => kernel.interpolatePoints(row, false))\n }\n}\n\n/** S1: fit the whole grid to one B-spline surface at once. */\nfunction buildGearGridApprox(kernel: GearKernel, grid: GearSplineGrid): BrepHandle {\n const flat: Vec3[] = []\n for (const row of grid.points) for (const p of row) flat.push(p)\n return kernel.bsplineSurface(flat, grid.rows, grid.cols)\n}\n\n/** S2/S3: per-row curve → `loft` skinning. */\nfunction buildGearRowLoft(\n kernel: GearKernel,\n grid: GearSplineGrid,\n makeCurve: (row: Vec3[]) => BrepHandle,\n): BrepHandle {\n const wires = grid.points.map((row) => kernel.makeWire([makeCurve(row)]))\n // `loft(wires, isSolid=false, ruled=false)` returns a **shell** (measured\n // 2026-09-08), while cq's tooth face is a TopoDS_Face; downstream sew /\n // projectPointOnFace require a Face, so extract the sole face.\n return soleGearFace(kernel, kernel.loft(wires, false, false))\n}\n\n/**\n * Reduce a \"single-face shell\" to a Face; a Face passes through unchanged.\n *\n * @throws when the face count is not 1 (silently taking the first would mask problems)\n *\n * @param kernel raw OCCT kernel\n * @param shape any shape (Face / single-face shell / …)\n * @returns the sole Face\n */\nexport function soleGearFace(kernel: GearKernel, shape: BrepHandle): BrepHandle {\n if (kernel.isFace(shape)) return shape\n const faces = kernel.getSubShapes(shape, 'face')\n if (faces.length !== 1) {\n throw new Error(\n `soleGearFace: expected a single face, got ${faces.length} (shapeType=${String(kernel.getShapeType(shape))})`,\n )\n }\n return faces[0]\n}\n\n/** Distance from a point to a face (`projectPointOnFace`).\n *\n * @param kernel raw OCCT kernel\n * @param face target face\n * @param p query point\n * @returns euclidean distance (mm)\n */\nexport function gearDistanceToFace(kernel: GearKernel, face: BrepHandle, p: Vec3): number {\n const q = kernel.projectPointOnFace(face, p)\n return Math.hypot(q.x - p.x, q.y - p.y, q.z - p.z)\n}\n\n/** Distance statistics (max / RMS / sample count). */\nexport interface GearDeviationStats {\n max: number\n rms: number\n n: number\n}\n\n/**\n * Distance statistics of reference sample points against a face.\n *\n * Parameterization-independent: samples come from the cq side's (u,v) grid, so\n * the two surfaces may have different parameterizations.\n *\n * @param kernel raw OCCT kernel\n * @param face face under test\n * @param samplePoints reference sample points (3D)\n * @returns max distance / RMS / sample count\n */\nexport function gearFaceDeviation(\n kernel: GearKernel,\n face: BrepHandle,\n samplePoints: Vec3[],\n): GearDeviationStats {\n let max = 0\n let sumSq = 0\n for (const p of samplePoints) {\n const d = gearDistanceToFace(kernel, face, p)\n if (d > max) max = d\n sumSq += d * d\n }\n return { max, rms: Math.sqrt(sumSq / samplePoints.length), n: samplePoints.length }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"gears.js","sourceRoot":"","sources":["../src/gears.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * gears — raw-handle primitives for the cq_gears port (E1–E6 companion layer).\n *\n * cq_gears' tooth faces are B-spline patches built from (u,v) point grids and\n * assembled by sewing — these need raw kernel construction primitives that no\n * Workplane op exposes (bsplineSurface / approximatePoints / interpolatePoints,\n * tolerant edge chaining, sew+makeSolid). The fai_cq_gears v1 port probed them\n * in its own `kernel.ts` / `geom-build.ts` / `spline-face.ts`; per the port\n * plan (§4) the implementations must live INSIDE cq-compat — this file is that\n * landing spot. fai_cq_gears only imports from here; it must not touch\n * occt-wasm directly.\n *\n * Everything here is a verbatim port of the proven v1 implementations (same\n * kernel call sequence → bit-identical geometry).\n */\n\nimport { initOcctWasm } from '@faicad/faijs'\nimport type { BrepEngineApi, BrepHandle, BrepVec3 } from '@faicad/faijs'\nimport type { Vec3 } from './geom-types'\n\n/** Rotation/mirror axis (occt-wasm shape). */\nexport interface GearAxis {\n point: BrepVec3\n direction: BrepVec3\n}\n\n/**\n * Raw occt-wasm capability surface — superset of `BrepEngineApi`.\n *\n * Declares exactly the methods the cq_gears port consumes; the probe test in\n * fai_cq_gears asserts each one exists on the live kernel, so a kernel upgrade\n * that renames a binding turns red immediately instead of failing at runtime\n * with `undefined is not a function`.\n */\nexport type GearKernel = Omit<BrepEngineApi, 'interpolatePoints'> & {\n // ── surface / curve construction (CadQuery makeSplineApprox family) ──\n /** `GeomAPI_PointsToBSplineSurface`: point grid → B-spline surface → Face. */\n bsplineSurface(points: BrepVec3[], rows: number, cols: number): BrepHandle\n /** `GeomAPI_PointsToBSpline`: point list → approximated B-spline curve (with Tol3D). */\n approximatePoints(points: BrepVec3[], tolerance?: number): BrepHandle\n /** Cubic B-spline interpolation curve through all points (occt periodic 语义).\n * ⚠️ 收窄后(2026-09-24):type 交叉继承全部 L1 方法,仅 Omit 掉\n * `interpolatePoints`(L1 是 brepkit degree 语义)并覆盖为本包 occt 原生\n * periodic 语义。运行时 kernel 是 raw occt-wasm 平台面,调用不变。 */\n interpolatePoints(points: BrepVec3[], periodic?: boolean): BrepHandle\n\n // ── topology construction ──\n /** `BRepBuilderAPI_Sewing`: faces → sewn shell (cq `make_shell` analogue). */\n sew(shapes: BrepHandle[], tolerance?: number): BrepHandle\n makeSolid(shell: BrepHandle): BrepHandle\n /** TopAbs_ShapeEnum type name (\"solid\" / \"shell\" / \"face\" …, for diagnostics/assertions). */\n getShapeType(shape: BrepHandle): string\n buildSolidFromFaces(faces: BrepHandle[], tolerance?: number): BrepHandle\n makeNonPlanarFace(wire: BrepHandle): BrepHandle\n makeFaceOnSurface(face: BrepHandle, wire: BrepHandle): BrepHandle\n outerWire(face: BrepHandle): BrepHandle\n\n // ── healing ──\n healWire(wire: BrepHandle, tolerance?: number): BrepHandle\n healFace(face: BrepHandle, tolerance?: number): BrepHandle\n\n // ── transforms / booleans ──\n rotate(shape: BrepHandle, axis: GearAxis, angleRad: number): BrepHandle\n /** `BRepPrimAPI_MakeRevol`: face/wire revolved around `axis` (cq `Workplane.revolve`, 360°=2π). */\n revolve(shape: BrepHandle, axis: GearAxis, angleRad: number): BrepHandle\n mirror(shape: BrepHandle, point: BrepVec3, normal: BrepVec3): BrepHandle\n reverseShape(shape: BrepHandle): BrepHandle\n vertexPosition(vertex: BrepHandle): BrepVec3\n split(shape: BrepHandle, tools: BrepHandle[]): BrepHandle\n fillet(solid: BrepHandle, edges: BrepHandle[], radius: number): BrepHandle\n shell(\n solid: BrepHandle, facesToRemove: BrepHandle[], thickness: number, tolerance: number,\n ): BrepHandle\n thicken(shape: BrepHandle, thickness: number, tolerance: number): BrepHandle\n makeCircleArc(\n center: BrepVec3, normal: BrepVec3, radius: number, startAngle: number, endAngle: number,\n ): BrepHandle\n makeHelixWire(\n origin: BrepVec3, axis: BrepVec3, pitch: number, height: number, radius: number,\n ): BrepHandle\n\n // ── queries ──\n getSurfaceArea(shape: BrepHandle): number\n projectPointOnFace(face: BrepHandle, point: BrepVec3): BrepVec3\n surfaceType(face: BrepHandle): string\n subShapeCount(shape: BrepHandle, type: 'vertex' | 'edge' | 'wire' | 'face' | 'shell' | 'solid'): number\n isFace(shape: BrepHandle): boolean\n isWire(shape: BrepHandle): boolean\n isShell(shape: BrepHandle): boolean\n isEdge(shape: BrepHandle): boolean\n /** `BRepOffsetAPI_ThruSections`: wires → shell(occt 平台方法,收窄后不在 L1)。 */\n loft(wires: BrepHandle[], isSolid?: boolean, ruled?: boolean): BrepHandle\n}\n\nlet gearKernelPromise: Promise<GearKernel> | null = null\n\n/**\n * Get the raw occt-wasm kernel (process-wide singleton).\n *\n * Same instance as `initOcctWasm()` — this only asserts the richer\n * `GearKernel` type, never constructs a second kernel (handles are indices\n * into one kernel arena and must not cross instances).\n *\n * @returns the raw kernel (promise; initializes wasm on first call)\n */\nexport function getGearKernel(): Promise<GearKernel> {\n if (!gearKernelPromise) {\n gearKernelPromise = initOcctWasm().then((k) => k as unknown as GearKernel)\n }\n return gearKernelPromise\n}\n\n// ── tolerant edge chaining (port of fai_cq_gears v1 geom-build.ts) ─────────\n\n/** The two endpoints of an edge (order = the edge's parameter direction). */\nexport interface GearEdgeEnds {\n edge: BrepHandle\n a: Vec3\n b: Vec3\n}\n\nfunction gearDist(a: Vec3, b: Vec3): number {\n return Math.hypot(a.x - b.x, a.y - b.y, a.z - b.z)\n}\n\n/**\n * Endpoints of an edge, via the curve parameter domain.\n *\n * ⚠️ Endpoint red line (probed 2026-09-11): `getSubShapes(edge, 'vertex')`\n * returns fewer than 2 vertices for **B-spline curve edges** (OCCT stores no\n * explicit vertices on them), which used to make edge chaining treat every\n * edge as its own wire. The correct path is `curveParameters(edge)` →\n * `curvePointAtParam(edge, param)` — valid for ALL edge kinds (line / arc /\n * B-spline); the vertex fallback only covers degenerate edges without an\n * underlying curve.\n *\n * @param kernel raw OCCT kernel\n * @param edge edge handle\n * @returns both endpoints (closed edges: first == last)\n */\nexport function gearEdgeEnds(kernel: GearKernel, edge: BrepHandle): GearEdgeEnds {\n try {\n const { first, last } = kernel.curveParameters(edge)\n return {\n edge,\n a: kernel.curvePointAtParam(edge, first),\n b: kernel.curvePointAtParam(edge, last),\n }\n } catch {\n // Fallback: rare degenerate edges without an underlying curve.\n const vs = kernel.getSubShapes(edge, 'vertex')\n if (vs.length < 2) {\n const p = kernel.vertexPosition(vs[0])\n return { edge, a: p, b: p }\n }\n return { edge, a: kernel.vertexPosition(vs[0]), b: kernel.vertexPosition(vs[1]) }\n }\n}\n\n/**\n * TS port of OCCT `ShapeAnalysis_FreeBounds::ConnectEdgesToWires` — chain\n * unordered edges into wires by endpoint proximity within `tol`.\n *\n * faijs/occt-wasm has no such binding and `makeWire(edges)` is\n * `BRepBuilderAPI_MakeWire` — measured (2026-09-08) to silently drop edges on\n * unordered input (68 edges → 9-edge broken wire). Endpoint pairing is O(n²)\n * (n = 4·z teeth, at most a few hundred — fine).\n *\n * Gaps above OCCT precision (~1e-7) get a bridging line segment, matching\n * upstream ConnectEdgesToWires behaviour.\n *\n * @param kernel raw OCCT kernel\n * @param edges unordered edge set\n * @param tol endpoint pairing tolerance (mm); cq uses `wire_comb_tol = 1e-2`\n * @returns one or more wires, each with its edges chained head-to-tail\n */\nexport function connectEdgesToWires(\n kernel: GearKernel,\n edges: BrepHandle[],\n tol: number,\n): BrepHandle[] {\n if (!Number.isFinite(tol) || tol <= 0) {\n throw new Error(`connectEdgesToWires: tol must be a positive finite number, got ${String(tol)}`)\n }\n const pool: GearEdgeEnds[] = edges.map((e) => gearEdgeEnds(kernel, e))\n const used = new Array<boolean>(pool.length).fill(false)\n const wires: BrepHandle[] = []\n\n for (let start = 0; start < pool.length; start++) {\n if (used[start]) continue\n used[start] = true\n\n const chain: BrepHandle[] = [pool[start].edge]\n let tail = pool[start].b\n const head = pool[start].a\n\n // Chain forward: find an unused edge whose endpoint touches `tail` within tol.\n for (;;) {\n let found = -1\n let best = Infinity\n for (let j = 0; j < pool.length; j++) {\n if (used[j]) continue\n const dA = gearDist(pool[j].a, tail)\n const dB = gearDist(pool[j].b, tail)\n const d = Math.min(dA, dB)\n if (d <= tol && d < best) {\n best = d\n found = j\n }\n }\n if (found < 0) break\n used[found] = true\n const e = pool[found]\n const flip = gearDist(e.a, tail) <= gearDist(e.b, tail)\n if (best > 1e-7) {\n chain.push(kernel.makeLineEdge(tail, flip ? e.a : e.b))\n }\n // Edge points the wrong way: reverseShape makes a reversed copy.\n chain.push(flip ? e.edge : kernel.reverseShape(e.edge))\n tail = flip ? e.b : e.a\n // Back at the start ⇒ closed loop, stop.\n if (gearDist(tail, head) <= tol) break\n }\n\n // Close the loop: bridge the tail-to-head gap too.\n const endGap = gearDist(tail, head)\n if (chain.length > 1 && endGap > 1e-7 && endGap <= tol) {\n chain.push(kernel.makeLineEdge(tail, head))\n }\n\n wires.push(kernel.makeWire(chain))\n }\n return wires\n}\n\n/**\n * cq `Face.makeFromWires(outer, holes)` analogue.\n *\n * @param kernel raw OCCT kernel\n * @param outer outer wire\n * @param holes inner hole wires (may be empty)\n * @returns face handle\n */\nexport function gearFaceFromWires(\n kernel: GearKernel,\n outer: BrepHandle,\n holes: BrepHandle[] = [],\n): BrepHandle {\n const f = kernel.makeFace(outer)\n return holes.length > 0 ? kernel.addHolesInFace(f, holes) : f\n}\n\n/**\n * cq `make_shell(faces, tol)` + `Solid.makeSolid(shell)` analogue.\n *\n * A non-shell sew result is NOT silently swallowed — that is a construction\n * failure signal.\n *\n * @param kernel raw OCCT kernel\n * @param faces faces to sew\n * @param sewingTol sewing tolerance (mm, cq `shell_sewing_tol`)\n * @returns solid built from the sewn shell\n */\nexport function gearShellToSolid(\n kernel: GearKernel,\n faces: BrepHandle[],\n sewingTol: number,\n): BrepHandle {\n const shell = kernel.sew(faces, sewingTol)\n if (!kernel.isShell(shell) && !kernel.isSolid(shell)) {\n throw new Error(\n `gearShellToSolid: sew did not produce a shell (got ${String(kernel.getShapeType(shell))})`,\n )\n }\n return kernel.makeSolid(shell)\n}\n\n// ── spline tooth faces (port of fai_cq_gears v1 spline-face.ts) ────────────\n\n/**\n * Tooth-face B-spline face strategies (mirrors cq `Face.makeSplineApprox`).\n *\n * | strategy | how | semantic delta vs cq |\n * |---|---|---|\n * | `grid-approx` | `kernel.bsplineSurface(flat, rows, cols)` (also `GeomAPI_PointsToBSplineSurface`) | OCCT default DegMin/DegMax/Tol3D; cq passes 3/8/1e-2 explicitly |\n * | `row-approx-loft` | per-row `approximatePoints(row, tol)` → `loft(wires, false, false)` | curve-level tol same name/meaning; surface is skinned, not fitted at once |\n * | `row-interp-loft` | per-row `interpolatePoints(row)` → `loft` | passes through every sample point (interpolation) |\n */\nexport type GearSplineFaceStrategy = 'grid-approx' | 'row-approx-loft' | 'row-interp-loft'\n\n/** All selectable strategies (tests iterate in this order for the deviation table). */\nexport const GEAR_SPLINE_FACE_STRATEGIES: readonly GearSplineFaceStrategy[] = [\n 'grid-approx',\n 'row-approx-loft',\n 'row-interp-loft',\n]\n\n/**\n * Default strategy chosen by P0 measurement (2026-09-08).\n *\n * Per the measured table in the fai_cq_gears spike: S2's area relative\n * deviation is 5.6e-7 / max sample-point distance 2.6e-6 mm — about three\n * orders of magnitude better than S1/S3. See\n * `docs/analysis/2026-09-08-fai-cq-gears-spike.md`.\n */\nexport const DEFAULT_GEAR_SPLINE_FACE_STRATEGY: GearSplineFaceStrategy = 'row-approx-loft'\n\n/** Face building options (tolerance + degrees, aligned with cq `makeSplineApprox`). */\nexport interface GearSplineFaceOptions {\n /** Approximation tolerance (mm). cq's `spline_approx_tol`, default 1e-2. */\n tolerance?: number\n /** Surface minimum degree (cq: 3) — only meaningful for grid-approx/row-approx-loft. */\n minDeg?: number\n /** Surface maximum degree (cq: 8). */\n maxDeg?: number\n}\n\n/** A row×col point grid with its dimensions (structural — no gear types here). */\nexport interface GearSplineGrid {\n /** `rows` point rows of `cols` points each. */\n points: Vec3[][]\n rows: number\n cols: number\n}\n\n/**\n * Build a face from a row×col point grid with the given strategy.\n *\n * @throws kernel errors propagate verbatim (never swallowed — red line)\n *\n * @param kernel raw OCCT kernel\n * @param grid row×col point grid\n * @param strategy face building strategy\n * @param options tolerance/degree options\n * @returns single face handle (Face)\n */\nexport function buildGearSplineFace(\n kernel: GearKernel,\n grid: GearSplineGrid,\n strategy: GearSplineFaceStrategy,\n options: GearSplineFaceOptions = {},\n): BrepHandle {\n const tol = options.tolerance ?? 1e-2\n switch (strategy) {\n case 'grid-approx':\n return buildGearGridApprox(kernel, grid)\n case 'row-approx-loft':\n return buildGearRowLoft(kernel, grid, (row) => kernel.approximatePoints(row, tol))\n case 'row-interp-loft':\n return buildGearRowLoft(kernel, grid, (row) => kernel.interpolatePoints(row, false))\n }\n}\n\n/** S1: fit the whole grid to one B-spline surface at once. */\nfunction buildGearGridApprox(kernel: GearKernel, grid: GearSplineGrid): BrepHandle {\n const flat: Vec3[] = []\n for (const row of grid.points) for (const p of row) flat.push(p)\n return kernel.bsplineSurface(flat, grid.rows, grid.cols)\n}\n\n/** S2/S3: per-row curve → `loft` skinning. */\nfunction buildGearRowLoft(\n kernel: GearKernel,\n grid: GearSplineGrid,\n makeCurve: (row: Vec3[]) => BrepHandle,\n): BrepHandle {\n const wires = grid.points.map((row) => kernel.makeWire([makeCurve(row)]))\n // `loft(wires, isSolid=false, ruled=false)` returns a **shell** (measured\n // 2026-09-08), while cq's tooth face is a TopoDS_Face; downstream sew /\n // projectPointOnFace require a Face, so extract the sole face.\n return soleGearFace(kernel, kernel.loft(wires, false, false))\n}\n\n/**\n * Reduce a \"single-face shell\" to a Face; a Face passes through unchanged.\n *\n * @throws when the face count is not 1 (silently taking the first would mask problems)\n *\n * @param kernel raw OCCT kernel\n * @param shape any shape (Face / single-face shell / …)\n * @returns the sole Face\n */\nexport function soleGearFace(kernel: GearKernel, shape: BrepHandle): BrepHandle {\n if (kernel.isFace(shape)) return shape\n const faces = kernel.getSubShapes(shape, 'face')\n if (faces.length !== 1) {\n throw new Error(\n `soleGearFace: expected a single face, got ${faces.length} (shapeType=${String(kernel.getShapeType(shape))})`,\n )\n }\n return faces[0]\n}\n\n/** Distance from a point to a face (`projectPointOnFace`).\n *\n * @param kernel raw OCCT kernel\n * @param face target face\n * @param p query point\n * @returns euclidean distance (mm)\n */\nexport function gearDistanceToFace(kernel: GearKernel, face: BrepHandle, p: Vec3): number {\n const q = kernel.projectPointOnFace(face, p)\n return Math.hypot(q.x - p.x, q.y - p.y, q.z - p.z)\n}\n\n/** Distance statistics (max / RMS / sample count). */\nexport interface GearDeviationStats {\n max: number\n rms: number\n n: number\n}\n\n/**\n * Distance statistics of reference sample points against a face.\n *\n * Parameterization-independent: samples come from the cq side's (u,v) grid, so\n * the two surfaces may have different parameterizations.\n *\n * @param kernel raw OCCT kernel\n * @param face face under test\n * @param samplePoints reference sample points (3D)\n * @returns max distance / RMS / sample count\n */\nexport function gearFaceDeviation(\n kernel: GearKernel,\n face: BrepHandle,\n samplePoints: Vec3[],\n): GearDeviationStats {\n let max = 0\n let sumSq = 0\n for (const p of samplePoints) {\n const d = gearDistanceToFace(kernel, face, p)\n if (d > max) max = d\n sumSq += d * d\n }\n return { max, rms: Math.sqrt(sumSq / samplePoints.length), n: samplePoints.length }\n}\n"]}
|
package/dist/workplane.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workplane.d.ts","sourceRoot":"","sources":["../src/workplane.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workplane.d.ts","sourceRoot":"","sources":["../src/workplane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AA0BrD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,KAAK,CAgB7C;AAuBD,6BAA6B;AAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,+EAA+E;AAC/E,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACxG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,GACpG;IACE,IAAI,EAAE,SAAS,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE;AAC7G,iFAAiF;GAC/E;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAAC,YAAY,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,SAAS,CAAA;CAAE,CAAA;AAE9G;;;;GAIG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC3F;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAAC,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7I;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,IAAI,CAAA;IACV,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAA;IACb,6CAA6C;IAC7C,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,gDAAgD;IAChD,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,gFAAgF;IAChF,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,iEAAiE;IACjE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,mEAAmE;IACnE,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,mDAAmD;IACnD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,+DAA+D;IAC/D,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IACvB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;IAC5B,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAA;IACxB,oFAAoF;IACpF,WAAW,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,wFAAwF;IACxF,aAAa,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClC,+FAA+F;IAC/F,cAAc,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACzC;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B;;;OAGG;IACH,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,gDAAgD;IAChD,KAAK,CAAC,EAAE,GAAG,CAAA;IACX;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CACvC;AAED,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CACpB;AAmRD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,EACX,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC,CAsQjF;AA4GD,8DAA8D;AAC9D,KAAK,SAAS,GAAG,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAsCtD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,GAAE,MAAa,GAAG,SAAS,CAEzD;AAED;;;;;GAKG;AACH,wBAAsB,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAEzE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,GAAG,CACvB,EAAE,EAAE,SAAS,EACb,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,SAAS,CAAC,CAsBpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,MAAM,CAC1B,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACjD,OAAO,CAAC,SAAS,CAAC,CAepB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,KAAK,CACzB,EAAE,EAAE,SAAS,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAClE,OAAO,CAAC,SAAS,CAAC,CAyCpB;AAyBD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GACpG,OAAO,CAAC,SAAS,CAAC,CAsCpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,KAAK,CACzB,EAAE,EAAE,SAAS,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,SAAS,CAAC,CAGpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,IAAI,CACxB,EAAE,EAAE,SAAS,EACb,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,OAAO,CAAC,SAAS,CAAC,CAMpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CACpB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,CAAQ,GAC1C,SAAS,CAcX;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAClB,EAAE,EAAE,SAAS,EACb,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;CAAE,GAC5E,SAAS,CAyCX;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAY/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAsBpF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAatE;AAiSD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EACxB,eAAe,GAAE,OAAe,GAC/B,SAAS,CAEX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,GAAG,EAAE,MAAM,EACX,eAAe,GAAE,OAAe,GAC/B,SAAS,CAgBX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,OAAe,GAC/B,SAAS,CAWX;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,eAAe,GAAE,OAAe,EAChC,QAAQ,GAAE,OAAc,GACvB,SAAS,CAKX;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,MAAM,CACpB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAC1B,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACrG,SAAS,CAgCX;AA8BD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,GAAG,SAAS,CAE7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,GAAE,MAAU,EAAE,KAAK,GAAE,MAAU,GAAG,SAAS,CAGrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CAEvG;AAED;;;;;;;GAOG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CAG7G;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CAElG;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CAElG;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CAElG;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CAElG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACvB,eAAe,GAAE,OAAe,EAChC,cAAc,GAAE,OAAe,GAC9B,SAAS,CAWX;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,eAAe,GAAE,OAAe,GAAG,SAAS,CA4B/E;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAY9C;AAyPD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,OAAO,CAC3B,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,OAAc,EACvB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,SAAS,CAAC,CAgNpB;AAwKD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAC3B,EAAE,EAAE,SAAS,EACb,YAAY,SAAM,EAClB,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACvD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACrD,OAAO,GAAE,OAAO,GAAG,KAAY,GAC9B,OAAO,CAAC,SAAS,CAAC,CAiDpB;AAED,wCAAwC;AACxC,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;IACzB,sFAAsF;IACtF,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,oFAAoF;IACpF,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AA4BD;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS,GAAG,WAAW,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAgDlG;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACjE,OAAO,CAAC,SAAS,CAAC,CAoFpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAkDlE;AAED;;;;;;GAMG;AACH,wBAAsB,IAAI,CACxB,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAyBpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAsBpB;AAED;;;;;;;GAOG;AACH,wBAAsB,OAAO,CAC3B,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAoBpB;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,SAAS,EACb,kBAAkB,EAAE,MAAM,GAAG,OAAO,EACpC,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC,CAGpB;AA8JD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,QAAQ,EAAE,KAAK,GAAG,SAAS,EAC3B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAChC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GACvB,OAAO,CAAC,SAAS,CAAC,CAkDpB;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAE3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAO1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAgB1E;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CACnB,EAAE,EAAE,SAAS,EACb,GAAG,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,SAAS,CAYX;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,SAAS,EACb,GAAG,CAAC,EAAE,MAAM,GAAG;IAAE,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC1D,SAAS,CAYX;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,SAAS,CAY/C;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,SAAS,EACb,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAClE,OAAO,CAAC,SAAS,CAAC,CAoEpB;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAGrE;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,SAAS,CAG5E;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,SAAS,EACb,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,SAAS,CAAC,CAIpB;AAED;;;;;;GAMG;AACH,wBAAsB,MAAM,CAC1B,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC9B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,CAAC,CASpB;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,MAAM,CAC1B,EAAE,EAAE,SAAS,EACb,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EAC3C,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAC1C,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,SAAS,CAAC,CAwBpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAsCjF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAoBjF;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAA;IAC3B,wBAAwB;IACxB,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,6DAA6D;IAC7D,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CACvC;AAWD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,UAAU,CAEtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,UAAU,CAwBvD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAqCzE;AAsHD;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAyBjF;AAED;;;;;;;GAOG;AACH,wBAAsB,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAEhF;AAED;;;;;GAKG;AACH,wBAAsB,KAAK,CACzB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,GAAG,KAAK,GACvB,OAAO,CAAC,SAAS,CAAC,CAMpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAI/D;AAED;;;;;GAKG;AACH,wBAAsB,GAAG,CACvB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,GAAG,KAAK,GACvB,OAAO,CAAC,SAAS,CAAC,CAMpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAyB5D;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,EAAE,CAAC,GAAE,MAAU,GAAG,KAAK,CAEzE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,GAAG,KAAK,EAAE,CAAC,SAAS,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,KAAK,GAAG,IAAI,CAMzF;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,GAAG,KAAK,GACvB,OAAO,CAAC,SAAS,CAAC,CAMpB;AA0CD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAa9E;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,SAAS,CAAC,CAgBpB;AAkDD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CA6ChF;AA4CD;;;;GAIG;AACH,wBAAgB,GAAG,CAAC,EAAE,EAAE,SAAS,GAAG,KAAK,GAAG,IAAI,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,SAAS,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAEpD;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,SAAS,EACb,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC7E,OAAO,CAAC,SAAS,CAAC,CAgDpB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAE7D;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAsB,UAAU,CAC9B,EAAE,EAAE,SAAS,EACb,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAChC,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAAA;CACtC,GACA,OAAO,CAAC,SAAS,CAAC,CAmDpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,KAAK,CACzB,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9B,OAAO,CAAC,SAAS,CAAC,CAiBpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,SAAS,EACb,KAAK,EAAE;IAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC7E,IAAI,GAAE,KAAK,GAAG,QAAgB,GAC7B,OAAO,CAAC,SAAS,CAAC,CA0CpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACxB,OAAO,CAAC,SAAS,CAAC,CA8CpB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,cAAc,CAClC,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,EAAE,EAClB,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7D,OAAO,CAAC,SAAS,CAAC,CAoCpB;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAsB,SAAS,CAC7B,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,EAAE,EAClB,KAAK,EAAE;IAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,EAC7E,IAAI,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,SAAS,CAAC,CAiGpB"}
|