brepjs 18.6.1 → 18.14.3

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 (652) hide show
  1. package/README.md +6 -0
  2. package/dist/{sketching/sketcher2d.d.ts → 2d/blueprints/baseSketcher2d.d.ts} +4 -91
  3. package/dist/2d/blueprints/blueprint.d.ts +0 -1
  4. package/dist/2d/blueprints/blueprintApproximations.d.ts +0 -1
  5. package/dist/2d/blueprints/blueprintCustomCorners.d.ts +0 -1
  6. package/dist/2d/blueprints/blueprintFns.d.ts +0 -1
  7. package/dist/2d/blueprints/blueprintOffset.d.ts +0 -1
  8. package/dist/2d/blueprints/blueprintSketcher.d.ts +29 -0
  9. package/dist/2d/blueprints/blueprints.d.ts +0 -1
  10. package/dist/2d/blueprints/boolean2D.d.ts +0 -1
  11. package/dist/2d/blueprints/booleanHelpers.d.ts +0 -1
  12. package/dist/2d/blueprints/booleanOperations.d.ts +0 -1
  13. package/dist/2d/blueprints/cannedBlueprints.d.ts +0 -1
  14. package/dist/2d/blueprints/compoundBlueprint.d.ts +0 -1
  15. package/dist/{sketching → 2d/blueprints}/ellipseUtils.d.ts +19 -2
  16. package/dist/{sketching/sketcherlib.d.ts → 2d/blueprints/genericSketcher.d.ts} +1 -20
  17. package/dist/2d/blueprints/index.d.ts +0 -1
  18. package/dist/2d/blueprints/intersectionSegments.d.ts +0 -1
  19. package/dist/2d/blueprints/lib.d.ts +0 -1
  20. package/dist/2d/blueprints/segmentAssembly.d.ts +0 -1
  21. package/dist/2d/blueprints/svg.d.ts +0 -1
  22. package/dist/2d/curve2dGeometryFns.d.ts +0 -1
  23. package/dist/2d/curves.d.ts +0 -1
  24. package/dist/2d/lib/approximations.d.ts +0 -1
  25. package/dist/2d/lib/boundingBox2d.d.ts +0 -1
  26. package/dist/2d/lib/curve2D.d.ts +0 -1
  27. package/dist/2d/lib/curve2dFns.d.ts +0 -1
  28. package/dist/2d/lib/customCorners.d.ts +0 -1
  29. package/dist/2d/lib/definitions.d.ts +0 -1
  30. package/dist/2d/lib/index.d.ts +0 -1
  31. package/dist/2d/lib/intersections.d.ts +0 -1
  32. package/dist/2d/lib/makeCurves.d.ts +0 -1
  33. package/dist/2d/lib/offset.d.ts +0 -1
  34. package/dist/2d/lib/precision.d.ts +0 -1
  35. package/dist/2d/lib/stitching.d.ts +0 -1
  36. package/dist/2d/lib/svgPath.d.ts +0 -1
  37. package/dist/2d/lib/utils.d.ts +0 -1
  38. package/dist/2d/lib/vectorOperations.d.ts +0 -1
  39. package/dist/2d.cjs +19 -18
  40. package/dist/2d.d.ts +0 -1
  41. package/dist/2d.js +6 -5
  42. package/dist/{blueprint-C5LxqHCa.cjs → blueprint-B8ogGJiQ.cjs} +6 -6
  43. package/dist/{blueprint-CBairprN.js → blueprint-Dv45Evnu.js} +6 -6
  44. package/dist/{blueprintFns-CwbDuLxf.cjs → blueprintFns-BK3FYYjO.cjs} +3 -3
  45. package/dist/{blueprintFns-D8ST0Cf4.js → blueprintFns-a9C2g8_E.js} +2 -2
  46. package/dist/{boolean2D-DxZ3Kwlq.cjs → blueprintSketcher-Bei866Bt.cjs} +53 -1373
  47. package/dist/{boolean2D-A5u9tJYl.js → blueprintSketcher-xDsl9GXO.js} +59 -1307
  48. package/dist/boolean2D-DGuiEJHA.cjs +902 -0
  49. package/dist/boolean2D-Z7P0c012.js +855 -0
  50. package/dist/{booleanFns-DjZF4MJ5.js → booleanFns-CRa80qMX.js} +5 -5
  51. package/dist/{booleanFns-DWQMtFDN.cjs → booleanFns-qmgMQyDl.cjs} +8 -8
  52. package/dist/brepjs.cjs +742 -92
  53. package/dist/brepjs.js +662 -22
  54. package/dist/cameraFns-1y1NyACI.cjs +315 -0
  55. package/dist/cameraFns-CUzI5RKS.js +274 -0
  56. package/dist/core/constants.d.ts +0 -1
  57. package/dist/core/curve2dHandle.d.ts +0 -1
  58. package/dist/core/dimensionTypes.d.ts +0 -1
  59. package/dist/core/disposal.d.ts +0 -1
  60. package/dist/core/errors.d.ts +0 -1
  61. package/dist/core/kernelBoundary.d.ts +0 -1
  62. package/dist/core/kernelCall.d.ts +0 -1
  63. package/dist/core/kernelErrorTranslation.d.ts +0 -1
  64. package/dist/core/planeOps.d.ts +0 -1
  65. package/dist/core/planeTypes.d.ts +0 -1
  66. package/dist/core/result.d.ts +0 -1
  67. package/dist/core/shapeTypeCache.d.ts +0 -1
  68. package/dist/core/shapeTypes.d.ts +0 -1
  69. package/dist/core/typeDiscriminants.d.ts +0 -1
  70. package/dist/core/types.d.ts +0 -1
  71. package/dist/core/validityTypes.d.ts +0 -1
  72. package/dist/core/vecOps.d.ts +0 -1
  73. package/dist/core.cjs +1 -1
  74. package/dist/core.d.ts +0 -1
  75. package/dist/core.js +1 -1
  76. package/dist/{cornerFinder-B2CpcVV9.cjs → cornerFinder-CC8EBRCR.cjs} +2 -2
  77. package/dist/{cornerFinder-DGvOt2ab.js → cornerFinder-Dix2ghke.js} +2 -2
  78. package/dist/{curveFns-DZYE3BGO.js → curveFns-B4tWuinR.js} +1 -1
  79. package/dist/{curveFns-B8KJKr8-.cjs → curveFns-CD20-4fM.cjs} +1 -1
  80. package/dist/{drawFns-Bl865kUL.js → drawFns-BsarLfUN.js} +155 -762
  81. package/dist/{drawFns-h8gJBx-H.cjs → drawFns-LlOZoFyp.cjs} +193 -976
  82. package/dist/{extrudeFns-O2s-SFf-.js → extrudeFns-7pE8dIWz.js} +1 -1
  83. package/dist/{extrudeFns-BlJKAnW8.cjs → extrudeFns-DD36mWKv.cjs} +1 -1
  84. package/dist/faceFns-BFWz17_E.js +218 -0
  85. package/dist/faceFns-DP7i60yJ.cjs +343 -0
  86. package/dist/gear/gearFns.d.ts +129 -0
  87. package/dist/gear/gearMath.d.ts +88 -0
  88. package/dist/gear/gearProfile.d.ts +16 -0
  89. package/dist/gear/index.d.ts +3 -0
  90. package/dist/{helpers-C3smxDtp.cjs → helpers-Cyj6gaqy.cjs} +11 -10
  91. package/dist/{helpers-DL1f3xp0.js → helpers-vV2ONZwD.js} +6 -5
  92. package/dist/{historyFns-CD9qXw5j.js → historyFns-DGb61ETW.js} +4 -4
  93. package/dist/{historyFns-DBdWeo7Y.cjs → historyFns-DfyrPjnK.cjs} +4 -4
  94. package/dist/{importFns-5tcN3-fK.cjs → importFns-C-p0vl_h.cjs} +3 -3
  95. package/dist/{importFns-B1p3FiGS.js → importFns-Ci-L2iB3.js} +3 -3
  96. package/dist/index.d.ts +16 -8
  97. package/dist/io/dxfExportFns.d.ts +0 -1
  98. package/dist/io/dxfImportFns.d.ts +0 -1
  99. package/dist/io/gltfExportFns.d.ts +0 -1
  100. package/dist/io/gltfImportFns.d.ts +0 -1
  101. package/dist/io/importFns.d.ts +0 -1
  102. package/dist/io/ioUtils.d.ts +0 -1
  103. package/dist/io/objExportFns.d.ts +0 -1
  104. package/dist/io/objImportFns.d.ts +0 -1
  105. package/dist/io/stepConfigFns.d.ts +0 -1
  106. package/dist/io/svgImportFns.d.ts +0 -1
  107. package/dist/io/threemfExportFns.d.ts +0 -1
  108. package/dist/io/threemfImportFns.d.ts +0 -1
  109. package/dist/io.cjs +2 -2
  110. package/dist/io.d.ts +0 -1
  111. package/dist/io.js +2 -2
  112. package/dist/kernel/brepkit/booleanOps.d.ts +23 -1
  113. package/dist/kernel/brepkit/brepkitAdapter.d.ts +21 -408
  114. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts +0 -1
  115. package/dist/kernel/brepkit/constructionOps.d.ts +51 -1
  116. package/dist/kernel/brepkit/evolutionOps.d.ts +34 -3
  117. package/dist/kernel/brepkit/geometryOps.d.ts +63 -2
  118. package/dist/kernel/brepkit/helpers.d.ts +6 -1
  119. package/dist/kernel/brepkit/internalOps.d.ts +0 -1
  120. package/dist/kernel/brepkit/ioOps.d.ts +47 -9
  121. package/dist/kernel/brepkit/kernel2dOps.d.ts +113 -1
  122. package/dist/kernel/brepkit/measureOps.d.ts +39 -1
  123. package/dist/kernel/brepkit/meshOps.d.ts +7 -1
  124. package/dist/kernel/brepkit/modifierOps.d.ts +15 -1
  125. package/dist/kernel/brepkit/repairOps.d.ts +14 -1
  126. package/dist/kernel/brepkit/sketchOps.d.ts +3 -1
  127. package/dist/kernel/brepkit/sweepOps.d.ts +37 -1
  128. package/dist/kernel/brepkit/topologyOps.d.ts +16 -1
  129. package/dist/kernel/brepkit/transformOps.d.ts +18 -1
  130. package/dist/kernel/geometry2d.d.ts +0 -1
  131. package/dist/kernel/index.d.ts +0 -1
  132. package/dist/kernel/interfaces/booleanOps.d.ts +0 -1
  133. package/dist/kernel/interfaces/builderOps.d.ts +0 -1
  134. package/dist/kernel/interfaces/core.d.ts +0 -1
  135. package/dist/kernel/interfaces/curveOps.d.ts +0 -1
  136. package/dist/kernel/interfaces/evolutionOps.d.ts +0 -1
  137. package/dist/kernel/interfaces/index.d.ts +0 -1
  138. package/dist/kernel/interfaces/ioOps.d.ts +0 -1
  139. package/dist/kernel/interfaces/measureOps.d.ts +0 -1
  140. package/dist/kernel/interfaces/meshOps.d.ts +0 -1
  141. package/dist/kernel/interfaces/modifierOps.d.ts +0 -1
  142. package/dist/kernel/interfaces/primitiveOps.d.ts +0 -1
  143. package/dist/kernel/interfaces/repairOps.d.ts +0 -1
  144. package/dist/kernel/interfaces/surfaceOps.d.ts +0 -1
  145. package/dist/kernel/interfaces/sweepOps.d.ts +0 -1
  146. package/dist/kernel/interfaces/topologyOps.d.ts +0 -1
  147. package/dist/kernel/interfaces/transformOps.d.ts +0 -1
  148. package/dist/kernel/kernel2dTypes.d.ts +0 -1
  149. package/dist/kernel/occt/advancedOps.d.ts +126 -24
  150. package/dist/kernel/occt/booleanBatchOps.d.ts +0 -1
  151. package/dist/kernel/occt/booleanOps.d.ts +11 -1
  152. package/dist/kernel/occt/booleanPipelineOps.d.ts +10 -1
  153. package/dist/kernel/occt/constructorOps.d.ts +14 -1
  154. package/dist/kernel/occt/curveOps.d.ts +13 -1
  155. package/dist/kernel/occt/defaultAdapter.d.ts +10 -441
  156. package/dist/kernel/occt/evolutionOps.d.ts +0 -1
  157. package/dist/kernel/occt/extendedConstructorOps.d.ts +31 -1
  158. package/dist/kernel/occt/geometryQueryOps.d.ts +40 -1
  159. package/dist/kernel/occt/healingOps.d.ts +6 -1
  160. package/dist/kernel/occt/historyOps.d.ts +17 -1
  161. package/dist/kernel/occt/hullOps.d.ts +14 -1
  162. package/dist/kernel/occt/ioOps.d.ts +9 -1
  163. package/dist/kernel/occt/kernel2dOps.d.ts +113 -1
  164. package/dist/kernel/occt/measureOps.d.ts +19 -1
  165. package/dist/kernel/occt/meshOps.d.ts +5 -1
  166. package/dist/kernel/occt/modifierOps.d.ts +24 -1
  167. package/dist/kernel/occt/nurbsQueryOps.d.ts +5 -1
  168. package/dist/kernel/occt/sweepOps.d.ts +23 -1
  169. package/dist/kernel/occt/topologyOps.d.ts +10 -1
  170. package/dist/kernel/occt/transformOps.d.ts +14 -4
  171. package/dist/kernel/occt/wasmTypes/externals.d.ts +0 -1
  172. package/dist/kernel/occt/wasmTypes/index.d.ts +0 -1
  173. package/dist/kernel/occt/wasmTypes/occtBuilders.d.ts +0 -1
  174. package/dist/kernel/occtWasm/adapterShims.d.ts +0 -1
  175. package/dist/kernel/occtWasm/booleanOps.d.ts +0 -1
  176. package/dist/kernel/occtWasm/constructionOps.d.ts +0 -1
  177. package/dist/kernel/occtWasm/curveOps.d.ts +0 -1
  178. package/dist/kernel/occtWasm/evolutionOps.d.ts +0 -1
  179. package/dist/kernel/occtWasm/helpers.d.ts +0 -1
  180. package/dist/kernel/occtWasm/hullOps.d.ts +0 -1
  181. package/dist/kernel/occtWasm/ioOps.d.ts +0 -1
  182. package/dist/kernel/occtWasm/kernel2dOps.d.ts +0 -1
  183. package/dist/kernel/occtWasm/measureOps.d.ts +0 -1
  184. package/dist/kernel/occtWasm/meshOps.d.ts +0 -1
  185. package/dist/kernel/occtWasm/modifierOps.d.ts +0 -1
  186. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts +0 -1
  187. package/dist/kernel/occtWasm/occtWasmTypes.d.ts +0 -1
  188. package/dist/kernel/occtWasm/primitiveOps.d.ts +0 -1
  189. package/dist/kernel/occtWasm/repairOps.d.ts +0 -1
  190. package/dist/kernel/occtWasm/surfaceOps.d.ts +0 -1
  191. package/dist/kernel/occtWasm/sweepOps.d.ts +0 -1
  192. package/dist/kernel/occtWasm/topologyOps.d.ts +0 -1
  193. package/dist/kernel/occtWasm/transformOps.d.ts +0 -1
  194. package/dist/kernel/perfStats.d.ts +0 -1
  195. package/dist/kernel/solverAdapter.d.ts +0 -1
  196. package/dist/kernel/types.d.ts +0 -1
  197. package/dist/{measureFns-CHmy_Inq.cjs → measureFns-6ifSQfJt.cjs} +5 -4
  198. package/dist/{measureFns-CJi8erDL.js → measureFns-Io2nHE1k.js} +3 -2
  199. package/dist/measurement/interferenceFns.d.ts +0 -1
  200. package/dist/measurement/measureCache.d.ts +0 -1
  201. package/dist/measurement/measureFns.d.ts +0 -1
  202. package/dist/measurement/measureTypes.d.ts +0 -1
  203. package/dist/measurement.cjs +1 -1
  204. package/dist/measurement.d.ts +0 -1
  205. package/dist/measurement.js +1 -1
  206. package/dist/{meshFns-t2lR4BDS.cjs → meshFns-BCRVZgPi.cjs} +2 -2
  207. package/dist/{meshFns-BkY1RAoC.js → meshFns-DSdkRFWq.js} +2 -2
  208. package/dist/ns/booleans.d.ts +0 -1
  209. package/dist/ns/construction.d.ts +0 -1
  210. package/dist/ns/ioNs.d.ts +0 -1
  211. package/dist/ns/measurement.d.ts +0 -1
  212. package/dist/ns/modifiers.d.ts +0 -1
  213. package/dist/ns/patterns.d.ts +0 -1
  214. package/dist/ns/primitives.d.ts +0 -1
  215. package/dist/ns/query.d.ts +0 -1
  216. package/dist/ns/transforms.d.ts +0 -1
  217. package/dist/operations/api.d.ts +0 -1
  218. package/dist/operations/assemblyFns.d.ts +0 -1
  219. package/dist/operations/compoundOpsFns.d.ts +0 -1
  220. package/dist/operations/convexHullFns.d.ts +0 -1
  221. package/dist/operations/exporterFns.d.ts +0 -1
  222. package/dist/operations/exporterUtils.d.ts +0 -1
  223. package/dist/operations/exporters.d.ts +0 -1
  224. package/dist/operations/extrudeFns.d.ts +0 -1
  225. package/dist/operations/extrudeUtils.d.ts +0 -1
  226. package/dist/operations/guidedSweepFns.d.ts +0 -1
  227. package/dist/operations/historyFns.d.ts +0 -1
  228. package/dist/operations/loftFns.d.ts +0 -1
  229. package/dist/operations/mateFns.d.ts +0 -1
  230. package/dist/operations/multiSweepFns.d.ts +0 -1
  231. package/dist/operations/patternFns.d.ts +0 -1
  232. package/dist/operations/roofFns.d.ts +0 -1
  233. package/dist/operations/straightSkeleton.d.ts +0 -1
  234. package/dist/operations/sweepFns.d.ts +0 -1
  235. package/dist/operations.cjs +2 -2
  236. package/dist/operations.d.ts +0 -1
  237. package/dist/operations.js +2 -2
  238. package/dist/{primitiveFns-DwhN--zB.cjs → primitiveFns-BH-JQPzh.cjs} +18 -17
  239. package/dist/{primitiveFns-Emvge_71.js → primitiveFns-C1p92ZcD.js} +6 -5
  240. package/dist/projection/cameraFns.d.ts +0 -1
  241. package/dist/projection/makeProjectedEdges.d.ts +0 -1
  242. package/dist/projection/projectionPlanes.d.ts +0 -1
  243. package/dist/projection.cjs +9 -0
  244. package/dist/projection.d.ts +11 -0
  245. package/dist/projection.js +2 -0
  246. package/dist/query/cornerFinder.d.ts +0 -1
  247. package/dist/query/directionUtils.d.ts +0 -1
  248. package/dist/query/edgeFinder.d.ts +0 -1
  249. package/dist/query/faceFinder.d.ts +0 -1
  250. package/dist/query/finderCore.d.ts +0 -1
  251. package/dist/query/finderFns.d.ts +0 -1
  252. package/dist/query/helpers.d.ts +0 -1
  253. package/dist/query/shapeDistanceFilter.d.ts +0 -1
  254. package/dist/query/shapeFinders.d.ts +0 -1
  255. package/dist/query/vertexFinder.d.ts +0 -1
  256. package/dist/query/wireFinder.d.ts +0 -1
  257. package/dist/query.cjs +2 -2
  258. package/dist/query.d.ts +0 -1
  259. package/dist/query.js +2 -2
  260. package/dist/result.d.ts +0 -1
  261. package/dist/{shapeFns-CObBAJoQ.cjs → shapeFns-B7x82K11.cjs} +15 -15
  262. package/dist/{shapeFns-DThjHtJI.js → shapeFns-BhZ9weSI.js} +2 -2
  263. package/dist/shapeRef.cjs +1 -1
  264. package/dist/shapeRef.d.ts +0 -1
  265. package/dist/shapeRef.js +1 -1
  266. package/dist/{shapeRefFns-WMhIFuGW.js → shapeRefFns-B9PsEqWf.js} +4 -3
  267. package/dist/{shapeRefFns-I0MHjRAq.cjs → shapeRefFns-wDY88A8u.cjs} +6 -5
  268. package/dist/{shapeTypes-8vB31RfA.cjs → shapeTypes-BTt_LLbk.cjs} +6928 -7750
  269. package/dist/{shapeTypes-AyL8vv_O.js → shapeTypes-C--1jaT1.js} +6618 -7440
  270. package/dist/sketching/cannedSketches.d.ts +0 -1
  271. package/dist/sketching/compoundSketch.d.ts +8 -7
  272. package/dist/sketching/draw3d.d.ts +1 -2
  273. package/dist/sketching/drawFns.d.ts +4 -3
  274. package/dist/sketching/{draw.d.ts → drawing.d.ts} +2 -127
  275. package/dist/sketching/drawingFactories.d.ts +94 -0
  276. package/dist/sketching/drawingPen.d.ts +34 -0
  277. package/dist/sketching/faceSketcher.d.ts +52 -0
  278. package/dist/sketching/shortcuts.d.ts +0 -1
  279. package/dist/sketching/sketch.d.ts +64 -10
  280. package/dist/sketching/sketchFns.d.ts +42 -95
  281. package/dist/sketching/sketcher.d.ts +2 -3
  282. package/dist/sketching/sketches.d.ts +5 -6
  283. package/dist/sketching.cjs +19 -18
  284. package/dist/sketching.d.ts +8 -5
  285. package/dist/sketching.js +3 -2
  286. package/dist/{solidBuilders-Djwgx2mj.cjs → solidBuilders-CX_197Xm.cjs} +2 -2
  287. package/dist/{solidBuilders-C7Xp_ikW.js → solidBuilders-Xs7VDMGD.js} +2 -2
  288. package/dist/{surfaceBuilders-BEnsewN9.cjs → surfaceBuilders-CYeTNW33.cjs} +24 -2
  289. package/dist/{surfaceBuilders-Con0IpLf.js → surfaceBuilders-CinmHCbZ.js} +19 -3
  290. package/dist/text/fontRegistry.d.ts +22 -0
  291. package/dist/text/sketchText.d.ts +30 -0
  292. package/dist/text/textBlueprints.d.ts +0 -91
  293. package/dist/text/textMetrics.d.ts +39 -0
  294. package/dist/text.cjs +9 -0
  295. package/dist/text.d.ts +12 -0
  296. package/dist/text.js +3 -0
  297. package/dist/textBlueprints-Do6xNsLt.js +643 -0
  298. package/dist/textBlueprints-oWhiABaY.cjs +800 -0
  299. package/dist/textMetrics-BjJ8sn_e.js +69 -0
  300. package/dist/textMetrics-CUvtglQE.cjs +86 -0
  301. package/dist/topology/adjacencyFns.d.ts +0 -1
  302. package/dist/topology/api.d.ts +0 -1
  303. package/dist/topology/apiTypes.d.ts +0 -1
  304. package/dist/topology/booleanDiagnosticFns.d.ts +0 -1
  305. package/dist/topology/booleanFns.d.ts +0 -1
  306. package/dist/topology/cast.d.ts +0 -1
  307. package/dist/topology/chamferAngleFns.d.ts +0 -1
  308. package/dist/topology/compoundOpsFns.d.ts +0 -1
  309. package/dist/topology/curveBuilders.d.ts +12 -1
  310. package/dist/topology/curveFns.d.ts +0 -1
  311. package/dist/topology/evolutionFns.d.ts +0 -1
  312. package/dist/topology/faceFns.d.ts +0 -1
  313. package/dist/topology/healingFns.d.ts +0 -1
  314. package/dist/topology/hullFns.d.ts +0 -1
  315. package/dist/topology/index.d.ts +0 -1
  316. package/dist/topology/meshCache.d.ts +0 -1
  317. package/dist/topology/meshFns.d.ts +0 -1
  318. package/dist/topology/metadata/colorFns.d.ts +0 -1
  319. package/dist/topology/metadata/faceTagFns.d.ts +0 -1
  320. package/dist/topology/metadata/metadataPropagation.d.ts +0 -1
  321. package/dist/topology/metadata/originTrackingFns.d.ts +0 -1
  322. package/dist/topology/minkowskiFns.d.ts +0 -1
  323. package/dist/topology/modifierFns.d.ts +0 -1
  324. package/dist/topology/nurbsFns.d.ts +0 -1
  325. package/dist/topology/polyhedronFns.d.ts +0 -1
  326. package/dist/topology/positionFns.d.ts +0 -1
  327. package/dist/topology/primitiveFns.d.ts +0 -1
  328. package/dist/topology/shapeBooleans.d.ts +0 -1
  329. package/dist/topology/shapeFns.d.ts +0 -1
  330. package/dist/topology/shapeHelpers.d.ts +0 -1
  331. package/dist/topology/shapeModifiers.d.ts +0 -1
  332. package/dist/topology/shapeRef/index.d.ts +0 -1
  333. package/dist/topology/shapeRef/scoring.d.ts +0 -1
  334. package/dist/topology/shapeRef/shapeRefFns.d.ts +0 -1
  335. package/dist/topology/shapeRef/shapeRefTypes.d.ts +0 -1
  336. package/dist/topology/shapeUtils.d.ts +0 -1
  337. package/dist/topology/solidBuilders.d.ts +0 -1
  338. package/dist/topology/surfaceBuilders.d.ts +0 -1
  339. package/dist/topology/surfaceFns.d.ts +0 -1
  340. package/dist/topology/threeHelpers.d.ts +0 -1
  341. package/dist/topology/topologyQueryFns.d.ts +0 -1
  342. package/dist/topology/transformFns.d.ts +0 -1
  343. package/dist/topology/wrapperFns.d.ts +0 -1
  344. package/dist/topology.cjs +18 -17
  345. package/dist/topology.d.ts +0 -1
  346. package/dist/topology.js +7 -6
  347. package/dist/{faceFns-B1H43mZ_.cjs → topologyQueryFns-BU0qdNJP.cjs} +1 -341
  348. package/dist/{faceFns-acz86gqR.js → topologyQueryFns-Dhf85ZBK.js} +3 -217
  349. package/dist/utils/arrayAccess.d.ts +0 -1
  350. package/dist/utils/bug.d.ts +0 -1
  351. package/dist/utils/ioFilename.d.ts +0 -1
  352. package/dist/utils/precisionRound.d.ts +0 -1
  353. package/dist/utils/range.d.ts +0 -1
  354. package/dist/utils/uuid.d.ts +0 -1
  355. package/dist/utils/vec2d.d.ts +0 -1
  356. package/dist/utils/vec3.d.ts +0 -1
  357. package/dist/utils/zip.d.ts +0 -1
  358. package/dist/vectors.d.ts +0 -1
  359. package/dist/worker/index.d.ts +0 -1
  360. package/dist/worker/protocol.d.ts +0 -1
  361. package/dist/worker/taskQueue.d.ts +0 -1
  362. package/dist/worker/workerClient.d.ts +0 -1
  363. package/dist/worker/workerHandler.d.ts +0 -1
  364. package/dist/worker.cjs +1 -1
  365. package/dist/worker.d.ts +0 -1
  366. package/dist/worker.js +1 -1
  367. package/package.json +35 -14
  368. package/dist/2d/blueprints/blueprint.d.ts.map +0 -1
  369. package/dist/2d/blueprints/blueprintApproximations.d.ts.map +0 -1
  370. package/dist/2d/blueprints/blueprintCustomCorners.d.ts.map +0 -1
  371. package/dist/2d/blueprints/blueprintFns.d.ts.map +0 -1
  372. package/dist/2d/blueprints/blueprintOffset.d.ts.map +0 -1
  373. package/dist/2d/blueprints/blueprints.d.ts.map +0 -1
  374. package/dist/2d/blueprints/boolean2D.d.ts.map +0 -1
  375. package/dist/2d/blueprints/booleanHelpers.d.ts.map +0 -1
  376. package/dist/2d/blueprints/booleanOperations.d.ts.map +0 -1
  377. package/dist/2d/blueprints/cannedBlueprints.d.ts.map +0 -1
  378. package/dist/2d/blueprints/compoundBlueprint.d.ts.map +0 -1
  379. package/dist/2d/blueprints/index.d.ts.map +0 -1
  380. package/dist/2d/blueprints/intersectionSegments.d.ts.map +0 -1
  381. package/dist/2d/blueprints/lib.d.ts.map +0 -1
  382. package/dist/2d/blueprints/segmentAssembly.d.ts.map +0 -1
  383. package/dist/2d/blueprints/svg.d.ts.map +0 -1
  384. package/dist/2d/curve2dGeometryFns.d.ts.map +0 -1
  385. package/dist/2d/curves.d.ts.map +0 -1
  386. package/dist/2d/lib/approximations.d.ts.map +0 -1
  387. package/dist/2d/lib/boundingBox2d.d.ts.map +0 -1
  388. package/dist/2d/lib/curve2D.d.ts.map +0 -1
  389. package/dist/2d/lib/curve2dFns.d.ts.map +0 -1
  390. package/dist/2d/lib/customCorners.d.ts.map +0 -1
  391. package/dist/2d/lib/definitions.d.ts.map +0 -1
  392. package/dist/2d/lib/index.d.ts.map +0 -1
  393. package/dist/2d/lib/intersections.d.ts.map +0 -1
  394. package/dist/2d/lib/makeCurves.d.ts.map +0 -1
  395. package/dist/2d/lib/offset.d.ts.map +0 -1
  396. package/dist/2d/lib/precision.d.ts.map +0 -1
  397. package/dist/2d/lib/stitching.d.ts.map +0 -1
  398. package/dist/2d/lib/svgPath.d.ts.map +0 -1
  399. package/dist/2d/lib/utils.d.ts.map +0 -1
  400. package/dist/2d/lib/vectorOperations.d.ts.map +0 -1
  401. package/dist/2d.d.ts.map +0 -1
  402. package/dist/core/constants.d.ts.map +0 -1
  403. package/dist/core/curve2dHandle.d.ts.map +0 -1
  404. package/dist/core/dimensionTypes.d.ts.map +0 -1
  405. package/dist/core/disposal.d.ts.map +0 -1
  406. package/dist/core/errors.d.ts.map +0 -1
  407. package/dist/core/kernelBoundary.d.ts.map +0 -1
  408. package/dist/core/kernelCall.d.ts.map +0 -1
  409. package/dist/core/kernelErrorTranslation.d.ts.map +0 -1
  410. package/dist/core/planeOps.d.ts.map +0 -1
  411. package/dist/core/planeTypes.d.ts.map +0 -1
  412. package/dist/core/result.d.ts.map +0 -1
  413. package/dist/core/shapeTypeCache.d.ts.map +0 -1
  414. package/dist/core/shapeTypes.d.ts.map +0 -1
  415. package/dist/core/typeDiscriminants.d.ts.map +0 -1
  416. package/dist/core/types.d.ts.map +0 -1
  417. package/dist/core/validityTypes.d.ts.map +0 -1
  418. package/dist/core/vecOps.d.ts.map +0 -1
  419. package/dist/core.d.ts.map +0 -1
  420. package/dist/index.d.ts.map +0 -1
  421. package/dist/io/dxfExportFns.d.ts.map +0 -1
  422. package/dist/io/dxfImportFns.d.ts.map +0 -1
  423. package/dist/io/gltfExportFns.d.ts.map +0 -1
  424. package/dist/io/gltfImportFns.d.ts.map +0 -1
  425. package/dist/io/importFns.d.ts.map +0 -1
  426. package/dist/io/ioUtils.d.ts.map +0 -1
  427. package/dist/io/objExportFns.d.ts.map +0 -1
  428. package/dist/io/objImportFns.d.ts.map +0 -1
  429. package/dist/io/stepConfigFns.d.ts.map +0 -1
  430. package/dist/io/svgImportFns.d.ts.map +0 -1
  431. package/dist/io/threemfExportFns.d.ts.map +0 -1
  432. package/dist/io/threemfImportFns.d.ts.map +0 -1
  433. package/dist/io.d.ts.map +0 -1
  434. package/dist/kernel/brepkit/booleanOps.d.ts.map +0 -1
  435. package/dist/kernel/brepkit/brepkitAdapter.d.ts.map +0 -1
  436. package/dist/kernel/brepkit/brepkitWasmTypes.d.ts.map +0 -1
  437. package/dist/kernel/brepkit/constructionOps.d.ts.map +0 -1
  438. package/dist/kernel/brepkit/evolutionOps.d.ts.map +0 -1
  439. package/dist/kernel/brepkit/geometryOps.d.ts.map +0 -1
  440. package/dist/kernel/brepkit/helpers.d.ts.map +0 -1
  441. package/dist/kernel/brepkit/internalOps.d.ts.map +0 -1
  442. package/dist/kernel/brepkit/ioOps.d.ts.map +0 -1
  443. package/dist/kernel/brepkit/kernel2dOps.d.ts.map +0 -1
  444. package/dist/kernel/brepkit/measureOps.d.ts.map +0 -1
  445. package/dist/kernel/brepkit/meshOps.d.ts.map +0 -1
  446. package/dist/kernel/brepkit/modifierOps.d.ts.map +0 -1
  447. package/dist/kernel/brepkit/repairOps.d.ts.map +0 -1
  448. package/dist/kernel/brepkit/sketchOps.d.ts.map +0 -1
  449. package/dist/kernel/brepkit/sweepOps.d.ts.map +0 -1
  450. package/dist/kernel/brepkit/topologyOps.d.ts.map +0 -1
  451. package/dist/kernel/brepkit/transformOps.d.ts.map +0 -1
  452. package/dist/kernel/geometry2d.d.ts.map +0 -1
  453. package/dist/kernel/index.d.ts.map +0 -1
  454. package/dist/kernel/interfaces/booleanOps.d.ts.map +0 -1
  455. package/dist/kernel/interfaces/builderOps.d.ts.map +0 -1
  456. package/dist/kernel/interfaces/core.d.ts.map +0 -1
  457. package/dist/kernel/interfaces/curveOps.d.ts.map +0 -1
  458. package/dist/kernel/interfaces/evolutionOps.d.ts.map +0 -1
  459. package/dist/kernel/interfaces/index.d.ts.map +0 -1
  460. package/dist/kernel/interfaces/ioOps.d.ts.map +0 -1
  461. package/dist/kernel/interfaces/measureOps.d.ts.map +0 -1
  462. package/dist/kernel/interfaces/meshOps.d.ts.map +0 -1
  463. package/dist/kernel/interfaces/modifierOps.d.ts.map +0 -1
  464. package/dist/kernel/interfaces/primitiveOps.d.ts.map +0 -1
  465. package/dist/kernel/interfaces/repairOps.d.ts.map +0 -1
  466. package/dist/kernel/interfaces/surfaceOps.d.ts.map +0 -1
  467. package/dist/kernel/interfaces/sweepOps.d.ts.map +0 -1
  468. package/dist/kernel/interfaces/topologyOps.d.ts.map +0 -1
  469. package/dist/kernel/interfaces/transformOps.d.ts.map +0 -1
  470. package/dist/kernel/kernel2dTypes.d.ts.map +0 -1
  471. package/dist/kernel/occt/advancedOps.d.ts.map +0 -1
  472. package/dist/kernel/occt/booleanBatchOps.d.ts.map +0 -1
  473. package/dist/kernel/occt/booleanOps.d.ts.map +0 -1
  474. package/dist/kernel/occt/booleanPipelineOps.d.ts.map +0 -1
  475. package/dist/kernel/occt/constructorOps.d.ts.map +0 -1
  476. package/dist/kernel/occt/curveOps.d.ts.map +0 -1
  477. package/dist/kernel/occt/defaultAdapter.d.ts.map +0 -1
  478. package/dist/kernel/occt/evolutionOps.d.ts.map +0 -1
  479. package/dist/kernel/occt/extendedConstructorOps.d.ts.map +0 -1
  480. package/dist/kernel/occt/geometryQueryOps.d.ts.map +0 -1
  481. package/dist/kernel/occt/healingOps.d.ts.map +0 -1
  482. package/dist/kernel/occt/historyOps.d.ts.map +0 -1
  483. package/dist/kernel/occt/hullOps.d.ts.map +0 -1
  484. package/dist/kernel/occt/ioOps.d.ts.map +0 -1
  485. package/dist/kernel/occt/kernel2dOps.d.ts.map +0 -1
  486. package/dist/kernel/occt/measureOps.d.ts.map +0 -1
  487. package/dist/kernel/occt/meshOps.d.ts.map +0 -1
  488. package/dist/kernel/occt/modifierOps.d.ts.map +0 -1
  489. package/dist/kernel/occt/nurbsQueryOps.d.ts.map +0 -1
  490. package/dist/kernel/occt/sweepOps.d.ts.map +0 -1
  491. package/dist/kernel/occt/topologyOps.d.ts.map +0 -1
  492. package/dist/kernel/occt/transformOps.d.ts.map +0 -1
  493. package/dist/kernel/occt/wasmTypes/externals.d.ts.map +0 -1
  494. package/dist/kernel/occt/wasmTypes/index.d.ts.map +0 -1
  495. package/dist/kernel/occt/wasmTypes/occtBuilders.d.ts.map +0 -1
  496. package/dist/kernel/occtWasm/adapterShims.d.ts.map +0 -1
  497. package/dist/kernel/occtWasm/booleanOps.d.ts.map +0 -1
  498. package/dist/kernel/occtWasm/constructionOps.d.ts.map +0 -1
  499. package/dist/kernel/occtWasm/curveOps.d.ts.map +0 -1
  500. package/dist/kernel/occtWasm/evolutionOps.d.ts.map +0 -1
  501. package/dist/kernel/occtWasm/helpers.d.ts.map +0 -1
  502. package/dist/kernel/occtWasm/hullOps.d.ts.map +0 -1
  503. package/dist/kernel/occtWasm/ioOps.d.ts.map +0 -1
  504. package/dist/kernel/occtWasm/kernel2dOps.d.ts.map +0 -1
  505. package/dist/kernel/occtWasm/measureOps.d.ts.map +0 -1
  506. package/dist/kernel/occtWasm/meshOps.d.ts.map +0 -1
  507. package/dist/kernel/occtWasm/modifierOps.d.ts.map +0 -1
  508. package/dist/kernel/occtWasm/occtWasmAdapter.d.ts.map +0 -1
  509. package/dist/kernel/occtWasm/occtWasmTypes.d.ts.map +0 -1
  510. package/dist/kernel/occtWasm/primitiveOps.d.ts.map +0 -1
  511. package/dist/kernel/occtWasm/repairOps.d.ts.map +0 -1
  512. package/dist/kernel/occtWasm/surfaceOps.d.ts.map +0 -1
  513. package/dist/kernel/occtWasm/sweepOps.d.ts.map +0 -1
  514. package/dist/kernel/occtWasm/topologyOps.d.ts.map +0 -1
  515. package/dist/kernel/occtWasm/transformOps.d.ts.map +0 -1
  516. package/dist/kernel/perfStats.d.ts.map +0 -1
  517. package/dist/kernel/solverAdapter.d.ts.map +0 -1
  518. package/dist/kernel/types.d.ts.map +0 -1
  519. package/dist/measurement/interferenceFns.d.ts.map +0 -1
  520. package/dist/measurement/measureCache.d.ts.map +0 -1
  521. package/dist/measurement/measureFns.d.ts.map +0 -1
  522. package/dist/measurement/measureTypes.d.ts.map +0 -1
  523. package/dist/measurement.d.ts.map +0 -1
  524. package/dist/ns/booleans.d.ts.map +0 -1
  525. package/dist/ns/construction.d.ts.map +0 -1
  526. package/dist/ns/ioNs.d.ts.map +0 -1
  527. package/dist/ns/measurement.d.ts.map +0 -1
  528. package/dist/ns/modifiers.d.ts.map +0 -1
  529. package/dist/ns/patterns.d.ts.map +0 -1
  530. package/dist/ns/primitives.d.ts.map +0 -1
  531. package/dist/ns/query.d.ts.map +0 -1
  532. package/dist/ns/transforms.d.ts.map +0 -1
  533. package/dist/operations/api.d.ts.map +0 -1
  534. package/dist/operations/assemblyFns.d.ts.map +0 -1
  535. package/dist/operations/compoundOpsFns.d.ts.map +0 -1
  536. package/dist/operations/convexHullFns.d.ts.map +0 -1
  537. package/dist/operations/exporterFns.d.ts.map +0 -1
  538. package/dist/operations/exporterUtils.d.ts.map +0 -1
  539. package/dist/operations/exporters.d.ts.map +0 -1
  540. package/dist/operations/extrudeFns.d.ts.map +0 -1
  541. package/dist/operations/extrudeUtils.d.ts.map +0 -1
  542. package/dist/operations/guidedSweepFns.d.ts.map +0 -1
  543. package/dist/operations/historyFns.d.ts.map +0 -1
  544. package/dist/operations/loftFns.d.ts.map +0 -1
  545. package/dist/operations/mateFns.d.ts.map +0 -1
  546. package/dist/operations/multiSweepFns.d.ts.map +0 -1
  547. package/dist/operations/patternFns.d.ts.map +0 -1
  548. package/dist/operations/roofFns.d.ts.map +0 -1
  549. package/dist/operations/straightSkeleton.d.ts.map +0 -1
  550. package/dist/operations/sweepFns.d.ts.map +0 -1
  551. package/dist/operations.d.ts.map +0 -1
  552. package/dist/projection/cameraFns.d.ts.map +0 -1
  553. package/dist/projection/makeProjectedEdges.d.ts.map +0 -1
  554. package/dist/projection/projectionPlanes.d.ts.map +0 -1
  555. package/dist/query/cornerFinder.d.ts.map +0 -1
  556. package/dist/query/directionUtils.d.ts.map +0 -1
  557. package/dist/query/edgeFinder.d.ts.map +0 -1
  558. package/dist/query/faceFinder.d.ts.map +0 -1
  559. package/dist/query/finderCore.d.ts.map +0 -1
  560. package/dist/query/finderFns.d.ts.map +0 -1
  561. package/dist/query/helpers.d.ts.map +0 -1
  562. package/dist/query/shapeDistanceFilter.d.ts.map +0 -1
  563. package/dist/query/shapeFinders.d.ts.map +0 -1
  564. package/dist/query/vertexFinder.d.ts.map +0 -1
  565. package/dist/query/wireFinder.d.ts.map +0 -1
  566. package/dist/query.d.ts.map +0 -1
  567. package/dist/quick.d.ts.map +0 -1
  568. package/dist/result.d.ts.map +0 -1
  569. package/dist/shapeRef.d.ts.map +0 -1
  570. package/dist/sketching/cannedSketches.d.ts.map +0 -1
  571. package/dist/sketching/compoundSketch.d.ts.map +0 -1
  572. package/dist/sketching/draw.d.ts.map +0 -1
  573. package/dist/sketching/draw3d.d.ts.map +0 -1
  574. package/dist/sketching/drawFns.d.ts.map +0 -1
  575. package/dist/sketching/ellipseUtils.d.ts.map +0 -1
  576. package/dist/sketching/shortcuts.d.ts.map +0 -1
  577. package/dist/sketching/sketch.d.ts.map +0 -1
  578. package/dist/sketching/sketchFns.d.ts.map +0 -1
  579. package/dist/sketching/sketchLib.d.ts +0 -47
  580. package/dist/sketching/sketchLib.d.ts.map +0 -1
  581. package/dist/sketching/sketchUtils.d.ts +0 -8
  582. package/dist/sketching/sketchUtils.d.ts.map +0 -1
  583. package/dist/sketching/sketcher.d.ts.map +0 -1
  584. package/dist/sketching/sketcher2d.d.ts.map +0 -1
  585. package/dist/sketching/sketcherlib.d.ts.map +0 -1
  586. package/dist/sketching/sketches.d.ts.map +0 -1
  587. package/dist/sketching.d.ts.map +0 -1
  588. package/dist/text/textBlueprints.d.ts.map +0 -1
  589. package/dist/topology/adjacencyFns.d.ts.map +0 -1
  590. package/dist/topology/api.d.ts.map +0 -1
  591. package/dist/topology/apiTypes.d.ts.map +0 -1
  592. package/dist/topology/booleanDiagnosticFns.d.ts.map +0 -1
  593. package/dist/topology/booleanFns.d.ts.map +0 -1
  594. package/dist/topology/cast.d.ts.map +0 -1
  595. package/dist/topology/chamferAngleFns.d.ts.map +0 -1
  596. package/dist/topology/compoundOpsFns.d.ts.map +0 -1
  597. package/dist/topology/curveBuilders.d.ts.map +0 -1
  598. package/dist/topology/curveFns.d.ts.map +0 -1
  599. package/dist/topology/evolutionFns.d.ts.map +0 -1
  600. package/dist/topology/faceFns.d.ts.map +0 -1
  601. package/dist/topology/healingFns.d.ts.map +0 -1
  602. package/dist/topology/hullFns.d.ts.map +0 -1
  603. package/dist/topology/index.d.ts.map +0 -1
  604. package/dist/topology/meshCache.d.ts.map +0 -1
  605. package/dist/topology/meshFns.d.ts.map +0 -1
  606. package/dist/topology/metadata/colorFns.d.ts.map +0 -1
  607. package/dist/topology/metadata/faceTagFns.d.ts.map +0 -1
  608. package/dist/topology/metadata/metadataPropagation.d.ts.map +0 -1
  609. package/dist/topology/metadata/originTrackingFns.d.ts.map +0 -1
  610. package/dist/topology/minkowskiFns.d.ts.map +0 -1
  611. package/dist/topology/modifierFns.d.ts.map +0 -1
  612. package/dist/topology/nurbsFns.d.ts.map +0 -1
  613. package/dist/topology/polyhedronFns.d.ts.map +0 -1
  614. package/dist/topology/positionFns.d.ts.map +0 -1
  615. package/dist/topology/primitiveFns.d.ts.map +0 -1
  616. package/dist/topology/shapeBooleans.d.ts.map +0 -1
  617. package/dist/topology/shapeFns.d.ts.map +0 -1
  618. package/dist/topology/shapeHelpers.d.ts.map +0 -1
  619. package/dist/topology/shapeModifiers.d.ts.map +0 -1
  620. package/dist/topology/shapeRef/index.d.ts.map +0 -1
  621. package/dist/topology/shapeRef/scoring.d.ts.map +0 -1
  622. package/dist/topology/shapeRef/shapeRefFns.d.ts.map +0 -1
  623. package/dist/topology/shapeRef/shapeRefTypes.d.ts.map +0 -1
  624. package/dist/topology/shapeUtils.d.ts.map +0 -1
  625. package/dist/topology/solidBuilders.d.ts.map +0 -1
  626. package/dist/topology/surfaceBuilders.d.ts.map +0 -1
  627. package/dist/topology/surfaceFns.d.ts.map +0 -1
  628. package/dist/topology/threeHelpers.d.ts.map +0 -1
  629. package/dist/topology/topologyQueryFns.d.ts.map +0 -1
  630. package/dist/topology/transformFns.d.ts.map +0 -1
  631. package/dist/topology/wrapperFns.d.ts.map +0 -1
  632. package/dist/topology.d.ts.map +0 -1
  633. package/dist/utils/arrayAccess.d.ts.map +0 -1
  634. package/dist/utils/bug.d.ts.map +0 -1
  635. package/dist/utils/ioFilename.d.ts.map +0 -1
  636. package/dist/utils/precisionRound.d.ts.map +0 -1
  637. package/dist/utils/range.d.ts.map +0 -1
  638. package/dist/utils/uuid.d.ts.map +0 -1
  639. package/dist/utils/vec2d.d.ts.map +0 -1
  640. package/dist/utils/vec3.d.ts.map +0 -1
  641. package/dist/utils/zip.d.ts.map +0 -1
  642. package/dist/vectors.d.ts.map +0 -1
  643. package/dist/worker/index.d.ts.map +0 -1
  644. package/dist/worker/protocol.d.ts.map +0 -1
  645. package/dist/worker/taskQueue.d.ts.map +0 -1
  646. package/dist/worker/workerClient.d.ts.map +0 -1
  647. package/dist/worker/workerHandler.d.ts.map +0 -1
  648. package/dist/worker.d.ts.map +0 -1
  649. /package/dist/{arrayAccess-Br-m2PP7.cjs → arrayAccess-7pTWqkJu.cjs} +0 -0
  650. /package/dist/{arrayAccess-2G0pRoaC.js → arrayAccess-C5IWcxs9.js} +0 -0
  651. /package/dist/{workerHandler-sCf818XJ.cjs → workerHandler-C7seK7H-.cjs} +0 -0
  652. /package/dist/{workerHandler-BndMJVx6.js → workerHandler-DaulgMax.js} +0 -0
