@faicad/faijs 0.14.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (338) hide show
  1. package/dist/api/api-namespace.d.ts +7 -0
  2. package/dist/api/api-namespace.d.ts.map +1 -1
  3. package/dist/api/api-namespace.js +23 -22
  4. package/dist/api/api-namespace.js.map +1 -1
  5. package/dist/api/boolean.d.ts.map +1 -1
  6. package/dist/api/boolean.js +26 -8
  7. package/dist/api/boolean.js.map +1 -1
  8. package/dist/api/chamfer.d.ts.map +1 -1
  9. package/dist/api/chamfer.js +4 -1
  10. package/dist/api/chamfer.js.map +1 -1
  11. package/dist/api/generated/cad/script-face.d.ts +1 -1
  12. package/dist/api/generated/cad/script-face.d.ts.map +1 -1
  13. package/dist/api/generated/cad/script-face.js +1 -2
  14. package/dist/api/generated/cad/script-face.js.map +1 -1
  15. package/dist/api/generated/operations.js +16 -16
  16. package/dist/api/generated/operations.js.map +1 -1
  17. package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
  18. package/dist/api/generated/script-face-manifest.js +0 -1
  19. package/dist/api/generated/script-face-manifest.js.map +1 -1
  20. package/dist/api/generated/script-face.d.ts +1 -4
  21. package/dist/api/generated/script-face.d.ts.map +1 -1
  22. package/dist/api/generated/script-face.js +2 -3
  23. package/dist/api/generated/script-face.js.map +1 -1
  24. package/dist/api/generated/sketching.js +1 -1
  25. package/dist/api/generated/sketching.js.map +1 -1
  26. package/dist/api/generated/topology.d.ts +0 -8
  27. package/dist/api/generated/topology.d.ts.map +1 -1
  28. package/dist/api/generated/topology.js +19 -26
  29. package/dist/api/generated/topology.js.map +1 -1
  30. package/dist/api/index.d.ts +1 -10
  31. package/dist/api/index.d.ts.map +1 -1
  32. package/dist/api/index.js +10 -18
  33. package/dist/api/index.js.map +1 -1
  34. package/dist/api/internal/compat-projection.d.ts +3 -1
  35. package/dist/api/internal/compat-projection.d.ts.map +1 -1
  36. package/dist/api/internal/compat-projection.js +8 -5
  37. package/dist/api/internal/compat-projection.js.map +1 -1
  38. package/dist/api/internal/replica-role-table.d.ts +36 -0
  39. package/dist/api/internal/replica-role-table.d.ts.map +1 -0
  40. package/dist/api/internal/replica-role-table.js +73 -0
  41. package/dist/api/internal/replica-role-table.js.map +1 -0
  42. package/dist/api/internal/result-unwrap.d.ts +3 -1
  43. package/dist/api/internal/result-unwrap.d.ts.map +1 -1
  44. package/dist/api/internal/result-unwrap.js +2 -2
  45. package/dist/api/internal/result-unwrap.js.map +1 -1
  46. package/dist/api/occt-kernel-bridge.d.ts +105 -27
  47. package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
  48. package/dist/api/occt-kernel-bridge.js +255 -41
  49. package/dist/api/occt-kernel-bridge.js.map +1 -1
  50. package/dist/api/pattern.d.ts.map +1 -1
  51. package/dist/api/pattern.js +25 -61
  52. package/dist/api/pattern.js.map +1 -1
  53. package/dist/api/replicate.d.ts +145 -0
  54. package/dist/api/replicate.d.ts.map +1 -0
  55. package/dist/api/replicate.js +351 -0
  56. package/dist/api/replicate.js.map +1 -0
  57. package/dist/api/revolve.d.ts +36 -0
  58. package/dist/api/revolve.d.ts.map +1 -0
  59. package/dist/api/revolve.js +165 -0
  60. package/dist/api/revolve.js.map +1 -0
  61. package/dist/api/surface/arg-spec.d.ts +8 -0
  62. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  63. package/dist/api/surface/arg-spec.js +37 -36
  64. package/dist/api/surface/arg-spec.js.map +1 -1
  65. package/dist/api/surface/projection-overrides.d.ts.map +1 -1
  66. package/dist/api/surface/projection-overrides.js +6 -0
  67. package/dist/api/surface/projection-overrides.js.map +1 -1
  68. package/dist/boolean/deriveNormals.d.ts +5 -4
  69. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  70. package/dist/boolean/deriveNormals.js +24 -7
  71. package/dist/boolean/deriveNormals.js.map +1 -1
  72. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  73. package/dist/brep/engine/adapters/brep-mock.js +58 -0
  74. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  75. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  76. package/dist/brep/engine/adapters/brepkit.js +39 -1
  77. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  78. package/dist/brep/engine/adapters/occt.d.ts +1 -5
  79. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  80. package/dist/brep/engine/adapters/occt.js +232 -18
  81. package/dist/brep/engine/adapters/occt.js.map +1 -1
  82. package/dist/brep/engine/primitives.d.ts +79 -0
  83. package/dist/brep/engine/primitives.d.ts.map +1 -1
  84. package/dist/brep/engine/primitives.js.map +1 -1
  85. package/dist/brep/engine/types.d.ts +18 -1
  86. package/dist/brep/engine/types.d.ts.map +1 -1
  87. package/dist/brep/engine/types.js.map +1 -1
  88. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  89. package/dist/brepkit-kernel/brepkitKernel.js +81 -11
  90. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  91. package/dist/browser.d.ts +6 -28
  92. package/dist/browser.d.ts.map +1 -1
  93. package/dist/browser.js +6 -17
  94. package/dist/browser.js.map +1 -1
  95. package/dist/cad-runtime/admit-compat-lib.d.ts +13 -18
  96. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  97. package/dist/cad-runtime/admit-compat-lib.js +25 -18
  98. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  99. package/dist/cad-runtime/backend-dispatch.d.ts +4 -2
  100. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  101. package/dist/cad-runtime/backend-dispatch.js +2 -0
  102. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  103. package/dist/cad-runtime/browser-lib-loader.d.ts +4 -6
  104. package/dist/cad-runtime/browser-lib-loader.d.ts.map +1 -1
  105. package/dist/cad-runtime/browser-lib-loader.js +4 -9
  106. package/dist/cad-runtime/browser-lib-loader.js.map +1 -1
  107. package/dist/cad-runtime/ports.d.ts +0 -7
  108. package/dist/cad-runtime/ports.d.ts.map +1 -1
  109. package/dist/cad-runtime/ports.js.map +1 -1
  110. package/dist/cad-runtime/runtime.d.ts +1 -3
  111. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  112. package/dist/cad-runtime/runtime.js +13 -18
  113. package/dist/cad-runtime/runtime.js.map +1 -1
  114. package/dist/env-agnostic.d.ts +38 -0
  115. package/dist/env-agnostic.d.ts.map +1 -0
  116. package/dist/env-agnostic.js +29 -0
  117. package/dist/env-agnostic.js.map +1 -0
  118. package/dist/fcstd/codegen.d.ts.map +1 -1
  119. package/dist/fcstd/codegen.js +8 -1
  120. package/dist/fcstd/codegen.js.map +1 -1
  121. package/dist/fcstd/expressions.d.ts +24 -0
  122. package/dist/fcstd/expressions.d.ts.map +1 -1
  123. package/dist/fcstd/expressions.js +91 -0
  124. package/dist/fcstd/expressions.js.map +1 -1
  125. package/dist/fcstd/feature-translate.d.ts.map +1 -1
  126. package/dist/fcstd/feature-translate.js +16 -2
  127. package/dist/fcstd/feature-translate.js.map +1 -1
  128. package/dist/fcstd/structural-types.d.ts.map +1 -1
  129. package/dist/fcstd/structural-types.js +5 -0
  130. package/dist/fcstd/structural-types.js.map +1 -1
  131. package/dist/index.d.ts +7 -24
  132. package/dist/index.d.ts.map +1 -1
  133. package/dist/index.js +10 -16
  134. package/dist/index.js.map +1 -1
  135. package/dist/lang/determinism-scanner.d.ts +9 -0
  136. package/dist/lang/determinism-scanner.d.ts.map +1 -1
  137. package/dist/lang/determinism-scanner.js +7 -1
  138. package/dist/lang/determinism-scanner.js.map +1 -1
  139. package/dist/lang/symbol-table.d.ts +31 -0
  140. package/dist/lang/symbol-table.d.ts.map +1 -1
  141. package/dist/lang/symbol-table.generated.d.ts +6 -16
  142. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  143. package/dist/lang/symbol-table.generated.js +6 -16
  144. package/dist/lang/symbol-table.generated.js.map +1 -1
  145. package/dist/lang/symbol-table.js +50 -1
  146. package/dist/lang/symbol-table.js.map +1 -1
  147. package/dist/mesh/creased-normals.d.ts +50 -0
  148. package/dist/mesh/creased-normals.d.ts.map +1 -0
  149. package/dist/mesh/creased-normals.js +114 -0
  150. package/dist/mesh/creased-normals.js.map +1 -0
  151. package/dist/mesh/decoration-provider.d.ts +53 -0
  152. package/dist/mesh/decoration-provider.d.ts.map +1 -0
  153. package/dist/mesh/decoration-provider.js +21 -0
  154. package/dist/mesh/decoration-provider.js.map +1 -0
  155. package/dist/mesh/engrave.d.ts +4 -0
  156. package/dist/mesh/engrave.d.ts.map +1 -1
  157. package/dist/mesh/engrave.js +22 -31
  158. package/dist/mesh/engrave.js.map +1 -1
  159. package/dist/mesh/index.d.ts +5 -14
  160. package/dist/mesh/index.d.ts.map +1 -1
  161. package/dist/mesh/index.js +7 -19
  162. package/dist/mesh/index.js.map +1 -1
  163. package/dist/mesh/io.d.ts +2 -1
  164. package/dist/mesh/io.d.ts.map +1 -1
  165. package/dist/mesh/io.js +5 -7
  166. package/dist/mesh/io.js.map +1 -1
  167. package/dist/mesh/primitives.d.ts +5 -18
  168. package/dist/mesh/primitives.d.ts.map +1 -1
  169. package/dist/mesh/primitives.js +4 -48
  170. package/dist/mesh/primitives.js.map +1 -1
  171. package/dist/mesh/stl-loader.d.ts +23 -0
  172. package/dist/mesh/stl-loader.d.ts.map +1 -0
  173. package/dist/mesh/stl-loader.js +139 -0
  174. package/dist/mesh/stl-loader.js.map +1 -0
  175. package/dist/module-resolver/parse-imports.d.ts +37 -0
  176. package/dist/module-resolver/parse-imports.d.ts.map +1 -0
  177. package/dist/module-resolver/parse-imports.js +39 -0
  178. package/dist/module-resolver/parse-imports.js.map +1 -0
  179. package/dist/module-resolver/resolver.d.ts +1 -1
  180. package/dist/module-resolver/resolver.js +2 -2
  181. package/dist/module-resolver/resolver.js.map +1 -1
  182. package/dist/node-host/cli.d.ts.map +1 -1
  183. package/dist/node-host/cli.js +1 -22
  184. package/dist/node-host/cli.js.map +1 -1
  185. package/dist/primitives/text/cjk-font.d.ts +42 -0
  186. package/dist/primitives/text/cjk-font.d.ts.map +1 -0
  187. package/dist/primitives/text/cjk-font.js +86 -0
  188. package/dist/primitives/text/cjk-font.js.map +1 -0
  189. package/dist/sdk.d.ts +2 -2
  190. package/dist/sdk.js +2 -2
  191. package/dist/sdk.js.map +1 -1
  192. package/dist/symbol-table.d.ts +15 -0
  193. package/dist/symbol-table.d.ts.map +1 -0
  194. package/dist/symbol-table.js +14 -0
  195. package/dist/symbol-table.js.map +1 -0
  196. package/dist/topology/naming/lineage-resolve.js +1 -1
  197. package/dist/topology/naming/lineage-resolve.js.map +1 -1
  198. package/dist/vendored/brepjs/kernel/index.d.ts +5 -0
  199. package/dist/vendored/brepjs/kernel/index.d.ts.map +1 -1
  200. package/dist/vendored/brepjs/kernel/index.js +11 -0
  201. package/dist/vendored/brepjs/kernel/index.js.map +1 -1
  202. package/dist/weapp.d.ts +3 -3
  203. package/dist/weapp.d.ts.map +1 -1
  204. package/dist/weapp.js +6 -3
  205. package/dist/weapp.js.map +1 -1
  206. package/package.json +16 -14
  207. package/dist/api/compat/index.d.ts +0 -173
  208. package/dist/api/compat/index.d.ts.map +0 -1
  209. package/dist/api/compat/index.js +0 -222
  210. package/dist/api/compat/index.js.map +0 -1
  211. package/dist/api/compound.d.ts +0 -110
  212. package/dist/api/compound.d.ts.map +0 -1
  213. package/dist/api/compound.js +0 -164
  214. package/dist/api/compound.js.map +0 -1
  215. package/dist/api/copy.d.ts +0 -40
  216. package/dist/api/copy.d.ts.map +0 -1
  217. package/dist/api/copy.js +0 -83
  218. package/dist/api/copy.js.map +0 -1
  219. package/dist/api/fai_drill.d.ts +0 -46
  220. package/dist/api/fai_drill.d.ts.map +0 -1
  221. package/dist/api/fai_drill.js +0 -243
  222. package/dist/api/fai_drill.js.map +0 -1
  223. package/dist/api/fai_extrude.d.ts +0 -36
  224. package/dist/api/fai_extrude.d.ts.map +0 -1
  225. package/dist/api/fai_extrude.js +0 -79
  226. package/dist/api/fai_extrude.js.map +0 -1
  227. package/dist/api/fai_split.d.ts +0 -46
  228. package/dist/api/fai_split.d.ts.map +0 -1
  229. package/dist/api/fai_split.js +0 -254
  230. package/dist/api/fai_split.js.map +0 -1
  231. package/dist/api/load.d.ts +0 -41
  232. package/dist/api/load.d.ts.map +0 -1
  233. package/dist/api/load.js +0 -84
  234. package/dist/api/load.js.map +0 -1
  235. package/dist/api/svgExtrude.d.ts +0 -32
  236. package/dist/api/svgExtrude.d.ts.map +0 -1
  237. package/dist/api/svgExtrude.js +0 -74
  238. package/dist/api/svgExtrude.js.map +0 -1
  239. package/dist/api/text.d.ts +0 -34
  240. package/dist/api/text.d.ts.map +0 -1
  241. package/dist/api/text.js +0 -101
  242. package/dist/api/text.js.map +0 -1
  243. package/dist/brep/text/fontTestHelper.d.ts +0 -30
  244. package/dist/brep/text/fontTestHelper.d.ts.map +0 -1
  245. package/dist/brep/text/fontTestHelper.js +0 -57
  246. package/dist/brep/text/fontTestHelper.js.map +0 -1
  247. package/dist/cad-runtime/module-executor.d.ts +0 -271
  248. package/dist/cad-runtime/module-executor.d.ts.map +0 -1
  249. package/dist/cad-runtime/module-executor.js +0 -630
  250. package/dist/cad-runtime/module-executor.js.map +0 -1
  251. package/dist/cad-runtime/terminal-dag.d.ts +0 -65
  252. package/dist/cad-runtime/terminal-dag.d.ts.map +0 -1
  253. package/dist/cad-runtime/terminal-dag.js +0 -167
  254. package/dist/cad-runtime/terminal-dag.js.map +0 -1
  255. package/dist/faqts/browser.d.ts +0 -16
  256. package/dist/faqts/browser.d.ts.map +0 -1
  257. package/dist/faqts/browser.js +0 -13
  258. package/dist/faqts/browser.js.map +0 -1
  259. package/dist/faqts/exec-blob.d.ts +0 -14
  260. package/dist/faqts/exec-blob.d.ts.map +0 -1
  261. package/dist/faqts/exec-blob.js +0 -22
  262. package/dist/faqts/exec-blob.js.map +0 -1
  263. package/dist/faqts/exec-node.d.ts +0 -15
  264. package/dist/faqts/exec-node.d.ts.map +0 -1
  265. package/dist/faqts/exec-node.js +0 -29
  266. package/dist/faqts/exec-node.js.map +0 -1
  267. package/dist/faqts/imports.d.ts +0 -74
  268. package/dist/faqts/imports.d.ts.map +0 -1
  269. package/dist/faqts/imports.js +0 -95
  270. package/dist/faqts/imports.js.map +0 -1
  271. package/dist/faqts/index.d.ts +0 -22
  272. package/dist/faqts/index.d.ts.map +0 -1
  273. package/dist/faqts/index.js +0 -21
  274. package/dist/faqts/index.js.map +0 -1
  275. package/dist/faqts/node.d.ts +0 -23
  276. package/dist/faqts/node.d.ts.map +0 -1
  277. package/dist/faqts/node.js +0 -23
  278. package/dist/faqts/node.js.map +0 -1
  279. package/dist/faqts/run.d.ts +0 -62
  280. package/dist/faqts/run.d.ts.map +0 -1
  281. package/dist/faqts/run.js +0 -62
  282. package/dist/faqts/run.js.map +0 -1
  283. package/dist/faqts/transform.d.ts +0 -43
  284. package/dist/faqts/transform.d.ts.map +0 -1
  285. package/dist/faqts/transform.js +0 -35
  286. package/dist/faqts/transform.js.map +0 -1
  287. package/dist/lang/compile.d.ts +0 -50
  288. package/dist/lang/compile.d.ts.map +0 -1
  289. package/dist/lang/compile.js +0 -368
  290. package/dist/lang/compile.js.map +0 -1
  291. package/dist/lang/keep.d.ts +0 -109
  292. package/dist/lang/keep.d.ts.map +0 -1
  293. package/dist/lang/keep.js +0 -226
  294. package/dist/lang/keep.js.map +0 -1
  295. package/dist/lang/parser.d.ts +0 -91
  296. package/dist/lang/parser.d.ts.map +0 -1
  297. package/dist/lang/parser.js +0 -1594
  298. package/dist/lang/parser.js.map +0 -1
  299. package/dist/mesh/drill-hole/DrillHoleCore.d.ts +0 -90
  300. package/dist/mesh/drill-hole/DrillHoleCore.d.ts.map +0 -1
  301. package/dist/mesh/drill-hole/DrillHoleCore.js +0 -287
  302. package/dist/mesh/drill-hole/DrillHoleCore.js.map +0 -1
  303. package/dist/mesh/drill-hole/drill-types.d.ts +0 -34
  304. package/dist/mesh/drill-hole/drill-types.d.ts.map +0 -1
  305. package/dist/mesh/drill-hole/drill-types.js +0 -7
  306. package/dist/mesh/drill-hole/drill-types.js.map +0 -1
  307. package/dist/mesh/fai_drill.d.ts +0 -21
  308. package/dist/mesh/fai_drill.d.ts.map +0 -1
  309. package/dist/mesh/fai_drill.js +0 -92
  310. package/dist/mesh/fai_drill.js.map +0 -1
  311. package/dist/mesh/fai_extrude.d.ts +0 -24
  312. package/dist/mesh/fai_extrude.d.ts.map +0 -1
  313. package/dist/mesh/fai_extrude.js +0 -42
  314. package/dist/mesh/fai_extrude.js.map +0 -1
  315. package/dist/mesh/fai_split.d.ts +0 -164
  316. package/dist/mesh/fai_split.d.ts.map +0 -1
  317. package/dist/mesh/fai_split.js +0 -269
  318. package/dist/mesh/fai_split.js.map +0 -1
  319. package/dist/primitives/svg-extrude.d.ts +0 -43
  320. package/dist/primitives/svg-extrude.d.ts.map +0 -1
  321. package/dist/primitives/svg-extrude.js +0 -78
  322. package/dist/primitives/svg-extrude.js.map +0 -1
  323. package/dist/primitives/text/cjk.d.ts +0 -61
  324. package/dist/primitives/text/cjk.d.ts.map +0 -1
  325. package/dist/primitives/text/cjk.js +0 -215
  326. package/dist/primitives/text/cjk.js.map +0 -1
  327. package/dist/primitives/text-geometry.d.ts +0 -47
  328. package/dist/primitives/text-geometry.d.ts.map +0 -1
  329. package/dist/primitives/text-geometry.js +0 -127
  330. package/dist/primitives/text-geometry.js.map +0 -1
  331. package/dist/test-helpers.d.ts +0 -31
  332. package/dist/test-helpers.d.ts.map +0 -1
  333. package/dist/test-helpers.js +0 -55
  334. package/dist/test-helpers.js.map +0 -1
  335. package/dist/vendored/brepjs/core/kernelReentrancy.d.ts +0 -41
  336. package/dist/vendored/brepjs/core/kernelReentrancy.d.ts.map +0 -1
  337. package/dist/vendored/brepjs/core/kernelReentrancy.js +0 -68
  338. package/dist/vendored/brepjs/core/kernelReentrancy.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * generated/topology.ts — 生成文件,勿手改。
