@faicad/faijs 0.16.1 → 0.18.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 (498) hide show
  1. package/LICENSE +4 -5
  2. package/NOTICE +5 -6
  3. package/dist/api/api-namespace.d.ts.map +1 -1
  4. package/dist/api/api-namespace.js +20 -2
  5. package/dist/api/api-namespace.js.map +1 -1
  6. package/dist/api/assembly/entities.d.ts +1 -1
  7. package/dist/api/assembly/entities.d.ts.map +1 -1
  8. package/dist/api/assembly/entities.js.map +1 -1
  9. package/dist/api/assembly/joints.d.ts +2 -2
  10. package/dist/api/assembly/joints.d.ts.map +1 -1
  11. package/dist/api/assembly/joints.js +2 -2
  12. package/dist/api/assembly/joints.js.map +1 -1
  13. package/dist/api/assembly/lower.d.ts +1 -1
  14. package/dist/api/assembly/lower.d.ts.map +1 -1
  15. package/dist/api/assembly/lower.js.map +1 -1
  16. package/dist/api/assembly/pose.d.ts +3 -3
  17. package/dist/api/assembly/pose.d.ts.map +1 -1
  18. package/dist/api/assembly/pose.js +1 -1
  19. package/dist/api/assembly/pose.js.map +1 -1
  20. package/dist/api/assembly/preview.d.ts +1 -1
  21. package/dist/api/assembly/preview.d.ts.map +1 -1
  22. package/dist/api/assembly/preview.js +1 -1
  23. package/dist/api/assembly/preview.js.map +1 -1
  24. package/dist/api/assembly/solve.d.ts.map +1 -1
  25. package/dist/api/assembly/solve.js +3 -3
  26. package/dist/api/assembly/solve.js.map +1 -1
  27. package/dist/api/assembly/solvers/assembly-tree.d.ts +98 -0
  28. package/dist/api/assembly/solvers/assembly-tree.d.ts.map +1 -0
  29. package/dist/api/assembly/solvers/assembly-tree.js +130 -0
  30. package/dist/api/assembly/solvers/assembly-tree.js.map +1 -0
  31. package/dist/api/assembly/solvers/chain-solver.d.ts +27 -0
  32. package/dist/api/assembly/solvers/chain-solver.d.ts.map +1 -0
  33. package/dist/api/assembly/solvers/chain-solver.js +330 -0
  34. package/dist/api/assembly/solvers/chain-solver.js.map +1 -0
  35. package/dist/api/assembly/solvers/global-solver.js +2 -2
  36. package/dist/api/assembly/solvers/global-solver.js.map +1 -1
  37. package/dist/api/assembly/solvers/joints-kinematics.d.ts +308 -0
  38. package/dist/api/assembly/solvers/joints-kinematics.d.ts.map +1 -0
  39. package/dist/api/assembly/solvers/joints-kinematics.js +643 -0
  40. package/dist/api/assembly/solvers/joints-kinematics.js.map +1 -0
  41. package/dist/api/assembly/solvers/quat.d.ts +35 -0
  42. package/dist/api/assembly/solvers/quat.d.ts.map +1 -0
  43. package/dist/api/assembly/solvers/quat.js +84 -0
  44. package/dist/api/assembly/solvers/quat.js.map +1 -0
  45. package/dist/api/assembly/solvers/types.d.ts +33 -0
  46. package/dist/api/assembly/solvers/types.d.ts.map +1 -1
  47. package/dist/api/assembly/solvers/types.js.map +1 -1
  48. package/dist/api/boolean.d.ts.map +1 -1
  49. package/dist/api/boolean.js +66 -29
  50. package/dist/api/boolean.js.map +1 -1
  51. package/dist/api/brep-mirror/booleanFns.d.ts +40 -0
  52. package/dist/api/brep-mirror/booleanFns.d.ts.map +1 -0
  53. package/dist/api/brep-mirror/booleanFns.js +104 -0
  54. package/dist/api/brep-mirror/booleanFns.js.map +1 -0
  55. package/dist/api/brep-mirror/brepHelpers.d.ts +55 -0
  56. package/dist/api/brep-mirror/brepHelpers.d.ts.map +1 -0
  57. package/dist/api/brep-mirror/brepHelpers.js +131 -0
  58. package/dist/api/brep-mirror/brepHelpers.js.map +1 -0
  59. package/dist/api/brep-mirror/compoundFns.d.ts +47 -0
  60. package/dist/api/brep-mirror/compoundFns.d.ts.map +1 -0
  61. package/dist/api/brep-mirror/compoundFns.js +300 -0
  62. package/dist/api/brep-mirror/compoundFns.js.map +1 -0
  63. package/dist/api/brep-mirror/healingFns.d.ts +78 -0
  64. package/dist/api/brep-mirror/healingFns.d.ts.map +1 -0
  65. package/dist/api/brep-mirror/healingFns.js +294 -0
  66. package/dist/api/brep-mirror/healingFns.js.map +1 -0
  67. package/dist/api/brep-mirror/hullFns.d.ts +20 -0
  68. package/dist/api/brep-mirror/hullFns.d.ts.map +1 -0
  69. package/dist/api/brep-mirror/hullFns.js +46 -0
  70. package/dist/api/brep-mirror/hullFns.js.map +1 -0
  71. package/dist/api/brep-mirror/patternFns.d.ts +43 -0
  72. package/dist/api/brep-mirror/patternFns.d.ts.map +1 -0
  73. package/dist/api/brep-mirror/patternFns.js +178 -0
  74. package/dist/api/brep-mirror/patternFns.js.map +1 -0
  75. package/dist/api/brep-mirror/primitiveFns.d.ts +42 -0
  76. package/dist/api/brep-mirror/primitiveFns.d.ts.map +1 -0
  77. package/dist/api/brep-mirror/primitiveFns.js +104 -0
  78. package/dist/api/brep-mirror/primitiveFns.js.map +1 -0
  79. package/dist/api/brep-mirror/roofFns.d.ts +24 -0
  80. package/dist/api/brep-mirror/roofFns.d.ts.map +1 -0
  81. package/dist/api/brep-mirror/roofFns.js +229 -0
  82. package/dist/api/brep-mirror/roofFns.js.map +1 -0
  83. package/dist/api/brep-mirror/straightSkeleton.d.ts +36 -0
  84. package/dist/api/brep-mirror/straightSkeleton.d.ts.map +1 -0
  85. package/dist/api/brep-mirror/straightSkeleton.js +443 -0
  86. package/dist/api/brep-mirror/straightSkeleton.js.map +1 -0
  87. package/dist/api/brep-mirror/sweepFns.d.ts +55 -0
  88. package/dist/api/brep-mirror/sweepFns.d.ts.map +1 -0
  89. package/dist/api/brep-mirror/sweepFns.js +200 -0
  90. package/dist/api/brep-mirror/sweepFns.js.map +1 -0
  91. package/dist/api/brep-mirror/threadFns.d.ts +15 -0
  92. package/dist/api/brep-mirror/threadFns.d.ts.map +1 -1
  93. package/dist/api/brep-mirror/threadFns.js +37 -2
  94. package/dist/api/brep-mirror/threadFns.js.map +1 -1
  95. package/dist/api/brep-mirror/topologyFns.d.ts +74 -0
  96. package/dist/api/brep-mirror/topologyFns.d.ts.map +1 -0
  97. package/dist/api/brep-mirror/topologyFns.js +276 -0
  98. package/dist/api/brep-mirror/topologyFns.js.map +1 -0
  99. package/dist/api/brep-topology.d.ts +190 -0
  100. package/dist/api/brep-topology.d.ts.map +1 -0
  101. package/dist/api/brep-topology.js +337 -0
  102. package/dist/api/brep-topology.js.map +1 -0
  103. package/dist/api/brepjs-compat/constants.d.ts +11 -0
  104. package/dist/api/brepjs-compat/constants.d.ts.map +1 -0
  105. package/dist/api/brepjs-compat/constants.js +11 -0
  106. package/dist/api/brepjs-compat/constants.js.map +1 -0
  107. package/dist/api/brepjs-compat/index.d.ts +19 -232
  108. package/dist/api/brepjs-compat/index.d.ts.map +1 -1
  109. package/dist/api/brepjs-compat/index.js +19 -286
  110. package/dist/api/brepjs-compat/index.js.map +1 -1
  111. package/dist/api/brepjs-compat/planeOps.d.ts +98 -0
  112. package/dist/api/brepjs-compat/planeOps.d.ts.map +1 -0
  113. package/dist/api/brepjs-compat/planeOps.js +170 -0
  114. package/dist/api/brepjs-compat/planeOps.js.map +1 -0
  115. package/dist/api/brepjs-compat/planeTypes.d.ts +24 -0
  116. package/dist/api/brepjs-compat/planeTypes.d.ts.map +1 -0
  117. package/dist/api/brepjs-compat/planeTypes.js +8 -0
  118. package/dist/api/brepjs-compat/planeTypes.js.map +1 -0
  119. package/dist/api/brepjs-compat/types.d.ts +64 -0
  120. package/dist/api/brepjs-compat/types.d.ts.map +1 -0
  121. package/dist/api/brepjs-compat/types.js +48 -0
  122. package/dist/api/brepjs-compat/types.js.map +1 -0
  123. package/dist/api/brepjs-compat/vecOps.d.ts +124 -0
  124. package/dist/api/brepjs-compat/vecOps.d.ts.map +1 -0
  125. package/dist/api/brepjs-compat/vecOps.js +202 -0
  126. package/dist/api/brepjs-compat/vecOps.js.map +1 -0
  127. package/dist/api/chamfer.d.ts +12 -3
  128. package/dist/api/chamfer.d.ts.map +1 -1
  129. package/dist/api/chamfer.js +54 -20
  130. package/dist/api/chamfer.js.map +1 -1
  131. package/dist/api/compound-geom.d.ts.map +1 -1
  132. package/dist/api/compound-geom.js +8 -2
  133. package/dist/api/compound-geom.js.map +1 -1
  134. package/dist/api/draft.d.ts +69 -0
  135. package/dist/api/draft.d.ts.map +1 -0
  136. package/dist/api/draft.js +109 -0
  137. package/dist/api/draft.js.map +1 -0
  138. package/dist/api/edge-ref.d.ts.map +1 -1
  139. package/dist/api/edge-ref.js +2 -2
  140. package/dist/api/edge-ref.js.map +1 -1
  141. package/dist/api/engrave.d.ts.map +1 -1
  142. package/dist/api/engrave.js +2 -3
  143. package/dist/api/engrave.js.map +1 -1
  144. package/dist/api/extrude.d.ts.map +1 -1
  145. package/dist/api/extrude.js +44 -14
  146. package/dist/api/extrude.js.map +1 -1
  147. package/dist/api/face-ref.d.ts.map +1 -1
  148. package/dist/api/face-ref.js +2 -2
  149. package/dist/api/face-ref.js.map +1 -1
  150. package/dist/api/feature-repair.d.ts +137 -0
  151. package/dist/api/feature-repair.d.ts.map +1 -0
  152. package/dist/api/feature-repair.js +221 -0
  153. package/dist/api/feature-repair.js.map +1 -0
  154. package/dist/api/fillet-variable.d.ts +35 -0
  155. package/dist/api/fillet-variable.d.ts.map +1 -0
  156. package/dist/api/fillet-variable.js +71 -0
  157. package/dist/api/fillet-variable.js.map +1 -0
  158. package/dist/api/fillet.d.ts +3 -0
  159. package/dist/api/fillet.d.ts.map +1 -1
  160. package/dist/api/fillet.js +7 -4
  161. package/dist/api/fillet.js.map +1 -1
  162. package/dist/api/generated/2d.d.ts +1 -13
  163. package/dist/api/generated/2d.d.ts.map +1 -1
  164. package/dist/api/generated/2d.js +6 -1
  165. package/dist/api/generated/2d.js.map +1 -1
  166. package/dist/api/generated/brepjs/index.d.ts +298 -298
  167. package/dist/api/generated/brepjs/index.d.ts.map +1 -1
  168. package/dist/api/generated/brepjs/index.js +183 -183
  169. package/dist/api/generated/brepjs/index.js.map +1 -1
  170. package/dist/api/generated/core.d.ts +3 -123
  171. package/dist/api/generated/core.d.ts.map +1 -1
  172. package/dist/api/generated/core.js +2 -81
  173. package/dist/api/generated/core.js.map +1 -1
  174. package/dist/api/generated/gear.d.ts +1 -15
  175. package/dist/api/generated/gear.d.ts.map +1 -1
  176. package/dist/api/generated/gear.js +6 -3
  177. package/dist/api/generated/gear.js.map +1 -1
  178. package/dist/api/generated/io.d.ts +1 -13
  179. package/dist/api/generated/io.d.ts.map +1 -1
  180. package/dist/api/generated/io.js +6 -1
  181. package/dist/api/generated/io.js.map +1 -1
  182. package/dist/api/generated/kernel.d.ts +1 -39
  183. package/dist/api/generated/kernel.d.ts.map +1 -1
  184. package/dist/api/generated/kernel.js +6 -4
  185. package/dist/api/generated/kernel.js.map +1 -1
  186. package/dist/api/generated/measurement.d.ts +53 -97
  187. package/dist/api/generated/measurement.d.ts.map +1 -1
  188. package/dist/api/generated/measurement.js +48 -143
  189. package/dist/api/generated/measurement.js.map +1 -1
  190. package/dist/api/generated/ns.d.ts +1 -10
  191. package/dist/api/generated/ns.d.ts.map +1 -1
  192. package/dist/api/generated/ns.js +2 -10
  193. package/dist/api/generated/ns.js.map +1 -1
  194. package/dist/api/generated/operations.d.ts +65 -110
  195. package/dist/api/generated/operations.d.ts.map +1 -1
  196. package/dist/api/generated/operations.js +132 -80
  197. package/dist/api/generated/operations.js.map +1 -1
  198. package/dist/api/generated/projection.d.ts +1 -8
  199. package/dist/api/generated/projection.d.ts.map +1 -1
  200. package/dist/api/generated/projection.js +6 -4
  201. package/dist/api/generated/projection.js.map +1 -1
  202. package/dist/api/generated/query.d.ts +1 -9
  203. package/dist/api/generated/query.d.ts.map +1 -1
  204. package/dist/api/generated/query.js +6 -1
  205. package/dist/api/generated/query.js.map +1 -1
  206. package/dist/api/generated/script-face-manifest.d.ts +2 -0
  207. package/dist/api/generated/script-face-manifest.d.ts.map +1 -1
  208. package/dist/api/generated/script-face-manifest.js +22 -10
  209. package/dist/api/generated/script-face-manifest.js.map +1 -1
  210. package/dist/api/generated/script-face.d.ts +52 -27
  211. package/dist/api/generated/script-face.d.ts.map +1 -1
  212. package/dist/api/generated/script-face.js +18 -4
  213. package/dist/api/generated/script-face.js.map +1 -1
  214. package/dist/api/generated/sketching.d.ts +4 -7
  215. package/dist/api/generated/sketching.d.ts.map +1 -1
  216. package/dist/api/generated/sketching.js +10 -8
  217. package/dist/api/generated/sketching.js.map +1 -1
  218. package/dist/api/generated/text.d.ts +1 -6
  219. package/dist/api/generated/text.d.ts.map +1 -1
  220. package/dist/api/generated/text.js +6 -3
  221. package/dist/api/generated/text.js.map +1 -1
  222. package/dist/api/generated/topology.d.ts +77 -175
  223. package/dist/api/generated/topology.d.ts.map +1 -1
  224. package/dist/api/generated/topology.js +172 -131
  225. package/dist/api/generated/topology.js.map +1 -1
  226. package/dist/api/geom.d.ts.map +1 -1
  227. package/dist/api/geom.js +2 -2
  228. package/dist/api/geom.js.map +1 -1
  229. package/dist/api/helix.d.ts +51 -0
  230. package/dist/api/helix.d.ts.map +1 -0
  231. package/dist/api/helix.js +63 -0
  232. package/dist/api/helix.js.map +1 -0
  233. package/dist/api/import-step.d.ts.map +1 -1
  234. package/dist/api/import-step.js +6 -2
  235. package/dist/api/import-step.js.map +1 -1
  236. package/dist/api/index.d.ts +20 -6
  237. package/dist/api/index.d.ts.map +1 -1
  238. package/dist/api/index.js +30 -13
  239. package/dist/api/index.js.map +1 -1
  240. package/dist/api/internal/compat-op.d.ts +10 -0
  241. package/dist/api/internal/compat-op.d.ts.map +1 -1
  242. package/dist/api/internal/compat-op.js +9 -3
  243. package/dist/api/internal/compat-op.js.map +1 -1
  244. package/dist/api/internal/compat-projection.d.ts +4 -4
  245. package/dist/api/internal/compat-projection.js +7 -7
  246. package/dist/api/internal/compat-projection.js.map +1 -1
  247. package/dist/api/internal/l3-bridge.d.ts +75 -42
  248. package/dist/api/internal/l3-bridge.d.ts.map +1 -1
  249. package/dist/api/internal/l3-bridge.js +105 -50
  250. package/dist/api/internal/l3-bridge.js.map +1 -1
  251. package/dist/api/internal/profile-wire.d.ts +31 -0
  252. package/dist/api/internal/profile-wire.d.ts.map +1 -0
  253. package/dist/api/internal/profile-wire.js +37 -0
  254. package/dist/api/internal/profile-wire.js.map +1 -0
  255. package/dist/api/internal/replica-role-table.js +2 -2
  256. package/dist/api/internal/replica-role-table.js.map +1 -1
  257. package/dist/api/loft.d.ts +66 -0
  258. package/dist/api/loft.d.ts.map +1 -0
  259. package/dist/api/loft.js +111 -0
  260. package/dist/api/loft.js.map +1 -0
  261. package/dist/api/measurement/index.d.ts +51 -0
  262. package/dist/api/measurement/index.d.ts.map +1 -0
  263. package/dist/api/measurement/index.js +71 -0
  264. package/dist/api/measurement/index.js.map +1 -0
  265. package/dist/api/occt-kernel-bridge.d.ts +5 -8
  266. package/dist/api/occt-kernel-bridge.d.ts.map +1 -1
  267. package/dist/api/occt-kernel-bridge.js +18 -14
  268. package/dist/api/occt-kernel-bridge.js.map +1 -1
  269. package/dist/api/pattern.d.ts.map +1 -1
  270. package/dist/api/pattern.js +3 -4
  271. package/dist/api/pattern.js.map +1 -1
  272. package/dist/api/place.d.ts.map +1 -1
  273. package/dist/api/place.js +2 -4
  274. package/dist/api/place.js.map +1 -1
  275. package/dist/api/primitives.d.ts.map +1 -1
  276. package/dist/api/primitives.js +3 -4
  277. package/dist/api/primitives.js.map +1 -1
  278. package/dist/api/profile.d.ts +89 -0
  279. package/dist/api/profile.d.ts.map +1 -0
  280. package/dist/api/profile.js +194 -0
  281. package/dist/api/profile.js.map +1 -0
  282. package/dist/api/replicate.d.ts +28 -1
  283. package/dist/api/replicate.d.ts.map +1 -1
  284. package/dist/api/replicate.js +34 -23
  285. package/dist/api/replicate.js.map +1 -1
  286. package/dist/api/result.d.ts +6 -11
  287. package/dist/api/result.d.ts.map +1 -1
  288. package/dist/api/result.js +6 -11
  289. package/dist/api/result.js.map +1 -1
  290. package/dist/api/revolve.d.ts.map +1 -1
  291. package/dist/api/revolve.js +15 -14
  292. package/dist/api/revolve.js.map +1 -1
  293. package/dist/api/screw.d.ts +3 -0
  294. package/dist/api/screw.d.ts.map +1 -1
  295. package/dist/api/screw.js +9 -4
  296. package/dist/api/screw.js.map +1 -1
  297. package/dist/api/sdf.d.ts +1 -1
  298. package/dist/api/section-by-plane.d.ts +42 -0
  299. package/dist/api/section-by-plane.d.ts.map +1 -0
  300. package/dist/api/section-by-plane.js +61 -0
  301. package/dist/api/section-by-plane.js.map +1 -0
  302. package/dist/api/shell.d.ts +45 -0
  303. package/dist/api/shell.d.ts.map +1 -0
  304. package/dist/api/shell.js +73 -0
  305. package/dist/api/shell.js.map +1 -0
  306. package/dist/api/sketch.d.ts +8 -1
  307. package/dist/api/sketch.d.ts.map +1 -1
  308. package/dist/api/sketch.js +12 -7
  309. package/dist/api/sketch.js.map +1 -1
  310. package/dist/api/split-by-plane.d.ts +41 -0
  311. package/dist/api/split-by-plane.d.ts.map +1 -0
  312. package/dist/api/split-by-plane.js +60 -0
  313. package/dist/api/split-by-plane.js.map +1 -0
  314. package/dist/api/split.d.ts +6 -1
  315. package/dist/api/split.d.ts.map +1 -1
  316. package/dist/api/split.js +23 -9
  317. package/dist/api/split.js.map +1 -1
  318. package/dist/api/surface/arg-spec.d.ts +22 -0
  319. package/dist/api/surface/arg-spec.d.ts.map +1 -1
  320. package/dist/api/surface/arg-spec.js +729 -477
  321. package/dist/api/surface/arg-spec.js.map +1 -1
  322. package/dist/api/sweep.d.ts +55 -0
  323. package/dist/api/sweep.d.ts.map +1 -0
  324. package/dist/api/sweep.js +86 -0
  325. package/dist/api/sweep.js.map +1 -0
  326. package/dist/api/thicken.d.ts +36 -0
  327. package/dist/api/thicken.d.ts.map +1 -0
  328. package/dist/api/thicken.js +55 -0
  329. package/dist/api/thicken.js.map +1 -0
  330. package/dist/api/transform.d.ts +8 -0
  331. package/dist/api/transform.d.ts.map +1 -1
  332. package/dist/api/transform.js +15 -4
  333. package/dist/api/transform.js.map +1 -1
  334. package/dist/api/view/cameraFns.d.ts +48 -0
  335. package/dist/api/view/cameraFns.d.ts.map +1 -0
  336. package/dist/api/view/cameraFns.js +75 -0
  337. package/dist/api/view/cameraFns.js.map +1 -0
  338. package/dist/api/view/projectionPlanes.d.ts +25 -0
  339. package/dist/api/view/projectionPlanes.d.ts.map +1 -0
  340. package/dist/api/view/projectionPlanes.js +30 -0
  341. package/dist/api/view/projectionPlanes.js.map +1 -0
  342. package/dist/api/view/view-camera.d.ts +2 -2
  343. package/dist/api/view/view-camera.d.ts.map +1 -1
  344. package/dist/api/view/view-camera.js +3 -3
  345. package/dist/api/view/view-camera.js.map +1 -1
  346. package/dist/api/view/view-projection.d.ts +9 -6
  347. package/dist/api/view/view-projection.d.ts.map +1 -1
  348. package/dist/api/view/view-projection.js +132 -65
  349. package/dist/api/view/view-projection.js.map +1 -1
  350. package/dist/api/wire.d.ts +45 -0
  351. package/dist/api/wire.d.ts.map +1 -0
  352. package/dist/api/wire.js +96 -0
  353. package/dist/api/wire.js.map +1 -0
  354. package/dist/boolean/creased-normals.d.ts +50 -0
  355. package/dist/boolean/creased-normals.d.ts.map +1 -0
  356. package/dist/boolean/creased-normals.js +114 -0
  357. package/dist/boolean/creased-normals.js.map +1 -0
  358. package/dist/boolean/deriveNormals.d.ts +4 -1
  359. package/dist/boolean/deriveNormals.d.ts.map +1 -1
  360. package/dist/boolean/deriveNormals.js +5 -2
  361. package/dist/boolean/deriveNormals.js.map +1 -1
  362. package/dist/brep/brep-ops.d.ts +6 -0
  363. package/dist/brep/brep-ops.d.ts.map +1 -1
  364. package/dist/brep/brep-ops.js +11 -2
  365. package/dist/brep/brep-ops.js.map +1 -1
  366. package/dist/brep/brep-topology.d.ts +4 -0
  367. package/dist/brep/brep-topology.d.ts.map +1 -1
  368. package/dist/brep/brep-topology.js +4 -0
  369. package/dist/brep/brep-topology.js.map +1 -1
  370. package/dist/brep/engine/adapters/brep-mock.d.ts.map +1 -1
  371. package/dist/brep/engine/adapters/brep-mock.js +79 -59
  372. package/dist/brep/engine/adapters/brep-mock.js.map +1 -1
  373. package/dist/brep/engine/adapters/brepkit.d.ts.map +1 -1
  374. package/dist/brep/engine/adapters/brepkit.js +35 -2
  375. package/dist/brep/engine/adapters/brepkit.js.map +1 -1
  376. package/dist/brep/engine/adapters/occt.d.ts +15 -7
  377. package/dist/brep/engine/adapters/occt.d.ts.map +1 -1
  378. package/dist/brep/engine/adapters/occt.js +64 -167
  379. package/dist/brep/engine/adapters/occt.js.map +1 -1
  380. package/dist/brep/engine/primitives.d.ts +93 -130
  381. package/dist/brep/engine/primitives.d.ts.map +1 -1
  382. package/dist/brep/engine/primitives.js +9 -7
  383. package/dist/brep/engine/primitives.js.map +1 -1
  384. package/dist/brep/engine/types.d.ts +14 -1
  385. package/dist/brep/engine/types.d.ts.map +1 -1
  386. package/dist/brep/engine/types.js +11 -1
  387. package/dist/brep/engine/types.js.map +1 -1
  388. package/dist/brep/export/step.d.ts +3 -0
  389. package/dist/brep/export/step.d.ts.map +1 -1
  390. package/dist/brep/export/step.js +7 -1
  391. package/dist/brep/export/step.js.map +1 -1
  392. package/dist/brep/face-evolution.d.ts +8 -0
  393. package/dist/brep/face-evolution.d.ts.map +1 -1
  394. package/dist/brep/face-evolution.js +15 -3
  395. package/dist/brep/face-evolution.js.map +1 -1
  396. package/dist/brep/handle-bridge.d.ts +20 -2
  397. package/dist/brep/handle-bridge.d.ts.map +1 -1
  398. package/dist/brep/handle-bridge.js +25 -2
  399. package/dist/brep/handle-bridge.js.map +1 -1
  400. package/dist/brepkit-kernel/brepkitKernel.d.ts +25 -5
  401. package/dist/brepkit-kernel/brepkitKernel.d.ts.map +1 -1
  402. package/dist/brepkit-kernel/brepkitKernel.js +782 -218
  403. package/dist/brepkit-kernel/brepkitKernel.js.map +1 -1
  404. package/dist/brepkit-kernel/multi-version-test.d.ts +40 -0
  405. package/dist/brepkit-kernel/multi-version-test.d.ts.map +1 -0
  406. package/dist/brepkit-kernel/multi-version-test.js +89 -0
  407. package/dist/brepkit-kernel/multi-version-test.js.map +1 -0
  408. package/dist/cad-runtime/admit-compat-lib.d.ts +6 -1
  409. package/dist/cad-runtime/admit-compat-lib.d.ts.map +1 -1
  410. package/dist/cad-runtime/admit-compat-lib.js +5 -1
  411. package/dist/cad-runtime/admit-compat-lib.js.map +1 -1
  412. package/dist/cad-runtime/backend-dispatch.d.ts +9 -3
  413. package/dist/cad-runtime/backend-dispatch.d.ts.map +1 -1
  414. package/dist/cad-runtime/backend-dispatch.js +32 -2
  415. package/dist/cad-runtime/backend-dispatch.js.map +1 -1
  416. package/dist/cad-runtime/direct-executor.d.ts.map +1 -1
  417. package/dist/cad-runtime/direct-executor.js +8 -2
  418. package/dist/cad-runtime/direct-executor.js.map +1 -1
  419. package/dist/cad-runtime/runtime.d.ts +3 -0
  420. package/dist/cad-runtime/runtime.d.ts.map +1 -1
  421. package/dist/cad-runtime/runtime.js +3 -1
  422. package/dist/cad-runtime/runtime.js.map +1 -1
  423. package/dist/define-op.d.ts +18 -2
  424. package/dist/define-op.d.ts.map +1 -1
  425. package/dist/define-op.js +29 -1
  426. package/dist/define-op.js.map +1 -1
  427. package/dist/env-agnostic.d.ts +3 -0
  428. package/dist/env-agnostic.d.ts.map +1 -1
  429. package/dist/env-agnostic.js +7 -0
  430. package/dist/env-agnostic.js.map +1 -1
  431. package/dist/index.d.ts.map +1 -1
  432. package/dist/index.js +3 -4
  433. package/dist/index.js.map +1 -1
  434. package/dist/lang/symbol-table.generated.d.ts +29 -1
  435. package/dist/lang/symbol-table.generated.d.ts.map +1 -1
  436. package/dist/lang/symbol-table.generated.js +30 -2
  437. package/dist/lang/symbol-table.generated.js.map +1 -1
  438. package/dist/occt-kernel/highLevelApi.d.ts.map +1 -1
  439. package/dist/occt-kernel/highLevelApi.js +6 -3
  440. package/dist/occt-kernel/highLevelApi.js.map +1 -1
  441. package/dist/occt-kernel/hullGeometry.d.ts +31 -0
  442. package/dist/occt-kernel/hullGeometry.d.ts.map +1 -0
  443. package/dist/occt-kernel/hullGeometry.js +319 -0
  444. package/dist/occt-kernel/hullGeometry.js.map +1 -0
  445. package/dist/occt-kernel/hullOps.d.ts +24 -0
  446. package/dist/occt-kernel/hullOps.d.ts.map +1 -0
  447. package/dist/occt-kernel/hullOps.js +52 -0
  448. package/dist/occt-kernel/hullOps.js.map +1 -0
  449. package/dist/occt-kernel/occt-primitives.d.ts +14 -0
  450. package/dist/occt-kernel/occt-primitives.d.ts.map +1 -0
  451. package/dist/occt-kernel/occt-primitives.js +351 -0
  452. package/dist/occt-kernel/occt-primitives.js.map +1 -0
  453. package/dist/occt-kernel/occtKernel.d.ts +14 -6
  454. package/dist/occt-kernel/occtKernel.d.ts.map +1 -1
  455. package/dist/occt-kernel/occtKernel.js +11 -3
  456. package/dist/occt-kernel/occtKernel.js.map +1 -1
  457. package/dist/occt-kernel/topologyExt.js +2 -2
  458. package/dist/occt-kernel/topologyExt.js.map +1 -1
  459. package/dist/primitives/brep-primitives.d.ts +4 -0
  460. package/dist/primitives/brep-primitives.d.ts.map +1 -1
  461. package/dist/primitives/brep-primitives.js +4 -0
  462. package/dist/primitives/brep-primitives.js.map +1 -1
  463. package/dist/result/bug.d.ts +22 -0
  464. package/dist/result/bug.d.ts.map +1 -0
  465. package/dist/result/bug.js +28 -0
  466. package/dist/result/bug.js.map +1 -0
  467. package/dist/result/errors.d.ts +270 -0
  468. package/dist/result/errors.d.ts.map +1 -0
  469. package/dist/result/errors.js +317 -0
  470. package/dist/result/errors.js.map +1 -0
  471. package/dist/result/kernelErrorTranslation.d.ts +21 -0
  472. package/dist/result/kernelErrorTranslation.d.ts.map +1 -0
  473. package/dist/result/kernelErrorTranslation.js +102 -0
  474. package/dist/result/kernelErrorTranslation.js.map +1 -0
  475. package/dist/result/result.d.ts +213 -0
  476. package/dist/result/result.d.ts.map +1 -0
  477. package/dist/result/result.js +336 -0
  478. package/dist/result/result.js.map +1 -0
  479. package/dist/result/vec3.d.ts +12 -0
  480. package/dist/result/vec3.d.ts.map +1 -0
  481. package/dist/result/vec3.js +14 -0
  482. package/dist/result/vec3.js.map +1 -0
  483. package/dist/runtime-state.d.ts +9 -0
  484. package/dist/runtime-state.d.ts.map +1 -1
  485. package/dist/runtime-state.js.map +1 -1
  486. package/dist/sdk.d.ts +3 -1
  487. package/dist/sdk.d.ts.map +1 -1
  488. package/dist/sdk.js +2 -1
  489. package/dist/sdk.js.map +1 -1
  490. package/dist/shape.d.ts +43 -1
  491. package/dist/shape.d.ts.map +1 -1
  492. package/dist/shape.js +57 -1
  493. package/dist/shape.js.map +1 -1
  494. package/dist/topology/naming/geom-hint.js +1 -1
  495. package/dist/topology/naming/geom-hint.js.map +1 -1
  496. package/dist/topology/naming/score.js +1 -1
  497. package/dist/topology/naming/score.js.map +1 -1
  498. package/package.json +6 -16
