brepjs 9.3.5 → 9.3.7

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 (75) hide show
  1. package/dist/2d.cjs +2 -2
  2. package/dist/2d.js +3 -3
  3. package/dist/{Blueprint-D-l9y6vQ.js → Blueprint-RZ4nOpeP.js} +5 -5
  4. package/dist/{Blueprint-pgzr1snT.cjs → Blueprint-UqKTCIA-.cjs} +5 -5
  5. package/dist/{boolean2D-DEQvy9jN.cjs → boolean2D-B1uobQA4.cjs} +7 -7
  6. package/dist/{boolean2D-S1fQJkDs.js → boolean2D-LUH72saA.js} +7 -7
  7. package/dist/{booleanFns-CKJpkL-W.cjs → booleanFns-Bl2o8KOm.cjs} +64 -17
  8. package/dist/{booleanFns-Ct7VfmjG.js → booleanFns-DU8S1pUR.js} +78 -31
  9. package/dist/brepjs.cjs +25 -16
  10. package/dist/brepjs.js +89 -80
  11. package/dist/core/shapeTypes.d.ts.map +1 -1
  12. package/dist/core.cjs +1 -1
  13. package/dist/core.js +1 -1
  14. package/dist/{cornerFinder-BKSnwYl_.cjs → cornerFinder-BPV6q1Vj.cjs} +1 -1
  15. package/dist/{cornerFinder-DiwhBI6W.js → cornerFinder-xTPiKfSk.js} +1 -1
  16. package/dist/{curveFns-CJ_Rhqu7.cjs → curveFns-CjhxIaTL.cjs} +1 -1
  17. package/dist/{curveFns-Vcss8w3g.js → curveFns-D1h3vwCh.js} +1 -1
  18. package/dist/{drawFns-DR-Pn6Ox.js → drawFns-CJShPJQl.js} +10 -10
  19. package/dist/{drawFns-BMN2P_95.cjs → drawFns-Dcy-HIjE.cjs} +10 -10
  20. package/dist/{faceFns-Cqgs0uTB.cjs → faceFns-CPfQsXwJ.cjs} +14 -14
  21. package/dist/{faceFns-CScUN5LN.js → faceFns-D309c5WF.js} +14 -14
  22. package/dist/{helpers-orCR-9t0.cjs → helpers-DK4mR8qk.cjs} +17 -8
  23. package/dist/{helpers-BUdSB_hP.js → helpers-DW9uVcCI.js} +18 -9
  24. package/dist/io.cjs +3 -3
  25. package/dist/io.js +3 -3
  26. package/dist/kernel/booleanOps.d.ts +13 -0
  27. package/dist/kernel/booleanOps.d.ts.map +1 -1
  28. package/dist/kernel/evolutionOps.d.ts.map +1 -1
  29. package/dist/kernel/index.d.ts.map +1 -1
  30. package/dist/kernel/meshOps.d.ts.map +1 -1
  31. package/dist/kernel/types.d.ts +11 -0
  32. package/dist/kernel/types.d.ts.map +1 -1
  33. package/dist/{loft-DttG6eeq.cjs → loft-C6S8hKeh.cjs} +3 -3
  34. package/dist/{loft-B6AuFlWT.js → loft-CRTLqcVq.js} +3 -3
  35. package/dist/measurement/interferenceFns.d.ts.map +1 -1
  36. package/dist/{measurement-Xm1XusbA.js → measurement-9152QCSW.js} +5 -5
  37. package/dist/{measurement-D61iSCBv.cjs → measurement-CgFnyeP-.cjs} +5 -5
  38. package/dist/measurement.cjs +1 -1
  39. package/dist/measurement.js +1 -1
  40. package/dist/{meshFns-B8LxlRhm.js → meshFns-CwCEIK-J.js} +6 -6
  41. package/dist/{meshFns-CCrO47TM.cjs → meshFns-DI87__D1.cjs} +6 -6
  42. package/dist/operations/patternFns.d.ts.map +1 -1
  43. package/dist/{operations-B1uuSLB2.cjs → operations-U2R99SDL.cjs} +5 -5
  44. package/dist/{operations-D-htN8K3.js → operations-o4_10ixl.js} +5 -5
  45. package/dist/operations.cjs +2 -2
  46. package/dist/operations.js +2 -2
  47. package/dist/query/finderCore.d.ts.map +1 -1
  48. package/dist/query.cjs +4 -4
  49. package/dist/query.js +5 -5
  50. package/dist/{shapeFns-BiMiqVm0.js → shapeFns-BvyqHHY6.js} +21 -17
  51. package/dist/{shapeFns-BvwnrLYU.cjs → shapeFns-DEMjdpl7.cjs} +12 -8
  52. package/dist/{shapeTypes-DIwQBQKB.cjs → shapeTypes-BN_jZhmp.cjs} +45 -51
  53. package/dist/{shapeTypes-D5th-THo.js → shapeTypes-TnFxk2_h.js} +45 -51
  54. package/dist/sketching.cjs +2 -2
  55. package/dist/sketching.js +2 -2
  56. package/dist/{surfaceBuilders-DbvODAS_.cjs → surfaceBuilders-Bj5RfOfU.cjs} +2 -2
  57. package/dist/{surfaceBuilders-CkDPvbwD.js → surfaceBuilders-Cyr7_YMW.js} +2 -2
  58. package/dist/topology/booleanFns.d.ts +7 -16
  59. package/dist/topology/booleanFns.d.ts.map +1 -1
  60. package/dist/topology/cast.d.ts +0 -5
  61. package/dist/topology/cast.d.ts.map +1 -1
  62. package/dist/topology/colorFns.d.ts +2 -0
  63. package/dist/topology/colorFns.d.ts.map +1 -1
  64. package/dist/topology/faceTagFns.d.ts +2 -0
  65. package/dist/topology/faceTagFns.d.ts.map +1 -1
  66. package/dist/topology/meshCache.d.ts +1 -1
  67. package/dist/topology/meshCache.d.ts.map +1 -1
  68. package/dist/topology/modifierFns.d.ts.map +1 -1
  69. package/dist/topology/shapeFns.d.ts +1 -1
  70. package/dist/topology/shapeFns.d.ts.map +1 -1
  71. package/dist/{topology-BndoQLIN.cjs → topology-D2rTk0_j.cjs} +6 -6
  72. package/dist/{topology-BvUvMNMo.js → topology-DAoT6iZV.js} +6 -6
  73. package/dist/topology.cjs +6 -6
  74. package/dist/topology.js +19 -19
  75. package/package.json +2 -1