package/dist/brepjs.cjs CHANGED
@@ -1,32 +1,37 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_drawFns = require("./drawFns-h8gJBx-H.cjs");
3
- const require_shapeTypes = require("./shapeTypes-8vB31RfA.cjs");
2
+ const require_textBlueprints = require("./textBlueprints-oWhiABaY.cjs");
3
+ const require_shapeTypes = require("./shapeTypes-BTt_LLbk.cjs");
4
4
  const require_vec3 = require("./vec3-S4Oh59IX.cjs");
5
5
  const require_occtWasmAdapter = require("./occtWasmAdapter-C2VW-uYg.cjs");
6
6
  const require_errors = require("./errors-Dv6pfNct.cjs");
7
- const require_faceFns = require("./faceFns-B1H43mZ_.cjs");
7
+ const require_topologyQueryFns = require("./topologyQueryFns-BU0qdNJP.cjs");
8
8
  const require_constants = require("./constants-DTorLmes.cjs");
9
9
  const require_types = require("./types-CDkxah-M.cjs");
10
10
  const require_vecOps = require("./vecOps-D7xplSx8.cjs");
11
11
  const require_planeOps = require("./planeOps-CH4ruLuj.cjs");
12
- const require_shapeFns = require("./shapeFns-CObBAJoQ.cjs");
13
- const require_curveFns = require("./curveFns-B8KJKr8-.cjs");
14
- const require_meshFns = require("./meshFns-t2lR4BDS.cjs");
15
- const require_arrayAccess = require("./arrayAccess-Br-m2PP7.cjs");
16
- const require_surfaceBuilders = require("./surfaceBuilders-BEnsewN9.cjs");
17
- const require_booleanFns = require("./booleanFns-DWQMtFDN.cjs");
18
- const require_primitiveFns = require("./primitiveFns-DwhN--zB.cjs");
19
- const require_historyFns = require("./historyFns-DBdWeo7Y.cjs");
20
- const require_boolean2D = require("./boolean2D-DxZ3Kwlq.cjs");
21
- const require_helpers = require("./helpers-C3smxDtp.cjs");
22
- const require_solidBuilders = require("./solidBuilders-Djwgx2mj.cjs");
23
- const require_measureFns = require("./measureFns-CHmy_Inq.cjs");
24
- const require_cornerFinder = require("./cornerFinder-B2CpcVV9.cjs");
25
- const require_extrudeFns = require("./extrudeFns-BlJKAnW8.cjs");
26
- const require_blueprintFns = require("./blueprintFns-CwbDuLxf.cjs");
27
- const require_importFns = require("./importFns-5tcN3-fK.cjs");
28
- const require_shapeRefFns = require("./shapeRefFns-I0MHjRAq.cjs");
29
- const require_workerHandler = require("./workerHandler-sCf818XJ.cjs");
12
+ const require_faceFns = require("./faceFns-DP7i60yJ.cjs");
13
+ const require_shapeFns = require("./shapeFns-B7x82K11.cjs");
14
+ const require_curveFns = require("./curveFns-CD20-4fM.cjs");
15
+ const require_meshFns = require("./meshFns-BCRVZgPi.cjs");
16
+ const require_arrayAccess = require("./arrayAccess-7pTWqkJu.cjs");
17
+ const require_surfaceBuilders = require("./surfaceBuilders-CYeTNW33.cjs");
18
+ const require_booleanFns = require("./booleanFns-qmgMQyDl.cjs");
19
+ const require_primitiveFns = require("./primitiveFns-BH-JQPzh.cjs");
20
+ const require_historyFns = require("./historyFns-DfyrPjnK.cjs");
21
+ const require_blueprintSketcher = require("./blueprintSketcher-Bei866Bt.cjs");
22
+ const require_helpers = require("./helpers-Cyj6gaqy.cjs");
23
+ const require_drawFns = require("./drawFns-LlOZoFyp.cjs");
24
+ const require_solidBuilders = require("./solidBuilders-CX_197Xm.cjs");
25
+ const require_measureFns = require("./measureFns-6ifSQfJt.cjs");
26
+ const require_cornerFinder = require("./cornerFinder-CC8EBRCR.cjs");
27
+ const require_boolean2D = require("./boolean2D-DGuiEJHA.cjs");
28
+ const require_blueprintFns = require("./blueprintFns-BK3FYYjO.cjs");
29
+ const require_importFns = require("./importFns-C-p0vl_h.cjs");
30
+ const require_extrudeFns = require("./extrudeFns-DD36mWKv.cjs");
31
+ const require_cameraFns = require("./cameraFns-1y1NyACI.cjs");
32
+ const require_textMetrics = require("./textMetrics-CUvtglQE.cjs");
33
+ const require_shapeRefFns = require("./shapeRefFns-wDY88A8u.cjs");
34
+ const require_workerHandler = require("./workerHandler-C7seK7H-.cjs");
30
35
  //#region src/topology/shapeBooleans.ts