3
3
  * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。
4
- * topology 模块:129 个投影符号;另有 173 个 skip 登记。
4
+ * topology 模块:128 个投影符号;另有 174 个 skip 登记。
5
5
  */
6
6
  import { compatOp } from '../internal/compat-op.js';
7
7
  import { projectBrepOp } from '../internal/compat-projection.js';
@@ -14,7 +14,6 @@ import { rotate as __vendored_rotate } from '../../vendored/brepjs/topology/api.
14
14
  import { mirror as __vendored_mirror } from '../../vendored/brepjs/topology/api.js';
15
15
  import { clone as __vendored_clone } from '../../vendored/brepjs/topology/api.js';
16
16
  import { applyMatrix as __vendored_applyMatrix } from '../../vendored/brepjs/topology/api.js';
17
- import { transformCopy as __vendored_transformCopy } from '../../vendored/brepjs/topology/api.js';
18
17
  import { locate as __vendored_locate } from '../../vendored/brepjs/topology/api.js';
19
18
  import { section as __vendored_section } from '../../vendored/brepjs/topology/api.js';
20
19
  import { split as __vendored_split } from '../../vendored/brepjs/topology/api.js';
@@ -35,13 +34,13 @@ import { fixSelfIntersection as __vendored_fixSelfIntersection } from '../../ven
35
34
  * (majorRadius: number, minorRadius: number, options?: TorusOptions)
36
35
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
37
36
  */
38
- export const torus = compatOp(projectBrepOp('torus', ["majorRadius", "minorRadius", "options"], 'A', __vendored_torus), { name: 'torus', naming: { "kind": "unmodeled", "reason": "construct vocabulary pending Phase 3" } });
37
+ export const torus = compatOp(projectBrepOp('torus', ["majorRadius", "minorRadius", "options"], 'A', __vendored_torus), { name: 'torus', naming: { "kind": "unmodeled", "reason": "construct vocabulary pending Phase 3" }, capabilities: ["dispose", "makeTorus"] });
39
38
  /**
40
39
  * fuse — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
41
40
  * (a: Shape3D, b: Shape3D, options?: BooleanOptions) -> Result<Shape3D>
42
41
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
43
42
  */
