@constructorfleet/sketchforge-engine 1.15.0 → 1.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.
Files changed (52) hide show
  1. package/README.md +25 -3
  2. package/dist/domain/sketchforge.d.ts +21 -1
  3. package/dist/domain/sketchforge.d.ts.map +1 -1
  4. package/dist/engine.d.ts.map +1 -1
  5. package/dist/engine.js +134 -18
  6. package/dist/engine.js.map +1 -1
  7. package/dist/parametricRecompute.d.ts +15 -0
  8. package/dist/parametricRecompute.d.ts.map +1 -0
  9. package/dist/parametricRecompute.js +68 -0
  10. package/dist/parametricRecompute.js.map +1 -0
  11. package/dist/revolveRequests.d.ts +94 -1
  12. package/dist/revolveRequests.d.ts.map +1 -1
  13. package/dist/revolveRequests.js +3 -1
  14. package/dist/revolveRequests.js.map +1 -1
  15. package/dist/serverShapeGroups.d.ts +4 -1
  16. package/dist/serverShapeGroups.d.ts.map +1 -1
  17. package/dist/serverShapeGroups.js +3 -3
  18. package/dist/serverShapeGroups.js.map +1 -1
  19. package/dist/serverStepExplode.d.ts.map +1 -1
  20. package/dist/serverStepExplode.js +84 -3
  21. package/dist/serverStepExplode.js.map +1 -1
  22. package/dist/shapeRequests.d.ts +1 -1
  23. package/dist/shapeRequests.d.ts.map +1 -1
  24. package/dist/shapeRequests.js +1 -1
  25. package/dist/shapeRequests.js.map +1 -1
  26. package/dist/sketchSweepRequest.d.ts.map +1 -1
  27. package/dist/sketchSweepRequest.js +3 -1
  28. package/dist/sketchSweepRequest.js.map +1 -1
  29. package/dist/skfProject.d.ts.map +1 -1
  30. package/dist/skfProject.js +9 -0
  31. package/dist/skfProject.js.map +1 -1
  32. package/dist/stepAssemblyHierarchy.d.ts +16 -0
  33. package/dist/stepAssemblyHierarchy.d.ts.map +1 -1
  34. package/dist/stepAssemblyHierarchy.js +90 -4
  35. package/dist/stepAssemblyHierarchy.js.map +1 -1
  36. package/dist/stepComponentMetadata.d.ts +1 -0
  37. package/dist/stepComponentMetadata.d.ts.map +1 -1
  38. package/dist/stepComponentMetadata.js +33 -1
  39. package/dist/stepComponentMetadata.js.map +1 -1
  40. package/dist/stepGlbDocument.d.ts +25 -0
  41. package/dist/stepGlbDocument.d.ts.map +1 -1
  42. package/dist/stepGlbDocument.js +11 -3
  43. package/dist/stepGlbDocument.js.map +1 -1
  44. package/dist/support/cadModifierTypes.d.ts +1 -1
  45. package/dist/support/cadModifierTypes.d.ts.map +1 -1
  46. package/dist/support/lib/operator-configuration.json +45 -15
  47. package/dist/support/lib/operatorConfiguration.d.ts +2 -0
  48. package/dist/support/lib/operatorConfiguration.d.ts.map +1 -1
  49. package/dist/workplaneShapes.d.ts.map +1 -1
  50. package/dist/workplaneShapes.js +3 -1
  51. package/dist/workplaneShapes.js.map +1 -1
  52. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
1
  export type StepAssemblyNode = {
2
+ id?: string;
2
3
  name: string;
3
4
  children: StepAssemblyNode[];
4
5
  };
6
+ export declare function stepComponentNamesByOccurrence(step: string): Map<string, string>;
5
7
  /**
6
8
  * Read a display tree from OCCT's XCAF glTF export. Product names are taken
7
9
  * from STEP occurrence records because OCCT's glTF exporter names occurrence
@@ -10,4 +12,18 @@ export type StepAssemblyNode = {
10
12
  * never reach this helper.
11
13
  */
12
14
  export declare function stepAssemblyHierarchyFromGlb(glb: Uint8Array, step: string): StepAssemblyNode[] | undefined;