31
36
  var BOPAlgo_GlueShift = 1;
32
37
  var BOPAlgo_GlueFull = 2;
@@ -70,9 +75,9 @@ function withNearestPostFilter(baseFinder, nearestPoint) {
70
75
  const candidates = baseFinder.findAll(shape);
71
76
  if (candidates.length === 0) return [];
72
77
  let bestIdx = 0;
73
- let bestDist = require_vecOps.vecDistance(require_faceFns.vertexPosition(require_arrayAccess.firstOrThrow(candidates)), nearestPoint);
78
+ let bestDist = require_vecOps.vecDistance(require_topologyQueryFns.vertexPosition(require_arrayAccess.firstOrThrow(candidates)), nearestPoint);
74
79
  for (let i = 1; i < candidates.length; i++) {
75
- const d = require_vecOps.vecDistance(require_faceFns.vertexPosition(require_arrayAccess.getAtOrThrow(candidates, i)), nearestPoint);
80
+ const d = require_vecOps.vecDistance(require_topologyQueryFns.vertexPosition(require_arrayAccess.getAtOrThrow(candidates, i)), nearestPoint);
76
81
  if (d < bestDist) {
77
82
  bestDist = d;
78
83
  bestIdx = i;
@@ -94,9 +99,9 @@ function withNearestPostFilter(baseFinder, nearestPoint) {
94
99
  function buildVertexFinder(filters) {
95
100
  return require_helpers.createTypedFinder("vertex", filters, buildVertexFinder, (_base, withFilter) => ({
96
101
  nearestTo: (point) => withNearestPostFilter(buildVertexFinder(filters), point),
97
- atPosition: (point, tolerance = 1e-4) => withFilter((vertex) => require_vecOps.vecDistance(require_faceFns.vertexPosition(vertex), point) < tolerance),
102
+ atPosition: (point, tolerance = 1e-4) => withFilter((vertex) => require_vecOps.vecDistance(require_topologyQueryFns.vertexPosition(vertex), point) < tolerance),
98
103
  withinBox: (min, max) => withFilter((vertex) => {
99
- const pos = require_faceFns.vertexPosition(vertex);
104
+ const pos = require_topologyQueryFns.vertexPosition(vertex);
100
105
  return pos[0] >= min[0] - 1e-6 && pos[0] <= max[0] + 1e-6 && pos[1] >= min[1] - 1e-6 && pos[1] <= max[1] + 1e-6 && pos[2] >= min[2] - 1e-6 && pos[2] <= max[2] + 1e-6;
101
106
  }),
102
107
  atDistance: (distance, point = [
@@ -104,7 +109,7 @@ function buildVertexFinder(filters) {
104
109
  0,
105
110
  0
106
111
  ], tolerance = 1e-4) => withFilter((vertex) => {
107
- const pos = require_faceFns.vertexPosition(vertex);
112
+ const pos = require_topologyQueryFns.vertexPosition(vertex);
108
113
  return Math.abs(require_vecOps.vecDistance(pos, point) - distance) < tolerance;
109
114
  })
110
115
  }));
@@ -412,10 +417,10 @@ function convexHull(points) {
412
417
  * type is 'sphere'.
413
418
  */
414
419
  function detectSphere(shape) {
415
- const faces = require_faceFns.getFaces(shape);
420
+ const faces = require_topologyQueryFns.getFaces(shape);
416
421
  if (faces.length !== 1) return null;
417
422
  const face = require_vec3.wasmIndex(faces, 0);
418
- if (require_faceFns.getCachedSurfaceType(face) !== "sphere") return null;
423
+ if (require_topologyQueryFns.getCachedSurfaceType(face) !== "sphere") return null;
419
424
  const faceArea = require_shapeTypes.getKernel().area(face.wrapped);
420
425
  return Math.sqrt(faceArea / (4 * Math.PI));
421
426
  }
@@ -445,8 +450,8 @@ function minkowskiSphere(shape, radius, tolerance) {
445
450
  function minkowskiGeneral(shape, tool, tolerance) {
446
451
  const kernel = require_shapeTypes.getKernel();
447
452
  try {
448
- const shapeVerts = require_faceFns.getVertices(shape);
449
- const toolVerts = require_faceFns.getVertices(tool);
453
+ const shapeVerts = require_topologyQueryFns.getVertices(shape);
454
+ const toolVerts = require_topologyQueryFns.getVertices(tool);
450
455
  if (shapeVerts.length === 0 || toolVerts.length === 0) return require_errors.err(require_errors.kernelError(require_errors.BrepErrorCode.MINKOWSKI_FAILED, "Minkowski sum: one or both shapes have no vertices", void 0, { operation: "minkowski" }));
451
456
  const sumPoints = [];
452
457
  for (const sv of shapeVerts) {
@@ -939,7 +944,7 @@ function computeStraightSkeletonImpl(polygon) {
939
944
  * evaluation. The kernel builds the actual B-Rep faces and solid.
940
945
  */
941
946
  function extractPolygon(w) {
942
- const pts = require_faceFns.getEdges(w).map((e) => {
947
+ const pts = require_topologyQueryFns.getEdges(w).map((e) => {
943
948
  const pt = require_curveFns.curveStartPoint(e);
944
949
  return {
945
950
  x: pt[0],
@@ -1411,7 +1416,7 @@ function checkInterference(shape1, shape2, tolerance = 1e-6) {
1411
1416
  */
1412
1417
  function checkAllInterferences(shapes, tolerance = 1e-6) {
1413
1418
  const pairs = [];
1414
- const boxes = shapes.map((s) => require_faceFns.getBounds(s));
1419
+ const boxes = shapes.map((s) => require_topologyQueryFns.getBounds(s));
1415
1420
  shapes.forEach((si, i) => {
1416
1421
  for (let j = i + 1; j < shapes.length; j++) {
1417
1422
  if (aabbDisjoint(require_vec3.wasmIndex(boxes, i), require_vec3.wasmIndex(boxes, j), tolerance)) continue;
@@ -2119,7 +2124,7 @@ function chamfer(shape, edgesOrDistance, maybeDistance) {
2119
2124
  }
2120
2125
  const normalized = normalizeChamferDistance(distance);
2121
2126
  if (normalized.mode === "distAngle") {
2122
- const selectedEdges = edges ?? require_faceFns.getEdges(s);
2127
+ const selectedEdges = edges ?? require_topologyQueryFns.getEdges(s);
2123
2128
  return require_primitiveFns.chamferDistAngle(s, [...selectedEdges], normalized.distance, normalized.angle);
2124
2129
  }
2125
2130
  return require_primitiveFns.chamfer(s, edges, normalized.distance);
@@ -2168,7 +2173,7 @@ function meshEdges(shape, options) {
2168
2173
  }
2169
2174
  /** Get a summary description of a shape. */
2170
2175
  function describe(shape) {
2171
- return require_faceFns.describe(resolve(shape));
2176
+ return require_topologyQueryFns.describe(resolve(shape));
2172
2177
  }
2173
2178
  /** Serialize a shape to BREP format. */
2174
2179
  function toBREP(shape) {
@@ -2224,14 +2229,14 @@ function revolve(face, options) {
2224
2229
  */
2225
2230
  function loft(wires, options) {
2226
2231
  const resolvedWires = wires.map((w) => resolve(w));
2227
- return require_boolean2D.loft(resolvedWires, options);
2232
+ return require_textBlueprints.loft(resolvedWires, options);
2228
2233
  }
2229
2234
  //#endregion
2230
2235
  //#region src/operations/compoundOpsFns.ts
2231
2236
  /** Resolve a face selection: Face, FinderFn, or default (top Z-facing face). */
2232
2237
  function resolveTargetFace(shape, faceSpec) {
2233
2238
  if (faceSpec === void 0) {
2234
- const faces = require_faceFns.getFaces(shape);
2239
+ const faces = require_topologyQueryFns.getFaces(shape);
2235
2240
  if (faces.length === 0) return require_errors.err(require_errors.validationError(require_errors.BrepErrorCode.COMPOUND_NO_FACES, "compoundOps: shape has no faces"));
2236
2241
  let best = require_arrayAccess.firstOrThrow(faces);
2237
2242
  let bestZ = require_faceFns.faceCenter(best)[2];
@@ -2286,7 +2291,7 @@ function drill(shape, options) {
2286
2291
  let tool;
2287
2292
  if (options.depth !== void 0) tool = require_solidBuilders.makeCylinder(radius, options.depth, pos, dir);
2288
2293
  else {
2289
- const b = require_faceFns.getBounds(s);
2294
+ const b = require_topologyQueryFns.getBounds(s);
2290
2295
  const corners = [
2291
2296
  [
2292
2297
  b.xMin,
@@ -2506,7 +2511,7 @@ function createWrappedBase(val) {
2506
2511
  0,
2507
2512
  1
2508
2513
  ] })),
2509
- bounds: () => require_faceFns.getBounds(val),
2514
+ bounds: () => require_topologyQueryFns.getBounds(val),
2510
2515
  describe: () => describe(val),
2511
2516
  clone: () => wrapAny(unwrapOrThrow(clone(val))),
2512
2517
  mesh: (opts) => mesh(val, opts),
@@ -2567,10 +2572,10 @@ function createWrapped3D(val) {
2567
2572
  area: () => unwrapOrThrow(require_measureFns.measureArea(val)),
2568
2573
  volumeProps: () => unwrapOrThrow(require_measureFns.measureVolumeProps(val)),
2569
2574
  surfaceProps: () => unwrapOrThrow(require_measureFns.measureSurfaceProps(val)),
2570
- edges: () => require_faceFns.getEdges(val),
2571
- faces: () => require_faceFns.getFaces(val),
2572
- wires: () => require_faceFns.getWires(val),
2573
- vertices: () => require_faceFns.getVertices(val),
2575
+ edges: () => require_topologyQueryFns.getEdges(val),
2576
+ faces: () => require_topologyQueryFns.getFaces(val),
2577
+ wires: () => require_topologyQueryFns.getWires(val),
2578
+ vertices: () => require_topologyQueryFns.getVertices(val),
2574
2579
  linearPattern: (dir, count, spacing) => wrap3D(unwrapOrThrow(require_historyFns.linearPattern(val, dir, count, spacing))),
2575
2580
  circularPattern: (axis, count, angle) => wrap3D(unwrapOrThrow(require_historyFns.circularPattern(val, axis, count, angle)))
2576
2581
  };
@@ -2623,9 +2628,644 @@ function shape(s) {
2623
2628
  }
2624
2629
  throw new Error("shape() requires a Sketch or branded shape type");
2625
2630
  }
2631
+ var DEFAULT_CLEARANCE = .25;
2632
+ var inv = (alpha) => Math.tan(alpha) - alpha;
2633
+ function involutePoint(rb, alpha, theta0, sign) {
2634
+ const r = rb / Math.cos(alpha);
2635
+ const theta = theta0 + sign * (Math.tan(alpha) - alpha);
2636
+ return [
2637
+ r * Math.cos(theta),
2638
+ r * Math.sin(theta),
2639
+ 0
2640
+ ];
2641
+ }
2642
+ function cosineSpaceFlankSamples(rb, alphaMax, theta0, count, sign) {
2643
+ const pts = [];
2644
+ for (let i = 0; i <= count; i++) {
2645
+ const t = .5 - .5 * Math.cos(i / count * Math.PI);
2646
+ pts.push(involutePoint(rb, t * alphaMax, theta0, sign));
2647
+ }
2648
+ return pts;
2649
+ }
2650
+ function adaptiveSampleCount(moduleSize) {
2651
+ return Math.max(16, Math.round(8 * Math.sqrt(moduleSize)));
2652
+ }
2653
+ function gearGeometry(z, moduleSize, alpha, shift, clearance, backlashHalf, isInternal) {
2654
+ const rPitch = z * moduleSize / 2;
2655
+ const rb = rPitch * Math.cos(alpha);
2656
+ const addendum = moduleSize * (1 + shift);
2657
+ const dedendum = moduleSize * (1 + clearance - shift);
2658
+ const rTip = isInternal ? rPitch - moduleSize * (1 - shift) : rPitch + addendum;
2659
+ const rRoot = isInternal ? rPitch + moduleSize * (1 + clearance + shift) : rPitch - dedendum;
2660
+ const blAng = backlashHalf / rPitch;
2661
+ const halfToothAngle = (Math.PI / 2 + 2 * shift * Math.tan(alpha)) / z + (isInternal ? blAng : -blAng);
2662
+ const rOuter = isInternal ? rRoot : rTip;
2663
+ return {
2664
+ rPitch,
2665
+ rb,
2666
+ rTip,
2667
+ rRoot,
2668
+ alphaPitch: alpha,
2669
+ halfToothAngle,
2670
+ alphaTip: rOuter <= rb ? 0 : Math.acos(Math.min(1, rb / rOuter)),
2671
+ toothPitch: 2 * Math.PI / z,
2672
+ isInternal
2673
+ };
2674
+ }
2675
+ /**
2676
+ * Solve `inv(αw) = inv(α) + 2·(summedShift)·tan α / totalTeeth` by bisection.
2677
+ *
2678
+ * For external-external mesh: summedShift = x1 + x2, totalTeeth = z1 + z2.
2679
+ * For external-internal mesh: summedShift = xInternal − xExternal, totalTeeth = zInternal − zExternal.
2680
+ *
2681
+ * Returns Err for shifts that push αw outside (epsilon, π/2).
2682
+ */
2683
+ function solveWorkingPressureAngle(alpha, summedShift, totalTeeth) {
2684
+ if (summedShift === 0) return require_errors.ok(alpha);
2685
+ const target = inv(alpha) + 2 * summedShift * Math.tan(alpha) / totalTeeth;
2686
+ const epsilon = 1e-4;
2687
+ let lo, hi;
2688
+ if (target > inv(alpha)) {
2689
+ lo = alpha;
2690
+ hi = Math.PI / 2 - 1e-6;
2691
+ } else {
2692
+ lo = epsilon;
2693
+ hi = alpha;
2694
+ }
2695
+ if (target > inv(hi) || target < inv(lo)) return require_errors.err(require_errors.validationError("GEAR_PA_OUT_OF_RANGE", `working pressure angle out of range — target inv(αw)=${target.toFixed(4)} not in [${inv(lo).toFixed(4)}, ${inv(hi).toFixed(4)}]`, void 0, {
2696
+ target,
2697
+ invLo: inv(lo),
2698
+ invHi: inv(hi)
2699
+ }));
2700
+ for (let i = 0; i < 50; i++) {
2701
+ const mid = .5 * (lo + hi);
2702
+ if (inv(mid) < target) lo = mid;
2703
+ else hi = mid;
2704
+ }
2705
+ return require_errors.ok(.5 * (lo + hi));
2706
+ }
2707
+ /** Convenience: working PA for an external-external mesh (sun-planet). */
2708
+ function solveSunPlanetWorkingPressureAngle(alpha, xSun, xPlanet, zSun, zPlanet) {
2709
+ return solveWorkingPressureAngle(alpha, xSun + xPlanet, zSun + zPlanet);
2710
+ }
2711
+ /** Convenience: working PA for an external-internal mesh (planet-ring). */
2712
+ function solvePlanetRingWorkingPressureAngle(alpha, xPlanet, xRing, zPlanet, zRing) {
2713
+ return solveWorkingPressureAngle(alpha, xRing - xPlanet, zRing - zPlanet);
2714
+ }
2715
+ function workingCenterDistance(zs, zp, moduleSize, alpha, alphaW) {
2716
+ return (zs + zp) * moduleSize * Math.cos(alpha) / (2 * Math.cos(alphaW));
2717
+ }
2718
+ function validatePlanetary(zs, zp, n, planetShift) {
2719
+ if (!Number.isInteger(zs) || !Number.isInteger(zp) || !Number.isInteger(n)) return require_errors.err(require_errors.validationError("GEAR_NON_INTEGER_TEETH", "tooth counts and planet count must be integers"));
2720
+ if (zs < 4 || zp < 4 || n < 2) return require_errors.err(require_errors.validationError("GEAR_TEETH_TOO_FEW", "zs ≥ 4, zp ≥ 4, N ≥ 2 required"));
2721
+ if ((2 * zs + 2 * zp) % n !== 0) return require_errors.err(require_errors.validationError("GEAR_ASSEMBLY", `(2·zs + 2·zp) must be divisible by N — got ${2 * zs + 2 * zp} mod ${n} = ${(2 * zs + 2 * zp) % n}`));
2722
+ const planetTipDiameter = zp + 2 + 2 * planetShift;
2723
+ const minClearance = (zs + zp) * Math.sin(Math.PI / n);
2724
+ if (minClearance <= planetTipDiameter) return require_errors.err(require_errors.validationError("GEAR_PLANET_COLLISION", `planet tips would collide: (zs+zp)·sin(π/N) = ${minClearance.toFixed(3)} ≤ planet tip = ${planetTipDiameter.toFixed(3)}`));
2725
+ return require_errors.ok(void 0);
2726
+ }
2727
+ function externalExternalContactRatio(ra1, rb1, ra2, rb2, centerDistance, moduleSize, alpha, alphaW) {
2728
+ return (Math.sqrt(Math.max(0, ra1 * ra1 - rb1 * rb1)) + Math.sqrt(Math.max(0, ra2 * ra2 - rb2 * rb2)) - centerDistance * Math.sin(alphaW)) / (Math.PI * moduleSize * Math.cos(alpha));
2729
+ }
2730
+ function externalInternalContactRatio(ra_p, rb_p, ra_r, rb_r, centerDistance, moduleSize, alpha, alphaW) {
2731
+ return (Math.sqrt(Math.max(0, ra_p * ra_p - rb_p * rb_p)) - Math.sqrt(Math.max(0, ra_r * ra_r - rb_r * rb_r)) + centerDistance * Math.sin(alphaW)) / (Math.PI * moduleSize * Math.cos(alpha));
2732
+ }
2733
+ function undercutMinimumShift(z, alpha) {
2734
+ return 1 - z * Math.sin(alpha) * Math.sin(alpha) / 2;
2735
+ }
2736
+ function undercutDeficit(z, alpha, shift) {
2737
+ return Math.max(0, undercutMinimumShift(z, alpha) - shift);
2738
+ }
2739
+ function lewisYFactor(z) {
2740
+ if (z < 8) return .2;
2741
+ return .485 - 2.88 / z;
2742
+ }
2743
+ function lewisRootStress(appliedTorqueNm, moduleSize, faceWidth, z) {
2744
+ const torqueNmm = appliedTorqueNm * 1e3;
2745
+ const Y = lewisYFactor(z);
2746
+ if (Y <= 0 || faceWidth <= 0 || moduleSize <= 0) return Infinity;
2747
+ return 2 * torqueNmm / (z * moduleSize * moduleSize * faceWidth * Y);
2748
+ }
2749
+ /**
2750
+ * Dolan-Broghamer fit is for *external* spur teeth. Set `isInternal=true` on
2751
+ * ring gears to apply Niemann's 0.85× reduction — the concave root fillet has
2752
+ * a gentler geometric riser (matches AGMA 908-B89 trend).
2753
+ */
2754
+ function filletStressConcentrationFactor(z, alpha, isInternal = false) {
2755
+ const kf20 = 1.4 + 6.5 / z;
2756
+ const alphaDeg = alpha * 180 / Math.PI;
2757
+ const kf = kf20 * Math.pow(20 / alphaDeg, .15);
2758
+ return isInternal ? kf * .85 : kf;
2759
+ }
2760
+ function lewisRootStressCorrected(appliedTorqueNm, moduleSize, faceWidth, z, alpha, isInternal = false) {
2761
+ return lewisRootStress(appliedTorqueNm, moduleSize, faceWidth, z) * filletStressConcentrationFactor(z, alpha, isInternal);
2762
+ }
2763
+ function backlashHalf(totalBacklash) {
2764
+ return totalBacklash / 2;
2765
+ }
2766
+ function ringTeeth(zs, zp) {
2767
+ return zs + 2 * zp;
2768
+ }
2769
+ function evenToothPhaseOffset(z) {
2770
+ return z % 2 === 0 ? Math.PI / z : 0;
2771
+ }
2772
+ function planetSelfRotationAngle(orbitalAngle, zs, zp) {
2773
+ return orbitalAngle * (1 + zs / zp) + evenToothPhaseOffset(zp);
2774
+ }
2775
+ /**
2776
+ * Compute the rigid placement of each planet without building any solid.
2777
+ *
2778
+ * Pairs with one materialized planet from `makeExternalGear` to support
2779
+ * GPU-instanced rendering: mesh once, draw N times under these transforms.
2780
+ * Defaults match {@link PlanetaryGearParams}.
2781
+ */
2782
+ function planetPlacements(params = {}) {
2783
+ const moduleSize = params.moduleSize ?? 3;
2784
+ const sunTeeth = params.sunTeeth ?? 15;
2785
+ const planetTeeth = params.planetTeeth ?? 12;
2786
+ const numPlanets = params.numPlanets ?? 3;
2787
+ const alpha = (params.pressureAngleDeg ?? 20) * Math.PI / 180;
2788
+ const sunShift = params.sunShift ?? 0;
2789
+ const planetShift = params.planetShift ?? 0;
2790
+ const validation = validatePlanetary(sunTeeth, planetTeeth, numPlanets, planetShift);
2791
+ if (require_errors.isErr(validation)) return validation;
2792
+ const sp = solveSunPlanetWorkingPressureAngle(alpha, sunShift, planetShift, sunTeeth, planetTeeth);
2793
+ if (require_errors.isErr(sp)) return sp;
2794
+ const centerDistance = workingCenterDistance(sunTeeth, planetTeeth, moduleSize, alpha, sp.value);
2795
+ const placements = [];
2796
+ for (let i = 0; i < numPlanets; i++) {
2797
+ const orbital = i * 2 * Math.PI / numPlanets;
2798
+ const selfRot = planetSelfRotationAngle(orbital, sunTeeth, planetTeeth);
2799
+ placements.push({
2800
+ rotationDeg: selfRot * 180 / Math.PI,
2801
+ position: [
2802
+ centerDistance * Math.cos(orbital),
2803
+ centerDistance * Math.sin(orbital),
2804
+ 0
2805
+ ]
2806
+ });
2807
+ }
2808
+ return require_errors.ok(placements);
2809
+ }
2810
+ //#endregion
2811
+ //#region src/gear/gearProfile.ts
2812
+ function buildToothPeriodEdges(tm, toothIndex, totalTeeth, samples, scope) {
2813
+ const center = toothIndex * tm.toothPitch;
2814
+ const nextCenter = (toothIndex + 1) % totalTeeth * tm.toothPitch;
2815
+ const invPitch = inv(tm.alphaPitch);
2816
+ const thetaLeft = center - tm.halfToothAngle - invPitch;
2817
+ const thetaRight = center + tm.halfToothAngle + invPitch;
2818
+ const leftFlank = cosineSpaceFlankSamples(tm.rb, tm.alphaTip, thetaLeft, samples, 1);
2819
+ const rightFlank = cosineSpaceFlankSamples(tm.rb, tm.alphaTip, thetaRight, samples, -1).reverse();
2820
+ const leftBase = require_arrayAccess.firstOrThrow(leftFlank);
2821
+ const leftTip = require_arrayAccess.lastOrThrow(leftFlank);
2822
+ const rightTip = require_arrayAccess.firstOrThrow(rightFlank);
2823
+ const rightBase = require_arrayAccess.lastOrThrow(rightFlank);
2824
+ const edges = [];
2825
+ const push = (e) => {
2826
+ scope.register(e);
2827
+ edges.push(e);
2828
+ };
2829
+ const needsRadialBridge = tm.isInternal ? tm.rb < tm.rRoot : tm.rb > tm.rRoot;
2830
+ if (needsRadialBridge) push(require_surfaceBuilders.makeLine([
2831
+ tm.rRoot * Math.cos(thetaLeft),
2832
+ tm.rRoot * Math.sin(thetaLeft),
2833
+ 0
2834
+ ], leftBase));
2835
+ const interpTol = tm.rPitch * 1e-5;
2836
+ const leftEdge = require_surfaceBuilders.makeBSplineInterpolation(leftFlank, { tolerance: interpTol });
2837
+ if (require_errors.isErr(leftEdge)) return leftEdge;
2838
+ push(leftEdge.value);
2839
+ push(require_surfaceBuilders.makeThreePointArc(leftTip, [
2840
+ tm.rTip * Math.cos(center),
2841
+ tm.rTip * Math.sin(center),
2842
+ 0
2843
+ ], rightTip));
2844
+ const rightEdge = require_surfaceBuilders.makeBSplineInterpolation(rightFlank, { tolerance: interpTol });
2845
+ if (require_errors.isErr(rightEdge)) return rightEdge;
2846
+ push(rightEdge.value);
2847
+ if (needsRadialBridge) push(require_surfaceBuilders.makeLine(rightBase, [
2848
+ tm.rRoot * Math.cos(thetaRight),
2849
+ tm.rRoot * Math.sin(thetaRight),
2850
+ 0
2851
+ ]));
2852
+ const rootEndAngle = nextCenter - tm.halfToothAngle - invPitch;
2853
+ let midAngle = .5 * (thetaRight + rootEndAngle);
2854
+ if (rootEndAngle < thetaRight) midAngle += Math.PI;
2855
+ push(require_surfaceBuilders.makeThreePointArc(needsRadialBridge ? [
2856
+ tm.rRoot * Math.cos(thetaRight),
2857
+ tm.rRoot * Math.sin(thetaRight),
2858
+ 0
2859
+ ] : rightBase, [
2860
+ tm.rRoot * Math.cos(midAngle),
2861
+ tm.rRoot * Math.sin(midAngle),
2862
+ 0
2863
+ ], needsRadialBridge ? [
2864
+ tm.rRoot * Math.cos(rootEndAngle),
2865
+ tm.rRoot * Math.sin(rootEndAngle),
2866
+ 0
2867
+ ] : [
2868
+ tm.rb * Math.cos(rootEndAngle),
2869
+ tm.rb * Math.sin(rootEndAngle),
2870
+ 0
2871
+ ]));
2872
+ return require_errors.ok(edges);
2873
+ }
2874
+ function makeExternalGearProfileWire(params) {
2875
+ return makeProfileWire(params, false);
2876
+ }
2877
+ function makeInternalGearProfileWire(params) {
2878
+ return makeProfileWire(params, true);
2879
+ }
2880
+ function makeProfileWire(params, isInternal) {
2881
+ try {
2882
+ var _usingCtx$2 = require_shapeTypes._usingCtx();
2883
+ const { teeth, moduleSize, pressureAngle, shift, clearance, flankThinning, samples = adaptiveSampleCount(moduleSize) } = params;
2884
+ if (teeth < 4) return require_errors.err(require_errors.validationError("GEAR_TEETH_TOO_FEW", `gear needs ≥ 4 teeth, got ${teeth}`));
2885
+ if (moduleSize <= 0) return require_errors.err(require_errors.validationError("GEAR_MODULE_NONPOSITIVE", `module must be > 0, got ${moduleSize}`));
2886
+ const tm = gearGeometry(teeth, moduleSize, pressureAngle, shift, clearance, flankThinning, isInternal);
2887
+ const scope = _usingCtx$2.u(new require_shapeTypes.DisposalScope());
2888
+ const allEdges = [];
2889
+ for (let i = 0; i < teeth; i++) {
2890
+ const periodEdges = buildToothPeriodEdges(tm, i, teeth, samples, scope);
2891
+ if (require_errors.isErr(periodEdges)) return periodEdges;
2892
+ allEdges.push(...periodEdges.value);
2893
+ }
2894
+ const wireResult = require_surfaceBuilders.assembleWire(allEdges);
2895
+ if (require_errors.isErr(wireResult)) return wireResult;
2896
+ return require_errors.ok(wireResult.value);
2897
+ } catch (_) {
2898
+ _usingCtx$2.e = _;
2899
+ } finally {
2900
+ _usingCtx$2.d();
2901
+ }
2902
+ }
2903
+ //#endregion
2904
+ //#region src/gear/gearFns.ts
2905
+ function makeExternalGear(params) {
2906
+ const { teeth, moduleSize, thickness, pressureAngleDeg = 20, shift = 0, clearance = DEFAULT_CLEARANCE, flankThinning = 0, bore = 0, samples } = params;
2907
+ if (thickness <= 0) return require_errors.err(require_errors.validationError("GEAR_THICKNESS_NONPOSITIVE", "thickness must be > 0"));
2908
+ if (samples !== void 0 && (!Number.isInteger(samples) || samples < 1)) return require_errors.err(require_errors.validationError("GEAR_SAMPLES_INVALID", `samples must be a positive integer; got ${String(samples)}`));
2909
+ const alpha = pressureAngleDeg * Math.PI / 180;
2910
+ const geom = gearGeometry(teeth, moduleSize, alpha, shift, clearance, flankThinning, false);
2911
+ if (bore > 0 && bore >= 2 * geom.rRoot) return require_errors.err(require_errors.validationError("GEAR_BORE_TOO_LARGE", `bore diameter ${bore.toFixed(2)} ≥ root diameter ${(2 * geom.rRoot).toFixed(2)} — would erase the gear teeth`));
2912
+ const wireResult = makeExternalGearProfileWire({
2913
+ teeth,
2914
+ moduleSize,
2915
+ pressureAngle: alpha,
2916
+ shift,
2917
+ clearance,
2918
+ flankThinning,
2919
+ ...samples !== void 0 ? { samples } : {}
2920
+ });
2921
+ if (require_errors.isErr(wireResult)) return wireResult;
2922
+ const diagnostics = externalGearDiagnostics(teeth, alpha, shift);
2923
+ return finalizeExternalSolid(wireResult.value, thickness, bore, geom, diagnostics);
2924
+ }
2925
+ function makeInternalGear(params) {
2926
+ const { teeth, moduleSize, thickness, pressureAngleDeg = 20, shift = 0, clearance = DEFAULT_CLEARANCE, flankThinning = 0, ringWallThickness = 2 * params.moduleSize, samples } = params;
2927
+ if (thickness <= 0) return require_errors.err(require_errors.validationError("GEAR_THICKNESS_NONPOSITIVE", "thickness must be > 0"));
2928
+ if (ringWallThickness <= 0) return require_errors.err(require_errors.validationError("GEAR_WALL_NONPOSITIVE", "ringWallThickness must be > 0"));
2929
+ if (samples !== void 0 && (!Number.isInteger(samples) || samples < 1)) return require_errors.err(require_errors.validationError("GEAR_SAMPLES_INVALID", `samples must be a positive integer; got ${String(samples)}`));
2930
+ const alpha = pressureAngleDeg * Math.PI / 180;
2931
+ const innerWireResult = makeInternalGearProfileWire({
2932
+ teeth,
2933
+ moduleSize,
2934
+ pressureAngle: alpha,
2935
+ shift,
2936
+ clearance,
2937
+ flankThinning,
2938
+ ...samples !== void 0 ? { samples } : {}
2939
+ });
2940
+ if (require_errors.isErr(innerWireResult)) return innerWireResult;
2941
+ const geom = gearGeometry(teeth, moduleSize, alpha, shift, clearance, flankThinning, true);
2942
+ const outerWireResult = makeOuterCircleWire(geom.rPitch + ringWallThickness);
2943
+ if (require_errors.isErr(outerWireResult)) return outerWireResult;
2944
+ return finalizeInternalSolid(outerWireResult.value, innerWireResult.value, thickness, geom, []);
2945
+ }
2946
+ /** Diagnostics for an external (rack-cut) gear in isolation. Not valid for internal gears. */
2947
+ function externalGearDiagnostics(teeth, alpha, shift) {
2948
+ const deficit = undercutDeficit(teeth, alpha, shift);
2949
+ if (deficit <= 0) return [];
2950
+ return [{
2951
+ code: "UNDERCUT_RISK",
2952
+ severity: "warning",
2953
+ message: `gear is undercut: increase shift by ${deficit.toFixed(3)} to avoid (z=${teeth})`,
2954
+ context: {
2955
+ deficit,
2956
+ teeth
2957
+ }
2958
+ }];
2959
+ }
2960
+ function makePlanetaryGear(params) {
2961
+ const resolved = resolvePlanetaryParams(params);
2962
+ if (require_errors.isErr(resolved)) return resolved;
2963
+ const cfg = resolved.value;
2964
+ const stages = buildPlanetaryStages(cfg);
2965
+ if (require_errors.isErr(stages)) return stages;
2966
+ const { sun, planet, ring } = stages.value;
2967
+ const metrics = computeMeshMetrics(cfg, sun, planet, ring);
2968
+ const planets = placePlanets(planet.solid, cfg);
2969
+ planet.solid.delete();
2970
+ const ringPhased = applyRingPhase(ring.solid, cfg.zr);
2971
+ const diagnostics = collectDiagnostics(cfg, metrics);
2972
+ return require_errors.ok({
2973
+ sun: sun.solid,
2974
+ planets,
2975
+ ring: ringPhased,
2976
+ ringTeeth: cfg.zr,
2977
+ workingPressureAngle: cfg.alphaW_sp,
2978
+ centerDistance: cfg.centerDistance,
2979
+ contactRatio: {
2980
+ sunPlanet: metrics.crSunPlanet,
2981
+ planetRing: metrics.crPlanetRing
2982
+ },
2983
+ undercutDeficit: {
2984
+ sun: metrics.undercutSun,
2985
+ planet: metrics.undercutPlanet
2986
+ },
2987
+ ...metrics.lewisStress ? { lewisStress: metrics.lewisStress } : {},
2988
+ ...metrics.stressConcentrationFactor ? { stressConcentrationFactor: metrics.stressConcentrationFactor } : {},
2989
+ diagnostics
2990
+ });
2991
+ }
2992
+ function buildPlanetaryStages(cfg) {
2993
+ const samplesField = cfg.samples !== void 0 ? { samples: cfg.samples } : {};
2994
+ const common = {
2995
+ moduleSize: cfg.moduleSize,
2996
+ thickness: cfg.thickness,
2997
+ pressureAngleDeg: cfg.pressureAngleDeg,
2998
+ clearance: cfg.clearance,
2999
+ flankThinning: cfg.bHalf,
3000
+ ...samplesField
3001
+ };
3002
+ const sun = makeExternalGear({
3003
+ ...common,
3004
+ teeth: cfg.sunTeeth,
3005
+ shift: cfg.sunShift,
3006
+ bore: cfg.sunBore
3007
+ });
3008
+ if (require_errors.isErr(sun)) return sun;
3009
+ const planet = makeExternalGear({
3010
+ ...common,
3011
+ teeth: cfg.planetTeeth,
3012
+ shift: cfg.planetShift,
3013
+ bore: cfg.planetBore
3014
+ });
3015
+ if (require_errors.isErr(planet)) {
3016
+ sun.value.solid.delete();
3017
+ return planet;
3018
+ }
3019
+ const ring = makeInternalGear({
3020
+ ...common,
3021
+ teeth: cfg.zr,
3022
+ shift: cfg.ringShift,
3023
+ ringWallThickness: cfg.ringWallThickness
3024
+ });
3025
+ if (require_errors.isErr(ring)) {
3026
+ sun.value.solid.delete();
3027
+ planet.value.solid.delete();
3028
+ return ring;
3029
+ }
3030
+ return require_errors.ok({
3031
+ sun: sun.value,
3032
+ planet: planet.value,
3033
+ ring: ring.value
3034
+ });
3035
+ }
3036
+ function resolvePlanetaryParams(params) {
3037
+ const moduleSize = params.moduleSize ?? 3;
3038
+ const sunTeeth = params.sunTeeth ?? 15;
3039
+ const planetTeeth = params.planetTeeth ?? 12;
3040
+ const numPlanets = params.numPlanets ?? 3;
3041
+ const pressureAngleDeg = params.pressureAngleDeg ?? 20;
3042
+ const alpha = pressureAngleDeg * Math.PI / 180;
3043
+ const sunShift = params.sunShift ?? 0;
3044
+ const planetShift = params.planetShift ?? 0;
3045
+ const ringShift = params.ringShift ?? 0;
3046
+ if (params.thickness <= 0) return require_errors.err(require_errors.validationError("GEAR_THICKNESS_NONPOSITIVE", "thickness must be > 0"));
3047
+ const validation = validatePlanetary(sunTeeth, planetTeeth, numPlanets, planetShift);
3048
+ if (require_errors.isErr(validation)) return validation;
3049
+ const zr = ringTeeth(sunTeeth, planetTeeth);
3050
+ const sp = solveSunPlanetWorkingPressureAngle(alpha, sunShift, planetShift, sunTeeth, planetTeeth);
3051
+ if (require_errors.isErr(sp)) return sp;
3052
+ const pr = solvePlanetRingWorkingPressureAngle(alpha, planetShift, ringShift, planetTeeth, zr);
3053
+ if (require_errors.isErr(pr)) return pr;
3054
+ const centerDistance = workingCenterDistance(sunTeeth, planetTeeth, moduleSize, alpha, sp.value);
3055
+ return require_errors.ok({
3056
+ moduleSize,
3057
+ sunTeeth,
3058
+ planetTeeth,
3059
+ numPlanets,
3060
+ pressureAngleDeg,
3061
+ alpha,
3062
+ alphaW_sp: sp.value,
3063
+ alphaW_pr: pr.value,
3064
+ clearance: params.clearance ?? .25,
3065
+ bHalf: backlashHalf(params.backlash ?? 0),
3066
+ sunShift,
3067
+ planetShift,
3068
+ ringShift,
3069
+ ringWallThickness: params.ringWallThickness ?? 2 * moduleSize,
3070
+ thickness: params.thickness,
3071
+ sunBore: params.sunBore ?? 0,
3072
+ planetBore: params.planetBore ?? 0,
3073
+ ...params.appliedTorque !== void 0 ? { appliedTorque: params.appliedTorque } : {},
3074
+ ...params.samples !== void 0 ? { samples: params.samples } : {},
3075
+ zr,
3076
+ centerDistance
3077
+ });
3078
+ }
3079
+ function makeOuterCircleWire(radius) {
3080
+ try {
3081
+ var _usingCtx$1 = require_shapeTypes._usingCtx();
3082
+ const wireResult = require_surfaceBuilders.assembleWire([_usingCtx$1.u(new require_shapeTypes.DisposalScope()).register(require_surfaceBuilders.makeCircle(radius, [
3083
+ 0,
3084
+ 0,
3085
+ 0
3086
+ ], [
3087
+ 0,
3088
+ 0,
3089
+ 1
3090
+ ]))]);
3091
+ if (require_errors.isErr(wireResult)) return wireResult;
3092
+ return require_errors.ok(wireResult.value);
3093
+ } catch (_) {
3094
+ _usingCtx$1.e = _;
3095
+ } finally {
3096
+ _usingCtx$1.d();
3097
+ }
3098
+ }
3099
+ function finalizeExternalSolid(wire, thickness, bore, geom, diagnostics) {
3100
+ try {
3101
+ var _usingCtx3 = require_shapeTypes._usingCtx();
3102
+ const faceResult = require_surfaceBuilders.makeFace(wire);
3103
+ if (require_errors.isErr(faceResult)) return faceResult;
3104
+ const solidResult = require_extrudeFns.extrude(faceResult.value, [
3105
+ 0,
3106
+ 0,
3107
+ thickness
3108
+ ]);
3109
+ if (require_errors.isErr(solidResult)) return solidResult;
3110
+ if (bore <= 0) return require_errors.ok(buildGearResult(solidResult.value, geom, diagnostics));
3111
+ const boreScope = _usingCtx3.u(new require_shapeTypes.DisposalScope());
3112
+ const boreFaceResult = makeBoreFace(bore / 2);
3113
+ if (require_errors.isErr(boreFaceResult)) return boreFaceResult;
3114
+ boreScope.register(boreFaceResult.value);
3115
+ const boreRaw = require_extrudeFns.extrude(boreFaceResult.value, [
3116
+ 0,
3117
+ 0,
3118
+ thickness + 1
3119
+ ]);
3120
+ if (require_errors.isErr(boreRaw)) return boreRaw;
3121
+ boreScope.register(boreRaw.value);
3122
+ const boreSolid = boreScope.register(require_shapeFns.translate(boreRaw.value, [
3123
+ 0,
3124
+ 0,
3125
+ -.5
3126
+ ]));
3127
+ const cutResult = require_booleanFns.cut(solidResult.value, boreSolid);
3128
+ if (require_errors.isErr(cutResult)) return cutResult;
3129
+ return require_errors.ok(buildGearResult(cutResult.value, geom, diagnostics));
3130
+ } catch (_) {
3131
+ _usingCtx3.e = _;
3132
+ } finally {
3133
+ _usingCtx3.d();
3134
+ }
3135
+ }
3136
+ function makeBoreFace(radius) {
3137
+ const wireResult = makeOuterCircleWire(radius);
3138
+ if (require_errors.isErr(wireResult)) return wireResult;
3139
+ return require_surfaceBuilders.makeFace(wireResult.value);
3140
+ }
3141
+ function finalizeInternalSolid(outerWire, innerToothedWire, thickness, geom, diagnostics) {
3142
+ const faceResult = require_surfaceBuilders.makeFace(outerWire, [innerToothedWire]);
3143
+ if (require_errors.isErr(faceResult)) return faceResult;
3144
+ const solidResult = require_extrudeFns.extrude(faceResult.value, [
3145
+ 0,
3146
+ 0,
3147
+ thickness
3148
+ ]);
3149
+ if (require_errors.isErr(solidResult)) return solidResult;
3150
+ return require_errors.ok(buildGearResult(solidResult.value, geom, diagnostics));
3151
+ }
3152
+ function buildGearResult(solid, geom, diagnostics = []) {
3153
+ return {
3154
+ solid,
3155
+ diagnostics,
3156
+ pitchDiameter: 2 * geom.rPitch,
3157
+ baseDiameter: 2 * geom.rb,
3158
+ tipDiameter: 2 * geom.rTip,
3159
+ rootDiameter: 2 * geom.rRoot
3160
+ };
3161
+ }
3162
+ function placePlanets(planetProto, cfg) {
3163
+ const planets = [];
3164
+ try {
3165
+ for (let i = 0; i < cfg.numPlanets; i++) {
3166
+ const orbital = i * 2 * Math.PI / cfg.numPlanets;
3167
+ const rotated = require_shapeFns.rotate(planetProto, planetSelfRotationAngle(orbital, cfg.sunTeeth, cfg.planetTeeth) * 180 / Math.PI);
3168
+ try {
3169
+ const offset = [
3170
+ cfg.centerDistance * Math.cos(orbital),
3171
+ cfg.centerDistance * Math.sin(orbital),
3172
+ 0
3173
+ ];
3174
+ planets.push(require_shapeFns.translate(rotated, offset));
3175
+ } finally {
3176
+ rotated.delete();
3177
+ }
3178
+ }
3179
+ return planets;
3180
+ } catch (e) {
3181
+ for (const p of planets) p.delete();
3182
+ throw e;
3183
+ }
3184
+ }
3185
+ function applyRingPhase(ring, zr) {
3186
+ const phaseRad = evenToothPhaseOffset(zr);
3187
+ if (phaseRad === 0) return ring;
3188
+ const rotated = require_shapeFns.rotate(ring, phaseRad * 180 / Math.PI);
3189
+ ring.delete();
3190
+ return rotated;
3191
+ }
3192
+ function computeMeshMetrics(cfg, sun, planet, ring) {
3193
+ const metrics = {
3194
+ crSunPlanet: externalExternalContactRatio(sun.tipDiameter / 2, sun.baseDiameter / 2, planet.tipDiameter / 2, planet.baseDiameter / 2, cfg.centerDistance, cfg.moduleSize, cfg.alpha, cfg.alphaW_sp),
3195
+ crPlanetRing: externalInternalContactRatio(planet.tipDiameter / 2, planet.baseDiameter / 2, ring.tipDiameter / 2, ring.baseDiameter / 2, cfg.centerDistance, cfg.moduleSize, cfg.alpha, cfg.alphaW_pr),
3196
+ undercutSun: undercutDeficit(cfg.sunTeeth, cfg.alpha, cfg.sunShift),
3197
+ undercutPlanet: undercutDeficit(cfg.planetTeeth, cfg.alpha, cfg.planetShift)
3198
+ };
3199
+ if (cfg.appliedTorque !== void 0) {
3200
+ const tSun = cfg.appliedTorque;
3201
+ metrics.lewisStress = {
3202
+ sun: lewisRootStressCorrected(tSun, cfg.moduleSize, cfg.thickness, cfg.sunTeeth, cfg.alpha),
3203
+ planet: lewisRootStressCorrected(tSun * cfg.planetTeeth / cfg.sunTeeth, cfg.moduleSize, cfg.thickness, cfg.planetTeeth, cfg.alpha),
3204
+ ring: lewisRootStressCorrected(tSun * cfg.zr / cfg.sunTeeth, cfg.moduleSize, cfg.thickness, cfg.zr, cfg.alpha, true)
3205
+ };
3206
+ metrics.stressConcentrationFactor = {
3207
+ sun: filletStressConcentrationFactor(cfg.sunTeeth, cfg.alpha),
3208
+ planet: filletStressConcentrationFactor(cfg.planetTeeth, cfg.alpha),
3209
+ ring: filletStressConcentrationFactor(cfg.zr, cfg.alpha, true)
3210
+ };
3211
+ }
3212
+ return metrics;
3213
+ }
3214
+ function collectDiagnostics(cfg, metrics) {
3215
+ const diagnostics = [];
3216
+ if (metrics.crSunPlanet < 1.2) diagnostics.push({
3217
+ code: "CONTACT_RATIO_LOW_SUN_PLANET",
3218
+ severity: "warning",
3219
+ message: `sun-planet contact ratio ${metrics.crSunPlanet.toFixed(2)} is below 1.2 — may run unevenly`,
3220
+ context: { value: metrics.crSunPlanet }
3221
+ });
3222
+ if (metrics.crPlanetRing < 1.2) diagnostics.push({
3223
+ code: "CONTACT_RATIO_LOW_PLANET_RING",
3224
+ severity: "warning",
3225
+ message: `planet-ring contact ratio ${metrics.crPlanetRing.toFixed(2)} is below 1.2 — may run unevenly`,
3226
+ context: { value: metrics.crPlanetRing }
3227
+ });
3228
+ if (metrics.undercutSun > 0) diagnostics.push({
3229
+ code: "UNDERCUT_RISK_SUN",
3230
+ severity: "warning",
3231
+ message: `sun gear is undercut: increase sunShift by ${metrics.undercutSun.toFixed(3)} to avoid`,
3232
+ context: {
3233
+ deficit: metrics.undercutSun,
3234
+ sunTeeth: cfg.sunTeeth
3235
+ }
3236
+ });
3237
+ if (metrics.undercutPlanet > 0) diagnostics.push({
3238
+ code: "UNDERCUT_RISK_PLANET",
3239
+ severity: "warning",
3240
+ message: `planet gear is undercut: increase planetShift by ${metrics.undercutPlanet.toFixed(3)} to avoid`,
3241
+ context: {
3242
+ deficit: metrics.undercutPlanet,
3243
+ planetTeeth: cfg.planetTeeth
3244
+ }
3245
+ });
3246
+ const totalShiftMagnitude = Math.abs(cfg.sunShift) + Math.abs(cfg.planetShift) + Math.abs(cfg.ringShift);
3247
+ if (cfg.appliedTorque !== void 0 && totalShiftMagnitude > .05) diagnostics.push({
3248
+ code: "LEWIS_Y_SHIFT_UNCORRECTED",
3249
+ severity: "info",
3250
+ message: "Lewis stress uses unshifted Y(z) and K_f approximations; expect ±5% per 0.1 of profile shift"
3251
+ });
3252
+ const kinematicError = cfg.ringShift - (cfg.sunShift + 2 * cfg.planetShift);
3253
+ if (Math.abs(kinematicError) > 1e-6) diagnostics.push({
3254
+ code: "PLANETARY_SHIFT_KINEMATIC_MISMATCH",
3255
+ severity: "warning",
3256
+ message: `ringShift should equal sunShift + 2·planetShift for both meshes to share working PA; off by ${kinematicError.toFixed(3)}`,
3257
+ context: {
3258
+ kinematicError,
3259
+ sunShift: cfg.sunShift,
3260
+ planetShift: cfg.planetShift,
3261
+ ringShift: cfg.ringShift
3262
+ }
3263
+ });
3264
+ return diagnostics;
3265
+ }
2626
3266
  //#endregion
2627
3267
  //#region src/ns/primitives.ts
2628
- var primitives_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3268
+ var primitives_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2629
3269
  addHoles: () => require_primitiveFns.addHoles,
2630
3270
  bezier: () => require_primitiveFns.bezier,
2631
3271
  box: () => require_primitiveFns.box,
@@ -2658,7 +3298,7 @@ var primitives_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2658
3298
  });
2659
3299
  //#endregion
2660
3300
  //#region src/ns/booleans.ts
2661
- var booleans_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3301
+ var booleans_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2662
3302
  checkBoolean: () => require_primitiveFns.checkBoolean,
2663
3303
  convexHull: () => convexHull,
2664
3304
  cut: () => cut,
@@ -2675,7 +3315,7 @@ var booleans_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2675
3315
  });
2676
3316
  //#endregion
2677
3317
  //#region src/ns/modifiers.ts
2678
- var modifiers_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3318
+ var modifiers_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2679
3319
  chamfer: () => chamfer,
2680
3320
  draft: () => draft,
2681
3321
  fillet: () => fillet,
@@ -2688,7 +3328,7 @@ var modifiers_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2688
3328
  });
2689
3329
  //#endregion
2690
3330
  //#region src/ns/transforms.ts
2691
- var transforms_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3331
+ var transforms_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2692
3332
  applyMatrix: () => applyMatrix,
2693
3333
  clone: () => clone,
2694
3334
  composeTransforms: () => require_shapeFns.composeTransforms,
@@ -2700,7 +3340,7 @@ var transforms_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2700
3340
  });
2701
3341
  //#endregion
2702
3342
  //#region src/ns/measurement.ts
2703
- var measurement_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3343
+ var measurement_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2704
3344
  checkAllInterferences: () => checkAllInterferences,
2705
3345
  checkInterference: () => checkInterference,
2706
3346
  createDistanceQuery: () => require_measureFns.createDistanceQuery,
@@ -2717,7 +3357,7 @@ var measurement_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2717
3357
  });
2718
3358
  //#endregion
2719
3359
  //#region src/ns/ioNs.ts
2720
- var ioNs_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3360
+ var ioNs_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2721
3361
  blueprintToDXF: () => require_importFns.blueprintToDXF,
2722
3362
  exportAssemblySTEP: () => require_historyFns.exportAssemblySTEP,
2723
3363
  exportDXF: () => require_importFns.exportDXF,
@@ -2741,7 +3381,7 @@ var ioNs_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2741
3381
  });
2742
3382
  //#endregion
2743
3383
  //#region src/ns/query.ts
2744
- var query_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3384
+ var query_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2745
3385
  cornerFinder: () => require_cornerFinder.cornerFinder,
2746
3386
  edgeFinder: () => require_helpers.edgeFinder,
2747
3387
  faceFinder: () => require_helpers.faceFinder,
@@ -2751,7 +3391,7 @@ var query_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2751
3391
  });
2752
3392
  //#endregion
2753
3393
  //#region src/ns/construction.ts
2754
- var construction_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3394
+ var construction_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2755
3395
  complexExtrude: () => require_extrudeFns.complexExtrude,
2756
3396
  extrude: () => extrude,
2757
3397
  guidedSweep: () => require_extrudeFns.guidedSweep,
@@ -2767,24 +3407,28 @@ var construction_exports = /* @__PURE__ */ require_drawFns.__exportAll({
2767
3407
  });
2768
3408
  //#endregion
2769
3409
  //#region src/ns/patterns.ts
2770
- var patterns_exports = /* @__PURE__ */ require_drawFns.__exportAll({
3410
+ var patterns_exports = /* @__PURE__ */ require_textBlueprints.__exportAll({
2771
3411
  circularPattern: () => require_historyFns.circularPattern,
2772
3412
  linearPattern: () => require_historyFns.linearPattern
2773
3413
  });
2774
3414
  //#endregion
3415
+ exports.BaseSketcher2d = require_blueprintSketcher.BaseSketcher2d;
3416
+ exports.BlueprintSketcher = require_blueprintSketcher.BlueprintSketcher;
2775
3417
  exports.BrepBugError = require_errors.BrepBugError;
2776
3418
  exports.BrepErrorCode = require_errors.BrepErrorCode;
2777
3419
  exports.BrepWrapperError = BrepWrapperError;
2778
3420
  exports.BrepkitAdapter = require_shapeTypes.BrepkitAdapter;
2779
- exports.CompoundSketch = require_drawFns.CompoundSketch;
3421
+ exports.CompoundSketch = require_textBlueprints.CompoundSketch;
2780
3422
  exports.DEG2RAD = require_constants.DEG2RAD;
2781
3423
  exports.DisposalScope = require_shapeTypes.DisposalScope;
3424
+ exports.FaceSketcher = require_drawFns.FaceSketcher;
2782
3425
  exports.HASH_CODE_MAX = require_constants.HASH_CODE_MAX;
2783
3426
  exports.OK = require_errors.OK;
2784
3427
  exports.OcctWasmAdapter = require_occtWasmAdapter.OcctWasmAdapter;
2785
3428
  exports.RAD2DEG = require_constants.RAD2DEG;
2786
- exports.Sketch = require_boolean2D.Sketch;
2787
- exports.Sketches = require_drawFns.Sketches;
3429
+ exports.Sketch = require_textBlueprints.Sketch;
3430
+ exports.Sketcher = require_drawFns.Sketcher;
3431
+ exports.Sketches = require_textBlueprints.Sketches;
2788
3432
  exports.addChild = require_historyFns.addChild;
2789
3433
  exports.addHoles = require_primitiveFns.addHoles;
2790
3434
  exports.addMate = addMate;
@@ -2813,8 +3457,8 @@ exports.boss = boss;
2813
3457
  exports.box = require_primitiveFns.box;
2814
3458
  exports.bsplineApprox = require_primitiveFns.bsplineApprox;
2815
3459
  exports.bug = require_errors.bug;
2816
- exports.cameraFromPlane = require_drawFns.cameraFromPlane;
2817
- exports.cameraLookAt = require_drawFns.cameraLookAt;
3460
+ exports.cameraFromPlane = require_cameraFns.cameraFromPlane;
3461
+ exports.cameraLookAt = require_cameraFns.cameraLookAt;
2818
3462
  exports.captureHint = require_shapeRefFns.captureHint;
2819
3463
  exports.cast = require_faceFns.cast;
2820
3464
  exports.castShape = require_shapeTypes.castShape;
@@ -2838,10 +3482,10 @@ exports.colorShape = require_shapeFns.colorShape;
2838
3482
  exports.complexExtrude = require_extrudeFns.complexExtrude;
2839
3483
  exports.composeTransforms = require_shapeFns.composeTransforms;
2840
3484
  exports.compound = require_primitiveFns.compound;
2841
- exports.compoundSketchExtrude = require_drawFns.compoundSketchExtrude;
2842
- exports.compoundSketchFace = require_drawFns.compoundSketchFace;
2843
- exports.compoundSketchLoft = require_drawFns.compoundSketchLoft;
2844
- exports.compoundSketchRevolve = require_drawFns.compoundSketchRevolve;
3485
+ exports.compoundSketchExtrude = require_textBlueprints.compoundSketchExtrude;
3486
+ exports.compoundSketchFace = require_textBlueprints.compoundSketchFace;
3487
+ exports.compoundSketchLoft = require_textBlueprints.compoundSketchLoft;
3488
+ exports.compoundSketchRevolve = require_textBlueprints.compoundSketchRevolve;
2845
3489
  exports.computationError = require_errors.computationError;
2846
3490
  exports.computeStraightSkeleton = computeStraightSkeleton;
2847
3491
  exports.cone = require_primitiveFns.cone;
@@ -2857,7 +3501,7 @@ exports.countNodes = require_historyFns.countNodes;
2857
3501
  exports.createAssembly = require_historyFns.createAssembly;
2858
3502
  exports.createAssemblyNode = require_historyFns.createAssemblyNode;
2859
3503
  exports.createBlueprint = require_blueprintFns.createBlueprint;
2860
- exports.createCamera = require_drawFns.createCamera;
3504
+ exports.createCamera = require_cameraFns.createCamera;
2861
3505
  exports.createCompound = require_shapeTypes.createCompound;
2862
3506
  exports.createCompoundBlueprint = require_blueprintFns.createCompoundBlueprint;
2863
3507
  exports.createDistanceQuery = require_measureFns.createDistanceQuery;
@@ -2967,7 +3611,7 @@ exports.flatMap = require_errors.flatMap;
2967
3611
  exports.flatten = require_errors.flatten;
2968
3612
  exports.flipFaceOrientation = require_faceFns.flipFaceOrientation;
2969
3613
  exports.flipOrientation = require_curveFns.flipOrientation;
2970
- exports.fontMetrics = require_drawFns.fontMetrics;
3614
+ exports.fontMetrics = require_textMetrics.fontMetrics;
2971
3615
  exports.fromBREP = fromBREP$1;
2972
3616
  exports.fromKernelDir = fromKernelDir;
2973
3617
  exports.fromKernelPnt = fromKernelPnt;
@@ -2978,16 +3622,17 @@ exports.fuse2D = require_boolean2D.fuse2D;
2978
3622
  exports.fuseAll = require_booleanFns.fuseAll;
2979
3623
  exports.fuseBlueprints = require_boolean2D.fuseBlueprints;
2980
3624
  exports.fuseWithEvolution = require_primitiveFns.fuseWithEvolution;
2981
- exports.getBounds = require_faceFns.getBounds;
3625
+ exports.gearGeometry = gearGeometry;
3626
+ exports.getBounds = require_topologyQueryFns.getBounds;
2982
3627
  exports.getBounds2D = require_blueprintFns.getBounds2D;
2983
3628
  exports.getCurveType = require_curveFns.getCurveType;
2984
3629
  exports.getDisposalStats = require_shapeTypes.getDisposalStats;
2985
- exports.getEdges = require_faceFns.getEdges;
3630
+ exports.getEdges = require_topologyQueryFns.getEdges;
2986
3631
  exports.getFaceColor = require_shapeFns.getFaceColor;
2987
3632
  exports.getFaceOrigins = require_shapeFns.getFaceOrigins;
2988
3633
  exports.getFaceTags = require_shapeFns.getFaceTags;
2989
- exports.getFaces = require_faceFns.getFaces;
2990
- exports.getFont = require_drawFns.getFont;
3634
+ exports.getFaces = require_topologyQueryFns.getFaces;
3635
+ exports.getFont = require_textBlueprints.getFont;
2991
3636
  exports.getHashCode = require_shapeFns.getHashCode;
2992
3637
  exports.getHistoryShape = require_historyFns.getShape;
2993
3638
  exports.getKernel = require_shapeTypes.getKernel;
@@ -3001,8 +3646,8 @@ exports.getShapeKind = require_shapeTypes.getShapeKind;
3001
3646
  exports.getSingleFace = require_helpers.getSingleFace;
3002
3647
  exports.getSurfaceType = require_faceFns.getSurfaceType;
3003
3648
  exports.getTagMetadata = require_shapeFns.getTagMetadata;
3004
- exports.getVertices = require_faceFns.getVertices;
3005
- exports.getWires = require_faceFns.getWires;
3649
+ exports.getVertices = require_topologyQueryFns.getVertices;
3650
+ exports.getWires = require_topologyQueryFns.getWires;
3006
3651
  exports.guidedSweep = require_extrudeFns.guidedSweep;
3007
3652
  exports.heal = heal;
3008
3653
  exports.healFace = require_primitiveFns.healFace;
@@ -3027,7 +3672,7 @@ exports.intersect = intersect;
3027
3672
  exports.intersect2D = require_boolean2D.intersect2D;
3028
3673
  exports.intersectBlueprints = require_boolean2D.intersectBlueprints;
3029
3674
  exports.intersectWithEvolution = require_primitiveFns.intersectWithEvolution;
3030
- exports.invalidateShapeCache = require_faceFns.invalidateShapeCache;
3675
+ exports.invalidateShapeCache = require_topologyQueryFns.invalidateShapeCache;
3031
3676
  Object.defineProperty(exports, "io", {
3032
3677
  enumerable: true,
3033
3678
  get: function() {
@@ -3059,7 +3704,7 @@ exports.isOperationRequest = require_workerHandler.isOperationRequest;
3059
3704
  exports.isOrientedFace = require_shapeTypes.isOrientedFace;
3060
3705
  exports.isPlanarFace = require_shapeTypes.isPlanarFace;
3061
3706
  exports.isPlanarWire = require_shapeTypes.isPlanarWire;
3062
- exports.isProjectionPlane = require_drawFns.isProjectionPlane;
3707
+ exports.isProjectionPlane = require_cameraFns.isProjectionPlane;
3063
3708
  exports.isQueueEmpty = require_workerHandler.isEmpty;
3064
3709
  exports.isSameShape = require_shapeFns.isSameShape;
3065
3710
  exports.isShape1D = require_shapeTypes.isShape1D;
@@ -3071,23 +3716,26 @@ exports.isValid = isValid;
3071
3716
  exports.isValidSolid = require_shapeTypes.isValidSolid;
3072
3717
  exports.isVertex = require_shapeTypes.isVertex;
3073
3718
  exports.isWire = require_shapeTypes.isWire;
3074
- exports.iterEdges = require_faceFns.iterEdges;
3075
- exports.iterFaces = require_faceFns.iterFaces;
3719
+ exports.iterEdges = require_topologyQueryFns.iterEdges;
3720
+ exports.iterFaces = require_topologyQueryFns.iterFaces;
3076
3721
  exports.iterTopo = require_faceFns.iterTopo;
3077
- exports.iterVertices = require_faceFns.iterVertices;
3078
- exports.iterWires = require_faceFns.iterWires;
3079
- exports.kernelCall = require_faceFns.kernelCall;
3080
- exports.kernelCallRaw = require_faceFns.kernelCallRaw;
3081
- exports.kernelCallScoped = require_faceFns.kernelCallScoped;
3722
+ exports.iterVertices = require_topologyQueryFns.iterVertices;
3723
+ exports.iterWires = require_topologyQueryFns.iterWires;
3724
+ exports.kernelCall = require_topologyQueryFns.kernelCall;
3725
+ exports.kernelCallRaw = require_topologyQueryFns.kernelCallRaw;
3726
+ exports.kernelCallScoped = require_topologyQueryFns.kernelCallScoped;
3082
3727
  exports.kernelError = require_errors.kernelError;
3083
3728
  exports.line = require_primitiveFns.line;
3084
3729
  exports.linearPattern = require_historyFns.linearPattern;
3085
- exports.loadFont = require_drawFns.loadFont;
3730
+ exports.loadFont = require_textBlueprints.loadFont;
3086
3731
  exports.loft = loft;
3087
- exports.loftAll = require_boolean2D.loftAll;
3732
+ exports.loftAll = require_textBlueprints.loftAll;
3088
3733
  exports.makeBaseBox = require_drawFns.makeBaseBox;
3734
+ exports.makeExternalGear = makeExternalGear;
3735
+ exports.makeInternalGear = makeInternalGear;
3089
3736
  exports.makePlane = require_planeOps.makePlane;
3090
- exports.makeProjectedEdges = require_drawFns.makeProjectedEdges;
3737
+ exports.makePlanetaryGear = makePlanetaryGear;
3738
+ exports.makeProjectedEdges = require_cameraFns.makeProjectedEdges;
3091
3739
  exports.manifoldShell = require_shapeTypes.manifoldShell;
3092
3740
  exports.map = require_errors.map;
3093
3741
  exports.mapBoth = require_errors.mapBoth;
@@ -3133,7 +3781,7 @@ exports.offsetWire2D = require_curveFns.offsetWire2D;
3133
3781
  exports.ok = require_errors.ok;
3134
3782
  exports.or = require_errors.or;
3135
3783
  exports.orElse = require_errors.orElse;
3136
- exports.organiseBlueprints = require_boolean2D.organiseBlueprints;
3784
+ exports.organiseBlueprints = require_blueprintSketcher.organiseBlueprints;
3137
3785
  exports.orientedFace = require_shapeTypes.orientedFace;
3138
3786
  exports.outerWire = require_faceFns.outerWire;
3139
3787
  Object.defineProperty(exports, "patterns", {
@@ -3147,6 +3795,7 @@ exports.pipeline = require_errors.pipeline;
3147
3795
  exports.pivotPlane = require_planeOps.pivotPlane;
3148
3796
  exports.planarFace = require_shapeTypes.planarFace;
3149
3797
  exports.planarWire = require_shapeTypes.planarWire;
3798
+ exports.planetPlacements = planetPlacements;
3150
3799
  exports.pocket = pocket;
3151
3800
  exports.pointOnSurface = require_faceFns.pointOnSurface;
3152
3801
  exports.polygon = require_primitiveFns.polygon;
@@ -3161,7 +3810,7 @@ Object.defineProperty(exports, "primitives", {
3161
3810
  return primitives_exports;
3162
3811
  }
3163
3812
  });
3164
- exports.projectEdges = require_drawFns.projectEdges;
3813
+ exports.projectEdges = require_cameraFns.projectEdges;
3165
3814
  exports.projectPointOnFace = require_faceFns.projectPointOnFace;
3166
3815
  Object.defineProperty(exports, "query", {
3167
3816
  enumerable: true,
@@ -3212,21 +3861,21 @@ exports.shellWithEvolution = require_primitiveFns.shellWithEvolution;
3212
3861
  exports.simplify = simplify;
3213
3862
  exports.sketchCircle = require_drawFns.sketchCircle;
3214
3863
  exports.sketchEllipse = require_drawFns.sketchEllipse;
3215
- exports.sketchExtrude = require_drawFns.sketchExtrude;
3216
- exports.sketchFace = require_drawFns.sketchFace;
3864
+ exports.sketchExtrude = require_textBlueprints.sketchExtrude;
3865
+ exports.sketchFace = require_textBlueprints.sketchFace;
3217
3866
  exports.sketchFaceOffset = require_drawFns.sketchFaceOffset;
3218
3867
  exports.sketchHelix = require_drawFns.sketchHelix;
3219
- exports.sketchLoft = require_drawFns.sketchLoft;
3868
+ exports.sketchLoft = require_textBlueprints.sketchLoft;
3220
3869
  exports.sketchOnFace2D = require_blueprintFns.sketchOnFace2D;
3221
3870
  exports.sketchOnPlane2D = require_blueprintFns.sketchOnPlane2D;
3222
3871
  exports.sketchParametricFunction = require_drawFns.sketchParametricFunction;
3223
3872
  exports.sketchPolysides = require_drawFns.sketchPolysides;
3224
3873
  exports.sketchRectangle = require_drawFns.sketchRectangle;
3225
- exports.sketchRevolve = require_drawFns.sketchRevolve;
3874
+ exports.sketchRevolve = require_textBlueprints.sketchRevolve;
3226
3875
  exports.sketchRoundedRectangle = require_drawFns.sketchRoundedRectangle;
3227
- exports.sketchSweep = require_drawFns.sketchSweep;
3228
- exports.sketchText = require_drawFns.sketchText;
3229
- exports.sketchWires = require_drawFns.sketchWires;
3876
+ exports.sketchSweep = require_textBlueprints.sketchSweep;
3877
+ exports.sketchText = require_textMetrics.sketchText;
3878
+ exports.sketchWires = require_textBlueprints.sketchWires;
3230
3879
  exports.sketcherStateError = require_errors.sketcherStateError;
3231
3880
  exports.slice = slice;
3232
3881
  exports.solid = require_primitiveFns.solid;
@@ -3248,8 +3897,8 @@ exports.tagFaces = require_shapeFns.tagFaces;
3248
3897
  exports.tangentArc = require_primitiveFns.tangentArc;
3249
3898
  exports.tap = require_errors.tap;
3250
3899
  exports.tapErr = require_errors.tapErr;
3251
- exports.textBlueprints = require_drawFns.textBlueprints;
3252
- exports.textMetrics = require_drawFns.textMetrics;
3900
+ exports.textBlueprints = require_textBlueprints.textBlueprints;
3901
+ exports.textMetrics = require_textMetrics.textMetrics;
3253
3902
  exports.thicken = thicken;
3254
3903
  exports.threePointArc = require_primitiveFns.threePointArc;
3255
3904
  exports.toBREP = toBREP;
@@ -3288,6 +3937,7 @@ exports.updateRoles = require_shapeRefFns.updateRoles;
3288
3937
  exports.uvBounds = require_faceFns.uvBounds;
3289
3938
  exports.uvCoordinates = require_faceFns.uvCoordinates;
3290
3939
  exports.validSolid = require_shapeTypes.validSolid;
3940
+ exports.validatePlanetary = validatePlanetary;
3291
3941
  exports.validationError = require_errors.validationError;
3292
3942
  exports.variableFillet = require_primitiveFns.variableFillet;
3293
3943
  exports.vecAdd = require_vecOps.vecAdd;
@@ -3308,7 +3958,7 @@ exports.vecScale = require_vecOps.vecScale;
3308
3958
  exports.vecSub = require_vecOps.vecSub;
3309
3959
  exports.vertex = require_primitiveFns.vertex;
3310
3960
  exports.vertexFinder = vertexFinder;
3311
- exports.vertexPosition = require_faceFns.vertexPosition;
3961
+ exports.vertexPosition = require_topologyQueryFns.vertexPosition;
3312
3962
  exports.verticesOfEdge = require_primitiveFns.verticesOfEdge;
3313
3963
  exports.walkAssembly = require_historyFns.walkAssembly;
3314
3964
  exports.wire = require_primitiveFns.wire;