44
- export const fuse = compatOp(projectBrepOp('fuse', ["a", "b", "options"], 'A', __vendored_fuse), { name: 'fuse', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
43
+ export const fuse = compatOp(projectBrepOp('fuse', ["a", "b", "options"], 'A', __vendored_fuse), { name: 'fuse', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "fuse", "fuseWithHistory", "isNull"] });
45
44
  /**
46
45
  * getBounds — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。
47
46
  * (shape: AnyShape) -> Bounds3D
@@ -58,80 +57,74 @@ export function getBounds(shape) {
58
57
  * ellipsoid(rx: number, ry: number, rz: number, options?: EllipsoidOptions): Shape
59
58
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
60
59
  */
61
- export const ellipsoid = compatOp(projectBrepOp('ellipsoid', ["rx", "ry", "rz", "options"], 'A', __vendored_ellipsoid), { name: 'ellipsoid', naming: { "kind": "unmodeled", "reason": "construct vocabulary pending Phase 3" } });
60
+ export const ellipsoid = compatOp(projectBrepOp('ellipsoid', ["rx", "ry", "rz", "options"], 'A', __vendored_ellipsoid), { name: 'ellipsoid', naming: { "kind": "unmodeled", "reason": "construct vocabulary pending Phase 3" }, capabilities: ["dispose", "makeEllipsoid", "translateWithHistory"] });
62
61
  /**
63
62
  * rotate — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
64
63
  * rotate(shape: Shape, angle: number, options?: { at?, axis? }): Shape
65
64
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
66
65
  */
67
- export const rotate = compatOp(projectBrepOp('rotate', ["shape", "angle", "options"], 'A', __vendored_rotate), { name: 'rotate', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
66
+ export const rotate = compatOp(projectBrepOp('rotate', ["shape", "angle", "options"], 'A', __vendored_rotate), { name: 'rotate', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "rotateWithHistory"] });
68
67
  /**
69
68
  * mirror — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
70
69
  * mirror(shape: Shape, options?: MirrorOptions): Shape
71
70
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
72
71
  */
73
- export const mirror = compatOp(projectBrepOp('mirror', ["shape", "options"], 'A', __vendored_mirror), { name: 'mirror', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
72
+ export const mirror = compatOp(projectBrepOp('mirror', ["shape", "options"], 'A', __vendored_mirror), { name: 'mirror', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "mirrorWithHistory"] });
74
73
  /**
75
74
  * clone — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
76
75
  * clone(shape: Shape): Shape
77
76
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
78
77
  */
79
- export const clone = compatOp(projectBrepOp('clone', ["shape"], 'A', __vendored_clone), { name: 'clone', naming: { "kind": "identity" } });
78
+ export const clone = compatOp(projectBrepOp('clone', ["shape"], 'A', __vendored_clone), { name: 'clone', naming: { "kind": "identity" }, capabilities: ["copyShape", "dispose"] });
80
79
  /**
81
80
  * applyMatrix — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
82
81
  * applyMatrix(shape: Shape, matrix: unknown): Shape
83
82
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
84
83
  */
85
- export const applyMatrix = compatOp(projectBrepOp('applyMatrix', ["shape", "matrix"], 'A', __vendored_applyMatrix), { name: 'applyMatrix', naming: { "kind": "identity" } });
86
- /**
87
- * transformCopy — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
88
- * transformCopy(shape: Shape, composed: ComposedTransform): Shape
89
- * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
90
- */
91
- export const transformCopy = compatOp(projectBrepOp('transformCopy', ["shape", "composed"], 'A', __vendored_transformCopy), { name: 'transformCopy', naming: { "kind": "identity" } });
84
+ export const applyMatrix = compatOp(projectBrepOp('applyMatrix', ["shape", "matrix"], 'A', __vendored_applyMatrix), { name: 'applyMatrix', naming: { "kind": "identity" }, capabilities: ["dispose", "generalTransformNonOrthogonal", "generalTransformWithHistory", "hashCode", "iterShapes", "surfaceCenterOfMass", "surfaceNormal", "surfaceType", "uvBounds"] });
92
85
  /**
93
86
  * locate — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
94
87
  * locate(shape: Shape, placement: unknown): Shape
95
88
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
96
89
  */
97
- export const locate = compatOp(projectBrepOp('locate', ["shape", "placement"], 'A', __vendored_locate), { name: 'locate', naming: { "kind": "identity" } });
90
+ export const locate = compatOp(projectBrepOp('locate', ["shape", "placement"], 'A', __vendored_locate), { name: 'locate', naming: { "kind": "identity" }, capabilities: ["composeTransform", "dispose", "hashCode", "locate"] });
98
91
  export { composeTransforms } from '../../vendored/brepjs/topology/api.js';
99
92
  /**
100
93
  * section — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
101
94
  * section(shape: Shape, plane: PlaneInput): Shape
102
95
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
103
96
  */
104
- export const section = compatOp(projectBrepOp('section', ["shape", "plane"], 'A', __vendored_section), { name: 'section', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
97
+ export const section = compatOp(projectBrepOp('section', ["shape", "plane"], 'A', __vendored_section), { name: 'section', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "isNull", "section"] });
105
98
  /**
106
99
  * split — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
107
100
  * split(shape: Shape, tools: Shape[]): Shape
108
101
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
109
102
  */
110
- export const split = compatOp(projectBrepOp('split', ["shape", "tools"], 'A', __vendored_split), { name: 'split', naming: { "kind": "subdivide" } });
103
+ export const split = compatOp(projectBrepOp('split', ["shape", "tools"], 'A', __vendored_split), { name: 'split', naming: { "kind": "subdivide" }, capabilities: ["dispose", "isNull", "split"] });
111
104
  /**
112
105
  * shell — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
113
106
  * shell(shape: Shape, faces?: Shape[], thickness: number): Shape
114
107
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
115
108
  */
116
- export const shell = compatOp(projectBrepOp('shell', ["shape", "faces", "thickness"], 'A', __vendored_shell), { name: 'shell', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
109
+ export const shell = compatOp(projectBrepOp('shell', ["shape", "faces", "thickness"], 'A', __vendored_shell), { name: 'shell', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "shapeType", "shell", "shellWithHistory"] });
117
110
  /**
118
111
  * offset — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
119
112
  * offset(shape: Shape, distance: number): Shape
120
113
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
121
114
  */
122
- export const offset = compatOp(projectBrepOp('offset', ["shape", "distance"], 'A', __vendored_offset), { name: 'offset', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
115
+ export const offset = compatOp(projectBrepOp('offset', ["shape", "distance"], 'A', __vendored_offset), { name: 'offset', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "offsetWithHistory", "shapeType"] });
123
116
  /**
124
117
  * heal — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
125
118
  * heal(shape: Shape): Shape
126
119
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
127
120
  */
128
- export const heal = compatOp(projectBrepOp('heal', ["shape"], 'A', __vendored_heal), { name: 'heal', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
121
+ export const heal = compatOp(projectBrepOp('heal', ["shape"], 'A', __vendored_heal), { name: 'heal', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "healFace", "healSolid", "healWire", "isValid", "shapeType"] });
129
122
  /**
130
123
  * simplify — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
131
124
  * simplify(shape: Shape): Shape
132
125
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
133
126
  */
134
- export const simplify = compatOp(projectBrepOp('simplify', ["shape"], 'A', __vendored_simplify), { name: 'simplify', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
127
+ export const simplify = compatOp(projectBrepOp('simplify', ["shape"], 'A', __vendored_simplify), { name: 'simplify', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "simplify"] });
135
128
  /**
136
129
  * isValid — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。
137
130
  * isValid(shape: Shape): boolean
@@ -181,25 +174,25 @@ export function isSameShape(shape) {
181
174
  * autoHeal(shape: Shape, options?: AutoHealOptions): Shape
182
175
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
183
176
  */
184
- export const autoHeal = compatOp(projectBrepOp('autoHeal', ["shape", "options"], 'A', __vendored_autoHeal), { name: 'autoHeal', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
177
+ export const autoHeal = compatOp(projectBrepOp('autoHeal', ["shape", "options"], 'A', __vendored_autoHeal), { name: 'autoHeal', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "fixSelfIntersection", "healFace", "healSolid", "healWire", "isValid", "iterShapes", "sew", "shapeType"] });
185
178
  /**
186
179
  * fixShape — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
187
180
  * fixShape(shape: Shape): Shape
188
181
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
189
182
  */
190
- export const fixShape = compatOp(projectBrepOp('fixShape', ["shape"], 'A', __vendored_fixShape), { name: 'fixShape', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
183
+ export const fixShape = compatOp(projectBrepOp('fixShape', ["shape"], 'A', __vendored_fixShape), { name: 'fixShape', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["fixShape"] });
191
184
  /**
192
185
  * healSolid — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
193
186
  * healSolid(solid: Shape): Shape
194
187
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
195
188
  */
196
- export const healSolid = compatOp(projectBrepOp('healSolid', ["solid"], 'A', __vendored_healSolid), { name: 'healSolid', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
189
+ export const healSolid = compatOp(projectBrepOp('healSolid', ["solid"], 'A', __vendored_healSolid), { name: 'healSolid', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "healSolid", "isValid", "shapeType"] });
197
190
  /**
198
191
  * fixSelfIntersection — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。
199
192
  * fixSelfIntersection(shape: Shape): Shape
200
193
  * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。
201
194
  */
202
- export const fixSelfIntersection = compatOp(projectBrepOp('fixSelfIntersection', ["shape"], 'A', __vendored_fixSelfIntersection), { name: 'fixSelfIntersection', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } } });
195
+ export const fixSelfIntersection = compatOp(projectBrepOp('fixSelfIntersection', ["shape"], 'A', __vendored_fixSelfIntersection), { name: 'fixSelfIntersection', naming: { "kind": "kernel", "newFaces": { "via": "byAdjacency" } }, capabilities: ["dispose", "fixSelfIntersection", "shapeType"] });
203
196
  export { isNumber } from '../../vendored/brepjs/topology/index.js';
204
197
  export { isChamferRadius } from '../../vendored/brepjs/topology/index.js';
205
198
  export { isFilletRadius } from '../../vendored/brepjs/topology/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"topology.js","sourceRoot":"","sources":["../../../src/api/generated/topology.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * generated/topology.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * topology 模块:129 个投影符号;另有 173 个 skip 登记。\n */\nimport { compatOp } from '../internal/compat-op'\nimport { projectBrepOp } from '../internal/compat-projection'\nimport { borrowBrepjsShape, callBrepjs } from '../internal/l3-bridge'\nimport type { Shape } from '../../mesh/types'\nimport { torus as __vendored_torus } from '../../vendored/brepjs/topology/primitiveFns.js'\nimport { fuse as __vendored_fuse } from '../../vendored/brepjs/topology/booleanFns.js'\nimport { getBounds as __vendored_getBounds } from '../../vendored/brepjs/topology/shapeFns.js'\nimport type { Bounds3D } from '../../vendored/brepjs/topology/shapeFns.js'\nimport { ellipsoid as __vendored_ellipsoid } from '../../vendored/brepjs/topology/primitiveFns.js'\nimport { rotate as __vendored_rotate } from '../../vendored/brepjs/topology/api.js'\nimport { mirror as __vendored_mirror } from '../../vendored/brepjs/topology/api.js'\nimport { clone as __vendored_clone } from '../../vendored/brepjs/topology/api.js'\nimport { applyMatrix as __vendored_applyMatrix } from '../../vendored/brepjs/topology/api.js'\nimport { transformCopy as __vendored_transformCopy } from '../../vendored/brepjs/topology/api.js'\nimport { locate as __vendored_locate } from '../../vendored/brepjs/topology/api.js'\nimport { section as __vendored_section } from '../../vendored/brepjs/topology/api.js'\nimport { split as __vendored_split } from '../../vendored/brepjs/topology/api.js'\nimport { shell as __vendored_shell } from '../../vendored/brepjs/topology/api.js'\nimport { offset as __vendored_offset } from '../../vendored/brepjs/topology/api.js'\nimport { heal as __vendored_heal } from '../../vendored/brepjs/topology/api.js'\nimport { simplify as __vendored_simplify } from '../../vendored/brepjs/topology/api.js'\nimport { isValid as __vendored_isValid } from '../../vendored/brepjs/topology/api.js'\nimport { isEmpty as __vendored_isEmpty } from '../../vendored/brepjs/topology/api.js'\nimport { isEqualShape as __vendored_isEqualShape } from '../../vendored/brepjs/topology/shapeFns.js'\nimport { isSameShape as __vendored_isSameShape } from '../../vendored/brepjs/topology/shapeFns.js'\nimport { autoHeal as __vendored_autoHeal } from '../../vendored/brepjs/topology/healingFns.js'\nimport { fixShape as __vendored_fixShape } from '../../vendored/brepjs/topology/healingFns.js'\nimport { healSolid as __vendored_healSolid } from '../../vendored/brepjs/topology/healingFns.js'\nimport { fixSelfIntersection as __vendored_fixSelfIntersection } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { Bounds3D } from '../../vendored/brepjs/topology/shapeFns.js'\n\n/**\n * torus — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * (majorRadius: number, minorRadius: number, options?: TorusOptions)\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const torus = compatOp(\n projectBrepOp('torus', [\"majorRadius\",\"minorRadius\",\"options\"], 'A', __vendored_torus),\n { name: 'torus', naming: {\"kind\":\"unmodeled\",\"reason\":\"construct vocabulary pending Phase 3\"} },\n)\n\n/**\n * fuse — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * (a: Shape3D, b: Shape3D, options?: BooleanOptions) -> Result<Shape3D>\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const fuse = compatOp(\n projectBrepOp('fuse', [\"a\",\"b\",\"options\"], 'A', __vendored_fuse),\n { name: 'fuse', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * getBounds — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * (shape: AnyShape) -> Bounds3D\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns Bounds3D — 纯数据结果(非 Shape)。\n */\nexport function getBounds(shape: Shape): Bounds3D {\n return callBrepjs(__vendored_getBounds, [borrowBrepjsShape(shape as Shape)])\n}\n\nexport type { ComposedTransform } from '../../vendored/brepjs/topology/api.js'\n\nexport type { MirrorOptions } from '../../vendored/brepjs/topology/api.js'\n\nexport type { RotateOptions } from '../../vendored/brepjs/topology/api.js'\n\nexport type { ScaleOptions } from '../../vendored/brepjs/topology/api.js'\n\nexport type { TransformOp } from '../../vendored/brepjs/topology/api.js'\n\nexport type { BossOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { ChamferDistance } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DraftAngle } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DraftOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DrawingLike } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DrillOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { FilletRadius } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { FinderFn } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { MirrorJoinOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { PocketOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { RectangularPatternOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { Shapeable } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { WrappedMarker } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { BatchBisectResult } from '../../vendored/brepjs/topology/booleanBatchFns.js'\n\nexport type { BatchBisectTelemetry } from '../../vendored/brepjs/topology/booleanBatchFns.js'\n\nexport type { BooleanOptions } from '../../vendored/brepjs/topology/booleanFns.js'\n\nexport type { BooleanPipelineStep } from '../../vendored/brepjs/topology/booleanFns.js'\n\nexport type { PipelineOp } from '../../vendored/brepjs/topology/booleanFns.js'\n\nexport type { ApproximateCurveOptions } from '../../vendored/brepjs/topology/curveFns.js'\n\nexport type { InterpolateCurveOptions } from '../../vendored/brepjs/topology/curveFns.js'\n\nexport type { EvolutionResult } from '../../vendored/brepjs/topology/evolutionFns.js'\n\nexport type { PointProjectionResult } from '../../vendored/brepjs/topology/faceFns.js'\n\nexport type { UVBounds } from '../../vendored/brepjs/topology/faceFns.js'\n\nexport type { AutoHealOptions } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { HealingReport } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { HealingStepDiagnostic } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { HullOptions } from '../../vendored/brepjs/topology/hullFns.js'\n\nexport type { ChamferRadius } from '../../vendored/brepjs/topology/index.js'\n\nexport type { GenericTopo } from '../../vendored/brepjs/topology/index.js'\n\nexport type { RadiusOptions } from '../../vendored/brepjs/topology/index.js'\n\nexport type { TopoEntity } from '../../vendored/brepjs/topology/index.js'\n\nexport type { MeshCacheContext } from '../../vendored/brepjs/topology/meshCache.js'\n\nexport type { EdgeMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { LODMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshLevelFn } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshLODsOptions } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshLODsProgressiveOptions } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshOptions } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MultiLODMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { ShapeMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { Color } from '../../vendored/brepjs/topology/metadata/colorFns.js'\n\nexport type { ColorInput } from '../../vendored/brepjs/topology/metadata/colorFns.js'\n\nexport type { MinkowskiOptions } from '../../vendored/brepjs/topology/minkowskiFns.js'\n\nexport type { VariableFilletRadius } from '../../vendored/brepjs/topology/modifierFns.js'\n\nexport type { PolyhedronOptions } from '../../vendored/brepjs/topology/polyhedronFns.js'\n\nexport type { BoxOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { CircleOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { ConeOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { CylinderOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { EllipseArcOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { EllipseOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { EllipsoidOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { HelixOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { SphereOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { TorusOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { ShapeDescription } from '../../vendored/brepjs/topology/shapeFns.js'\n\nexport type { BrokenDerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenEdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenReason } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenVertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { DerivedFaceHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { DerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { EdgeHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { EdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { FaceScorer } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { GeometricHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { LineageRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { LineageResolution } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedDerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedEdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedEntity } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedVertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { RoleTable } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ShapeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { VertexHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { VertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { SurfaceFromGridOptions } from '../../vendored/brepjs/topology/surfaceFns.js'\n\nexport type { SurfaceFromImageOptions } from '../../vendored/brepjs/topology/surfaceFns.js'\n\nexport type { BufferGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { BufferGeometryGroup } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { GroupedBufferGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { LineGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { LODGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { LODGeometryLevel } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { Wrapped } from '../../vendored/brepjs/topology/wrapperFns.js'\n\nexport type { Wrapped3D } from '../../vendored/brepjs/topology/wrapperFns.js'\n\nexport type { WrappedCurve } from '../../vendored/brepjs/topology/wrapperFns.js'\n\nexport type { WrappedFace } from '../../vendored/brepjs/topology/wrapperFns.js'\n\n/**\n * ellipsoid — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * ellipsoid(rx: number, ry: number, rz: number, options?: EllipsoidOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const ellipsoid = compatOp(\n projectBrepOp('ellipsoid', [\"rx\",\"ry\",\"rz\",\"options\"], 'A', __vendored_ellipsoid),\n { name: 'ellipsoid', naming: {\"kind\":\"unmodeled\",\"reason\":\"construct vocabulary pending Phase 3\"} },\n)\n\n/**\n * rotate — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * rotate(shape: Shape, angle: number, options?: { at?, axis? }): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const rotate = compatOp(\n projectBrepOp('rotate', [\"shape\",\"angle\",\"options\"], 'A', __vendored_rotate),\n { name: 'rotate', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * mirror — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * mirror(shape: Shape, options?: MirrorOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const mirror = compatOp(\n projectBrepOp('mirror', [\"shape\",\"options\"], 'A', __vendored_mirror),\n { name: 'mirror', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * clone — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * clone(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const clone = compatOp(\n projectBrepOp('clone', [\"shape\"], 'A', __vendored_clone),\n { name: 'clone', naming: {\"kind\":\"identity\"} },\n)\n\n/**\n * applyMatrix — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * applyMatrix(shape: Shape, matrix: unknown): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const applyMatrix = compatOp(\n projectBrepOp('applyMatrix', [\"shape\",\"matrix\"], 'A', __vendored_applyMatrix),\n { name: 'applyMatrix', naming: {\"kind\":\"identity\"} },\n)\n\n/**\n * transformCopy — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * transformCopy(shape: Shape, composed: ComposedTransform): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const transformCopy = compatOp(\n projectBrepOp('transformCopy', [\"shape\",\"composed\"], 'A', __vendored_transformCopy),\n { name: 'transformCopy', naming: {\"kind\":\"identity\"} },\n)\n\n/**\n * locate — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * locate(shape: Shape, placement: unknown): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const locate = compatOp(\n projectBrepOp('locate', [\"shape\",\"placement\"], 'A', __vendored_locate),\n { name: 'locate', naming: {\"kind\":\"identity\"} },\n)\n\nexport { composeTransforms } from '../../vendored/brepjs/topology/api.js'\n\n/**\n * section — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * section(shape: Shape, plane: PlaneInput): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const section = compatOp(\n projectBrepOp('section', [\"shape\",\"plane\"], 'A', __vendored_section),\n { name: 'section', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * split — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * split(shape: Shape, tools: Shape[]): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const split = compatOp(\n projectBrepOp('split', [\"shape\",\"tools\"], 'A', __vendored_split),\n { name: 'split', naming: {\"kind\":\"subdivide\"} },\n)\n\n/**\n * shell — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * shell(shape: Shape, faces?: Shape[], thickness: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const shell = compatOp(\n projectBrepOp('shell', [\"shape\",\"faces\",\"thickness\"], 'A', __vendored_shell),\n { name: 'shell', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * offset — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * offset(shape: Shape, distance: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const offset = compatOp(\n projectBrepOp('offset', [\"shape\",\"distance\"], 'A', __vendored_offset),\n { name: 'offset', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * heal — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * heal(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const heal = compatOp(\n projectBrepOp('heal', [\"shape\"], 'A', __vendored_heal),\n { name: 'heal', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * simplify — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * simplify(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const simplify = compatOp(\n projectBrepOp('simplify', [\"shape\"], 'A', __vendored_simplify),\n { name: 'simplify', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * isValid — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isValid(shape: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isValid(shape: Shape): boolean {\n return callBrepjs(__vendored_isValid, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * isEmpty — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isEmpty(shape: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isEmpty(shape: Shape): boolean {\n return callBrepjs(__vendored_isEmpty, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * isEqualShape — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isEqualShape(a: Shape, b: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isEqualShape(shape: Shape): boolean {\n return callBrepjs(__vendored_isEqualShape, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * isSameShape — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isSameShape(a: Shape, b: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isSameShape(shape: Shape): boolean {\n return callBrepjs(__vendored_isSameShape, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * autoHeal — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * autoHeal(shape: Shape, options?: AutoHealOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const autoHeal = compatOp(\n projectBrepOp('autoHeal', [\"shape\",\"options\"], 'A', __vendored_autoHeal),\n { name: 'autoHeal', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * fixShape — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * fixShape(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const fixShape = compatOp(\n projectBrepOp('fixShape', [\"shape\"], 'A', __vendored_fixShape),\n { name: 'fixShape', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * healSolid — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * healSolid(solid: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const healSolid = compatOp(\n projectBrepOp('healSolid', [\"solid\"], 'A', __vendored_healSolid),\n { name: 'healSolid', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\n/**\n * fixSelfIntersection — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * fixSelfIntersection(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const fixSelfIntersection = compatOp(\n projectBrepOp('fixSelfIntersection', [\"shape\"], 'A', __vendored_fixSelfIntersection),\n { name: 'fixSelfIntersection', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}} },\n)\n\nexport { isNumber } from '../../vendored/brepjs/topology/index.js'\n\nexport { isChamferRadius } from '../../vendored/brepjs/topology/index.js'\n\nexport { isFilletRadius } from '../../vendored/brepjs/topology/index.js'\n\nexport { isLineageRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isEdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isVertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isDerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n"]}
1
+ {"version":3,"file":"topology.js","sourceRoot":"","sources":["../../../src/api/generated/topology.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * generated/topology.ts — 生成文件,勿手改。\n * 由 packages/core/scripts/gen-l3-surface.ts 依据 api/surface/arg-spec.ts 生成(E5/P14 分片)。\n * topology 模块:128 个投影符号;另有 174 个 skip 登记。\n */\nimport { compatOp } from '../internal/compat-op'\nimport { projectBrepOp } from '../internal/compat-projection'\nimport { borrowBrepjsShape, callBrepjs } from '../internal/l3-bridge'\nimport type { Shape } from '../../mesh/types'\nimport { torus as __vendored_torus } from '../../vendored/brepjs/topology/primitiveFns.js'\nimport { fuse as __vendored_fuse } from '../../vendored/brepjs/topology/booleanFns.js'\nimport { getBounds as __vendored_getBounds } from '../../vendored/brepjs/topology/shapeFns.js'\nimport type { Bounds3D } from '../../vendored/brepjs/topology/shapeFns.js'\nimport { ellipsoid as __vendored_ellipsoid } from '../../vendored/brepjs/topology/primitiveFns.js'\nimport { rotate as __vendored_rotate } from '../../vendored/brepjs/topology/api.js'\nimport { mirror as __vendored_mirror } from '../../vendored/brepjs/topology/api.js'\nimport { clone as __vendored_clone } from '../../vendored/brepjs/topology/api.js'\nimport { applyMatrix as __vendored_applyMatrix } from '../../vendored/brepjs/topology/api.js'\nimport { locate as __vendored_locate } from '../../vendored/brepjs/topology/api.js'\nimport { section as __vendored_section } from '../../vendored/brepjs/topology/api.js'\nimport { split as __vendored_split } from '../../vendored/brepjs/topology/api.js'\nimport { shell as __vendored_shell } from '../../vendored/brepjs/topology/api.js'\nimport { offset as __vendored_offset } from '../../vendored/brepjs/topology/api.js'\nimport { heal as __vendored_heal } from '../../vendored/brepjs/topology/api.js'\nimport { simplify as __vendored_simplify } from '../../vendored/brepjs/topology/api.js'\nimport { isValid as __vendored_isValid } from '../../vendored/brepjs/topology/api.js'\nimport { isEmpty as __vendored_isEmpty } from '../../vendored/brepjs/topology/api.js'\nimport { isEqualShape as __vendored_isEqualShape } from '../../vendored/brepjs/topology/shapeFns.js'\nimport { isSameShape as __vendored_isSameShape } from '../../vendored/brepjs/topology/shapeFns.js'\nimport { autoHeal as __vendored_autoHeal } from '../../vendored/brepjs/topology/healingFns.js'\nimport { fixShape as __vendored_fixShape } from '../../vendored/brepjs/topology/healingFns.js'\nimport { healSolid as __vendored_healSolid } from '../../vendored/brepjs/topology/healingFns.js'\nimport { fixSelfIntersection as __vendored_fixSelfIntersection } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { Bounds3D } from '../../vendored/brepjs/topology/shapeFns.js'\n\n/**\n * torus — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * (majorRadius: number, minorRadius: number, options?: TorusOptions)\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const torus = compatOp(\n projectBrepOp('torus', [\"majorRadius\",\"minorRadius\",\"options\"], 'A', __vendored_torus),\n { name: 'torus', naming: {\"kind\":\"unmodeled\",\"reason\":\"construct vocabulary pending Phase 3\"}, capabilities: [\"dispose\",\"makeTorus\"] },\n)\n\n/**\n * fuse — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * (a: Shape3D, b: Shape3D, options?: BooleanOptions) -> Result<Shape3D>\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const fuse = compatOp(\n projectBrepOp('fuse', [\"a\",\"b\",\"options\"], 'A', __vendored_fuse),\n { name: 'fuse', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"fuse\",\"fuseWithHistory\",\"isNull\"] },\n)\n\n/**\n * getBounds — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * (shape: AnyShape) -> Bounds3D\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns Bounds3D — 纯数据结果(非 Shape)。\n */\nexport function getBounds(shape: Shape): Bounds3D {\n return callBrepjs(__vendored_getBounds, [borrowBrepjsShape(shape as Shape)])\n}\n\nexport type { ComposedTransform } from '../../vendored/brepjs/topology/api.js'\n\nexport type { MirrorOptions } from '../../vendored/brepjs/topology/api.js'\n\nexport type { RotateOptions } from '../../vendored/brepjs/topology/api.js'\n\nexport type { ScaleOptions } from '../../vendored/brepjs/topology/api.js'\n\nexport type { TransformOp } from '../../vendored/brepjs/topology/api.js'\n\nexport type { BossOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { ChamferDistance } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DraftAngle } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DraftOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DrawingLike } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { DrillOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { FilletRadius } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { FinderFn } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { MirrorJoinOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { PocketOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { RectangularPatternOptions } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { Shapeable } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { WrappedMarker } from '../../vendored/brepjs/topology/apiTypes.js'\n\nexport type { BatchBisectResult } from '../../vendored/brepjs/topology/booleanBatchFns.js'\n\nexport type { BatchBisectTelemetry } from '../../vendored/brepjs/topology/booleanBatchFns.js'\n\nexport type { BooleanOptions } from '../../vendored/brepjs/topology/booleanFns.js'\n\nexport type { BooleanPipelineStep } from '../../vendored/brepjs/topology/booleanFns.js'\n\nexport type { PipelineOp } from '../../vendored/brepjs/topology/booleanFns.js'\n\nexport type { ApproximateCurveOptions } from '../../vendored/brepjs/topology/curveFns.js'\n\nexport type { InterpolateCurveOptions } from '../../vendored/brepjs/topology/curveFns.js'\n\nexport type { EvolutionResult } from '../../vendored/brepjs/topology/evolutionFns.js'\n\nexport type { PointProjectionResult } from '../../vendored/brepjs/topology/faceFns.js'\n\nexport type { UVBounds } from '../../vendored/brepjs/topology/faceFns.js'\n\nexport type { AutoHealOptions } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { HealingReport } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { HealingStepDiagnostic } from '../../vendored/brepjs/topology/healingFns.js'\n\nexport type { HullOptions } from '../../vendored/brepjs/topology/hullFns.js'\n\nexport type { ChamferRadius } from '../../vendored/brepjs/topology/index.js'\n\nexport type { GenericTopo } from '../../vendored/brepjs/topology/index.js'\n\nexport type { RadiusOptions } from '../../vendored/brepjs/topology/index.js'\n\nexport type { TopoEntity } from '../../vendored/brepjs/topology/index.js'\n\nexport type { MeshCacheContext } from '../../vendored/brepjs/topology/meshCache.js'\n\nexport type { EdgeMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { LODMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshLevelFn } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshLODsOptions } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshLODsProgressiveOptions } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MeshOptions } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { MultiLODMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { ShapeMesh } from '../../vendored/brepjs/topology/meshFns.js'\n\nexport type { Color } from '../../vendored/brepjs/topology/metadata/colorFns.js'\n\nexport type { ColorInput } from '../../vendored/brepjs/topology/metadata/colorFns.js'\n\nexport type { MinkowskiOptions } from '../../vendored/brepjs/topology/minkowskiFns.js'\n\nexport type { VariableFilletRadius } from '../../vendored/brepjs/topology/modifierFns.js'\n\nexport type { PolyhedronOptions } from '../../vendored/brepjs/topology/polyhedronFns.js'\n\nexport type { BoxOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { CircleOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { ConeOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { CylinderOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { EllipseArcOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { EllipseOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { EllipsoidOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { HelixOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { SphereOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { TorusOptions } from '../../vendored/brepjs/topology/primitiveFns.js'\n\nexport type { ShapeDescription } from '../../vendored/brepjs/topology/shapeFns.js'\n\nexport type { BrokenDerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenEdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenReason } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { BrokenVertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { DerivedFaceHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { DerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { EdgeHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { EdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { FaceScorer } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { GeometricHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { LineageRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { LineageResolution } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedDerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedEdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedEntity } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ResolvedVertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { RoleTable } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { ShapeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { VertexHint } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { VertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport type { SurfaceFromGridOptions } from '../../vendored/brepjs/topology/surfaceFns.js'\n\nexport type { SurfaceFromImageOptions } from '../../vendored/brepjs/topology/surfaceFns.js'\n\nexport type { BufferGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { BufferGeometryGroup } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { GroupedBufferGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { LineGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { LODGeometryData } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { LODGeometryLevel } from '../../vendored/brepjs/topology/threeHelpers.js'\n\nexport type { Wrapped } from '../../vendored/brepjs/topology/wrapperFns.js'\n\nexport type { Wrapped3D } from '../../vendored/brepjs/topology/wrapperFns.js'\n\nexport type { WrappedCurve } from '../../vendored/brepjs/topology/wrapperFns.js'\n\nexport type { WrappedFace } from '../../vendored/brepjs/topology/wrapperFns.js'\n\n/**\n * ellipsoid — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * ellipsoid(rx: number, ry: number, rz: number, options?: EllipsoidOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const ellipsoid = compatOp(\n projectBrepOp('ellipsoid', [\"rx\",\"ry\",\"rz\",\"options\"], 'A', __vendored_ellipsoid),\n { name: 'ellipsoid', naming: {\"kind\":\"unmodeled\",\"reason\":\"construct vocabulary pending Phase 3\"}, capabilities: [\"dispose\",\"makeEllipsoid\",\"translateWithHistory\"] },\n)\n\n/**\n * rotate — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * rotate(shape: Shape, angle: number, options?: { at?, axis? }): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const rotate = compatOp(\n projectBrepOp('rotate', [\"shape\",\"angle\",\"options\"], 'A', __vendored_rotate),\n { name: 'rotate', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"rotateWithHistory\"] },\n)\n\n/**\n * mirror — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * mirror(shape: Shape, options?: MirrorOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const mirror = compatOp(\n projectBrepOp('mirror', [\"shape\",\"options\"], 'A', __vendored_mirror),\n { name: 'mirror', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"mirrorWithHistory\"] },\n)\n\n/**\n * clone — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * clone(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const clone = compatOp(\n projectBrepOp('clone', [\"shape\"], 'A', __vendored_clone),\n { name: 'clone', naming: {\"kind\":\"identity\"}, capabilities: [\"copyShape\",\"dispose\"] },\n)\n\n/**\n * applyMatrix — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * applyMatrix(shape: Shape, matrix: unknown): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const applyMatrix = compatOp(\n projectBrepOp('applyMatrix', [\"shape\",\"matrix\"], 'A', __vendored_applyMatrix),\n { name: 'applyMatrix', naming: {\"kind\":\"identity\"}, capabilities: [\"dispose\",\"generalTransformNonOrthogonal\",\"generalTransformWithHistory\",\"hashCode\",\"iterShapes\",\"surfaceCenterOfMass\",\"surfaceNormal\",\"surfaceType\",\"uvBounds\"] },\n)\n\n/**\n * locate — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * locate(shape: Shape, placement: unknown): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const locate = compatOp(\n projectBrepOp('locate', [\"shape\",\"placement\"], 'A', __vendored_locate),\n { name: 'locate', naming: {\"kind\":\"identity\"}, capabilities: [\"composeTransform\",\"dispose\",\"hashCode\",\"locate\"] },\n)\n\nexport { composeTransforms } from '../../vendored/brepjs/topology/api.js'\n\n/**\n * section — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * section(shape: Shape, plane: PlaneInput): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const section = compatOp(\n projectBrepOp('section', [\"shape\",\"plane\"], 'A', __vendored_section),\n { name: 'section', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"isNull\",\"section\"] },\n)\n\n/**\n * split — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * split(shape: Shape, tools: Shape[]): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const split = compatOp(\n projectBrepOp('split', [\"shape\",\"tools\"], 'A', __vendored_split),\n { name: 'split', naming: {\"kind\":\"subdivide\"}, capabilities: [\"dispose\",\"isNull\",\"split\"] },\n)\n\n/**\n * shell — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * shell(shape: Shape, faces?: Shape[], thickness: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const shell = compatOp(\n projectBrepOp('shell', [\"shape\",\"faces\",\"thickness\"], 'A', __vendored_shell),\n { name: 'shell', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"shapeType\",\"shell\",\"shellWithHistory\"] },\n)\n\n/**\n * offset — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * offset(shape: Shape, distance: number): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const offset = compatOp(\n projectBrepOp('offset', [\"shape\",\"distance\"], 'A', __vendored_offset),\n { name: 'offset', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"offsetWithHistory\",\"shapeType\"] },\n)\n\n/**\n * heal — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * heal(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const heal = compatOp(\n projectBrepOp('heal', [\"shape\"], 'A', __vendored_heal),\n { name: 'heal', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"healFace\",\"healSolid\",\"healWire\",\"isValid\",\"shapeType\"] },\n)\n\n/**\n * simplify — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * simplify(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const simplify = compatOp(\n projectBrepOp('simplify', [\"shape\"], 'A', __vendored_simplify),\n { name: 'simplify', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"simplify\"] },\n)\n\n/**\n * isValid — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isValid(shape: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isValid(shape: Shape): boolean {\n return callBrepjs(__vendored_isValid, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * isEmpty — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isEmpty(shape: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isEmpty(shape: Shape): boolean {\n return callBrepjs(__vendored_isEmpty, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * isEqualShape — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isEqualShape(a: Shape, b: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isEqualShape(shape: Shape): boolean {\n return callBrepjs(__vendored_isEqualShape, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * isSameShape — 查询(返回纯数据,非 Shape)生成文件,勿手改;来源 api/surface/arg-spec.ts。\n * isSameShape(a: Shape, b: Shape): boolean\n * 输入 faijs Shape 借入 brepjs handle → 调 vendored → 返回纯数据(查询表达式承载)。\n *\n * @param shape - 可形状参数(原样透传)\n * @returns boolean — 纯数据结果(非 Shape)。\n */\nexport function isSameShape(shape: Shape): boolean {\n return callBrepjs(__vendored_isSameShape, [borrowBrepjsShape(shape as Shape)])\n}\n\n/**\n * autoHeal — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * autoHeal(shape: Shape, options?: AutoHealOptions): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const autoHeal = compatOp(\n projectBrepOp('autoHeal', [\"shape\",\"options\"], 'A', __vendored_autoHeal),\n { name: 'autoHeal', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"fixSelfIntersection\",\"healFace\",\"healSolid\",\"healWire\",\"isValid\",\"iterShapes\",\"sew\",\"shapeType\"] },\n)\n\n/**\n * fixShape — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * fixShape(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const fixShape = compatOp(\n projectBrepOp('fixShape', [\"shape\"], 'A', __vendored_fixShape),\n { name: 'fixShape', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"fixShape\"] },\n)\n\n/**\n * healSolid — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * healSolid(solid: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const healSolid = compatOp(\n projectBrepOp('healSolid', [\"solid\"], 'A', __vendored_healSolid),\n { name: 'healSolid', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"healSolid\",\"isValid\",\"shapeType\"] },\n)\n\n/**\n * fixSelfIntersection — brepjs 投影(生成文件,禁手改;来源 api/surface/arg-spec.ts)。\n * fixSelfIntersection(shape: Shape): Shape\n * 桥接:compatOp(projectBrepOp(…))——单内核断言 + D11 归一 + 语句边界六步契约(§4.3.2)。\n */\nexport const fixSelfIntersection = compatOp(\n projectBrepOp('fixSelfIntersection', [\"shape\"], 'A', __vendored_fixSelfIntersection),\n { name: 'fixSelfIntersection', naming: {\"kind\":\"kernel\",\"newFaces\":{\"via\":\"byAdjacency\"}}, capabilities: [\"dispose\",\"fixSelfIntersection\",\"shapeType\"] },\n)\n\nexport { isNumber } from '../../vendored/brepjs/topology/index.js'\n\nexport { isChamferRadius } from '../../vendored/brepjs/topology/index.js'\n\nexport { isFilletRadius } from '../../vendored/brepjs/topology/index.js'\n\nexport { isLineageRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isEdgeRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isVertexRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n\nexport { isDerivedFaceRef } from '../../vendored/brepjs/topology/shapeRef/index.js'\n"]}
@@ -11,29 +11,20 @@
11
11
  */
12
12
  export { box, sphere, cylinder, cone, wedge } from './primitives.js';
13
13
  export { translate, rotate_euler, scale, scale3d } from './transform.js';
14
- export { fai_extrude } from './fai_extrude.js';
15
- export { fai_drill } from './fai_drill.js';
16
- export { fai_split } from './fai_split.js';
17
14
  export { union, subtract, intersect, cut } from './boolean.js';
18
15
  export { engrave } from './engrave.js';
19
16
  export { chamfer } from './chamfer.js';
20
17
  export { fillet } from './fillet.js';
21
- export { text } from './text.js';
22
18
  export { screw } from './screw.js';
23
- export { svgExtrude } from './svgExtrude.js';
24
19
  export { sketch } from './sketch.js';
25
20
  export { knurl } from './knurl.js';
26
- export { load } from './load.js';
27
21
  export { sdf } from './sdf.js';
28
- export { group, assembly } from './compound.js';
29
- export { applyTransform } from './compound.js';
22
+ export { applyTransform } from '../mesh/rigid-transform.js';
30
23
  export * from './assembly/index.js';
31
- export { copy } from './copy.js';
32
24
  export { import_brep } from './import-brep.js';
33
25
  export { import_step } from './import-step.js';
34
26
  export { compound } from './compound-geom.js';
35
27
  export { place } from './place.js';
36
- export type { AssemblyBehavior, AssemblyConstraint, FaceMateConstraint, FaceMateFace, AssemblySolveResult, EntityRef, FaceRef, EdgeRef, AssemblyVec3, MateConstraint, AlignConstraint, CoincidentConstraint, ConcentricConstraint, DistanceConstraint, AngleConstraint, ParallelConstraint, PerpendicularConstraint, FixedConstraint, StructuralConstraint, } from './compound.js';
37
28
  export { faceNormal, bboxCenter, bboxMin, bboxMax } from './geom.js';
38
29
  export { edgeRef } from './edge-ref.js';
39
30
  export { faceRef } from './face-ref.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAQjE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAG3B,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAKxD,cAAc,YAAY,CAAA;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrD,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,UAAU,CAAA;AACrD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAOzF,cAAc,yBAAyB,CAAA;AAOvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAShD,OAAO,EACL,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EACtC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EACnE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAC3C,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,OAAO,GACjB,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,MAAM,EAAE,EAAE,EAAE,GAAG,EACf,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAC1D,KAAK,EAAE,SAAS,EAAE,UAAU,EAC5B,IAAI,EAAE,UAAU,EAChB,QAAQ,GACT,MAAM,iBAAiB,CAAA;AAIxB,OAAO,EACL,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,EAC7D,GAAG,EAAE,OAAO,GACb,MAAM,iBAAiB,CAAA;AACxB,YAAY,EACV,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAC3D,YAAY,EAAE,UAAU,EAAE,qBAAqB,EAAE,aAAa,EAC9D,UAAU,EAAE,UAAU,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,YAAY,MAAM,iBAAiB,CAAA"}
package/dist/api/index.js CHANGED
@@ -14,34 +14,26 @@ export { box, sphere, cylinder, cone, wedge } from './primitives.js';
14
14
  // (translate/rotate_euler/scale/scale3d)为编辑器应用提供(拖拽 / 时间线语句),
15
15
  // 不属 faijs 平台面,但服务真实负载。**变更其 API 形态必须同步更新 `../3d_editor`**;
16
16
  // 各 op 的 JSDoc 已带校正后的 @deprecated。
17
+ //
18
+ // D1(2026-09-23 扩展库拆分,选项 C):四个 transform op **全部留 core**——
19
+ // `translate` 是通用几何变换且是小程序端唯一在用的 transform op,同族不拆散。
17
20
  export { translate, rotate_euler, scale, scale3d } from './transform.js';
18
- // `../3d_editor` 消费面(**不是废弃项**):`fai_` 前缀 op(fai_extrude / fai_drill /
19
- // fai_split)为编辑器应用提供,不属 faijs 平台面。**变更其 API 形态必须同步更新
20
- // `../3d_editor`**;各 op 的 JSDoc 已带校正后的 @deprecated。
21
- export { fai_extrude } from './fai_extrude.js';
22
- export { fai_drill } from './fai_drill.js';
23
- export { fai_split } from './fai_split.js';
24
21
  export { union, subtract, intersect, cut } from './boolean.js';
25
22
  export { engrave } from './engrave.js';
26
23
  export { chamfer } from './chamfer.js';
27
24
  export { fillet } from './fillet.js';
28
- export { text } from './text.js';
29
25
  export { screw } from './screw.js';
30
- export { svgExtrude } from './svgExtrude.js';
31
26
  export { sketch } from './sketch.js';
32
27
  export { knurl } from './knurl.js';
33
- export { load } from './load.js';
34
28
  export { sdf } from './sdf.js';
35
- // `../3d_editor` 消费面(**不是废弃项**,措辞于 2026-09-22 校正):group/assembly 为
36
- // 编辑器应用提供(无几何输出的结构分组 / 以编辑器结构语句声明的装配),不属 faijs 平台面;
37
- // **变更其 API 形态必须同步更新 `../3d_editor`**。
38
- export { group, assembly } from './compound.js';
39
- export { applyTransform } from './compound.js';
40
- // P2-f3:装配子层全量导出(solvePreview/entityFromGeometry 等经此到门面;
41
- // 与 ./compound 显式导出重名(assembly/AssemblyConstraint 等)时显式优先,不报错)
29
+ // 应用变换(mesh 顶点烘焙)下沉到引擎侧 src/mesh/rigid-transform.ts(E-b:
30
+ // 引擎不得 import stdlib/compound;公共 API 经本 re-export 保持)。
31
+ export { applyTransform } from '../mesh/rigid-transform.js';
32
+ // P2-f3:装配子层全量导出(solvePreview/entityFromGeometry 等经此到门面)。
33
+ // A/B 组 op(fai_* / group / assembly / copy / load / text / svgExtrude)已迁出
34
+ // core,见 @faicad/faijs-extra;装配**求解器**(solve/validate/joints/solvers)
35
+ // 仍是平台能力,留在此处。
42
36
  export * from './assembly/index.js';
43
- // DEPRECATED: copy 同上(语义含编辑器画布显示——源与副本各显示一份)。
44
- export { copy } from './copy.js';
45
37
  // ── H11:平台几何 op(方案 §4,替代 FCStd 迁移对编辑器 op 的借用)──
46
38
  export { import_brep } from './import-brep.js';
47
39
  export { import_step } from './import-step.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * L3 API 面(api/)— faijs 库函数命名空间(替代原 packages/stdlib)\n *\n * 设计文档:docs/plans/2026-09-01-layered-api-architecture.md §D1/D2(P6 迁入 core)\n *\n * 导出全部官方库函数、Shape 构造器与 schema 表。\n * 库函数签名 = .fai.js 源码里的调用形态(无隐式参数);\n * 后端资源经 getBackends() 获取,保留声明经 keep() 表达。\n * 实现来源按 D11:mesh 侧复用 mesh/ 层,brep 侧复用既有 brep/ 层;\n * 缺失 brep 能力时经 D10 桥接调移植树 L2(见各 op 实现)。\n */\n\nexport { box, sphere, cylinder, cone, wedge } from './primitives'\n// `../3d_editor` 消费面(**不是废弃项**,措辞于 2026-09-22 校正):transform 家族\n// (translate/rotate_euler/scale/scale3d)为编辑器应用提供(拖拽 / 时间线语句),\n// 不属 faijs 平台面,但服务真实负载。**变更其 API 形态必须同步更新 `../3d_editor`**;\n// 各 op 的 JSDoc 已带校正后的 @deprecated。\nexport { translate, rotate_euler, scale, scale3d } from './transform'\n// `../3d_editor` 消费面(**不是废弃项**):`fai_` 前缀 op(fai_extrude / fai_drill /\n// fai_split)为编辑器应用提供,不属 faijs 平台面。**变更其 API 形态必须同步更新\n// `../3d_editor`**;各 op 的 JSDoc 已带校正后的 @deprecated。\nexport { fai_extrude } from './fai_extrude'\nexport { fai_drill } from './fai_drill'\nexport { fai_split } from './fai_split'\nexport { union, subtract, intersect, cut } from './boolean'\nexport { engrave } from './engrave'\nexport { chamfer } from './chamfer'\nexport { fillet } from './fillet'\nexport { text } from './text'\nexport { screw } from './screw'\nexport { svgExtrude } from './svgExtrude'\nexport { sketch } from './sketch'\nexport { knurl } from './knurl'\nexport { load } from './load'\nexport { sdf } from './sdf'\n// `../3d_editor` 消费面(**不是废弃项**,措辞于 2026-09-22 校正):group/assembly 为\n// 编辑器应用提供(无几何输出的结构分组 / 以编辑器结构语句声明的装配),不属 faijs 平台面;\n// **变更其 API 形态必须同步更新 `../3d_editor`**。\nexport { group, assembly } from './compound'\nexport { applyTransform } from './compound'\n// P2-f3:装配子层全量导出(solvePreview/entityFromGeometry 等经此到门面;\n// 与 ./compound 显式导出重名(assembly/AssemblyConstraint 等)时显式优先,不报错)\nexport * from './assembly'\n// DEPRECATED: copy 同上(语义含编辑器画布显示——源与副本各显示一份)。\nexport { copy } from './copy'\n// ── H11:平台几何 op(方案 §4,替代 FCStd 迁移对编辑器 op 的借用)──\nexport { import_brep } from './import-brep'\nexport { import_step } from './import-step'\nexport { compound } from './compound-geom'\nexport { place } from './place'\nexport type {\n AssemblyBehavior, AssemblyConstraint, FaceMateConstraint, FaceMateFace,\n AssemblySolveResult,\n EntityRef, FaceRef, EdgeRef, AssemblyVec3,\n MateConstraint, AlignConstraint, CoincidentConstraint, ConcentricConstraint,\n DistanceConstraint, AngleConstraint, ParallelConstraint, PerpendicularConstraint,\n FixedConstraint, StructuralConstraint,\n} from './compound'\nexport { faceNormal, bboxCenter, bboxMin, bboxMax } from './geom'\nexport { edgeRef } from './edge-ref'\nexport { faceRef } from './face-ref'\nexport { asset } from './asset'\nexport { solid, isShape, isCompound } from '../shape'\nexport { compound as structCompound } from '../shape'\nexport type { ShapeSlot, SolidShape, CompoundShape, StdShape, ShapeKind } from '../shape'\n\n// ── P23:brepjs 兼容面接线(§4.2 / B1 三源一致)──\n//\n// ① 生成脚本面 op(与 api-namespace 的 cad 面同源:api/generated/script-face.ts)。\n// 这批 op 经 `compatOp(projectBrepOp(…))` 包装,faijs 形态(Shape 进 / Shape 出、\n// 布尔双形态、brep-only),TS 侧与 `.fai.js` 侧同语义。\nexport * from './generated/script-face'\n// P25: compat extrude/revolve (brep-only, face→prism / face→lathe) share one\n// definition between the TS surface and the cad scripting surface. The fcstd\n// codegen wires Pad/Pocket/Extrusion/Revolution through these (sketch face →\n// cad.extrude / cad.revolve).\n// extrude 是平台手写 op(承载 upTo;长度形态委托生成投影)——见 api/extrude.ts;\n// revolve 仍直接取生成投影。\nexport { extrude } from './extrude'\nexport { revolve } from './generated/operations'\n//\n// ② brepjs 形态的 TS 兼容面(P21)以 `brepjsCompat` 命名空间整体导出(库作者面:\n// 句柄进出、Result 语义)。**op 符号不在此处平铺**——`brepjsCompat.fuse`(brepjs\n// 句柄形态)与脚本面 `fuse`(compatOp 包装的 faijs 形态)是同一 vendored\n// 实现的两个投影,按「一个名字一份实现」红线(§6.3),平铺面只保留脚本面\n// 那份;库作者继续 `import { brepjsCompat } from '@faicad/faijs'` 用上游形态。\n// 此处只平铺**无 op 语义**的组合器与纯工具(Result / 向量 / 平面 / 错误 /\n// 常量),它们在两个面之间语义一致且无同名冲突。\nexport {\n ok, err, isOk, isErr, unwrap, unwrapOr,\n vecAdd, vecSub, vecScale, vecDot, vecCross, vecLength, vecNormalize,\n createPlane, createNamedPlane, resolvePlane,\n kernelError, validationError,\n DEG2RAD, RAD2DEG,\n} from './brepjs-compat'\nexport type {\n Result, Ok, Err,\n Vertex, Edge, Wire, Face, Shell, Solid, CompSolid, Shape3D,\n Plane, PlaneName, PlaneInput,\n Vec3, PointInput,\n Bounds3D,\n} from './brepjs-compat'\n// ── P24(§8.1):库建造工厂与 Result 组合器平铺。它们不是脚本面 op(不在\n// 符号表/`cad` 面),也不是 dual op——是库作者面的函数,与 P23 平铺的纯\n// 组合器同一规则(`makeExternalGear`/`thread`/`map` 无同名冲突,§6.3)。\nexport {\n makeExternalGear, makeInternalGear, makePlanetaryGear, thread,\n map, andThen,\n} from './brepjs-compat'\nexport type {\n ExternalGearParams, InternalGearParams, PlanetaryGearParams,\n GearGeometry, GearResult, PlanetaryGearAssembly, ThreadOptions,\n ValidSolid, ClosedWire,\n} from './brepjs-compat'\nexport * as brepjsCompat from './brepjs-compat'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * L3 API 面(api/)— faijs 库函数命名空间(替代原 packages/stdlib)\n *\n * 设计文档:docs/plans/2026-09-01-layered-api-architecture.md §D1/D2(P6 迁入 core)\n *\n * 导出全部官方库函数、Shape 构造器与 schema 表。\n * 库函数签名 = .fai.js 源码里的调用形态(无隐式参数);\n * 后端资源经 getBackends() 获取,保留声明经 keep() 表达。\n * 实现来源按 D11:mesh 侧复用 mesh/ 层,brep 侧复用既有 brep/ 层;\n * 缺失 brep 能力时经 D10 桥接调移植树 L2(见各 op 实现)。\n */\n\nexport { box, sphere, cylinder, cone, wedge } from './primitives'\n// `../3d_editor` 消费面(**不是废弃项**,措辞于 2026-09-22 校正):transform 家族\n// (translate/rotate_euler/scale/scale3d)为编辑器应用提供(拖拽 / 时间线语句),\n// 不属 faijs 平台面,但服务真实负载。**变更其 API 形态必须同步更新 `../3d_editor`**;\n// 各 op 的 JSDoc 已带校正后的 @deprecated。\n//\n// D1(2026-09-23 扩展库拆分,选项 C):四个 transform op **全部留 core**——\n// `translate` 是通用几何变换且是小程序端唯一在用的 transform op,同族不拆散。\nexport { translate, rotate_euler, scale, scale3d } from './transform'\nexport { union, subtract, intersect, cut } from './boolean'\nexport { engrave } from './engrave'\nexport { chamfer } from './chamfer'\nexport { fillet } from './fillet'\nexport { screw } from './screw'\nexport { sketch } from './sketch'\nexport { knurl } from './knurl'\nexport { sdf } from './sdf'\n// 应用变换(mesh 顶点烘焙)下沉到引擎侧 src/mesh/rigid-transform.ts(E-b:\n// 引擎不得 import stdlib/compound;公共 API 经本 re-export 保持)。\nexport { applyTransform } from '../mesh/rigid-transform'\n// P2-f3:装配子层全量导出(solvePreview/entityFromGeometry 等经此到门面)。\n// A/B 组 op(fai_* / group / assembly / copy / load / text / svgExtrude)已迁出\n// core,见 @faicad/faijs-extra;装配**求解器**(solve/validate/joints/solvers)\n// 仍是平台能力,留在此处。\nexport * from './assembly'\n// ── H11:平台几何 op(方案 §4,替代 FCStd 迁移对编辑器 op 的借用)──\nexport { import_brep } from './import-brep'\nexport { import_step } from './import-step'\nexport { compound } from './compound-geom'\nexport { place } from './place'\nexport { faceNormal, bboxCenter, bboxMin, bboxMax } from './geom'\nexport { edgeRef } from './edge-ref'\nexport { faceRef } from './face-ref'\nexport { asset } from './asset'\nexport { solid, isShape, isCompound } from '../shape'\nexport { compound as structCompound } from '../shape'\nexport type { ShapeSlot, SolidShape, CompoundShape, StdShape, ShapeKind } from '../shape'\n\n// ── P23:brepjs 兼容面接线(§4.2 / B1 三源一致)──\n//\n// ① 生成脚本面 op(与 api-namespace 的 cad 面同源:api/generated/script-face.ts)。\n// 这批 op 经 `compatOp(projectBrepOp(…))` 包装,faijs 形态(Shape 进 / Shape 出、\n// 布尔双形态、brep-only),TS 侧与 `.fai.js` 侧同语义。\nexport * from './generated/script-face'\n// P25: compat extrude/revolve (brep-only, face→prism / face→lathe) share one\n// definition between the TS surface and the cad scripting surface. The fcstd\n// codegen wires Pad/Pocket/Extrusion/Revolution through these (sketch face →\n// cad.extrude / cad.revolve).\n// extrude 是平台手写 op(承载 upTo;长度形态委托生成投影)——见 api/extrude.ts;\n// revolve 仍直接取生成投影。\nexport { extrude } from './extrude'\nexport { revolve } from './generated/operations'\n//\n// ② brepjs 形态的 TS 兼容面(P21)以 `brepjsCompat` 命名空间整体导出(库作者面:\n// 句柄进出、Result 语义)。**op 符号不在此处平铺**——`brepjsCompat.fuse`(brepjs\n// 句柄形态)与脚本面 `fuse`(compatOp 包装的 faijs 形态)是同一 vendored\n// 实现的两个投影,按「一个名字一份实现」红线(§6.3),平铺面只保留脚本面\n// 那份;库作者继续 `import { brepjsCompat } from '@faicad/faijs'` 用上游形态。\n// 此处只平铺**无 op 语义**的组合器与纯工具(Result / 向量 / 平面 / 错误 /\n// 常量),它们在两个面之间语义一致且无同名冲突。\nexport {\n ok, err, isOk, isErr, unwrap, unwrapOr,\n vecAdd, vecSub, vecScale, vecDot, vecCross, vecLength, vecNormalize,\n createPlane, createNamedPlane, resolvePlane,\n kernelError, validationError,\n DEG2RAD, RAD2DEG,\n} from './brepjs-compat'\nexport type {\n Result, Ok, Err,\n Vertex, Edge, Wire, Face, Shell, Solid, CompSolid, Shape3D,\n Plane, PlaneName, PlaneInput,\n Vec3, PointInput,\n Bounds3D,\n} from './brepjs-compat'\n// ── P24(§8.1):库建造工厂与 Result 组合器平铺。它们不是脚本面 op(不在\n// 符号表/`cad` 面),也不是 dual op——是库作者面的函数,与 P23 平铺的纯\n// 组合器同一规则(`makeExternalGear`/`thread`/`map` 无同名冲突,§6.3)。\nexport {\n makeExternalGear, makeInternalGear, makePlanetaryGear, thread,\n map, andThen,\n} from './brepjs-compat'\nexport type {\n ExternalGearParams, InternalGearParams, PlanetaryGearParams,\n GearGeometry, GearResult, PlanetaryGearAssembly, ThreadOptions,\n ValidSolid, ClosedWire,\n} from './brepjs-compat'\nexport * as brepjsCompat from './brepjs-compat'\n"]}
@@ -24,7 +24,9 @@ import { type FormClass } from './dual-form-args.js';
24
24
  *
25
25
  * Reads the configured backend's kernel slot, guarding against the throw that
26
26
  * `getBackends()` performs before host configuration. Falls back to the
27
- * occt-kernel binding flag when nothing is configured.
27
+ * vendored kernel-registry injection flag (engine-neutral, Phase 2 P2-5: the
28
+ * registry is injected with the current BREP engine during assembly, not
29
+ * hard-bound to occt) when nothing is configured.
28
30
  *
29
31
  * @param name - op name, used in the guiding error message.
30
32
  * @throws when no BREP kernel is bound (the message tells the host what to do,
@@ -1 +1 @@
1
- {"version":3,"file":"compat-projection.d.ts","sourceRoot":"","sources":["../../../src/api/internal/compat-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAK9D;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAapD;AAED,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAE9D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAClC,gBAAgB,CAMlB"}
1
+ {"version":3,"file":"compat-projection.d.ts","sourceRoot":"","sources":["../../../src/api/internal/compat-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAK9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAcpD;AAED,8EAA8E;AAC9E,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAE9D;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,GAClC,gBAAgB,CAMlB"}
@@ -20,14 +20,16 @@
20
20
  */
21
21
  import { resolveArgs } from './dual-form-args.js';
22
22
  import { callBrepjs } from './l3-bridge.js';
23
- import { isOcctKernelBound } from '../occt-kernel-bridge.js';
23
+ import { isKernelInjected } from '../occt-kernel-bridge.js';
24
24
  import { getBackends } from '../../runtime-state.js';
25
25
  /**
26
26
  * Assert that a BREP kernel is bound before invoking a compat op.
27
27
  *
28
28
  * Reads the configured backend's kernel slot, guarding against the throw that
29
29
  * `getBackends()` performs before host configuration. Falls back to the
30
- * occt-kernel binding flag when nothing is configured.
30
+ * vendored kernel-registry injection flag (engine-neutral, Phase 2 P2-5: the
31
+ * registry is injected with the current BREP engine during assembly, not
32
+ * hard-bound to occt) when nothing is configured.
31
33
  *
32
34
  * @param name - op name, used in the guiding error message.
33
35
  * @throws when no BREP kernel is bound (the message tells the host what to do,
@@ -41,9 +43,10 @@ export function assertKernelBound(name) {
41
43
  catch {
42
44
  // backends not configured yet — that is not an error, just no kernel
43
45
  }
44
- if (!kernelBound && !isOcctKernelBound()) {
45
- throw new Error(`[compat:${name}] no BREP kernel bound; run host init/bind (e.g. initOcct + bindOcctKernel) ` +
46
- `before the first compat.${name} call. Library code must not install kernels itself.`);
46
+ if (!kernelBound && !isKernelInjected()) {
47
+ throw new Error(`[compat:${name}] no BREP kernel bound; run host init/inject (e.g. initOcct + ` +
48
+ `injectCurrentBrepEngineAsKernel) before the first compat.${name} call. ` +
49
+ `Library code must not install kernels itself.`);
47
50
  }
48
51
  }
49
52
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"compat-projection.js","sourceRoot":"","sources":["../../../src/api/internal/compat-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,CAAC;QACH,WAAW,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,CAAC,iBAAiB,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,8EAA8E;YAC3F,2BAA2B,IAAI,sDAAsD,CACxF,CAAA;IACH,CAAC;AACH,CAAC;AAKD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,MAAgB,EAChB,SAAoB,EACpB,IAAmC;IAEnC,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;QACjE,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACrC,CAAC,CAAA;AACH,CAAC","sourcesContent":["/**\n * compat-projection — the single BREP-TS projection wrapper factory (P23, §4.2).\n *\n * Design: docs/plans/2026-09-03-faijs-brepjs-compat-api.md §4.2 / §4.3.2\n *\n * Every symbol on the TS compat face and every generated `compatOp` op funnels\n * through {@link projectBrepOp}. That is what makes the generated face and the\n * hand-curated `api/brepjs-compat` face one mechanism rather than two:\n *\n * 1. single-kernel assert (D10) — library code never installs a kernel;\n * 2. D11 dual-form normalization — object form → positional form, in the\n * exported function (§4.2 「归一化位置」), not in a script-side adapter;\n * 3. the vendored call itself, through `callBrepjs` (Result shape preserved).\n *\n * P21's `api/brepjs-compat` used a private copy of steps 1–3 (`wrapDual`); P23 lifts it\n * here so `gen-l3-surface.ts` can emit one `compatOp(projectBrepOp(…), …)` line\n * per symbol instead of re-expanding the template for each op.\n *\n * @module\n */\n\nimport { resolveArgs, type FormClass } from './dual-form-args'\nimport { callBrepjs } from './l3-bridge'\nimport { isOcctKernelBound } from '../occt-kernel-bridge'\nimport { getBackends } from '../../runtime-state'\n\n/**\n * Assert that a BREP kernel is bound before invoking a compat op.\n *\n * Reads the configured backend's kernel slot, guarding against the throw that\n * `getBackends()` performs before host configuration. Falls back to the\n * occt-kernel binding flag when nothing is configured.\n *\n * @param name - op name, used in the guiding error message.\n * @throws when no BREP kernel is bound (the message tells the host what to do,\n * because library code must never install a kernel itself — §4.2 rule 1).\n */\nexport function assertKernelBound(name: string): void {\n let kernelBound = false\n try {\n kernelBound = getBackends().kernel.brep != null\n } catch {\n // backends not configured yet — that is not an error, just no kernel\n }\n if (!kernelBound && !isOcctKernelBound()) {\n throw new Error(\n `[compat:${name}] no BREP kernel bound; run host init/bind (e.g. initOcct + bindOcctKernel) ` +\n `before the first compat.${name} call. Library code must not install kernels itself.`\n )\n }\n}\n\n/** Signature of a projected compat op (inputs normalized before the call). */\nexport type CompatProjection = (...args: unknown[]) => unknown\n\n/**\n * Project a vendored brepjs function onto the faijs TS compat face.\n *\n * The returned function is brepjs-shaped: positional arguments in, `Result`\n * (or whatever the vendored function returns) out — no faijs `Shape`, no\n * adoption. Adoption and the statement-boundary unwrap are `compatOp`'s job\n * (§4.3.2 steps 4/5), which is why the script face can wrap the very same\n * projection the TS face exports.\n *\n * @param name - op name (error messages + D11 discriminant context).\n * @param params - machine parameter-name table (object form → positional).\n * @param formClass - D11 form class (A single-name dual-form / B1 options-only /\n * B2 two names).\n * @param impl - the vendored function.\n * @returns the projected compat op.\n */\nexport function projectBrepOp(\n name: string,\n params: string[],\n formClass: FormClass,\n impl: (...args: never[]) => unknown,\n): CompatProjection {\n return (...args: unknown[]) => {\n assertKernelBound(name)\n const positional = resolveArgs(args, { name, params, formClass })\n return callBrepjs(impl, positional)\n }\n}\n"]}
1
+ {"version":3,"file":"compat-projection.js","sourceRoot":"","sources":["../../../src/api/internal/compat-projection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,WAAW,GAAG,KAAK,CAAA;IACvB,IAAI,CAAC;QACH,WAAW,GAAG,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;IACvE,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,WAAW,IAAI,gEAAgE;YAC7E,4DAA4D,IAAI,SAAS;YACzE,+CAA+C,CAClD,CAAA;IACH,CAAC;AACH,CAAC;AAKD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,MAAgB,EAChB,SAAoB,EACpB,IAAmC;IAEnC,OAAO,CAAC,GAAG,IAAe,EAAE,EAAE;QAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;QACjE,OAAO,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACrC,CAAC,CAAA;AACH,CAAC","sourcesContent":["/**\n * compat-projection — the single BREP-TS projection wrapper factory (P23, §4.2).\n *\n * Design: docs/plans/2026-09-03-faijs-brepjs-compat-api.md §4.2 / §4.3.2\n *\n * Every symbol on the TS compat face and every generated `compatOp` op funnels\n * through {@link projectBrepOp}. That is what makes the generated face and the\n * hand-curated `api/brepjs-compat` face one mechanism rather than two:\n *\n * 1. single-kernel assert (D10) — library code never installs a kernel;\n * 2. D11 dual-form normalization — object form → positional form, in the\n * exported function (§4.2 「归一化位置」), not in a script-side adapter;\n * 3. the vendored call itself, through `callBrepjs` (Result shape preserved).\n *\n * P21's `api/brepjs-compat` used a private copy of steps 1–3 (`wrapDual`); P23 lifts it\n * here so `gen-l3-surface.ts` can emit one `compatOp(projectBrepOp(…), …)` line\n * per symbol instead of re-expanding the template for each op.\n *\n * @module\n */\n\nimport { resolveArgs, type FormClass } from './dual-form-args'\nimport { callBrepjs } from './l3-bridge'\nimport { isKernelInjected } from '../occt-kernel-bridge'\nimport { getBackends } from '../../runtime-state'\n\n/**\n * Assert that a BREP kernel is bound before invoking a compat op.\n *\n * Reads the configured backend's kernel slot, guarding against the throw that\n * `getBackends()` performs before host configuration. Falls back to the\n * vendored kernel-registry injection flag (engine-neutral, Phase 2 P2-5: the\n * registry is injected with the current BREP engine during assembly, not\n * hard-bound to occt) when nothing is configured.\n *\n * @param name - op name, used in the guiding error message.\n * @throws when no BREP kernel is bound (the message tells the host what to do,\n * because library code must never install a kernel itself — §4.2 rule 1).\n */\nexport function assertKernelBound(name: string): void {\n let kernelBound = false\n try {\n kernelBound = getBackends().kernel.brep != null\n } catch {\n // backends not configured yet — that is not an error, just no kernel\n }\n if (!kernelBound && !isKernelInjected()) {\n throw new Error(\n `[compat:${name}] no BREP kernel bound; run host init/inject (e.g. initOcct + ` +\n `injectCurrentBrepEngineAsKernel) before the first compat.${name} call. ` +\n `Library code must not install kernels itself.`\n )\n }\n}\n\n/** Signature of a projected compat op (inputs normalized before the call). */\nexport type CompatProjection = (...args: unknown[]) => unknown\n\n/**\n * Project a vendored brepjs function onto the faijs TS compat face.\n *\n * The returned function is brepjs-shaped: positional arguments in, `Result`\n * (or whatever the vendored function returns) out — no faijs `Shape`, no\n * adoption. Adoption and the statement-boundary unwrap are `compatOp`'s job\n * (§4.3.2 steps 4/5), which is why the script face can wrap the very same\n * projection the TS face exports.\n *\n * @param name - op name (error messages + D11 discriminant context).\n * @param params - machine parameter-name table (object form → positional).\n * @param formClass - D11 form class (A single-name dual-form / B1 options-only /\n * B2 two names).\n * @param impl - the vendored function.\n * @returns the projected compat op.\n */\nexport function projectBrepOp(\n name: string,\n params: string[],\n formClass: FormClass,\n impl: (...args: never[]) => unknown,\n): CompatProjection {\n return (...args: unknown[]) => {\n assertKernelBound(name)\n const positional = resolveArgs(args, { name, params, formClass })\n return callBrepjs(impl, positional)\n }\n}\n"]}