15
+ export type StepOccurrenceGeometry = {
16
+ occurrenceId: string;
17
+ name: string;
18
+ bounds: {
19
+ xmin: number;
20
+ ymin: number;
21
+ zmin: number;
22
+ xmax: number;
23
+ ymax: number;
24
+ zmax: number;
25
+ };
26
+ };
27
+ /** Map bounded GLB mesh extents to the closest named source occurrence. */
28
+ export declare function stepOccurrenceGeometryFromGlb(glb: Uint8Array, step: string): StepOccurrenceGeometry[];
13
29
  //# sourceMappingURL=stepAssemblyHierarchy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepAssemblyHierarchy.d.ts","sourceRoot":"","sources":["../src/stepAssemblyHierarchy.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAsG9E;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAgD1G"}
1
+ {"version":3,"file":"stepAssemblyHierarchy.d.ts","sourceRoot":"","sources":["../src/stepAssemblyHierarchy.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAA;CAAE,CAAC;AA8D3F,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,uBAsC1D;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,EAAE,GAAG,SAAS,CAgD1G;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAChG,CAAC;AAmDF,2EAA2E;AAC3E,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAgCrG"}
@@ -1,5 +1,6 @@
1
1
  /** Bounded product-tree metadata recovered from an XCAF GLB and STEP labels. */
2
- import { readGlbSceneDocument } from "./stepGlbDocument.js";
2
+ import * as THREE from "three";
3
+ import { readGlbScene, readGlbSceneDocument } from "./stepGlbDocument.js";
3
4
  const MAX_HIERARCHY_NODES = 2_000;
4
5
  const MAX_HIERARCHY_DEPTH = 32;
5
6
  function entities(step) {
@@ -61,7 +62,7 @@ function stepString(value) {
61
62
  const match = /^'((?:[^']|'')*)'$/.exec(value?.trim() ?? "");
62
63
  return match?.[1]?.replaceAll("''", "'").trim() ?? "";
63
64
  }