@@ -357,6 +357,13 @@ function applyGlue(oc, op, optimisation) {
357
357
  op.SetGlue(oc.BOPAlgo_GlueEnum.BOPAlgo_GlueFull);
358
358
  }
359
359
  }
360
+ function applyBooleanDefaults(op, fuzzyValue) {
361
+ op.SetRunParallel(true);
362
+ op.SetUseOBB?.(true);
363
+ if (fuzzyValue !== void 0 && fuzzyValue > 0) {
364
+ op.SetFuzzyValue?.(fuzzyValue);
365
+ }
366
+ }
360
367
  function buildCompound(oc, shapes) {
361
368
  const builder = new oc.TopoDS_Builder();
362
369
  const compound = new oc.TopoDS_Compound();
@@ -368,11 +375,11 @@ function buildCompound(oc, shapes) {
368
375
  return compound;
369
376
  }
370
377
  function fuse(oc, shape, tool, options = {}) {
371
- const { optimisation, simplify: simplify2 = false } = options;
378
+ const { optimisation, simplify: simplify2 = false, fuzzyValue } = options;
372
379
  const progress = new oc.Message_ProgressRange_1();
373
380
  const fuseOp = new oc.BRepAlgoAPI_Fuse_3(shape, tool, progress);
374
381
  applyGlue(oc, fuseOp, optimisation);
375
- fuseOp.SetRunParallel(true);
382
+ applyBooleanDefaults(fuseOp, fuzzyValue);
376
383
  fuseOp.Build(progress);
377
384
  if (simplify2) fuseOp.SimplifyResult(true, true, SIMPLIFY_TOLERANCE);
378
385
  const result = fuseOp.Shape();
@@ -381,11 +388,11 @@ function fuse(oc, shape, tool, options = {}) {
381
388
  return result;
382
389
  }
383
390
  function cut(oc, shape, tool, options = {}) {
384
- const { optimisation, simplify: simplify2 = false } = options;
391
+ const { optimisation, simplify: simplify2 = false, fuzzyValue } = options;
385
392
  const progress = new oc.Message_ProgressRange_1();
386
393
  const cutOp = new oc.BRepAlgoAPI_Cut_3(shape, tool, progress);
387
394
  applyGlue(oc, cutOp, optimisation);
388
- cutOp.SetRunParallel(true);
395
+ applyBooleanDefaults(cutOp, fuzzyValue);
389
396
  cutOp.Build(progress);
390
397
  if (simplify2) cutOp.SimplifyResult(true, true, SIMPLIFY_TOLERANCE);
391
398
  const result = cutOp.Shape();
@@ -394,11 +401,11 @@ function cut(oc, shape, tool, options = {}) {
394
401
  return result;
395
402
  }
396
403
  function intersect(oc, shape, tool, options = {}) {
397
- const { optimisation, simplify: simplify2 = false } = options;
404
+ const { optimisation, simplify: simplify2 = false, fuzzyValue } = options;
398
405
  const progress = new oc.Message_ProgressRange_1();
399
406
  const commonOp = new oc.BRepAlgoAPI_Common_3(shape, tool, progress);
400
407
  applyGlue(oc, commonOp, optimisation);
401
- commonOp.SetRunParallel(true);
408
+ applyBooleanDefaults(commonOp, fuzzyValue);
402
409
  commonOp.Build(progress);
403
410
  if (simplify2) commonOp.SimplifyResult(true, true, SIMPLIFY_TOLERANCE);
404
411
  const result = commonOp.Shape();
@@ -410,7 +417,7 @@ function section(oc, shape, tool, approximation = true) {
410
417
  const progress = new oc.Message_ProgressRange_1();
411
418
  const sectionOp = new oc.BRepAlgoAPI_Section_3(shape, tool, false);
412
419
  sectionOp.Approximation(approximation);
413
- sectionOp.SetRunParallel(true);
420
+ applyBooleanDefaults(sectionOp);
414
421
  sectionOp.Build(progress);
415
422
  if (!sectionOp.IsDone()) {
416
423
  sectionOp.delete();
@@ -422,19 +429,8 @@ function section(oc, shape, tool, approximation = true) {
422
429
  progress.delete();
423
430
  return result;
424
431
  }
425
- function fuseAllBatch(oc, shapes, options = {}) {
426
- const { optimisation, simplify: simplify2 = false } = options;
427
- const batch = new oc.BooleanBatch();
428
- for (const s of shapes) {
429
- batch.addShape(s);
430
- }
431
- const glueMode = optimisation === "commonFace" ? 1 : optimisation === "sameFace" ? 2 : 0;
432
- const result = batch.fuseAll(glueMode, simplify2);
433
- batch.delete();
434
- return result;
435
- }
436
432
  function fuseAllNative(oc, shapes, options = {}) {
437
- const { optimisation, simplify: simplify2 = false } = options;
433
+ const { optimisation, simplify: simplify2 = false, fuzzyValue } = options;
438
434
  const argList = new oc.TopTools_ListOfShape_1();
439
435
  for (const s of shapes) {
440
436
  argList.Append_1(s);
@@ -442,7 +438,7 @@ function fuseAllNative(oc, shapes, options = {}) {
442
438
  const builder = new oc.BRepAlgoAPI_BuilderAlgo_1();
443
439
  builder.SetArguments(argList);
444
440
  applyGlue(oc, builder, optimisation);
445
- builder.SetRunParallel(true);
441
+ applyBooleanDefaults(builder, fuzzyValue);
446
442
  const progress = new oc.Message_ProgressRange_1();
447
443
  builder.Build(progress);
448
444
  let result = builder.Shape();
@@ -487,9 +483,6 @@ function fuseAll(oc, shapes, options = {}) {
487
483
  if (strategy === "pairwise") {
488
484
  return fuseAllPairwise(oc, shapes, options);
489
485
  }
490
- if (oc.BooleanBatch) {
491
- return fuseAllBatch(oc, shapes, options);
492
- }
493
486
  return fuseAllNative(oc, shapes, options);
494
487
  }
495
488
  function split(oc, shape, tools) {
@@ -505,7 +498,7 @@ function split(oc, shape, tools) {
505
498
  const splitter = new oc.BRepAlgoAPI_Splitter();
506
499
  splitter.SetArguments(argList);
507
500
  splitter.SetTools(toolList);
508
- splitter.SetRunParallel(true);
501
+ applyBooleanDefaults(splitter);
509
502
  const progress = new oc.Message_ProgressRange_1();
510
503
  splitter.Build(progress);
511
504
  const result = splitter.Shape();
@@ -515,22 +508,8 @@ function split(oc, shape, tools) {
515
508
  toolList.delete();
516
509
  return result;
517
510
  }
518
- function cutAllBatch(oc, shape, tools, options = {}) {
519
- const { optimisation, simplify: simplify2 = false } = options;
520
- const batch = new oc.BooleanBatch();
521
- for (const t of tools) {
522
- batch.addShape(t);
523
- }
524
- const glueMode = optimisation === "commonFace" ? 1 : optimisation === "sameFace" ? 2 : 0;
525
- const result = batch.cutAll(shape, glueMode, simplify2);
526
- batch.delete();
527
- return result;
528
- }
529
511
  function cutAll(oc, shape, tools, options = {}) {
530
512
  if (tools.length === 0) return shape;
531
- if (oc.BooleanBatch) {
532
- return cutAllBatch(oc, shape, tools, options);
533
- }
534
513
  const toolCompound = buildCompound(oc, tools);
535
514
  const result = cut(oc, shape, toolCompound, options);
536
515
  toolCompound.delete();
@@ -782,8 +761,9 @@ function meshEdgesJS(oc, shape, tolerance, angularTolerance) {
782
761
  const lineStart = lines.length / 3;
783
762
  let prevX = 0, prevY = 0, prevZ = 0;
784
763
  let hasPrev = false;
764
+ const trsf = edgeLoc.Transformation();
785
765
  for (let i = edgeNodes.Lower(); i <= edgeNodes.Upper(); i++) {
786
- const p = triObj.Node(edgeNodes.Value(i)).Transformed(edgeLoc.Transformation());
766
+ const p = triObj.Node(edgeNodes.Value(i)).Transformed(trsf);
787
767
  const x = p.X(), y = p.Y(), z = p.Z();
788
768
  if (hasPrev) {
789
769
  lines.push(prevX, prevY, prevZ, x, y, z);
@@ -794,6 +774,7 @@ function meshEdgesJS(oc, shape, tolerance, angularTolerance) {
794
774
  hasPrev = true;
795
775
  p.delete();
796
776
  }
777
+ trsf.delete();
797
778
  edgeGroups.push({
798
779
  start: lineStart,
799
780
  count: lines.length / 3 - lineStart,
@@ -3187,6 +3168,11 @@ function fillSurface(oc, wires, options = {}) {
3187
3168
  progress.delete();
3188
3169
  return shape;
3189
3170
  }
3171
+ const EMPTY_EVOLUTION = {
3172
+ modified: /* @__PURE__ */ new Map(),
3173
+ generated: /* @__PURE__ */ new Map(),
3174
+ deleted: /* @__PURE__ */ new Set()
3175
+ };
3190
3176
  function iterListHashes(oc, list, hashUpperBound) {
3191
3177
  const result = [];
3192
3178
  if (list.Size() === 0) return result;
@@ -3208,6 +3194,9 @@ function iterListHashes(oc, list, hashUpperBound) {
3208
3194
  return result;
3209
3195
  }
3210
3196
  function buildEvolution(oc, op, shapes, inputFaceHashes, hashUpperBound) {
3197
+ if (inputFaceHashes.length === 0) {
3198
+ return EMPTY_EVOLUTION;
3199
+ }
3211
3200
  const modified = /* @__PURE__ */ new Map();
3212
3201
  const generated = /* @__PURE__ */ new Map();
3213
3202
  const deleted = /* @__PURE__ */ new Set();
@@ -3249,7 +3238,7 @@ function buildEvolution(oc, op, shapes, inputFaceHashes, hashUpperBound) {
3249
3238
  function transformWithEvolution(oc, shape, trsf, inputFaceHashes, hashUpperBound) {
3250
3239
  const transformer = new oc.BRepBuilderAPI_Transform_2(shape, trsf, true);
3251
3240
  const resultShape = transformer.Shape();
3252
- const evolution = buildEvolution(oc, transformer, shape, inputFaceHashes, hashUpperBound);
3241
+ const evolution = inputFaceHashes.length === 0 ? EMPTY_EVOLUTION : buildEvolution(oc, transformer, shape, inputFaceHashes, hashUpperBound);
3253
3242
  transformer.delete();
3254
3243
  return { shape: resultShape, evolution };
3255
3244
  }
@@ -4024,8 +4013,8 @@ function generalTransformWithHistory(oc, shape, linear, translation, _isOrthogon
4024
4013
  function fuseWithHistory(oc, shape, tool, inputFaceHashes, hashUpperBound, options = {}) {
4025
4014
  const progress = new oc.Message_ProgressRange_1();
4026
4015
  const fuseOp = new oc.BRepAlgoAPI_Fuse_3(shape, tool, progress);
4027
- applyGlue(oc, fuseOp, options.optimisation ?? "none");
4028
- fuseOp.SetRunParallel(true);
4016
+ applyGlue(oc, fuseOp, options.optimisation);
4017
+ applyBooleanDefaults(fuseOp, options.fuzzyValue);
4029
4018
  fuseOp.Build(progress);
4030
4019
  const result = booleanWithEvolution(
4031
4020
  oc,
@@ -4042,8 +4031,8 @@ function fuseWithHistory(oc, shape, tool, inputFaceHashes, hashUpperBound, optio
4042
4031
  function cutWithHistory(oc, shape, tool, inputFaceHashes, hashUpperBound, options = {}) {
4043
4032
  const progress = new oc.Message_ProgressRange_1();
4044
4033
  const cutOp = new oc.BRepAlgoAPI_Cut_3(shape, tool, progress);
4045
- applyGlue(oc, cutOp, options.optimisation ?? "none");
4046
- cutOp.SetRunParallel(true);
4034
+ applyGlue(oc, cutOp, options.optimisation);
4035
+ applyBooleanDefaults(cutOp, options.fuzzyValue);
4047
4036
  cutOp.Build(progress);
4048
4037
  const result = booleanWithEvolution(
4049
4038
  oc,
@@ -4060,8 +4049,8 @@ function cutWithHistory(oc, shape, tool, inputFaceHashes, hashUpperBound, option
4060
4049
  function intersectWithHistory(oc, shape, tool, inputFaceHashes, hashUpperBound, options = {}) {
4061
4050
  const progress = new oc.Message_ProgressRange_1();
4062
4051
  const intOp = new oc.BRepAlgoAPI_Common_3(shape, tool, progress);
4063
- applyGlue(oc, intOp, options.optimisation ?? "none");
4064
- intOp.SetRunParallel(true);
4052
+ applyGlue(oc, intOp, options.optimisation);
4053
+ applyBooleanDefaults(intOp, options.fuzzyValue);
4065
4054
  intOp.Build(progress);
4066
4055
  const result = booleanWithEvolution(
4067
4056
  oc,
@@ -5024,11 +5013,14 @@ class DefaultAdapter {
5024
5013
  }
5025
5014
  const _kernels = /* @__PURE__ */ new Map();
5026
5015
  let _defaultKernelId = null;
5016
+ let _cachedDefault = null;
5027
5017
  function registerKernel(id, adapter) {
5028
5018
  _kernels.set(id, adapter);
5029
5019
  if (!_defaultKernelId) _defaultKernelId = id;
5020
+ if (id === _defaultKernelId) _cachedDefault = adapter;
5030
5021
  }
5031
5022
  function getKernel(id) {
5023
+ if (!id && _cachedDefault) return _cachedDefault;
5032
5024
  const targetId = id ?? _defaultKernelId;
5033
5025
  if (!targetId) {
5034
5026
  throw new Error(
@@ -5050,17 +5042,21 @@ function getKernel2D(id) {
5050
5042
  }
5051
5043
  function withKernel(id, fn) {
5052
5044
  const prev = _defaultKernelId;
5045
+ const prevCached = _cachedDefault;
5053
5046
  _defaultKernelId = id;
5047
+ _cachedDefault = _kernels.get(id) ?? null;
5054
5048
  try {
5055
5049
  return fn();
5056
5050
  } finally {
5057
5051
  _defaultKernelId = prev;
5052
+ _cachedDefault = prevCached;
5058
5053
  }
5059
5054
  }
5060
5055
  function initFromOC(oc) {
5061
5056
  const adapter = new DefaultAdapter(oc);
5062
5057
  registerKernel("occt", adapter);
5063
5058
  _defaultKernelId = "occt";
5059
+ _cachedDefault = adapter;
5064
5060
  }
5065
5061
  const S = Symbol;
5066
5062
  S.dispose ??= /* @__PURE__ */ Symbol.for("Symbol.dispose");
@@ -5266,12 +5262,10 @@ function isShape1D(s) {
5266
5262
  const kind = getShapeKind(s);
5267
5263
  return kind === "edge" || kind === "wire";
5268
5264
  }
5269
- function downcastShape(shape) {
5270
- return getKernel().downcast(shape);
5271
- }
5272
5265
  function castShape(ocShape) {
5273
- const st = getKernel().shapeType(ocShape);
5274
- const dc = downcastShape(ocShape);
5266
+ const kernel = getKernel();
5267
+ const st = kernel.shapeType(ocShape);
5268
+ const dc = kernel.downcast(ocShape, st);
5275
5269
  if (st === "vertex") return createVertex(dc);
5276
5270
  if (st === "edge") return createEdge(dc);
5277
5271
  if (st === "wire") return createWire(dc);
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const drawFns = require("./drawFns-BMN2P_95.cjs");
4
- const boolean2D = require("./boolean2D-DEQvy9jN.cjs");
3
+ const drawFns = require("./drawFns-Dcy-HIjE.cjs");
4
+ const boolean2D = require("./boolean2D-B1uobQA4.cjs");
5
5
  exports.CompoundSketch = drawFns.CompoundSketch;
6
6
  exports.Drawing = drawFns.Drawing;
7
7
  exports.DrawingPen = drawFns.DrawingPen;
package/dist/sketching.js CHANGED
@@ -1,5 +1,5 @@
1
- import { C, D, a, S, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W } from "./drawFns-DR-Pn6Ox.js";
2
- import { B as B2, a as a2, F as F2, S as S2 } from "./boolean2D-S1fQJkDs.js";
1
+ import { C, D, a, S, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, T, U, V, W } from "./drawFns-CJShPJQl.js";
2
+ import { B as B2, a as a2, F as F2, S as S2 } from "./boolean2D-LUH72saA.js";
3
3
  export {
4
4
  B2 as BaseSketcher2d,
5
5
  a2 as BlueprintSketcher,
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- const shapeTypes = require("./shapeTypes-DIwQBQKB.cjs");
2
+ const shapeTypes = require("./shapeTypes-BN_jZhmp.cjs");
3
3
  const errors = require("./errors-HU7EpHt3.cjs");
4
- const faceFns = require("./faceFns-Cqgs0uTB.cjs");
4
+ const faceFns = require("./faceFns-CPfQsXwJ.cjs");
5
5
  function range(len) {
6
6
  return Array.from(Array(len).keys());
7
7
  }
@@ -1,6 +1,6 @@
1
- import { r as createWire, q as getKernel, s as createEdge, t as createFace, e as isFace } from "./shapeTypes-D5th-THo.js";
1
+ import { r as createWire, q as getKernel, s as createEdge, t as createFace, e as isFace } from "./shapeTypes-TnFxk2_h.js";
2
2
  import { o as ok, e as err, k as kernelError, x as validationError, a as andThen } from "./errors-C_XjfNt5.js";
3
- import { o as outerWire, c as cast } from "./faceFns-CScUN5LN.js";
3
+ import { o as outerWire, c as cast } from "./faceFns-D309c5WF.js";
4
4
  function range(len) {
5
5
  return Array.from(Array(len).keys());
6
6
  }
@@ -1,17 +1,8 @@
1
1
  import { AnyShape, Face, Shape3D } from '../core/shapeTypes.js';
2
2
  import { Result } from '../core/result.js';
3
3
  import { PlaneInput } from '../core/planeTypes.js';
4
- /** Options shared by all boolean and compound operations. */
5
- export interface BooleanOptions {
6
- /** Glue algorithm hint for faces shared between operands. */
7
- optimisation?: 'none' | 'commonFace' | 'sameFace';
8
- /** Merge same-domain faces/edges after the boolean. */
9
- simplify?: boolean;
10
- /** Algorithm selection: 'native' uses N-way BRepAlgoAPI_BuilderAlgo; 'pairwise' uses recursive divide-and-conquer. */
11
- strategy?: 'native' | 'pairwise';
12
- /** Abort signal to cancel long-running operations between steps. */
13
- signal?: AbortSignal;
14
- }
4
+ import { BooleanOptions } from '../kernel/types.js';
5
+ export type { BooleanOptions };
15
6
  /**
16
7
  * Fuse two 3D shapes together (boolean union). Returns a new shape.
17
8
  *
@@ -26,7 +17,7 @@ export interface BooleanOptions {
26
17
  * if (isOk(result)) console.log(describe(result.value));
27
18
  * ```
28
19
  */
29
- export declare function fuse(a: Shape3D, b: Shape3D, { optimisation, simplify, signal }?: BooleanOptions): Result<Shape3D>;
20
+ export declare function fuse(a: Shape3D, b: Shape3D, { optimisation, simplify, signal, fuzzyValue }?: BooleanOptions): Result<Shape3D>;
30
21
  /**
31
22
  * Cut a tool shape from a base shape (boolean subtraction). Returns a new shape.
32
23
  *
@@ -40,7 +31,7 @@ export declare function fuse(a: Shape3D, b: Shape3D, { optimisation, simplify, s
40
31
  * const result = cut(box, hole);
41
32
  * ```
42
33
  */
43
- export declare function cut(base: Shape3D, tool: Shape3D, { optimisation, simplify, signal }?: BooleanOptions): Result<Shape3D>;
34
+ export declare function cut(base: Shape3D, tool: Shape3D, { optimisation, simplify, signal, fuzzyValue }?: BooleanOptions): Result<Shape3D>;
44
35
  /**
45
36
  * Compute the intersection of two shapes (boolean common). Returns a new shape.
46
37
  *
@@ -49,7 +40,7 @@ export declare function cut(base: Shape3D, tool: Shape3D, { optimisation, simpli
49
40
  * @param options - Boolean operation options.
50
41
  * @returns Ok with the intersection, or Err if the result is not 3D.
51
42
  */
52
- export declare function intersect(a: Shape3D, b: Shape3D, { simplify, signal }?: BooleanOptions): Result<Shape3D>;
43
+ export declare function intersect(a: Shape3D, b: Shape3D, { simplify, signal, fuzzyValue }?: BooleanOptions): Result<Shape3D>;
53
44
  /**
54
45
  * Fuse all shapes in a single boolean operation.
55
46
  *
@@ -65,7 +56,7 @@ export declare function intersect(a: Shape3D, b: Shape3D, { simplify, signal }?:
65
56
  * const result = fuseAll([box1, box2, box3], { simplify: true });
66
57
  * ```
67
58
  */
68
- export declare function fuseAll(shapes: Shape3D[], { optimisation, simplify, strategy, signal }?: BooleanOptions): Result<Shape3D>;
59
+ export declare function fuseAll(shapes: Shape3D[], { optimisation, simplify, strategy, signal, fuzzyValue, }?: BooleanOptions): Result<Shape3D>;
69
60
  /**
70
61
  * Cut all tool shapes from a base shape in a single boolean operation.
71
62
  *
@@ -77,7 +68,7 @@ export declare function fuseAll(shapes: Shape3D[], { optimisation, simplify, str
77
68
  * @param options - Boolean operation options.
78
69
  * @returns Ok with the cut shape, or the base shape unchanged if tools is empty.
79
70
  */
80
- export declare function cutAll(base: Shape3D, tools: Shape3D[], { optimisation, simplify, signal }?: BooleanOptions): Result<Shape3D>;
71
+ export declare function cutAll(base: Shape3D, tools: Shape3D[], { optimisation, simplify, signal, fuzzyValue }?: BooleanOptions): Result<Shape3D>;
81
72
  /**
82
73
  * Section (cross-section) a shape with a plane, returning the intersection
83
74
  * edges and wires. Useful for slicing solids to get 2D cross-section profiles.
@@ -1 +1 @@
1
- {"version":3,"file":"booleanFns.d.ts","sourceRoot":"","sources":["../../src/topology/booleanFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAQ,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAiCxD,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAAC;IAClD,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sHAAsH;IACtH,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAiDD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAqBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAqBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GAChD,MAAM,CAAC,OAAO,CAAC,CAyBjB;AA4CD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EAAE,EACjB,EAAE,YAAqB,EAAE,QAAgB,EAAE,QAAmB,EAAE,MAAM,EAAE,GAAE,cAAmB,GAC5F,MAAM,CAAC,OAAO,CAAC,CAiCjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,GAAE,cAAmB,GACvE,MAAM,CAAC,OAAO,CAAC,CAmCjB;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,EAAE,aAAoB,EAAE,SAAe,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9F,MAAM,CAAC,QAAQ,CAAC,CAyBlB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,IAAI,CAAC,CAkGd;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAiC1E;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,QAAQ,EAAE,CAAC,CAQpB"}
1
+ {"version":3,"file":"booleanFns.d.ts","sourceRoot":"","sources":["../../src/topology/booleanFns.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAQ,MAAM,uBAAuB,CAAC;AAE3E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAGhE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAkCxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,cAAc,EAAE,CAAC;AAyD/B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,IAAI,CAClB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GACnF,MAAM,CAAC,OAAO,CAAC,CAqBjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,GAAG,CACjB,IAAI,EAAE,OAAO,EACb,IAAI,EAAE,OAAO,EACb,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GACnF,MAAM,CAAC,OAAO,CAAC,CAqBjB;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CACvB,CAAC,EAAE,OAAO,EACV,CAAC,EAAE,OAAO,EACV,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GAC5D,MAAM,CAAC,OAAO,CAAC,CAyBjB;AAiED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,OAAO,EAAE,EACjB,EACE,YAAqB,EACrB,QAAgB,EAChB,QAAmB,EACnB,MAAM,EACN,UAAU,GACX,GAAE,cAAmB,GACrB,MAAM,CAAC,OAAO,CAAC,CA0CjB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,OAAO,EAAE,EAChB,EAAE,YAAqB,EAAE,QAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,GAAE,cAAmB,GACnF,MAAM,CAAC,OAAO,CAAC,CAmCjB;AA2CD;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,EAAE,aAAoB,EAAE,SAAe,EAAE,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC9F,MAAM,CAAC,QAAQ,CAAC,CAyBlB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,IAAI,CAAC,CAkGd;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAiC1E;AAMD;;;GAGG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,UAAU,EAAE,EACpB,OAAO,GAAE;IAAE,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5D,MAAM,CAAC,QAAQ,EAAE,CAAC,CAQpB"}
@@ -7,11 +7,6 @@ export type TopoEntity = 'vertex' | 'edge' | 'wire' | 'face' | 'shell' | 'solid'
7
7
  export type GenericTopo = KernelShape;
8
8
  /** Convert a TopoEntity string to its kernel TopAbs_ShapeEnum value. */
9
9
  export declare const asTopo: (entity: TopoEntity) => KernelType;
10
- /**
11
- * Iterate over all sub-shapes of a given type within a shape.
12
- *
13
- * @remarks Uses the kernel adapter's iterShapes rather than direct TopExp_Explorer.
14
- */
15
10
  export declare const iterTopo: (shape: KernelShape, topo: TopoEntity) => IterableIterator<KernelShape>;
16
11
  /** Get the TopAbs_ShapeEnum type of an kernel shape, returning Err for null shapes. */
17
12
  export declare const shapeType: (shape: KernelShape) => Result<KernelType>;
@@ -1 +1 @@
1
- {"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../src/topology/cast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIhF,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAEzD,0FAA0F;AAC1F,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,eAAe,GACf,UAAU,GACV,OAAO,CAAC;AAEZ,+EAA+E;AAC/E,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAetC,wEAAwE;AACxE,eAAO,MAAM,MAAM,GAAI,QAAQ,UAAU,KAAG,UAE3C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,WAAW,EAClB,MAAM,UAAU,KACf,gBAAgB,CAAC,WAAW,CAmB9B,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,SAAS,GAAI,OAAO,WAAW,KAAG,MAAM,CAAC,UAAU,CAI/D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAKzD;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,OAAO,CAE3D;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,IAAI,CAErD;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,SAAS,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAEvD"}
1
+ {"version":3,"file":"cast.d.ts","sourceRoot":"","sources":["../../src/topology/cast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAIhF,OAAO,EAAE,KAAK,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAEzD,0FAA0F;AAC1F,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,eAAe,GACf,UAAU,GACV,OAAO,CAAC;AAEZ,+EAA+E;AAC/E,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC;AAetC,wEAAwE;AACxE,eAAO,MAAM,MAAM,GAAI,QAAQ,UAAU,KAAG,UAE3C,CAAC;AAoBF,eAAO,MAAM,QAAQ,GACnB,OAAO,WAAW,EAClB,MAAM,UAAU,KACf,gBAAgB,CAAC,WAAW,CAO9B,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,SAAS,GAAI,OAAO,WAAW,KAAG,MAAM,CAAC,UAAU,CAI/D,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAShE;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAKzD;AAED,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,OAAO,CAE3D;AAED,sDAAsD;AACtD,wBAAgB,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,IAAI,CAErD;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,SAAS,CAE/D;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAEvD"}
@@ -4,6 +4,8 @@ import { AnyShape, Face } from '../core/shapeTypes.js';
4
4
  export type Color = [number, number, number, number];
5
5
  /** Accepted color inputs: hex string, RGB tuple, or RGBA tuple. */
6
6
  export type ColorInput = string | [number, number, number] | [number, number, number, number];
7
+ /** O(1) check whether a shape has any color metadata (shape or face level). */
8
+ export declare function hasColorMetadata(shape: AnyShape): boolean;
7
9
  /**
8
10
  * Set a whole-shape color (stored externally via WeakMap).
9
11
  * Returns the same shape reference.
@@ -1 +1 @@
1
- {"version":3,"file":"colorFns.d.ts","sourceRoot":"","sources":["../../src/topology/colorFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAO5D,gCAAgC;AAChC,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAoD9F;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAG7E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAO5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAI3E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,MAAM,EAAE,QAAQ,GACf,IAAI,CA+BN"}
1
+ {"version":3,"file":"colorFns.d.ts","sourceRoot":"","sources":["../../src/topology/colorFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAO5D,gCAAgC;AAChC,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAErD,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAY9F,+EAA+E;AAC/E,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEzD;AA0CD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAG7E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,CAO5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,SAAS,CAI3E;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,MAAM,EAAE,QAAQ,GACf,IAAI,CA+BN"}
@@ -1,5 +1,7 @@
1
1
  import { ShapeEvolution } from '../kernel/types.js';
2
2
  import { AnyShape, Face } from '../core/shapeTypes.js';
3
+ /** O(1) check whether a shape has any face tags attached. */
4
+ export declare function hasFaceTags(shape: AnyShape): boolean;
3
5
  /**
4
6
  * Tag selected faces with a string name.
5
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"faceTagFns.d.ts","sourceRoot":"","sources":["../../src/topology/faceTagFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAoC5D;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,EAC5C,GAAG,EAAE,MAAM,GACV,QAAQ,CAYV;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAenE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAuBhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,QAAQ,CAIV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEhG;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,MAAM,EAAE,QAAQ,GACf,IAAI,CAmDN"}
1
+ {"version":3,"file":"faceTagFns.d.ts","sourceRoot":"","sources":["../../src/topology/faceTagFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAc5D,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEpD;AAwBD;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,EAC5C,GAAG,EAAE,MAAM,GACV,QAAQ,CAYV;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,CAenE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAuBhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,QAAQ,CAIV;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAEhG;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,SAAS,QAAQ,EAAE,EAC3B,MAAM,EAAE,QAAQ,GACf,IAAI,CAmDN"}
@@ -4,7 +4,7 @@ type KernelShape = any;
4
4
  * Build a parameter key for the inner cache map (excludes shape identity).
5
5
  * Shape identity is handled by the WeakMap outer layer.
6
6
  */
7
- export declare function buildMeshCacheKey(tolerance: number, angularTolerance: number, skipNormals: boolean): string;
7
+ export declare function buildMeshCacheKey(tolerance: number, angularTolerance: number, skipNormals: boolean, includeUVs?: boolean): string;
8
8
  /**
9
9
  * Build a parameter key for edge mesh cache lookup (excludes shape identity).
10
10
  * Shape identity is handled by the WeakMap outer layer.
@@ -1 +1 @@
1
- {"version":3,"file":"meshCache.d.ts","sourceRoot":"","sources":["../../src/topology/meshCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxD,KAAK,WAAW,GAAG,GAAG,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAEzF;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAItF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAOvF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAIzF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAO1F;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAMD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,oFAAoF;AACpF,wBAAgB,eAAe,IAAI,gBAAgB,CAgClD"}
1
+ {"version":3,"file":"meshCache.d.ts","sourceRoot":"","sources":["../../src/topology/meshCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxD,KAAK,WAAW,GAAG,GAAG,CAAC;AAEvB;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,OAAO,EACpB,UAAU,UAAQ,GACjB,MAAM,CAER;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAEzF;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAItF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAOvF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAIzF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAO1F;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAMD;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChE,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACjE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACnE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACpE,KAAK,IAAI,IAAI,CAAC;CACf;AAED,oFAAoF;AACpF,wBAAgB,eAAe,IAAI,gBAAgB,CAgClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"modifierFns.d.ts","sourceRoot":"","sources":["../../src/topology/modifierFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAiChE;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAqB7E;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACrF,MAAM,CAAC,OAAO,CAAC,CA8GjB;AAMD;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACvF,MAAM,CAAC,OAAO,CAAC,CAiGjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,SAAO,GACf,MAAM,CAAC,OAAO,CAAC,CAsCjB;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CA4B1F"}
1
+ {"version":3,"file":"modifierFns.d.ts","sourceRoot":"","sources":["../../src/topology/modifierFns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,KAAK,MAAM,EAAkB,MAAM,mBAAmB,CAAC;AAyChE;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAqB7E;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CACpB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACrF,MAAM,CAAC,OAAO,CAAC,CA8GjB;AAMD;;;;;;GAMG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,SAAS,EACtC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,GACvF,MAAM,CAAC,OAAO,CAAC,CAiGjB;AAMD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACnB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,EACjB,SAAS,SAAO,GACf,MAAM,CAAC,OAAO,CAAC,CAsCjB;AAMD;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CA4B1F"}
@@ -105,7 +105,7 @@ export interface Bounds3D {
105
105
  readonly zMin: number;
106
106
  readonly zMax: number;
107
107
  }
108
- /** Get the axis-aligned bounding box of a shape. */
108
+ /** Get the axis-aligned bounding box of a shape. Cached per shape. */
109
109
  export declare function getBounds(shape: AnyShape): Bounds3D;
110
110
  /** A summary of a shape's topology, geometry, and validity. */
111
111
  export interface ShapeDescription {
@@ -1 +1 @@
1
- {"version":3,"file":"shapeFns.d.ts","sourceRoot":"","sources":["../../src/topology/shapeFns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shapeFns.d.ts","sourceRoot":"","sources":["../../src/topology/shapeFns.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
- const shapeFns = require("./shapeFns-BvwnrLYU.cjs");
3
- require("./booleanFns-CKJpkL-W.cjs");
4
- const shapeTypes = require("./shapeTypes-DIwQBQKB.cjs");
5
- const faceFns = require("./faceFns-Cqgs0uTB.cjs");
2
+ const shapeFns = require("./shapeFns-DEMjdpl7.cjs");
3
+ require("./booleanFns-Bl2o8KOm.cjs");
4
+ const shapeTypes = require("./shapeTypes-BN_jZhmp.cjs");
5
+ const faceFns = require("./faceFns-CPfQsXwJ.cjs");
6
6
  const errors = require("./errors-HU7EpHt3.cjs");
7
- require("./curveFns-CJ_Rhqu7.cjs");
7
+ require("./curveFns-CjhxIaTL.cjs");
8
8
  const vecOps = require("./vecOps-CjRL1jau.cjs");
9
- require("./meshFns-CCrO47TM.cjs");
9
+ require("./meshFns-DI87__D1.cjs");
10
10
  function toBufferGeometryData(mesh) {
11
11
  return {
12
12
  position: mesh.vertices,
@@ -1,11 +1,11 @@
1
- import { c as getWires, a as getFaces } from "./shapeFns-BiMiqVm0.js";
2
- import "./booleanFns-Ct7VfmjG.js";
3
- import { q as getKernel, c as castShape, j as isShape3D, l as isSolid, e as isFace, n as isWire } from "./shapeTypes-D5th-THo.js";
4
- import { d as downcast } from "./faceFns-CScUN5LN.js";
1
+ import { c as getWires, a as getFaces } from "./shapeFns-BvyqHHY6.js";
2
+ import "./booleanFns-DU8S1pUR.js";
3
+ import { q as getKernel, c as castShape, j as isShape3D, l as isSolid, e as isFace, n as isWire } from "./shapeTypes-TnFxk2_h.js";
4
+ import { d as downcast } from "./faceFns-D309c5WF.js";
5
5
  import { e as err, x as validationError, k as kernelError, d as isErr, p as typeCastError, o as ok, u as unwrap, g as isOk, B as BrepErrorCode } from "./errors-C_XjfNt5.js";
6
- import "./curveFns-Vcss8w3g.js";
6
+ import "./curveFns-D1h3vwCh.js";
7
7
  import { H as HASH_CODE_MAX } from "./vecOps-ZDdZWbwT.js";
8
- import "./meshFns-B8LxlRhm.js";
8
+ import "./meshFns-CwCEIK-J.js";
9
9
  function toBufferGeometryData(mesh) {
10
10
  return {
11
11
  position: mesh.vertices,
package/dist/topology.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const shapeFns = require("./shapeFns-BvwnrLYU.cjs");
4
- const booleanFns = require("./booleanFns-CKJpkL-W.cjs");
5
- const topology = require("./topology-BndoQLIN.cjs");
6
- const curveFns = require("./curveFns-CJ_Rhqu7.cjs");
7
- const faceFns = require("./faceFns-Cqgs0uTB.cjs");
8
- const meshFns = require("./meshFns-CCrO47TM.cjs");
3
+ const shapeFns = require("./shapeFns-DEMjdpl7.cjs");
4
+ const booleanFns = require("./booleanFns-Bl2o8KOm.cjs");
5
+ const topology = require("./topology-D2rTk0_j.cjs");
6
+ const curveFns = require("./curveFns-CjhxIaTL.cjs");
7
+ const faceFns = require("./faceFns-CPfQsXwJ.cjs");
8
+ const meshFns = require("./meshFns-DI87__D1.cjs");
9
9
  exports.getBounds = shapeFns.getBounds;
10
10
  exports.getEdges = shapeFns.getEdges;
11
11
  exports.getFaces = shapeFns.getFaces;