@@ -1 +1 @@
1
- {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/topology/naming/score.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,sBAAsB;AACtB,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAA;AAC/B,oBAAoB;AACpB,MAAM,cAAc,GAAG,KAAK,CAAA;AAC5B,wBAAwB;AACxB,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAChC,wBAAwB;AACxB,MAAM,kBAAkB,GAAG,GAAG,CAAA;AAC9B,kBAAkB;AAClB,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,CAAA;AAC5B,wCAAwC;AACxC,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAEtC,uCAAuC;AACvC,SAAS,iBAAiB,CACxB,MAA4B,EAC5B,SAAwB;IAExB,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC9D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3D,OAAO;YACL,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC;YACjD,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACtC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YACtC,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;SAC3C,CAAA;IACH,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,IAAI,EAAE,CAAA;AAC5B,CAAC;AAED,wDAAwD;AACxD,SAAS,UAAU,CAAC,OAAsB,EAAE,KAAiB;IAC3D,mEAAmE;IACnE,gEAAgE;IAChE,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,iCAAiC;AACjC,SAAS,UAAU,CAAC,IAAc,EAAE,IAAwB;IAC1D,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IACvD,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAA;IACrD,OAAO,QAAQ,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,MAA4B,EAC5B,IAAc,EACd,SAAwB;IAExB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAE9C,SAAS;IACT,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,KAAK,IAAI,GAAG,CAAA;QACd,CAAC;aAAM,CAAC;YACN,OAAO,aAAa,CAAA;QACtB,CAAC;IACH,CAAC;IAED,OAAO;IACP,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,GAAG,GACP,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9B,IAAI,GAAG,GAAG,cAAc;YAAE,OAAO,aAAa,CAAA;QAC9C,KAAK,IAAI,GAAG,CAAA;IACd,CAAC;IAED,SAAS;IACT,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACxD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;QAC1C,IAAI,MAAM,GAAG,oBAAoB;YAAE,OAAO,aAAa,CAAA;QACvD,KAAK,IAAI,MAAM,GAAG,GAAG,CAAA;IACvB,CAAC;IAED,QAAQ;IACR,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA;IAEjC,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAA;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,GAAyB;IACpE,OAAO,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;AAC5C,CAAC","sourcesContent":["/**\n * score.ts — 面候选打分器(移植 brepjs src/topology/shapeRef/scoring.ts)\n *\n * 两套实现,口径一致、结果可比(§3.5):\n * - `defaultFaceScorer`:BREP 现场几何(kernel 计算 surfaceType/normal/center/area)\n * - `scoreFaceRow`:mesh/primitive 面行快照(FaceRow 或命名槽 FaceHint)\n *\n * 阈值常量化并写明 mm 单位假设——faijs 契约就是 mm,可直接沿用 brepjs 阈值。\n */\n\nimport type { BrepEngineApi } from '../../brep/engine/primitives'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport type { FaceHint } from './types'\n\n/** 打分函数:分越高越匹配;-Infinity 直接拒绝。 */\nexport type FaceScorer = (hint: FaceHint, candidate: FaceCandidate) => number\n\n/** 打分候选:BREP 现场句柄 或 mesh/primitive 面行快照,二选一。 */\nexport interface FaceCandidate {\n /** BREP 现场面句柄(走 kernel 现场几何)。 */\n readonly handle?: BrepHandle\n /** 面行快照(mesh/primitive;与 handle 二选一)。 */\n readonly row?: Readonly<{\n surfaceType?: string\n normal?: readonly number[]\n center?: readonly number[]\n area?: number\n }>\n}\n\n/** 曲面类型不符直接拒绝(硬门)。 */\nconst TYPE_MISMATCH = -Infinity\n/** 法向点积下限(拒绝阈值)。 */\nconst NORMAL_DOT_MIN = 0.707\n/** 质心距²上限(mm²;拒绝阈值)。 */\nconst CENTROID_DIST_SQ_MAX = 100\n/** 面积 |log 比| 超此值扣分。 */\nconst AREA_LOG_RATIO_MAX = 1.0\n/** 几何兜底接受的最小分。 */\nexport const MIN_SCORE = 0.5\n/** 并列模糊带:两候选分差小于此值视为并列(→ ambiguous)。 */\nexport const AMBIGUITY_THRESHOLD = 0.1\n\n/** 从候选读取几何量的统一入口(handle 优先,row 兜底)。 */\nfunction candidateGeometry(\n kernel: BrepEngineApi | null,\n candidate: FaceCandidate,\n): { surfaceType?: string; normal?: readonly number[]; center?: readonly number[]; area?: number } {\n if (candidate.handle !== undefined && kernel) {\n const center = kernel.getSurfaceCenterOfMass(candidate.handle)\n const uv = kernel.uvBounds(candidate.handle)\n const u = (uv.uMin + uv.uMax) / 2\n const v = (uv.vMin + uv.vMax) / 2\n const normal = kernel.surfaceNormal(candidate.handle, u, v)\n return {\n surfaceType: kernel.surfaceType(candidate.handle),\n normal: [normal.x, normal.y, normal.z],\n center: [center.x, center.y, center.z],\n area: faceAreaOf(kernel, candidate.handle),\n }\n }\n return candidate.row ?? {}\n}\n\n/** 面面积:BREP 现场无直接 API,用包围盒近似不可靠——退化为 undefined(不打分)。 */\nfunction faceAreaOf(_kernel: BrepEngineApi, _face: BrepHandle): number | undefined {\n // occt-wasm 无公开 face area API(queryBatch 仅测试用、返回 {area} 但生产路径零调用)。\n // hint 携带的 area 仍参与面积比扣分(见 scorerArea),此处返回 undefined 表示「现场未知」。\n return undefined\n}\n\n/** 面积比扣分(hint.area 已知且 >0 时)。 */\nfunction scorerArea(hint: FaceHint, area: number | undefined): number {\n if (hint.area === undefined || hint.area <= 0) return 0\n if (area === undefined || area <= 0) return 0\n const logRatio = Math.abs(Math.log(hint.area / area))\n return logRatio > AREA_LOG_RATIO_MAX ? -logRatio : 0\n}\n\n/**\n * 打分一条候选(共用于 BREP 现场与面行快照两路)。\n *\n * @param kernel - OCCT 内核(candidate.handle 路径需要;row 路径可传 null)。\n * @param hint - 被解析 TopoRef 携带的面 hint。\n * @param candidate - 候选(句柄或面行)。\n * @returns 综合分;-Infinity 表示硬性不匹配。\n */\nexport function scoreCandidate(\n kernel: BrepEngineApi | null,\n hint: FaceHint,\n candidate: FaceCandidate,\n): number {\n let score = 0\n const g = candidateGeometry(kernel, candidate)\n\n // 曲面类型硬门\n if (hint.surfaceType !== undefined) {\n if (g.surfaceType === hint.surfaceType) {\n score += 1.0\n } else {\n return TYPE_MISMATCH\n }\n }\n\n // 法向点积\n if (hint.normal !== undefined && g.normal !== undefined) {\n const dot =\n hint.normal[0] * g.normal[0] +\n hint.normal[1] * g.normal[1] +\n hint.normal[2] * g.normal[2]\n if (dot < NORMAL_DOT_MIN) return TYPE_MISMATCH\n score += dot\n }\n\n // 质心距²惩罚\n if (hint.center !== undefined && g.center !== undefined) {\n const dx = hint.center[0] - g.center[0]\n const dy = hint.center[1] - g.center[1]\n const dz = hint.center[2] - g.center[2]\n const distSq = dx * dx + dy * dy + dz * dz\n if (distSq > CENTROID_DIST_SQ_MAX) return TYPE_MISMATCH\n score -= distSq / 100\n }\n\n // 面积比扣分\n score += scorerArea(hint, g.area)\n\n return score\n}\n\n/**\n * BREP 现场打分器(§3.5 defaultFaceScorer 移植):候选是活句柄,几何现场算。\n * 保持与 scoreFaceRow 同一套权重,保证两路结果可比。\n */\n/**\n * Build a scorer that computes geometry live from a BREP kernel handle.\n *\n * @param kernel - the OCCT kernel used to evaluate candidate face geometry.\n * @returns a FaceScorer scoring live face handles against a FaceHint.\n */\nexport function defaultFaceScorer(kernel: BrepEngineApi): FaceScorer {\n return (hint, candidate) => scoreCandidate(kernel, hint, candidate)\n}\n\n/**\n * 面行/命名槽快照打分器(§3.5 scoreFaceRow):候选是 FaceRow/hint 快照,\n * 用于 mesh/primitive(无 kernel 现场几何)。\n *\n * @param hint - the FaceHint carried by the TopoRef being resolved.\n * @param row - the candidate face-row snapshot (surfaceType/normal/center/area).\n * @returns the combined score; -Infinity rejects the candidate outright.\n */\nexport function scoreFaceRow(hint: FaceHint, row: FaceCandidate['row']): number {\n return scoreCandidate(null, hint, { row })\n}\n"]}
1
+ {"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/topology/naming/score.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * score.ts — 面候选打分器(移植 brepjs src/topology/shapeRef/scoring.ts)\n *\n * 两套实现,口径一致、结果可比(§3.5):\n * - `defaultFaceScorer`:BREP 现场几何(kernel 计算 surfaceType/normal/center/area)\n * - `scoreFaceRow`:mesh/primitive 面行快照(FaceRow 或命名槽 FaceHint)\n *\n * 阈值常量化并写明 mm 单位假设——faijs 契约就是 mm,可直接沿用 brepjs 阈值。\n */\n\nimport type { BrepEngineApi } from '../../brep/engine/primitives'\nimport type { BrepHandle } from '../../brep/engine/types'\nimport type { FaceHint } from './types'\n\n/** 打分函数:分越高越匹配;-Infinity 直接拒绝。 */\nexport type FaceScorer = (hint: FaceHint, candidate: FaceCandidate) => number\n\n/** 打分候选:BREP 现场句柄 或 mesh/primitive 面行快照,二选一。 */\nexport interface FaceCandidate {\n /** BREP 现场面句柄(走 kernel 现场几何)。 */\n readonly handle?: BrepHandle\n /** 面行快照(mesh/primitive;与 handle 二选一)。 */\n readonly row?: Readonly<{\n surfaceType?: string\n normal?: readonly number[]\n center?: readonly number[]\n area?: number\n }>\n}\n\n/** 曲面类型不符直接拒绝(硬门)。 */\nconst TYPE_MISMATCH = -Infinity\n/** 法向点积下限(拒绝阈值)。 */\nconst NORMAL_DOT_MIN = 0.707\n/** 质心距²上限(mm²;拒绝阈值)。 */\nconst CENTROID_DIST_SQ_MAX = 100\n/** 面积 |log 比| 超此值扣分。 */\nconst AREA_LOG_RATIO_MAX = 1.0\n/** 几何兜底接受的最小分。 */\nexport const MIN_SCORE = 0.5\n/** 并列模糊带:两候选分差小于此值视为并列(→ ambiguous)。 */\nexport const AMBIGUITY_THRESHOLD = 0.1\n\n/** 从候选读取几何量的统一入口(handle 优先,row 兜底)。 */\nfunction candidateGeometry(\n kernel: BrepEngineApi | null,\n candidate: FaceCandidate,\n): { surfaceType?: string; normal?: readonly number[]; center?: readonly number[]; area?: number } {\n if (candidate.handle !== undefined && kernel) {\n const center = kernel.surfaceCenterOfMass(candidate.handle)\n const uv = kernel.uvBounds(candidate.handle)\n const u = (uv.uMin + uv.uMax) / 2\n const v = (uv.vMin + uv.vMax) / 2\n const normal = kernel.surfaceNormal(candidate.handle, u, v)\n return {\n surfaceType: kernel.surfaceType(candidate.handle),\n normal: [normal.x, normal.y, normal.z],\n center: [center.x, center.y, center.z],\n area: faceAreaOf(kernel, candidate.handle),\n }\n }\n return candidate.row ?? {}\n}\n\n/** 面面积:BREP 现场无直接 API,用包围盒近似不可靠——退化为 undefined(不打分)。 */\nfunction faceAreaOf(_kernel: BrepEngineApi, _face: BrepHandle): number | undefined {\n // occt-wasm 无公开 face area API(queryBatch 仅测试用、返回 {area} 但生产路径零调用)。\n // hint 携带的 area 仍参与面积比扣分(见 scorerArea),此处返回 undefined 表示「现场未知」。\n return undefined\n}\n\n/** 面积比扣分(hint.area 已知且 >0 时)。 */\nfunction scorerArea(hint: FaceHint, area: number | undefined): number {\n if (hint.area === undefined || hint.area <= 0) return 0\n if (area === undefined || area <= 0) return 0\n const logRatio = Math.abs(Math.log(hint.area / area))\n return logRatio > AREA_LOG_RATIO_MAX ? -logRatio : 0\n}\n\n/**\n * 打分一条候选(共用于 BREP 现场与面行快照两路)。\n *\n * @param kernel - OCCT 内核(candidate.handle 路径需要;row 路径可传 null)。\n * @param hint - 被解析 TopoRef 携带的面 hint。\n * @param candidate - 候选(句柄或面行)。\n * @returns 综合分;-Infinity 表示硬性不匹配。\n */\nexport function scoreCandidate(\n kernel: BrepEngineApi | null,\n hint: FaceHint,\n candidate: FaceCandidate,\n): number {\n let score = 0\n const g = candidateGeometry(kernel, candidate)\n\n // 曲面类型硬门\n if (hint.surfaceType !== undefined) {\n if (g.surfaceType === hint.surfaceType) {\n score += 1.0\n } else {\n return TYPE_MISMATCH\n }\n }\n\n // 法向点积\n if (hint.normal !== undefined && g.normal !== undefined) {\n const dot =\n hint.normal[0] * g.normal[0] +\n hint.normal[1] * g.normal[1] +\n hint.normal[2] * g.normal[2]\n if (dot < NORMAL_DOT_MIN) return TYPE_MISMATCH\n score += dot\n }\n\n // 质心距²惩罚\n if (hint.center !== undefined && g.center !== undefined) {\n const dx = hint.center[0] - g.center[0]\n const dy = hint.center[1] - g.center[1]\n const dz = hint.center[2] - g.center[2]\n const distSq = dx * dx + dy * dy + dz * dz\n if (distSq > CENTROID_DIST_SQ_MAX) return TYPE_MISMATCH\n score -= distSq / 100\n }\n\n // 面积比扣分\n score += scorerArea(hint, g.area)\n\n return score\n}\n\n/**\n * BREP 现场打分器(§3.5 defaultFaceScorer 移植):候选是活句柄,几何现场算。\n * 保持与 scoreFaceRow 同一套权重,保证两路结果可比。\n */\n/**\n * Build a scorer that computes geometry live from a BREP kernel handle.\n *\n * @param kernel - the OCCT kernel used to evaluate candidate face geometry.\n * @returns a FaceScorer scoring live face handles against a FaceHint.\n */\nexport function defaultFaceScorer(kernel: BrepEngineApi): FaceScorer {\n return (hint, candidate) => scoreCandidate(kernel, hint, candidate)\n}\n\n/**\n * 面行/命名槽快照打分器(§3.5 scoreFaceRow):候选是 FaceRow/hint 快照,\n * 用于 mesh/primitive(无 kernel 现场几何)。\n *\n * @param hint - the FaceHint carried by the TopoRef being resolved.\n * @param row - the candidate face-row snapshot (surfaceType/normal/center/area).\n * @returns the combined score; -Infinity rejects the candidate outright.\n */\nexport function scoreFaceRow(hint: FaceHint, row: FaceCandidate['row']): number {\n return scoreCandidate(null, hint, { row })\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faicad/faijs",
3
- "version": "0.16.1",
3
+ "version": "0.18.0",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -9,9 +9,7 @@
9
9
  },
10
10
  "main": "./dist/index.js",
11
11
  "types": "./dist/index.d.ts",
12
- "bin": {
13
- "faijs-fcstd-convert": "./dist/fcstd/cli.js"
14
- },
12
+ "bin": {},
15
13
  "exports": {
16
14
  ".": {
17
15
  "types": "./dist/index.d.ts",
@@ -49,14 +47,6 @@
49
47
  "types": "./dist/sdf.d.ts",
50
48
  "default": "./dist/sdf.js"
51
49
  },
52
- "./fcstd": {
53
- "types": "./dist/fcstd/index.d.ts",
54
- "default": "./dist/fcstd/index.js"
55
- },
56
- "./fcstd-convert": {
57
- "types": "./dist/fcstd-convert.d.ts",
58
- "default": "./dist/fcstd-convert.js"
59
- },
60
50
  "./node": {
61
51
  "types": "./dist/node.d.ts",
62
52
  "default": "./dist/node.js"
@@ -128,6 +118,10 @@
128
118
  "./boolean/*": {
129
119
  "types": "./dist/boolean/*.d.ts",
130
120
  "default": "./dist/boolean/*.js"
121
+ },
122
+ "./env-agnostic": {
123
+ "types": "./dist/env-agnostic.d.ts",
124
+ "default": "./dist/env-agnostic.js"
131
125
  }
132
126
  },
133
127
  "files": [
@@ -136,11 +130,8 @@
136
130
  "LICENSE"
137
131
  ],
138
132
  "dependencies": {
139
- "@salusoft89/planegcs": "1.2.0",
140
133
  "@xmldom/xmldom": "^0.9.8",
141
134
  "acorn": "^8.18.0",
142
- "fflate": "^0.8.2",
143
- "flatbush": "^4.6.2",
144
135
  "manifold-3d": "^3.5.1",
145
136
  "opentype.js": "^1.3.4"
146
137
  },
@@ -162,7 +153,6 @@
162
153
  "typecheck": "tsc --noEmit",
163
154
  "test": "vitest run",
164
155
  "lint": "eslint src",
165
- "fcstd:convert": "tsx src/fcstd/cli.ts",
166
156
  "gen:capability-map": "tsx scripts/gen-capability-map.ts",
167
157
  "gen:brepkit-surface": "tsx scripts/gen-brepkit-surface.ts"
168
158
  }