64
- function componentNamesByOccurrence(step) {
65
+ export function stepComponentNamesByOccurrence(step) {
65
66
  const records = entities(step);
66
67
  const productNameById = new Map();
67
68
  const productByFormationId = new Map();
@@ -121,7 +122,7 @@ export function stepAssemblyHierarchyFromGlb(glb, step) {
121
122
  const nodes = document?.nodes;
122
123
  if (!nodes?.length || nodes.length > MAX_HIERARCHY_NODES)
123
124
  return undefined;
124
- const namesByOccurrence = componentNamesByOccurrence(step);
125
+ const namesByOccurrence = stepComponentNamesByOccurrence(step);
125
126
  if (!namesByOccurrence.size)
126
127
  return undefined;
127
128
  const sceneNodes = document?.scenes?.[document.scene ?? 0]?.nodes;
@@ -155,7 +156,7 @@ export function stepAssemblyHierarchyFromGlb(glb, step) {
155
156
  const name = occurrenceName ?? rawName;
156
157
  if (!name)
157
158
  return children.length === 1 ? children[0] : null;
158
- return { name, children };
159
+ return { id: occurrenceName ? `step-occurrence:${rawName}` : `step-node:${index}`, name, children };
159
160
  };
160
161
  let result = roots.map((root) => visit(root, 0, new Set())).filter((node) => node !== null);
161
162
  if (invalid || mapped === 0)
@@ -167,4 +168,89 @@ export function stepAssemblyHierarchyFromGlb(glb, step) {
167
168
  }
168
169
  return result.some((root) => root.children.length > 0) ? result : undefined;
169
170
  }
171
+ function nodeTransform(node) {
172
+ if (node.matrix?.length === 16)
173
+ return new THREE.Matrix4().fromArray(node.matrix);
174
+ const translation = node.translation ?? [0, 0, 0];
175
+ const rotation = node.rotation ?? [0, 0, 0, 1];
176
+ const scale = node.scale ?? [1, 1, 1];
177
+ return new THREE.Matrix4().compose(new THREE.Vector3(translation[0] ?? 0, translation[1] ?? 0, translation[2] ?? 0), new THREE.Quaternion(rotation[0] ?? 0, rotation[1] ?? 0, rotation[2] ?? 0, rotation[3] ?? 1), new THREE.Vector3(scale[0] ?? 1, scale[1] ?? 1, scale[2] ?? 1));
178
+ }
179
+ function meshBounds(document, meshIndex) {
180
+ const mesh = document.meshes?.[meshIndex];
181
+ const minimum = [Infinity, Infinity, Infinity];
182
+ const maximum = [-Infinity, -Infinity, -Infinity];
183
+ let found = false;
184
+ for (const primitive of mesh?.primitives ?? []) {
185
+ const positionIndex = primitive.attributes?.POSITION;
186
+ const accessor = typeof positionIndex === "number" ? document.accessors?.[positionIndex] : undefined;
187
+ if (accessor?.type !== "VEC3" || accessor.min?.length !== 3 || accessor.max?.length !== 3
188
+ || !accessor.min.every(Number.isFinite) || !accessor.max.every(Number.isFinite))
189
+ continue;
190
+ found = true;
191
+ for (let axis = 0; axis < 3; axis += 1) {
192
+ minimum[axis] = Math.min(minimum[axis], accessor.min[axis]);
193
+ maximum[axis] = Math.max(maximum[axis], accessor.max[axis]);
194
+ }
195
+ }
196
+ return found ? { minimum, maximum } : undefined;
197
+ }
198
+ function transformedBounds(bounds, transform) {
199
+ const result = { xmin: Infinity, ymin: Infinity, zmin: Infinity, xmax: -Infinity, ymax: -Infinity, zmax: -Infinity };
200
+ for (const x of [bounds.minimum[0], bounds.maximum[0]]) {
201
+ for (const y of [bounds.minimum[1], bounds.maximum[1]]) {
202
+ for (const z of [bounds.minimum[2], bounds.maximum[2]]) {
203
+ const point = new THREE.Vector3(x, y, z).applyMatrix4(transform).multiplyScalar(1_000);
204
+ result.xmin = Math.min(result.xmin, point.x);
205
+ result.ymin = Math.min(result.ymin, point.y);
206
+ result.zmin = Math.min(result.zmin, point.z);
207
+ result.xmax = Math.max(result.xmax, point.x);
208
+ result.ymax = Math.max(result.ymax, point.y);
209
+ result.zmax = Math.max(result.zmax, point.z);
210
+ }
211
+ }
212
+ }
213
+ return result;
214
+ }
215
+ /** Map bounded GLB mesh extents to the closest named source occurrence. */
216
+ export function stepOccurrenceGeometryFromGlb(glb, step) {
217
+ const document = readGlbScene(glb)?.document;
218
+ const nodes = document?.nodes;
219
+ if (!document || !nodes?.length || nodes.length > MAX_HIERARCHY_NODES)
220
+ return [];
221
+ const namesByOccurrence = stepComponentNamesByOccurrence(step);
222
+ if (!namesByOccurrence.size)
223
+ return [];
224
+ const hasChild = new Set(nodes.flatMap((node) => node.children ?? []));
225
+ const roots = document.scenes?.[document.scene ?? 0]?.nodes?.length
226
+ ? document.scenes[document.scene ?? 0].nodes
227
+ : nodes.flatMap((_, index) => hasChild.has(index) ? [] : [index]);
228
+ const result = [];
229
+ let visited = 0;
230
+ const visit = (index, parent, parentOccurrence, depth = 0, path = new Set()) => {
231
+ if (depth > MAX_HIERARCHY_DEPTH || index < 0 || index >= nodes.length || path.has(index))
232
+ return;
233
+ visited += 1;
234
+ if (visited > MAX_HIERARCHY_NODES)
235
+ return;
236
+ const node = nodes[index];
237
+ const world = parent.clone().multiply(nodeTransform(node));
238
+ const rawName = node.name?.trim() ?? "";
239
+ // Mesh nodes are geometry leaves and may coincidentally reuse a STEP
240
+ // relationship number. Only non-mesh nodes represent occurrences.
241
+ const occurrence = typeof node.mesh !== "number" && namesByOccurrence.has(rawName) ? rawName : parentOccurrence;
242
+ if (typeof node.mesh === "number" && occurrence) {
243
+ const bounds = meshBounds(document, node.mesh);
244
+ const name = namesByOccurrence.get(occurrence);
245
+ if (bounds && name)
246
+ result.push({ occurrenceId: `step-occurrence:${occurrence}`, name, bounds: transformedBounds(bounds, world) });
247
+ }
248
+ const nextPath = new Set(path).add(index);
249
+ for (const child of node.children ?? [])
250
+ visit(child, world, occurrence, depth + 1, nextPath);
251
+ };
252
+ for (const root of roots)
253
+ visit(root, new THREE.Matrix4(), undefined);
254
+ return result;
255
+ }
170
256
  //# sourceMappingURL=stepAssemblyHierarchy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepAssemblyHierarchy.js","sourceRoot":"","sources":["../src/stepAssemblyHierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stepAssemblyHierarchy.js","sourceRoot":"","sources":["../src/stepAssemblyHierarchy.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { OcctKernel, ShapeHandle } from "occt-wasm";
3
3
  import { type StepAssemblyNode } from "./stepAssemblyHierarchy.js";
4
4
  export type StepComponentMetadata = {
5
5
  name?: string;
6
+ occurrenceId?: string;
6
7
  color?: string;
7
8
  };
8
9
  export type StepComponentMetadataResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"stepComponentMetadata.d.ts","sourceRoot":"","sources":["../src/stepComponentMetadata.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,KAAK,EAAY,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEjG,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACtE,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,UAK/D;AAMD,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;;;EA0DlE"}
1
+ {"version":3,"file":"stepComponentMetadata.d.ts","sourceRoot":"","sources":["../src/stepComponentMetadata.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,KAAK,EAAY,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEnE,OAAO,EAA+D,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEhI,MAAM,MAAM,qBAAqB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7F,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC9C,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC/B,CAAC;AAEF,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,UAK/D;AAMD,yFAAyF;AACzF,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM;;;EA2FlE"}
@@ -1,5 +1,5 @@
1
1
  import { componentColorsFromGlb } from "./stepGlbColors.js";
2
- import { stepAssemblyHierarchyFromGlb } from "./stepAssemblyHierarchy.js";
2
+ import { stepAssemblyHierarchyFromGlb, stepOccurrenceGeometryFromGlb } from "./stepAssemblyHierarchy.js";
3
3
  export function stepShapeKey(cad, shape) {
4
4
  const bounds = cad.getBoundingBox(shape, false);
5
5
  return [cad.getVolume(shape), bounds.xmin, bounds.ymin, bounds.zmin, bounds.xmax, bounds.ymax, bounds.zmax]
@@ -14,12 +14,21 @@ export function stepComponentMetadata(cad, step) {
14
14
  const metadataBySolid = new Map();
15
15
  const document = cad.importXCAFFromSTEP(step);
16
16
  let assembly;
17
+ const occurrenceGeometry = new Map();
17
18
  try {
18
19
  let colorsByName = new Map();
19
20
  try {
20
21
  const glb = document.exportGLTF();
21
22
  colorsByName = componentColorsFromGlb(glb);
22
23
  assembly = stepAssemblyHierarchyFromGlb(glb, step);
24
+ for (const occurrence of stepOccurrenceGeometryFromGlb(glb, step)) {
25
+ const key = [occurrence.bounds.xmin, occurrence.bounds.ymin, occurrence.bounds.zmin,
26
+ occurrence.bounds.xmax, occurrence.bounds.ymax, occurrence.bounds.zmax]
27
+ .map((value) => value.toFixed(2)).join(":");
28
+ const matches = occurrenceGeometry.get(key) ?? [];
29
+ matches.push(occurrence);
30
+ occurrenceGeometry.set(key, matches);
31
+ }
23
32
  }
24
33
  catch {
25
34
  // XCAF label data remains usable when the optional color view cannot be exported.
@@ -68,6 +77,29 @@ export function stepComponentMetadata(cad, step) {
68
77
  metadataBySolid.set(key, metadata);
69
78
  }
70
79
  }
80
+ // Some OCCT builds flatten XCAF leaf labels to the assembly root. Recover
81
+ // product identity only when GLB world-space bounds uniquely identify one
82
+ // source solid and one occurrence. Ambiguous coincident geometry stays flat.
83
+ const solids = cad.getSubShapes(cad.importStep(step), "solid");
84
+ const solidByBounds = new Map();
85
+ const boundsKey = (bounds) => [bounds.xmin, bounds.ymin, bounds.zmin, bounds.xmax, bounds.ymax, bounds.zmax]
86
+ .map((value) => value.toFixed(2)).join(":");
87
+ for (const solid of solids) {
88
+ const key = boundsKey(cad.getBoundingBox(solid, false));
89
+ const matches = solidByBounds.get(key) ?? [];
90
+ matches.push(solid);
91
+ solidByBounds.set(key, matches);
92
+ }
93
+ for (const [key, candidates] of occurrenceGeometry) {
94
+ const solidsAtBounds = solidByBounds.get(key);
95
+ if (candidates.length !== 1 || solidsAtBounds?.length !== 1)
96
+ continue;
97
+ const solid = solidsAtBounds[0];
98
+ const solidKey = stepShapeKey(cad, solid);
99
+ const existing = metadataBySolid.get(solidKey) ?? [];
100
+ const color = existing.length === 1 ? existing[0]?.color : undefined;
101
+ metadataBySolid.set(solidKey, [{ name: candidates[0].name, occurrenceId: candidates[0].occurrenceId, ...(color ? { color } : {}) }]);
102
+ }
71
103
  }
72
104
  finally {
73
105
  document.close();
@@ -1 +1 @@
1
- {"version":3,"file":"stepComponentMetadata.js","sourceRoot":"","sources":["../src/stepComponentMetadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stepComponentMetadata.js","sourceRoot":"","sources":["../src/stepComponentMetadata.ts"],"names":[],"mappings":"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"}
@@ -8,18 +8,43 @@ export type GlbSceneDocument = {
8
8
  name?: string;
9
9
  mesh?: number;
10
10
  children?: number[];
11
+ matrix?: number[];
12
+ translation?: number[];
13
+ rotation?: number[];
14
+ scale?: number[];
11
15
  }>;
12
16
  meshes?: Array<{
13
17
  name?: string;
14
18
  primitives?: Array<{
15
19
  material?: number;
20
+ attributes?: Record<string, number>;
16
21
  }>;
17
22
  }>;
23
+ accessors?: Array<{
24
+ bufferView?: number;
25
+ byteOffset?: number;
26
+ count?: number;
27
+ componentType?: number;
28
+ type?: string;
29
+ min?: number[];
30
+ max?: number[];
31
+ }>;
32
+ bufferViews?: Array<{
33
+ buffer?: number;
34
+ byteLength?: number;
35
+ byteOffset?: number;
36
+ byteStride?: number;
37
+ }>;
18
38
  materials?: Array<{
19
39
  pbrMetallicRoughness?: {
20
40
  baseColorFactor?: number[];
21
41
  };
22
42
  }>;
23
43
  };
44
+ export type GlbScene = {
45
+ document: GlbSceneDocument;
46
+ binary?: Uint8Array;
47
+ };
48
+ export declare function readGlbScene(glb: Uint8Array): GlbScene | null;
24
49
  export declare function readGlbSceneDocument(glb: Uint8Array): GlbSceneDocument | null;
25
50
  //# sourceMappingURL=stepGlbDocument.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepGlbDocument.d.ts","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAC7E,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,oBAAoB,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAsB7E"}
1
+ {"version":3,"file":"stepGlbDocument.d.ts","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACrC,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC,CAAC;IACH,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC;IAClH,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACvJ,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxG,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,oBAAoB,CAAC,EAAE;YAAE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;CAC9E,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3E,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CA0B7D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,gBAAgB,GAAG,IAAI,CAE7E"}
@@ -1,10 +1,12 @@
1
- export function readGlbSceneDocument(glb) {
1
+ export function readGlbScene(glb) {
2
2
  if (glb.byteLength < 20)
3
3
  return null;
4
4
  const view = new DataView(glb.buffer, glb.byteOffset, glb.byteLength);
5
5
  if (view.getUint32(0, true) !== 0x46546c67 || view.getUint32(4, true) !== 2)
6
6
  return null;
7
7
  let offset = 12;
8
+ let document = null;
9
+ let binary;
8
10
  while (offset + 8 <= glb.byteLength) {
9
11
  const length = view.getUint32(offset, true);
10
12
  const type = view.getUint32(offset + 4, true);
@@ -14,14 +16,20 @@ export function readGlbSceneDocument(glb) {
14
16
  return null;
15
17
  if (type === 0x4e4f534a) {
16
18
  try {
17
- return JSON.parse(new TextDecoder().decode(glb.subarray(start, end)).trim());
19
+ document = JSON.parse(new TextDecoder().decode(glb.subarray(start, end)).trim());
18
20
  }
19
21
  catch {
20
22
  return null;
21
23
  }
22
24
  }
25
+ else if (type === 0x004e4942) {
26
+ binary = glb.subarray(start, end);
27
+ }
23
28
  offset = end;
24
29
  }
25
- return null;
30
+ return document ? { document, ...(binary ? { binary } : {}) } : null;
31
+ }
32
+ export function readGlbSceneDocument(glb) {
33
+ return readGlbScene(glb)?.document ?? null;
26
34
  }
27
35
  //# sourceMappingURL=stepGlbDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stepGlbDocument.js","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,oBAAoB,CAAC,GAAe;IAClD,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,OAAO,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;QAC3B,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAqB,CAAC;YACnG,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"stepGlbDocument.js","sourceRoot":"","sources":["../src/stepGlbDocument.ts"],"names":[],"mappings":"AAqBA,MAAM,UAAU,YAAY,CAAC,GAAe;IAC1C,IAAI,GAAG,CAAC,UAAU,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzF,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,QAAQ,GAA4B,IAAI,CAAC;IAC7C,IAAI,MAA8B,CAAC;IACnC,OAAO,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,GAAG,MAAM,CAAC;QAC3B,IAAI,GAAG,GAAG,GAAG,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAqB,CAAC;YACvG,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAe;IAClD,OAAO,YAAY,CAAC,GAAG,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC7C,CAAC"}
@@ -84,7 +84,7 @@ export type CadModifierWorkerRequest = {
84
84
  faceIds: string[];
85
85
  faceId: string;
86
86
  angle: number;
87
- pullDirection: "x" | "y" | "z";
87
+ pullDirection: "x" | "y" | "z" | "-x" | "-y" | "-z";
88
88
  brepTransform?: number[];
89
89
  } | {
90
90
  type: "dispose";
@@ -1 +1 @@
1
- {"version":3,"file":"cadModifierTypes.d.ts","sourceRoot":"","sources":["../../src/support/cadModifierTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cadModifierTypes.d.ts","sourceRoot":"","sources":["../../src/support/cadModifierTypes.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@
6
6
  "required": false,
7
7
  "validation": "Compose host port published to container port 3000; configure this when host port 3000 is already occupied.",
8
8
  "sensitive": false,
9
- "subsystem": "Docker port publishing"
9
+ "subsystem": "Docker port publishing",
10
+ "source": "../deploy/docker/compose.yaml",
11
+ "ownerPage": "guides/deployment.md#docker-listener"
10
12
  },
11
13
  {
12
14
  "name": "SKETCHFORGE_SHARED_PROJECTS_VOLUME",
@@ -14,7 +16,9 @@
14
16
  "required": false,
15
17
  "validation": "Docker named volume or bind mount source for /data/projects, where shared project files are stored.",
16
18
  "sensitive": false,
17
- "subsystem": "Docker shared project persistence"
19
+ "subsystem": "Docker shared project persistence",
20
+ "source": "../deploy/docker/compose.yaml",
21
+ "ownerPage": "guides/deployment.md#shared-projects"
18
22
  },
19
23
  {
20
24
  "name": "SKETCHFORGE_PROJECTS_VOLUME",
@@ -22,7 +26,9 @@
22
26
  "required": false,
23
27
  "validation": "Docker named volume or bind mount source for /data/my-projects. Used when SKETCHFORGE_PROJECTS_DIR points to that path.",
24
28
  "sensitive": false,
25
- "subsystem": "Docker server project persistence"
29
+ "subsystem": "Docker server project persistence",
30
+ "source": "../deploy/docker/compose.yaml",
31
+ "ownerPage": "guides/deployment.md#server-backed-projects"
26
32
  },
27
33
  {
28
34
  "name": "PORT",
@@ -30,7 +36,9 @@
30
36
  "required": false,
31
37
  "validation": "Integer from 1 through 65535; invalid values fall back to 3000.",
32
38
  "sensitive": false,
33
- "subsystem": "Docker server listener"
39
+ "subsystem": "Docker server listener",
40
+ "source": "../deploy/docker/start-server.mjs",
41
+ "ownerPage": "guides/deployment.md#docker-listener"
34
42
  },
35
43
  {
36
44
  "name": "HOSTNAME",
@@ -38,7 +46,9 @@
38
46
  "required": false,
39
47
  "validation": "Passed to the Next.js server as its bind host.",
40
48
  "sensitive": false,
41
- "subsystem": "Docker server listener"
49
+ "subsystem": "Docker server listener",
50
+ "source": "../deploy/docker/start-server.mjs",
51
+ "ownerPage": "guides/deployment.md#docker-listener"
42
52
  },
43
53
  {
44
54
  "name": "SKETCHFORGE_LEGACY_PORT",
@@ -46,7 +56,9 @@
46
56
  "required": false,
47
57
  "validation": "Integer from 1 through 65535; invalid values fall back to 80. Set equal to PORT to disable the compatibility proxy.",
48
58
  "sensitive": false,
49
- "subsystem": "Docker compatibility proxy"
59
+ "subsystem": "Docker compatibility proxy",
60
+ "source": "../deploy/docker/start-server.mjs",
61
+ "ownerPage": "guides/deployment.md#docker-listener"
50
62
  },
51
63
  {
52
64
  "name": "SKETCHFORGE_PROJECTS_DIR",
@@ -54,7 +66,9 @@
54
66
  "required": false,
55
67
  "validation": "Filesystem path writable by the server. Enables server-backed project storage and must be paired with SKETCHFORGE_API_TOKEN to enable the scripting REST API.",
56
68
  "sensitive": false,
57
- "subsystem": "Server project storage and REST API"
69
+ "subsystem": "Server project storage and REST API",
70
+ "source": "../apps/web/src/lib/serverProjectStore.ts",
71
+ "ownerPage": "guides/deployment.md#server-backed-projects"
58
72
  },
59
73
  {
60
74
  "name": "SKETCHFORGE_API_TOKEN",
@@ -62,7 +76,9 @@
62
76
  "required": false,
63
77
  "validation": "Non-empty bearer token. Configure a high-entropy secret; never expose it to browsers or logs. Used with SKETCHFORGE_PROJECTS_DIR.",
64
78
  "sensitive": true,
65
- "subsystem": "REST API authentication"
79
+ "subsystem": "REST API authentication",
80
+ "source": "../apps/web/src/lib/apiTokens.ts",
81
+ "ownerPage": "guides/deployment.md#rest-api-access"
66
82
  },
67
83
  {
68
84
  "name": "SKETCHFORGE_SHARED_PROJECTS_DIR",
@@ -70,7 +86,9 @@
70
86
  "required": false,
71
87
  "validation": "Filesystem path writable by the server; mount persistent storage at this path to retain shared projects across container replacement.",
72
88
  "sensitive": false,
73
- "subsystem": "Shared project files"
89
+ "subsystem": "Shared project files",
90
+ "source": "../apps/web/src/app/api/shared-projects/route.ts",
91
+ "ownerPage": "guides/deployment.md#shared-projects"
74
92
  },
75
93
  {
76
94
  "name": "SKETCHFORGE_APP_VERSION",
@@ -78,7 +96,9 @@
78
96
  "required": false,
79
97
  "validation": "Semantic version; invalid values are ignored.",
80
98
  "sensitive": false,
81
- "subsystem": "Update status"
99
+ "subsystem": "Update status",
100
+ "source": "../apps/web/src/app/api/app-update/route.ts",
101
+ "ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
82
102
  },
83
103
  {
84
104
  "name": "SKETCHFORGE_UPDATE_MANIFEST_URL",
@@ -86,7 +106,9 @@
86
106
  "required": false,
87
107
  "validation": "HTTP or HTTPS URL returning JSON with a semantic-version `version` field.",
88
108
  "sensitive": false,
89
- "subsystem": "Update status"
109
+ "subsystem": "Update status",
110
+ "source": "../apps/web/src/app/api/app-update/route.ts",
111
+ "ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
90
112
  },
91
113
  {
92
114
  "name": "SKETCHFORGE_UPDATE_GUIDE_URL",
@@ -94,7 +116,9 @@
94
116
  "required": false,
95
117
  "validation": "URL shown to users as the update guide.",
96
118
  "sensitive": false,
97
- "subsystem": "Update status"
119
+ "subsystem": "Update status",
120
+ "source": "../apps/web/src/app/api/app-update/route.ts",
121
+ "ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
98
122
  },
99
123
  {
100
124
  "name": "SKETCHFORGE_UPDATE_TRIGGER_URL",
@@ -102,7 +126,9 @@
102
126
  "required": false,
103
127
  "validation": "HTTP or HTTPS URL for the configured update trigger endpoint.",
104
128
  "sensitive": false,
105
- "subsystem": "Server-triggered updates"
129
+ "subsystem": "Server-triggered updates",
130
+ "source": "../apps/web/src/app/api/app-update/route.ts",
131
+ "ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
106
132
  },
107
133
  {
108
134
  "name": "SKETCHFORGE_UPDATE_ADMIN_KEY",
@@ -110,7 +136,9 @@
110
136
  "required": false,
111
137
  "validation": "Secret expected by the update trigger service. Required with SKETCHFORGE_UPDATE_TRIGGER_URL.",
112
138
  "sensitive": true,
113
- "subsystem": "Server-triggered updates"
139
+ "subsystem": "Server-triggered updates",
140
+ "source": "../apps/web/src/app/api/app-update/route.ts",
141
+ "ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
114
142
  },
115
143
  {
116
144
  "name": "SKETCHFORGE_UPDATE_TRIGGER_TOKEN",
@@ -118,7 +146,9 @@
118
146
  "required": false,
119
147
  "validation": "Secret bearer token sent to the configured trigger endpoint. Required when that endpoint enforces a trigger token.",
120
148
  "sensitive": true,
121
- "subsystem": "Server-triggered updates"
149
+ "subsystem": "Server-triggered updates",
150
+ "source": "../apps/web/src/app/api/app-update/route.ts",
151
+ "ownerPage": "OPERATOR_CONFIGURATION.md#update-settings"
122
152
  }
123
153
  ]
124
154
  }
@@ -7,6 +7,8 @@ export declare const OPERATOR_CONFIGURATION: {
7
7
  validation: string;
8
8
  sensitive: boolean;
9
9
  subsystem: string;
10
+ source: string;
11
+ ownerPage: string;
10
12
  }[];
11
13
  };
12
14
  export type OperatorSettingName = (typeof configuration.settings)[number]["name"];
@@ -1 +1 @@
1
- {"version":3,"file":"operatorConfiguration.d.ts","sourceRoot":"","sources":["../../../src/support/lib/operatorConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,+BAA+B,CAAuB;AAEhF,eAAO,MAAM,sBAAsB;;;;;;;;;CAAgB,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,UAE5D"}
1
+ {"version":3,"file":"operatorConfiguration.d.ts","sourceRoot":"","sources":["../../../src/support/lib/operatorConfiguration.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,+BAA+B,CAAuB;AAEhF,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAAgB,CAAC;AACpD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAElF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,UAE5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"workplaneShapes.d.ts","sourceRoot":"","sources":["../src/workplaneShapes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,UAE7C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,UAWhE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAQ,UAE3D;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,cAAc,WAEvE;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAMzG;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,UAE/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,UAE/C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,UAGjD;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc;;;;;EASzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,WAMlD;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc;;;EASpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,GAAG,OAAiB,UAQnH;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,UAenD;AAQD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,WAE/D;AAmBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,YAqB1F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,cAAc,YAEjE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAE5D;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAOnH;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,iGASvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAQvG;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,UAEzC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,UAEtD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAsCvE;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,WAyExE;AAWD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,UAE9D"}
1
+ {"version":3,"file":"workplaneShapes.d.ts","sourceRoot":"","sources":["../src/workplaneShapes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,UAE7C;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,UAWhE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,SAAQ,UAE3D;AAED,wBAAgB,kCAAkC,CAAC,KAAK,EAAE,cAAc,WAEvE;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc,CAQzG;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,UAE/C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,UAE/C;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,MAAM,UAGjD;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc;;;;;EASzD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,WAMlD;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,cAAc;;;EASpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,GAAE,OAAO,GAAG,OAAiB,UAQnH;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,UAenD;AAQD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,WAE/D;AAmBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,YAqB1F;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,cAAc,YAEjE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAE5D;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAOnH;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,cAAc,iGASvD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAQvG;AAED,wBAAgB,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,UAEzC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,UAEtD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAsCvE;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,cAAc,WAyExE;AAWD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,UAE9D"}