fluidcad 0.0.2

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 (773) hide show
  1. package/LICENSE.txt +504 -0
  2. package/README.md +175 -0
  3. package/bin/fluidcad.js +94 -0
  4. package/bin/watcher.js +55 -0
  5. package/lib/dist/common/edge.d.ts +14 -0
  6. package/lib/dist/common/edge.js +32 -0
  7. package/lib/dist/common/face.d.ts +31 -0
  8. package/lib/dist/common/face.js +83 -0
  9. package/lib/dist/common/materials.d.ts +7 -0
  10. package/lib/dist/common/materials.js +22 -0
  11. package/lib/dist/common/scene-object.d.ts +111 -0
  12. package/lib/dist/common/scene-object.js +380 -0
  13. package/lib/dist/common/shape-factory.d.ts +8 -0
  14. package/lib/dist/common/shape-factory.js +31 -0
  15. package/lib/dist/common/shape-type.d.ts +1 -0
  16. package/lib/dist/common/shape-type.js +1 -0
  17. package/lib/dist/common/shape.d.ts +43 -0
  18. package/lib/dist/common/shape.js +95 -0
  19. package/lib/dist/common/shapes.d.ts +6 -0
  20. package/lib/dist/common/shapes.js +6 -0
  21. package/lib/dist/common/solid-face.d.ts +9 -0
  22. package/lib/dist/common/solid-face.js +22 -0
  23. package/lib/dist/common/solid.d.ts +20 -0
  24. package/lib/dist/common/solid.js +68 -0
  25. package/lib/dist/common/vertex.d.ts +17 -0
  26. package/lib/dist/common/vertex.js +44 -0
  27. package/lib/dist/common/wire.d.ts +22 -0
  28. package/lib/dist/common/wire.js +97 -0
  29. package/lib/dist/constraints/constraint.d.ts +11 -0
  30. package/lib/dist/constraints/constraint.js +51 -0
  31. package/lib/dist/constraints/outside.d.ts +3 -0
  32. package/lib/dist/constraints/outside.js +4 -0
  33. package/lib/dist/core/2d/aline.d.ts +28 -0
  34. package/lib/dist/core/2d/aline.js +26 -0
  35. package/lib/dist/core/2d/arc.d.ts +77 -0
  36. package/lib/dist/core/2d/arc.js +49 -0
  37. package/lib/dist/core/2d/aslot.d.ts +12 -0
  38. package/lib/dist/core/2d/aslot.js +40 -0
  39. package/lib/dist/core/2d/bezier.d.ts +16 -0
  40. package/lib/dist/core/2d/bezier.js +15 -0
  41. package/lib/dist/core/2d/circle.d.ts +24 -0
  42. package/lib/dist/core/2d/circle.js +44 -0
  43. package/lib/dist/core/2d/connect.d.ts +11 -0
  44. package/lib/dist/core/2d/connect.js +10 -0
  45. package/lib/dist/core/2d/crect.d.ts +12 -0
  46. package/lib/dist/core/2d/crect.js +74 -0
  47. package/lib/dist/core/2d/face-driller.d.ts +8 -0
  48. package/lib/dist/core/2d/face-driller.js +70 -0
  49. package/lib/dist/core/2d/face-maker.d.ts +13 -0
  50. package/lib/dist/core/2d/face-maker.js +119 -0
  51. package/lib/dist/core/2d/face-maker2.d.ts +6 -0
  52. package/lib/dist/core/2d/face-maker2.js +54 -0
  53. package/lib/dist/core/2d/hline.d.ts +33 -0
  54. package/lib/dist/core/2d/hline.js +37 -0
  55. package/lib/dist/core/2d/hmove.d.ts +9 -0
  56. package/lib/dist/core/2d/hmove.js +11 -0
  57. package/lib/dist/core/2d/index.d.ts +22 -0
  58. package/lib/dist/core/2d/index.js +22 -0
  59. package/lib/dist/core/2d/line.d.ts +24 -0
  60. package/lib/dist/core/2d/line.js +40 -0
  61. package/lib/dist/core/2d/move.d.ts +13 -0
  62. package/lib/dist/core/2d/move.js +13 -0
  63. package/lib/dist/core/2d/offset.d.ts +21 -0
  64. package/lib/dist/core/2d/offset.js +24 -0
  65. package/lib/dist/core/2d/pmove.d.ts +11 -0
  66. package/lib/dist/core/2d/pmove.js +12 -0
  67. package/lib/dist/core/2d/polygon.d.ts +38 -0
  68. package/lib/dist/core/2d/polygon.js +63 -0
  69. package/lib/dist/core/2d/project.d.ts +17 -0
  70. package/lib/dist/core/2d/project.js +20 -0
  71. package/lib/dist/core/2d/rect.d.ts +27 -0
  72. package/lib/dist/core/2d/rect.js +58 -0
  73. package/lib/dist/core/2d/rmove.d.ts +17 -0
  74. package/lib/dist/core/2d/rmove.js +14 -0
  75. package/lib/dist/core/2d/slot.d.ts +49 -0
  76. package/lib/dist/core/2d/slot.js +65 -0
  77. package/lib/dist/core/2d/tarc.d.ts +46 -0
  78. package/lib/dist/core/2d/tarc.js +61 -0
  79. package/lib/dist/core/2d/tcircle.d.ts +15 -0
  80. package/lib/dist/core/2d/tcircle.js +24 -0
  81. package/lib/dist/core/2d/tline.d.ts +24 -0
  82. package/lib/dist/core/2d/tline.js +30 -0
  83. package/lib/dist/core/2d/vline.d.ts +33 -0
  84. package/lib/dist/core/2d/vline.js +37 -0
  85. package/lib/dist/core/2d/vmove.d.ts +9 -0
  86. package/lib/dist/core/2d/vmove.js +11 -0
  87. package/lib/dist/core/2d/wire.d.ts +11 -0
  88. package/lib/dist/core/2d/wire.js +29 -0
  89. package/lib/dist/core/axis.d.ts +41 -0
  90. package/lib/dist/core/axis.js +104 -0
  91. package/lib/dist/core/chamfer.d.ts +31 -0
  92. package/lib/dist/core/chamfer.js +32 -0
  93. package/lib/dist/core/color.d.ts +16 -0
  94. package/lib/dist/core/color.js +19 -0
  95. package/lib/dist/core/common.d.ts +12 -0
  96. package/lib/dist/core/common.js +36 -0
  97. package/lib/dist/core/copy.d.ts +58 -0
  98. package/lib/dist/core/copy.js +49 -0
  99. package/lib/dist/core/cut.d.ts +46 -0
  100. package/lib/dist/core/cut.js +53 -0
  101. package/lib/dist/core/cylinder.d.ts +11 -0
  102. package/lib/dist/core/cylinder.js +10 -0
  103. package/lib/dist/core/extrude.d.ts +36 -0
  104. package/lib/dist/core/extrude.js +55 -0
  105. package/lib/dist/core/fillet.d.ts +33 -0
  106. package/lib/dist/core/fillet.js +58 -0
  107. package/lib/dist/core/fuse.d.ts +14 -0
  108. package/lib/dist/core/fuse.js +36 -0
  109. package/lib/dist/core/index.d.ts +32 -0
  110. package/lib/dist/core/index.js +30 -0
  111. package/lib/dist/core/interfaces.d.ts +411 -0
  112. package/lib/dist/core/interfaces.js +1 -0
  113. package/lib/dist/core/load.d.ts +10 -0
  114. package/lib/dist/core/load.js +10 -0
  115. package/lib/dist/core/loft.d.ts +10 -0
  116. package/lib/dist/core/loft.js +21 -0
  117. package/lib/dist/core/mirror.d.ts +40 -0
  118. package/lib/dist/core/mirror.js +95 -0
  119. package/lib/dist/core/part.d.ts +7 -0
  120. package/lib/dist/core/part.js +29 -0
  121. package/lib/dist/core/plane.d.ts +56 -0
  122. package/lib/dist/core/plane.js +111 -0
  123. package/lib/dist/core/region.d.ts +13 -0
  124. package/lib/dist/core/region.js +18 -0
  125. package/lib/dist/core/remove.d.ts +10 -0
  126. package/lib/dist/core/remove.js +10 -0
  127. package/lib/dist/core/repeat.d.ts +41 -0
  128. package/lib/dist/core/repeat.js +146 -0
  129. package/lib/dist/core/revolve.d.ts +19 -0
  130. package/lib/dist/core/revolve.js +39 -0
  131. package/lib/dist/core/rotate.d.ts +34 -0
  132. package/lib/dist/core/rotate.js +48 -0
  133. package/lib/dist/core/select.d.ts +12 -0
  134. package/lib/dist/core/select.js +21 -0
  135. package/lib/dist/core/shell.d.ts +16 -0
  136. package/lib/dist/core/shell.js +28 -0
  137. package/lib/dist/core/sketch.d.ts +18 -0
  138. package/lib/dist/core/sketch.js +34 -0
  139. package/lib/dist/core/sphere.d.ts +16 -0
  140. package/lib/dist/core/sphere.js +11 -0
  141. package/lib/dist/core/split.d.ts +12 -0
  142. package/lib/dist/core/split.js +26 -0
  143. package/lib/dist/core/subtract.d.ts +11 -0
  144. package/lib/dist/core/subtract.js +10 -0
  145. package/lib/dist/core/sweep.d.ts +16 -0
  146. package/lib/dist/core/sweep.js +29 -0
  147. package/lib/dist/core/translate.d.ts +64 -0
  148. package/lib/dist/core/translate.js +39 -0
  149. package/lib/dist/core/trim.d.ts +13 -0
  150. package/lib/dist/core/trim.js +18 -0
  151. package/lib/dist/core/use.d.ts +5 -0
  152. package/lib/dist/core/use.js +22 -0
  153. package/lib/dist/features/2d/aline.d.ts +18 -0
  154. package/lib/dist/features/2d/aline.js +78 -0
  155. package/lib/dist/features/2d/amove.d.ts +14 -0
  156. package/lib/dist/features/2d/amove.js +33 -0
  157. package/lib/dist/features/2d/arc-from-center.d.ts +16 -0
  158. package/lib/dist/features/2d/arc-from-center.js +69 -0
  159. package/lib/dist/features/2d/arc-to-point.d.ts +17 -0
  160. package/lib/dist/features/2d/arc-to-point.js +95 -0
  161. package/lib/dist/features/2d/arc.d.ts +19 -0
  162. package/lib/dist/features/2d/arc.js +94 -0
  163. package/lib/dist/features/2d/bezier.d.ts +15 -0
  164. package/lib/dist/features/2d/bezier.js +77 -0
  165. package/lib/dist/features/2d/circle.d.ts +17 -0
  166. package/lib/dist/features/2d/circle.js +58 -0
  167. package/lib/dist/features/2d/connect.d.ts +12 -0
  168. package/lib/dist/features/2d/connect.js +105 -0
  169. package/lib/dist/features/2d/constraints/constraint.d.ts +11 -0
  170. package/lib/dist/features/2d/constraints/constraint.js +49 -0
  171. package/lib/dist/features/2d/constraints/geometry-qualifier.d.ts +6 -0
  172. package/lib/dist/features/2d/constraints/geometry-qualifier.js +13 -0
  173. package/lib/dist/features/2d/constraints/outside.d.ts +3 -0
  174. package/lib/dist/features/2d/constraints/outside.js +4 -0
  175. package/lib/dist/features/2d/constraints/qualified-geometry.d.ts +16 -0
  176. package/lib/dist/features/2d/constraints/qualified-geometry.js +36 -0
  177. package/lib/dist/features/2d/extrudable-base.d.ts +15 -0
  178. package/lib/dist/features/2d/extrudable-base.js +27 -0
  179. package/lib/dist/features/2d/geometry.d.ts +20 -0
  180. package/lib/dist/features/2d/geometry.js +77 -0
  181. package/lib/dist/features/2d/hline.d.ts +16 -0
  182. package/lib/dist/features/2d/hline.js +66 -0
  183. package/lib/dist/features/2d/hmove.d.ts +14 -0
  184. package/lib/dist/features/2d/hmove.js +37 -0
  185. package/lib/dist/features/2d/line.d.ts +15 -0
  186. package/lib/dist/features/2d/line.js +59 -0
  187. package/lib/dist/features/2d/move.d.ts +15 -0
  188. package/lib/dist/features/2d/move.js +36 -0
  189. package/lib/dist/features/2d/offset.d.ts +18 -0
  190. package/lib/dist/features/2d/offset.js +117 -0
  191. package/lib/dist/features/2d/pmove.d.ts +16 -0
  192. package/lib/dist/features/2d/pmove.js +40 -0
  193. package/lib/dist/features/2d/polygon.d.ts +25 -0
  194. package/lib/dist/features/2d/polygon.js +107 -0
  195. package/lib/dist/features/2d/projection.d.ts +15 -0
  196. package/lib/dist/features/2d/projection.js +94 -0
  197. package/lib/dist/features/2d/rect.d.ts +45 -0
  198. package/lib/dist/features/2d/rect.js +262 -0
  199. package/lib/dist/features/2d/rmove.d.ts +17 -0
  200. package/lib/dist/features/2d/rmove.js +39 -0
  201. package/lib/dist/features/2d/sketch.d.ts +34 -0
  202. package/lib/dist/features/2d/sketch.js +171 -0
  203. package/lib/dist/features/2d/slot-from-edge.d.ts +19 -0
  204. package/lib/dist/features/2d/slot-from-edge.js +66 -0
  205. package/lib/dist/features/2d/slot.d.ts +24 -0
  206. package/lib/dist/features/2d/slot.js +119 -0
  207. package/lib/dist/features/2d/tarc-constrained.d.ts +20 -0
  208. package/lib/dist/features/2d/tarc-constrained.js +64 -0
  209. package/lib/dist/features/2d/tarc-to-point-tangent.d.ts +15 -0
  210. package/lib/dist/features/2d/tarc-to-point-tangent.js +86 -0
  211. package/lib/dist/features/2d/tarc-to-point.d.ts +13 -0
  212. package/lib/dist/features/2d/tarc-to-point.js +86 -0
  213. package/lib/dist/features/2d/tarc-two-circles.d.ts +18 -0
  214. package/lib/dist/features/2d/tarc-two-circles.js +61 -0
  215. package/lib/dist/features/2d/tarc-with-tangent.d.ts +17 -0
  216. package/lib/dist/features/2d/tarc-with-tangent.js +71 -0
  217. package/lib/dist/features/2d/tarc.d.ts +13 -0
  218. package/lib/dist/features/2d/tarc.js +71 -0
  219. package/lib/dist/features/2d/tcircle-constrained.d.ts +14 -0
  220. package/lib/dist/features/2d/tcircle-constrained.js +37 -0
  221. package/lib/dist/features/2d/tcircle-three-tan.d.ts +13 -0
  222. package/lib/dist/features/2d/tcircle-three-tan.js +33 -0
  223. package/lib/dist/features/2d/tcircle-two-tan.d.ts +13 -0
  224. package/lib/dist/features/2d/tcircle-two-tan.js +33 -0
  225. package/lib/dist/features/2d/tline-constrained.d.ts +27 -0
  226. package/lib/dist/features/2d/tline-constrained.js +82 -0
  227. package/lib/dist/features/2d/tline.d.ts +12 -0
  228. package/lib/dist/features/2d/tline.js +49 -0
  229. package/lib/dist/features/2d/vline.d.ts +16 -0
  230. package/lib/dist/features/2d/vline.js +65 -0
  231. package/lib/dist/features/2d/vmove.d.ts +14 -0
  232. package/lib/dist/features/2d/vmove.js +37 -0
  233. package/lib/dist/features/2d/wire.d.ts +12 -0
  234. package/lib/dist/features/2d/wire.js +76 -0
  235. package/lib/dist/features/Extrude.d.ts +1 -0
  236. package/lib/dist/features/Extrude.js +1 -0
  237. package/lib/dist/features/axis-from-edge.d.ts +15 -0
  238. package/lib/dist/features/axis-from-edge.js +82 -0
  239. package/lib/dist/features/axis-mid.d.ts +16 -0
  240. package/lib/dist/features/axis-mid.js +59 -0
  241. package/lib/dist/features/axis-renderable-base.d.ts +8 -0
  242. package/lib/dist/features/axis-renderable-base.js +12 -0
  243. package/lib/dist/features/axis.d.ts +14 -0
  244. package/lib/dist/features/axis.js +43 -0
  245. package/lib/dist/features/chamfer.d.ts +20 -0
  246. package/lib/dist/features/chamfer.js +129 -0
  247. package/lib/dist/features/color.d.ts +11 -0
  248. package/lib/dist/features/color.js +93 -0
  249. package/lib/dist/features/common.d.ts +12 -0
  250. package/lib/dist/features/common.js +70 -0
  251. package/lib/dist/features/common2d.d.ts +15 -0
  252. package/lib/dist/features/common2d.js +96 -0
  253. package/lib/dist/features/copy-circular.d.ts +23 -0
  254. package/lib/dist/features/copy-circular.js +73 -0
  255. package/lib/dist/features/copy-circular2d.d.ts +15 -0
  256. package/lib/dist/features/copy-circular2d.js +84 -0
  257. package/lib/dist/features/copy-linear.d.ts +23 -0
  258. package/lib/dist/features/copy-linear.js +101 -0
  259. package/lib/dist/features/copy-linear2d.d.ts +15 -0
  260. package/lib/dist/features/copy-linear2d.js +108 -0
  261. package/lib/dist/features/cut-base.d.ts +49 -0
  262. package/lib/dist/features/cut-base.js +312 -0
  263. package/lib/dist/features/cut-symmetric.d.ts +23 -0
  264. package/lib/dist/features/cut-symmetric.js +119 -0
  265. package/lib/dist/features/cut-two-distances.d.ts +24 -0
  266. package/lib/dist/features/cut-two-distances.js +110 -0
  267. package/lib/dist/features/cut.d.ts +27 -0
  268. package/lib/dist/features/cut.js +101 -0
  269. package/lib/dist/features/cylinder.d.ts +13 -0
  270. package/lib/dist/features/cylinder.js +33 -0
  271. package/lib/dist/features/extrude-base.d.ts +56 -0
  272. package/lib/dist/features/extrude-base.js +331 -0
  273. package/lib/dist/features/extrude-options.d.ts +8 -0
  274. package/lib/dist/features/extrude-options.js +1 -0
  275. package/lib/dist/features/extrude-symmetric.d.ts +28 -0
  276. package/lib/dist/features/extrude-symmetric.js +177 -0
  277. package/lib/dist/features/extrude-to-face.d.ts +35 -0
  278. package/lib/dist/features/extrude-to-face.js +275 -0
  279. package/lib/dist/features/extrude-two-distances.d.ts +21 -0
  280. package/lib/dist/features/extrude-two-distances.js +116 -0
  281. package/lib/dist/features/extrude.d.ts +25 -0
  282. package/lib/dist/features/extrude.js +182 -0
  283. package/lib/dist/features/fillet.d.ts +24 -0
  284. package/lib/dist/features/fillet.js +125 -0
  285. package/lib/dist/features/fillet2d.d.ts +16 -0
  286. package/lib/dist/features/fillet2d.js +98 -0
  287. package/lib/dist/features/fuse.d.ts +10 -0
  288. package/lib/dist/features/fuse.js +63 -0
  289. package/lib/dist/features/fuse2d.d.ts +13 -0
  290. package/lib/dist/features/fuse2d.js +86 -0
  291. package/lib/dist/features/infinite-extrude.d.ts +10 -0
  292. package/lib/dist/features/infinite-extrude.js +44 -0
  293. package/lib/dist/features/lazy-scene-object.d.ts +16 -0
  294. package/lib/dist/features/lazy-scene-object.js +52 -0
  295. package/lib/dist/features/lazy-vertex.d.ts +19 -0
  296. package/lib/dist/features/lazy-vertex.js +62 -0
  297. package/lib/dist/features/load.d.ts +9 -0
  298. package/lib/dist/features/load.js +31 -0
  299. package/lib/dist/features/loft.d.ts +27 -0
  300. package/lib/dist/features/loft.js +273 -0
  301. package/lib/dist/features/mirror-feature.d.ts +15 -0
  302. package/lib/dist/features/mirror-feature.js +39 -0
  303. package/lib/dist/features/mirror-shape.d.ts +14 -0
  304. package/lib/dist/features/mirror-shape.js +86 -0
  305. package/lib/dist/features/mirror-shape2d.d.ts +18 -0
  306. package/lib/dist/features/mirror-shape2d.js +110 -0
  307. package/lib/dist/features/part.d.ts +12 -0
  308. package/lib/dist/features/part.js +36 -0
  309. package/lib/dist/features/plane-from-object.d.ts +29 -0
  310. package/lib/dist/features/plane-from-object.js +103 -0
  311. package/lib/dist/features/plane-mid.d.ts +18 -0
  312. package/lib/dist/features/plane-mid.js +54 -0
  313. package/lib/dist/features/plane-renderable-base.d.ts +9 -0
  314. package/lib/dist/features/plane-renderable-base.js +15 -0
  315. package/lib/dist/features/plane.d.ts +21 -0
  316. package/lib/dist/features/plane.js +64 -0
  317. package/lib/dist/features/region2d.d.ts +25 -0
  318. package/lib/dist/features/region2d.js +185 -0
  319. package/lib/dist/features/remove.d.ts +9 -0
  320. package/lib/dist/features/remove.js +33 -0
  321. package/lib/dist/features/repeat-circular.d.ts +23 -0
  322. package/lib/dist/features/repeat-circular.js +47 -0
  323. package/lib/dist/features/repeat-circular2d.d.ts +17 -0
  324. package/lib/dist/features/repeat-circular2d.js +90 -0
  325. package/lib/dist/features/repeat-linear.d.ts +23 -0
  326. package/lib/dist/features/repeat-linear.js +52 -0
  327. package/lib/dist/features/repeat-linear2d.d.ts +17 -0
  328. package/lib/dist/features/repeat-linear2d.js +114 -0
  329. package/lib/dist/features/revolve-options.d.ts +6 -0
  330. package/lib/dist/features/revolve-options.js +1 -0
  331. package/lib/dist/features/revolve.d.ts +23 -0
  332. package/lib/dist/features/revolve.js +150 -0
  333. package/lib/dist/features/rotate.d.ts +16 -0
  334. package/lib/dist/features/rotate.js +89 -0
  335. package/lib/dist/features/rotate2d.d.ts +15 -0
  336. package/lib/dist/features/rotate2d.js +83 -0
  337. package/lib/dist/features/select.d.ts +26 -0
  338. package/lib/dist/features/select.js +113 -0
  339. package/lib/dist/features/shell.d.ts +24 -0
  340. package/lib/dist/features/shell.js +214 -0
  341. package/lib/dist/features/simple-extruder.d.ts +22 -0
  342. package/lib/dist/features/simple-extruder.js +108 -0
  343. package/lib/dist/features/sphere.d.ts +13 -0
  344. package/lib/dist/features/sphere.js +33 -0
  345. package/lib/dist/features/split.d.ts +14 -0
  346. package/lib/dist/features/split.js +74 -0
  347. package/lib/dist/features/split2d.d.ts +13 -0
  348. package/lib/dist/features/split2d.js +69 -0
  349. package/lib/dist/features/state-scene-object.d.ts +15 -0
  350. package/lib/dist/features/state-scene-object.js +44 -0
  351. package/lib/dist/features/state-select.d.ts +21 -0
  352. package/lib/dist/features/state-select.js +73 -0
  353. package/lib/dist/features/static-scene-object.d.ts +10 -0
  354. package/lib/dist/features/static-scene-object.js +21 -0
  355. package/lib/dist/features/subtract.d.ts +13 -0
  356. package/lib/dist/features/subtract.js +56 -0
  357. package/lib/dist/features/sweep.d.ts +22 -0
  358. package/lib/dist/features/sweep.js +129 -0
  359. package/lib/dist/features/translate.d.ts +17 -0
  360. package/lib/dist/features/translate.js +76 -0
  361. package/lib/dist/features/translate2d.d.ts +16 -0
  362. package/lib/dist/features/translate2d.js +61 -0
  363. package/lib/dist/features/trim2d.d.ts +15 -0
  364. package/lib/dist/features/trim2d.js +154 -0
  365. package/lib/dist/filters/all-filter.d.ts +8 -0
  366. package/lib/dist/filters/all-filter.js +12 -0
  367. package/lib/dist/filters/edge/at-index.d.ts +21 -0
  368. package/lib/dist/filters/edge/at-index.js +82 -0
  369. package/lib/dist/filters/edge/circle-filter.d.ts +17 -0
  370. package/lib/dist/filters/edge/circle-filter.js +34 -0
  371. package/lib/dist/filters/edge/curve-filter.d.ts +17 -0
  372. package/lib/dist/filters/edge/curve-filter.js +34 -0
  373. package/lib/dist/filters/edge/edge-filter.d.ts +22 -0
  374. package/lib/dist/filters/edge/edge-filter.js +169 -0
  375. package/lib/dist/filters/edge/line-filter.d.ts +14 -0
  376. package/lib/dist/filters/edge/line-filter.js +27 -0
  377. package/lib/dist/filters/edge/on-plane.d.ts +20 -0
  378. package/lib/dist/filters/edge/on-plane.js +70 -0
  379. package/lib/dist/filters/edge/parallel.d.ts +18 -0
  380. package/lib/dist/filters/edge/parallel.js +41 -0
  381. package/lib/dist/filters/edge/vertical-plane.d.ts +18 -0
  382. package/lib/dist/filters/edge/vertical-plane.js +41 -0
  383. package/lib/dist/filters/face/at-index.d.ts +21 -0
  384. package/lib/dist/filters/face/at-index.js +89 -0
  385. package/lib/dist/filters/face/circle-filter.d.ts +17 -0
  386. package/lib/dist/filters/face/circle-filter.js +34 -0
  387. package/lib/dist/filters/face/cone-filter.d.ts +15 -0
  388. package/lib/dist/filters/face/cone-filter.js +30 -0
  389. package/lib/dist/filters/face/cylinder-curve.d.ts +17 -0
  390. package/lib/dist/filters/face/cylinder-curve.js +34 -0
  391. package/lib/dist/filters/face/cylinder.d.ts +17 -0
  392. package/lib/dist/filters/face/cylinder.js +34 -0
  393. package/lib/dist/filters/face/face-filter.d.ts +21 -0
  394. package/lib/dist/filters/face/face-filter.js +134 -0
  395. package/lib/dist/filters/face/on-plane.d.ts +18 -0
  396. package/lib/dist/filters/face/on-plane.js +41 -0
  397. package/lib/dist/filters/face/parallel.d.ts +18 -0
  398. package/lib/dist/filters/face/parallel.js +41 -0
  399. package/lib/dist/filters/filter-base.d.ts +8 -0
  400. package/lib/dist/filters/filter-base.js +2 -0
  401. package/lib/dist/filters/filter-builder-base.d.ts +10 -0
  402. package/lib/dist/filters/filter-builder-base.js +31 -0
  403. package/lib/dist/filters/filter.d.ts +8 -0
  404. package/lib/dist/filters/filter.js +33 -0
  405. package/lib/dist/filters/index.d.ts +4 -0
  406. package/lib/dist/filters/index.js +8 -0
  407. package/lib/dist/filters/near-point-filter.d.ts +11 -0
  408. package/lib/dist/filters/near-point-filter.js +33 -0
  409. package/lib/dist/helpers/clone-transform.d.ts +3 -0
  410. package/lib/dist/helpers/clone-transform.js +46 -0
  411. package/lib/dist/helpers/cut-helpers.d.ts +13 -0
  412. package/lib/dist/helpers/cut-helpers.js +79 -0
  413. package/lib/dist/helpers/math-helpers.d.ts +2 -0
  414. package/lib/dist/helpers/math-helpers.js +6 -0
  415. package/lib/dist/helpers/normalize.d.ts +12 -0
  416. package/lib/dist/helpers/normalize.js +118 -0
  417. package/lib/dist/helpers/resolve-filters.d.ts +6 -0
  418. package/lib/dist/helpers/resolve-filters.js +25 -0
  419. package/lib/dist/helpers/resolve.d.ts +8 -0
  420. package/lib/dist/helpers/resolve.js +45 -0
  421. package/lib/dist/helpers/scene-helpers.d.ts +17 -0
  422. package/lib/dist/helpers/scene-helpers.js +67 -0
  423. package/lib/dist/helpers/types.d.ts +27 -0
  424. package/lib/dist/helpers/types.js +1 -0
  425. package/lib/dist/index.d.ts +37 -0
  426. package/lib/dist/index.js +75 -0
  427. package/lib/dist/io/file-export.d.ts +30 -0
  428. package/lib/dist/io/file-export.js +45 -0
  429. package/lib/dist/io/file-import.d.ts +8 -0
  430. package/lib/dist/io/file-import.js +81 -0
  431. package/lib/dist/load.d.ts +1 -0
  432. package/lib/dist/load.js +1 -0
  433. package/lib/dist/math/axis.d.ts +72 -0
  434. package/lib/dist/math/axis.js +157 -0
  435. package/lib/dist/math/axis.test.d.ts +1 -0
  436. package/lib/dist/math/axis.test.js +287 -0
  437. package/lib/dist/math/convert.d.ts +2 -0
  438. package/lib/dist/math/convert.js +1 -0
  439. package/lib/dist/math/coordinate-system.d.ts +43 -0
  440. package/lib/dist/math/coordinate-system.js +140 -0
  441. package/lib/dist/math/coordinate-system.test.d.ts +1 -0
  442. package/lib/dist/math/coordinate-system.test.js +308 -0
  443. package/lib/dist/math/index.d.ts +8 -0
  444. package/lib/dist/math/index.js +8 -0
  445. package/lib/dist/math/matrix4.d.ts +53 -0
  446. package/lib/dist/math/matrix4.js +336 -0
  447. package/lib/dist/math/matrix4.test.d.ts +1 -0
  448. package/lib/dist/math/matrix4.test.js +357 -0
  449. package/lib/dist/math/plane.d.ts +60 -0
  450. package/lib/dist/math/plane.js +243 -0
  451. package/lib/dist/math/plane.test.d.ts +1 -0
  452. package/lib/dist/math/plane.test.js +398 -0
  453. package/lib/dist/math/point.d.ts +73 -0
  454. package/lib/dist/math/point.js +227 -0
  455. package/lib/dist/math/point.test.d.ts +1 -0
  456. package/lib/dist/math/point.test.js +385 -0
  457. package/lib/dist/math/quaternion.d.ts +37 -0
  458. package/lib/dist/math/quaternion.js +234 -0
  459. package/lib/dist/math/quaternion.test.d.ts +1 -0
  460. package/lib/dist/math/quaternion.test.js +278 -0
  461. package/lib/dist/math/vector3d.d.ts +43 -0
  462. package/lib/dist/math/vector3d.js +143 -0
  463. package/lib/dist/math/vector3d.test.d.ts +1 -0
  464. package/lib/dist/math/vector3d.test.js +276 -0
  465. package/lib/dist/oc/boolean-ops.d.ts +36 -0
  466. package/lib/dist/oc/boolean-ops.js +337 -0
  467. package/lib/dist/oc/constraint-resolver.d.ts +7 -0
  468. package/lib/dist/oc/constraint-resolver.js +31 -0
  469. package/lib/dist/oc/constraints/constraint-helpers.d.ts +33 -0
  470. package/lib/dist/oc/constraints/constraint-helpers.js +252 -0
  471. package/lib/dist/oc/constraints/constraint-solver-adaptor.d.ts +22 -0
  472. package/lib/dist/oc/constraints/constraint-solver-adaptor.js +62 -0
  473. package/lib/dist/oc/constraints/constraint-solver.d.ts +18 -0
  474. package/lib/dist/oc/constraints/constraint-solver.js +2 -0
  475. package/lib/dist/oc/constraints/create-solver.d.ts +2 -0
  476. package/lib/dist/oc/constraints/create-solver.js +6 -0
  477. package/lib/dist/oc/constraints/curve/curve-constraint-solver.d.ts +13 -0
  478. package/lib/dist/oc/constraints/curve/curve-constraint-solver.js +18 -0
  479. package/lib/dist/oc/constraints/curve/tangent-circle-solver.d.ts +16 -0
  480. package/lib/dist/oc/constraints/curve/tangent-circle-solver.js +112 -0
  481. package/lib/dist/oc/constraints/curve/tangent-line-solver.d.ts +19 -0
  482. package/lib/dist/oc/constraints/curve/tangent-line-solver.js +83 -0
  483. package/lib/dist/oc/constraints/curve-constraint-solver.d.ts +1 -0
  484. package/lib/dist/oc/constraints/curve-constraint-solver.js +2 -0
  485. package/lib/dist/oc/constraints/geometric/geometric-constraint-solver.d.ts +12 -0
  486. package/lib/dist/oc/constraints/geometric/geometric-constraint-solver.js +17 -0
  487. package/lib/dist/oc/constraints/geometric/tangent-circle-solver.d.ts +21 -0
  488. package/lib/dist/oc/constraints/geometric/tangent-circle-solver.js +220 -0
  489. package/lib/dist/oc/constraints/geometric/tangent-line-solver.d.ts +19 -0
  490. package/lib/dist/oc/constraints/geometric/tangent-line-solver.js +92 -0
  491. package/lib/dist/oc/constraints/geometric-constraint-solver.d.ts +1 -0
  492. package/lib/dist/oc/constraints/geometric-constraint-solver.js +5 -0
  493. package/lib/dist/oc/convert.d.ts +42 -0
  494. package/lib/dist/oc/convert.js +231 -0
  495. package/lib/dist/oc/edge-ops.d.ts +37 -0
  496. package/lib/dist/oc/edge-ops.js +306 -0
  497. package/lib/dist/oc/edge-props.d.ts +11 -0
  498. package/lib/dist/oc/edge-props.js +45 -0
  499. package/lib/dist/oc/edge-query.d.ts +44 -0
  500. package/lib/dist/oc/edge-query.js +235 -0
  501. package/lib/dist/oc/explorer.d.ts +34 -0
  502. package/lib/dist/oc/explorer.js +179 -0
  503. package/lib/dist/oc/extrude-ops.d.ts +22 -0
  504. package/lib/dist/oc/extrude-ops.js +149 -0
  505. package/lib/dist/oc/face-maker.d.ts +14 -0
  506. package/lib/dist/oc/face-maker.js +191 -0
  507. package/lib/dist/oc/face-maker2.d.ts +10 -0
  508. package/lib/dist/oc/face-maker2.js +139 -0
  509. package/lib/dist/oc/face-ops.d.ts +28 -0
  510. package/lib/dist/oc/face-ops.js +252 -0
  511. package/lib/dist/oc/face-props.d.ts +12 -0
  512. package/lib/dist/oc/face-props.js +81 -0
  513. package/lib/dist/oc/face-query.d.ts +35 -0
  514. package/lib/dist/oc/face-query.js +341 -0
  515. package/lib/dist/oc/fillet-ops.d.ts +13 -0
  516. package/lib/dist/oc/fillet-ops.js +153 -0
  517. package/lib/dist/oc/geometry.d.ts +22 -0
  518. package/lib/dist/oc/geometry.js +231 -0
  519. package/lib/dist/oc/hit-test.d.ts +11 -0
  520. package/lib/dist/oc/hit-test.js +85 -0
  521. package/lib/dist/oc/index.d.ts +24 -0
  522. package/lib/dist/oc/index.js +21 -0
  523. package/lib/dist/oc/init.d.ts +3 -0
  524. package/lib/dist/oc/init.js +17 -0
  525. package/lib/dist/oc/intersection.d.ts +10 -0
  526. package/lib/dist/oc/intersection.js +107 -0
  527. package/lib/dist/oc/io.d.ts +49 -0
  528. package/lib/dist/oc/io.js +417 -0
  529. package/lib/dist/oc/loft-ops.d.ts +5 -0
  530. package/lib/dist/oc/loft-ops.js +26 -0
  531. package/lib/dist/oc/measure.d.ts +21 -0
  532. package/lib/dist/oc/measure.js +256 -0
  533. package/lib/dist/oc/mesh.d.ts +15 -0
  534. package/lib/dist/oc/mesh.js +110 -0
  535. package/lib/dist/oc/primitives.d.ts +5 -0
  536. package/lib/dist/oc/primitives.js +19 -0
  537. package/lib/dist/oc/props.d.ts +13 -0
  538. package/lib/dist/oc/props.js +18 -0
  539. package/lib/dist/oc/shape-ops.d.ts +34 -0
  540. package/lib/dist/oc/shape-ops.js +208 -0
  541. package/lib/dist/oc/shell-ops.d.ts +5 -0
  542. package/lib/dist/oc/shell-ops.js +25 -0
  543. package/lib/dist/oc/sweep-ops.d.ts +12 -0
  544. package/lib/dist/oc/sweep-ops.js +39 -0
  545. package/lib/dist/oc/tangent-circle-solver.d.ts +17 -0
  546. package/lib/dist/oc/tangent-circle-solver.js +72 -0
  547. package/lib/dist/oc/tangent-line-solver.d.ts +17 -0
  548. package/lib/dist/oc/tangent-line-solver.js +83 -0
  549. package/lib/dist/oc/tangent-solver.d.ts +14 -0
  550. package/lib/dist/oc/tangent-solver.js +199 -0
  551. package/lib/dist/oc/vertex-ops.d.ts +11 -0
  552. package/lib/dist/oc/vertex-ops.js +39 -0
  553. package/lib/dist/oc/wire-ops.d.ts +21 -0
  554. package/lib/dist/oc/wire-ops.js +176 -0
  555. package/lib/dist/rendering/builder-context.d.ts +16 -0
  556. package/lib/dist/rendering/builder-context.js +63 -0
  557. package/lib/dist/rendering/mesh-builder.d.ts +5 -0
  558. package/lib/dist/rendering/mesh-builder.js +43 -0
  559. package/lib/dist/rendering/render-edge.d.ts +3 -0
  560. package/lib/dist/rendering/render-edge.js +4 -0
  561. package/lib/dist/rendering/render-face.d.ts +2 -0
  562. package/lib/dist/rendering/render-face.js +5 -0
  563. package/lib/dist/rendering/render-solid.d.ts +3 -0
  564. package/lib/dist/rendering/render-solid.js +61 -0
  565. package/lib/dist/rendering/render-wire.d.ts +6 -0
  566. package/lib/dist/rendering/render-wire.js +27 -0
  567. package/lib/dist/rendering/render.d.ts +3 -0
  568. package/lib/dist/rendering/render.js +183 -0
  569. package/lib/dist/rendering/scene-compare.d.ts +4 -0
  570. package/lib/dist/rendering/scene-compare.js +41 -0
  571. package/lib/dist/rendering/scene.d.ts +81 -0
  572. package/lib/dist/rendering/scene.js +206 -0
  573. package/lib/dist/scene-manager.d.ts +32 -0
  574. package/lib/dist/scene-manager.js +120 -0
  575. package/lib/dist/tests/extrude.test.d.ts +1 -0
  576. package/lib/dist/tests/extrude.test.js +48 -0
  577. package/lib/dist/tests/features/2d/arc.test.d.ts +1 -0
  578. package/lib/dist/tests/features/2d/arc.test.js +40 -0
  579. package/lib/dist/tests/features/2d/circle.test.d.ts +1 -0
  580. package/lib/dist/tests/features/2d/circle.test.js +64 -0
  581. package/lib/dist/tests/features/2d/constrained.test.d.ts +1 -0
  582. package/lib/dist/tests/features/2d/constrained.test.js +202 -0
  583. package/lib/dist/tests/features/2d/line.test.d.ts +1 -0
  584. package/lib/dist/tests/features/2d/line.test.js +86 -0
  585. package/lib/dist/tests/features/2d/move.test.d.ts +1 -0
  586. package/lib/dist/tests/features/2d/move.test.js +74 -0
  587. package/lib/dist/tests/features/2d/offset.test.d.ts +1 -0
  588. package/lib/dist/tests/features/2d/offset.test.js +111 -0
  589. package/lib/dist/tests/features/2d/pmove.test.d.ts +1 -0
  590. package/lib/dist/tests/features/2d/pmove.test.js +43 -0
  591. package/lib/dist/tests/features/2d/polygon.test.d.ts +1 -0
  592. package/lib/dist/tests/features/2d/polygon.test.js +150 -0
  593. package/lib/dist/tests/features/2d/project.test.d.ts +1 -0
  594. package/lib/dist/tests/features/2d/project.test.js +22 -0
  595. package/lib/dist/tests/features/2d/rect.test.d.ts +1 -0
  596. package/lib/dist/tests/features/2d/rect.test.js +66 -0
  597. package/lib/dist/tests/features/2d/rmove.test.d.ts +1 -0
  598. package/lib/dist/tests/features/2d/rmove.test.js +29 -0
  599. package/lib/dist/tests/features/2d/slot-from-edge.test.d.ts +1 -0
  600. package/lib/dist/tests/features/2d/slot-from-edge.test.js +35 -0
  601. package/lib/dist/tests/features/2d/slot.test.d.ts +1 -0
  602. package/lib/dist/tests/features/2d/slot.test.js +44 -0
  603. package/lib/dist/tests/features/2d/tarc.test.d.ts +1 -0
  604. package/lib/dist/tests/features/2d/tarc.test.js +237 -0
  605. package/lib/dist/tests/features/2d/tcircle.test.d.ts +1 -0
  606. package/lib/dist/tests/features/2d/tcircle.test.js +28 -0
  607. package/lib/dist/tests/features/2d/tline.test.d.ts +1 -0
  608. package/lib/dist/tests/features/2d/tline.test.js +34 -0
  609. package/lib/dist/tests/features/axis.test.d.ts +1 -0
  610. package/lib/dist/tests/features/axis.test.js +143 -0
  611. package/lib/dist/tests/features/chamfer.test.d.ts +1 -0
  612. package/lib/dist/tests/features/chamfer.test.js +159 -0
  613. package/lib/dist/tests/features/color.test.d.ts +1 -0
  614. package/lib/dist/tests/features/color.test.js +96 -0
  615. package/lib/dist/tests/features/common2d.test.d.ts +1 -0
  616. package/lib/dist/tests/features/common2d.test.js +113 -0
  617. package/lib/dist/tests/features/copy-circular-2d.test.d.ts +1 -0
  618. package/lib/dist/tests/features/copy-circular-2d.test.js +40 -0
  619. package/lib/dist/tests/features/copy-circular.test.d.ts +1 -0
  620. package/lib/dist/tests/features/copy-circular.test.js +44 -0
  621. package/lib/dist/tests/features/copy-linear-2d.test.d.ts +1 -0
  622. package/lib/dist/tests/features/copy-linear-2d.test.js +35 -0
  623. package/lib/dist/tests/features/copy-linear.test.d.ts +1 -0
  624. package/lib/dist/tests/features/copy-linear.test.js +95 -0
  625. package/lib/dist/tests/features/copy.test.d.ts +1 -0
  626. package/lib/dist/tests/features/copy.test.js +158 -0
  627. package/lib/dist/tests/features/cut-symmetric.test.d.ts +1 -0
  628. package/lib/dist/tests/features/cut-symmetric.test.js +120 -0
  629. package/lib/dist/tests/features/cut-two-distances.test.d.ts +1 -0
  630. package/lib/dist/tests/features/cut-two-distances.test.js +125 -0
  631. package/lib/dist/tests/features/cut.test.d.ts +1 -0
  632. package/lib/dist/tests/features/cut.test.js +311 -0
  633. package/lib/dist/tests/features/dispose.test.d.ts +1 -0
  634. package/lib/dist/tests/features/dispose.test.js +189 -0
  635. package/lib/dist/tests/features/extrude-symmetric.test.d.ts +1 -0
  636. package/lib/dist/tests/features/extrude-symmetric.test.js +240 -0
  637. package/lib/dist/tests/features/extrude-to-face.test.d.ts +1 -0
  638. package/lib/dist/tests/features/extrude-to-face.test.js +256 -0
  639. package/lib/dist/tests/features/extrude-two-distances.test.d.ts +1 -0
  640. package/lib/dist/tests/features/extrude-two-distances.test.js +264 -0
  641. package/lib/dist/tests/features/extrude.test.d.ts +1 -0
  642. package/lib/dist/tests/features/extrude.test.js +640 -0
  643. package/lib/dist/tests/features/fillet.test.d.ts +1 -0
  644. package/lib/dist/tests/features/fillet.test.js +163 -0
  645. package/lib/dist/tests/features/fillet2d.test.d.ts +1 -0
  646. package/lib/dist/tests/features/fillet2d.test.js +69 -0
  647. package/lib/dist/tests/features/fuse.test.d.ts +1 -0
  648. package/lib/dist/tests/features/fuse.test.js +122 -0
  649. package/lib/dist/tests/features/fuse2d.test.d.ts +1 -0
  650. package/lib/dist/tests/features/fuse2d.test.js +80 -0
  651. package/lib/dist/tests/features/loft.test.d.ts +1 -0
  652. package/lib/dist/tests/features/loft.test.js +283 -0
  653. package/lib/dist/tests/features/mirror.test.d.ts +1 -0
  654. package/lib/dist/tests/features/mirror.test.js +112 -0
  655. package/lib/dist/tests/features/mirror2d.test.d.ts +1 -0
  656. package/lib/dist/tests/features/mirror2d.test.js +75 -0
  657. package/lib/dist/tests/features/part-pick.test.d.ts +1 -0
  658. package/lib/dist/tests/features/part-pick.test.js +73 -0
  659. package/lib/dist/tests/features/part-repeat.test.d.ts +1 -0
  660. package/lib/dist/tests/features/part-repeat.test.js +109 -0
  661. package/lib/dist/tests/features/part.test.d.ts +1 -0
  662. package/lib/dist/tests/features/part.test.js +356 -0
  663. package/lib/dist/tests/features/plane.test.d.ts +1 -0
  664. package/lib/dist/tests/features/plane.test.js +154 -0
  665. package/lib/dist/tests/features/repeat-circular.test.d.ts +1 -0
  666. package/lib/dist/tests/features/repeat-circular.test.js +114 -0
  667. package/lib/dist/tests/features/repeat-linear.test.d.ts +1 -0
  668. package/lib/dist/tests/features/repeat-linear.test.js +138 -0
  669. package/lib/dist/tests/features/revolve.test.d.ts +1 -0
  670. package/lib/dist/tests/features/revolve.test.js +205 -0
  671. package/lib/dist/tests/features/rotate.test.d.ts +1 -0
  672. package/lib/dist/tests/features/rotate.test.js +133 -0
  673. package/lib/dist/tests/features/rotate2d.test.d.ts +1 -0
  674. package/lib/dist/tests/features/rotate2d.test.js +74 -0
  675. package/lib/dist/tests/features/select.test.d.ts +1 -0
  676. package/lib/dist/tests/features/select.test.js +337 -0
  677. package/lib/dist/tests/features/shell.test.d.ts +1 -0
  678. package/lib/dist/tests/features/shell.test.js +230 -0
  679. package/lib/dist/tests/features/subtract.test.d.ts +1 -0
  680. package/lib/dist/tests/features/subtract.test.js +103 -0
  681. package/lib/dist/tests/features/sweep.test.d.ts +1 -0
  682. package/lib/dist/tests/features/sweep.test.js +312 -0
  683. package/lib/dist/tests/features/translate.test.d.ts +1 -0
  684. package/lib/dist/tests/features/translate.test.js +117 -0
  685. package/lib/dist/tests/global-setup.d.ts +1 -0
  686. package/lib/dist/tests/global-setup.js +5 -0
  687. package/lib/dist/tests/math/axis.test.d.ts +1 -0
  688. package/lib/dist/tests/math/axis.test.js +287 -0
  689. package/lib/dist/tests/math/coordinate-system.test.d.ts +1 -0
  690. package/lib/dist/tests/math/coordinate-system.test.js +308 -0
  691. package/lib/dist/tests/math/matrix4.test.d.ts +1 -0
  692. package/lib/dist/tests/math/matrix4.test.js +357 -0
  693. package/lib/dist/tests/math/plane.test.d.ts +1 -0
  694. package/lib/dist/tests/math/plane.test.js +398 -0
  695. package/lib/dist/tests/math/point.test.d.ts +1 -0
  696. package/lib/dist/tests/math/point.test.js +385 -0
  697. package/lib/dist/tests/math/quaternion.test.d.ts +1 -0
  698. package/lib/dist/tests/math/quaternion.test.js +278 -0
  699. package/lib/dist/tests/math/vector3d.test.d.ts +1 -0
  700. package/lib/dist/tests/math/vector3d.test.js +276 -0
  701. package/lib/dist/tests/setup.d.ts +5 -0
  702. package/lib/dist/tests/setup.js +14 -0
  703. package/lib/dist/tests/utils.d.ts +12 -0
  704. package/lib/dist/tests/utils.js +36 -0
  705. package/lib/dist/tsconfig.tsbuildinfo +1 -0
  706. package/package.json +83 -0
  707. package/server/dist/fluidcad-server.d.ts +32 -0
  708. package/server/dist/fluidcad-server.js +150 -0
  709. package/server/dist/index.d.ts +1 -0
  710. package/server/dist/index.js +290 -0
  711. package/server/dist/routes/actions.d.ts +3 -0
  712. package/server/dist/routes/actions.js +100 -0
  713. package/server/dist/routes/export.d.ts +3 -0
  714. package/server/dist/routes/export.js +55 -0
  715. package/server/dist/routes/properties.d.ts +3 -0
  716. package/server/dist/routes/properties.js +46 -0
  717. package/server/dist/routes/screenshot.d.ts +2 -0
  718. package/server/dist/routes/screenshot.js +76 -0
  719. package/server/dist/vite-manager.d.ts +10 -0
  720. package/server/dist/vite-manager.js +64 -0
  721. package/server/dist/ws-protocol.d.ts +138 -0
  722. package/server/dist/ws-protocol.js +4 -0
  723. package/ui/dist/assets/index-DXW2yo2v.css +2 -0
  724. package/ui/dist/assets/index-qqJ_mWi7.js +4732 -0
  725. package/ui/dist/icons/aline.png +0 -0
  726. package/ui/dist/icons/arc.png +0 -0
  727. package/ui/dist/icons/aslot.png +0 -0
  728. package/ui/dist/icons/axis.png +0 -0
  729. package/ui/dist/icons/box.png +0 -0
  730. package/ui/dist/icons/chamfer.png +0 -0
  731. package/ui/dist/icons/circle.png +0 -0
  732. package/ui/dist/icons/color.png +0 -0
  733. package/ui/dist/icons/common.png +0 -0
  734. package/ui/dist/icons/cone.png +0 -0
  735. package/ui/dist/icons/connect.png +0 -0
  736. package/ui/dist/icons/copy-circular.png +0 -0
  737. package/ui/dist/icons/copy-circular2d.png +0 -0
  738. package/ui/dist/icons/copy-linear.png +0 -0
  739. package/ui/dist/icons/copy-linear2d.png +0 -0
  740. package/ui/dist/icons/cut.png +0 -0
  741. package/ui/dist/icons/cylinder.png +0 -0
  742. package/ui/dist/icons/edge.png +0 -0
  743. package/ui/dist/icons/extrude.png +0 -0
  744. package/ui/dist/icons/fillet.png +0 -0
  745. package/ui/dist/icons/fillet2d.png +0 -0
  746. package/ui/dist/icons/fuse.png +0 -0
  747. package/ui/dist/icons/hline.png +0 -0
  748. package/ui/dist/icons/hole.png +0 -0
  749. package/ui/dist/icons/line.png +0 -0
  750. package/ui/dist/icons/load.png +0 -0
  751. package/ui/dist/icons/mirror.png +0 -0
  752. package/ui/dist/icons/mirror2d.png +0 -0
  753. package/ui/dist/icons/move.png +0 -0
  754. package/ui/dist/icons/plane.png +0 -0
  755. package/ui/dist/icons/polygon.png +0 -0
  756. package/ui/dist/icons/rect.png +0 -0
  757. package/ui/dist/icons/revolve.png +0 -0
  758. package/ui/dist/icons/rotate.png +0 -0
  759. package/ui/dist/icons/rotate2d.png +0 -0
  760. package/ui/dist/icons/select.png +0 -0
  761. package/ui/dist/icons/shell.png +0 -0
  762. package/ui/dist/icons/sketch.png +0 -0
  763. package/ui/dist/icons/slot.png +0 -0
  764. package/ui/dist/icons/solid.png +0 -0
  765. package/ui/dist/icons/sphere.png +0 -0
  766. package/ui/dist/icons/subtract.png +0 -0
  767. package/ui/dist/icons/tarc.png +0 -0
  768. package/ui/dist/icons/tline.png +0 -0
  769. package/ui/dist/icons/translate.png +0 -0
  770. package/ui/dist/icons/vline.png +0 -0
  771. package/ui/dist/icons/wire.png +0 -0
  772. package/ui/dist/index.html +13 -0
  773. package/ui/dist/logo.png +0 -0
@@ -0,0 +1,74 @@
1
+ import { isPoint2DLike } from "../../math/point.js";
2
+ import { Move } from "../../features/2d/move.js";
3
+ import { Rect } from "../../features/2d/rect.js";
4
+ import { normalizePoint2D } from "../../helpers/normalize.js";
5
+ import { registerBuilder } from "../../index.js";
6
+ import { isPlaneLike } from "../../math/plane.js";
7
+ import { SceneObject } from "../../common/scene-object.js";
8
+ import { resolvePlane } from "../../helpers/resolve.js";
9
+ function build(context) {
10
+ return function cRect() {
11
+ let width;
12
+ let height;
13
+ let options;
14
+ let start;
15
+ let rect;
16
+ let planeObj = null;
17
+ let argCount = arguments.length;
18
+ // Detect plane as last argument
19
+ if (argCount > 0) {
20
+ const lastArg = arguments[argCount - 1];
21
+ if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
22
+ planeObj = resolvePlane(lastArg, context);
23
+ argCount--;
24
+ }
25
+ }
26
+ if (argCount === 1) {
27
+ width = arguments[0];
28
+ height = width;
29
+ rect = new Rect(width, height, true, options, planeObj);
30
+ context.addSceneObject(rect);
31
+ }
32
+ else if (argCount === 2) {
33
+ if (typeof arguments[0] === 'number') {
34
+ width = arguments[0];
35
+ height = arguments[1];
36
+ rect = new Rect(width, height, true, options, planeObj);
37
+ context.addSceneObject(rect);
38
+ }
39
+ else {
40
+ start = normalizePoint2D(arguments[0]);
41
+ width = arguments[1];
42
+ height = width;
43
+ rect = new Rect(width, height, true, options, planeObj);
44
+ context.addSceneObjects([new Move(start), rect]);
45
+ }
46
+ }
47
+ else if (argCount === 3) {
48
+ if (typeof arguments[0] === 'number') {
49
+ width = arguments[0];
50
+ height = arguments[1];
51
+ options = arguments[2];
52
+ rect = new Rect(width, height, true, options, planeObj);
53
+ context.addSceneObject(rect);
54
+ }
55
+ else {
56
+ start = normalizePoint2D(arguments[0]);
57
+ width = arguments[1];
58
+ height = arguments[2];
59
+ rect = new Rect(width, height, true, options, planeObj);
60
+ context.addSceneObjects([new Move(start), rect]);
61
+ }
62
+ }
63
+ else if (argCount === 4) {
64
+ start = normalizePoint2D(arguments[0]);
65
+ width = arguments[1];
66
+ height = arguments[2];
67
+ options = arguments[3];
68
+ rect = new Rect(width, height, true, options, planeObj);
69
+ context.addSceneObjects([new Move(start), rect]);
70
+ }
71
+ return rect;
72
+ };
73
+ }
74
+ export default registerBuilder(build);
@@ -0,0 +1,8 @@
1
+ import { FaceInfo } from "../../helpers/types.js";
2
+ export declare class FaceDriller {
3
+ private faceInfos;
4
+ constructor(faceInfos: FaceInfo[]);
5
+ drillHoles(): FaceInfo[];
6
+ private wireIsInsideFace;
7
+ private getFaceHoles;
8
+ }
@@ -0,0 +1,70 @@
1
+ import { FaceOps } from "../../oc/face-ops.js";
2
+ export class FaceDriller {
3
+ faceInfos;
4
+ constructor(faceInfos) {
5
+ this.faceInfos = faceInfos;
6
+ }
7
+ drillHoles() {
8
+ const foundHoles = [];
9
+ let drilledFaces = [];
10
+ for (const faceInfo of this.faceInfos) {
11
+ if (foundHoles.includes(faceInfo)) {
12
+ continue;
13
+ }
14
+ const faceHoles = this.getFaceHoles(faceInfo, foundHoles);
15
+ console.log("Found holes for face:", faceHoles.length);
16
+ if (faceHoles.length === 0) {
17
+ drilledFaces.push(faceInfo);
18
+ continue;
19
+ }
20
+ faceInfo.holes = faceHoles;
21
+ drilledFaces.push(faceInfo);
22
+ for (const hole of faceHoles) {
23
+ foundHoles.push(hole);
24
+ }
25
+ }
26
+ console.log("Found holes:", foundHoles.length);
27
+ console.log("Drilled faces before removing holes:", drilledFaces.length);
28
+ // remove face infos that are in foundHoles
29
+ drilledFaces = drilledFaces.filter(info => !foundHoles.includes(info));
30
+ console.log("Drilled faces:", drilledFaces.length);
31
+ for (const info of drilledFaces) {
32
+ const holes = info.holes;
33
+ if (!holes?.length) {
34
+ continue;
35
+ }
36
+ const holeWires = [];
37
+ for (const hole of holes) {
38
+ hole.wire.getShape().Reverse();
39
+ holeWires.push(hole.wire);
40
+ }
41
+ const newFace = FaceOps.makeFaceWithHoles(info.wire, holeWires);
42
+ info.face = newFace;
43
+ for (const hole of holes) {
44
+ hole.wire.dispose();
45
+ hole.face.dispose();
46
+ }
47
+ info.holes = [];
48
+ }
49
+ return drilledFaces;
50
+ }
51
+ wireIsInsideFace(inner, outer) {
52
+ const firstPoint = inner.wire.getFirstVertex().toPoint();
53
+ if (!firstPoint) {
54
+ return false;
55
+ }
56
+ return FaceOps.isPointInsideFace(firstPoint, outer.face);
57
+ }
58
+ getFaceHoles(faceInfo, exclude) {
59
+ const holes = [];
60
+ for (let fInfo of this.faceInfos) {
61
+ if (fInfo === faceInfo || exclude.includes(faceInfo)) {
62
+ continue;
63
+ }
64
+ if (this.wireIsInsideFace(fInfo, faceInfo)) {
65
+ holes.push(fInfo);
66
+ }
67
+ }
68
+ return holes;
69
+ }
70
+ }
@@ -0,0 +1,13 @@
1
+ import { Wire } from "../../common/wire.js";
2
+ import { Plane } from "../../math/plane.js";
3
+ import { Face } from "../../common/face.js";
4
+ import { Edge } from "../../common/edge.js";
5
+ export declare class FaceMaker {
6
+ static getFaces(shapes: Array<Wire | Edge>, plane: Plane): Face[];
7
+ static unifyWires(shapes: (Wire | Edge)[]): Wire[];
8
+ private static createFacesFromWires;
9
+ private static fuseIntersectingFaces;
10
+ private static boundingBoxesIntersect;
11
+ private static getFaceInfos;
12
+ private static getWiresFromFaces;
13
+ }
@@ -0,0 +1,119 @@
1
+ import { FaceDriller } from "./face-driller.js";
2
+ import { Wire } from "../../common/wire.js";
3
+ import { FaceOps } from "../../oc/face-ops.js";
4
+ import { Explorer } from "../../oc/explorer.js";
5
+ import { ShapeOps } from "../../oc/shape-ops.js";
6
+ import { Edge } from "../../common/edge.js";
7
+ import { WireOps } from "../../oc/wire-ops.js";
8
+ export class FaceMaker {
9
+ static getFaces(shapes, plane) {
10
+ const wires = this.unifyWires(shapes);
11
+ let faces = this.createFacesFromWires(wires, plane);
12
+ console.log("====== Faces before fuse:", faces.length);
13
+ faces = this.fuseIntersectingFaces(faces);
14
+ console.log("====== Faces after fuse:", faces.length);
15
+ const newWires = this.getWiresFromFaces(faces);
16
+ let faceInfo = this.getFaceInfos(faces, newWires);
17
+ const faceDriller = new FaceDriller(faceInfo);
18
+ faceInfo = faceDriller.drillHoles();
19
+ console.log("====== Faces after drilling holes:", faceInfo.length);
20
+ return faceInfo.map(info => info.face);
21
+ }
22
+ static unifyWires(shapes) {
23
+ const wires = [];
24
+ for (let shape of shapes) {
25
+ if (shape instanceof Wire) {
26
+ wires.push(shape);
27
+ }
28
+ else if (shape instanceof Edge) {
29
+ const wire = WireOps.makeWireFromEdges([shape]);
30
+ wires.push(wire);
31
+ }
32
+ }
33
+ return wires;
34
+ }
35
+ static createFacesFromWires(wires, plane) {
36
+ if (wires.length === 0)
37
+ return [];
38
+ console.log("Creating faces from wires:", wires.length);
39
+ const faces = [];
40
+ for (let wire of wires) {
41
+ const face = FaceOps.makeFaceOnPlaneWrapped(wire, plane);
42
+ const fixedFace = FaceOps.fixFaceOrientation(face);
43
+ faces.push(fixedFace);
44
+ }
45
+ return faces;
46
+ }
47
+ static fuseIntersectingFaces(faces) {
48
+ if (faces.length === 0)
49
+ return [];
50
+ if (faces.length === 1)
51
+ return faces;
52
+ // Pre-compute bounding boxes for all faces
53
+ const faceBoxes = faces.map((face, index) => ({
54
+ face,
55
+ index,
56
+ bbox: ShapeOps.getBoundingBox(face)
57
+ }));
58
+ const result = [];
59
+ const processedFaces = new Set();
60
+ for (let i = 0; i < faces.length; i++) {
61
+ const face1 = faces[i];
62
+ if (processedFaces.has(face1)) {
63
+ continue;
64
+ }
65
+ let fusedFace = face1;
66
+ const facesToFuse = [face1];
67
+ let bbox1 = faceBoxes[i].bbox;
68
+ // Find all faces that intersect with face1 using bounding box pre-filtering
69
+ for (let j = i + 1; j < faces.length; j++) {
70
+ const face2 = faces[j];
71
+ if (processedFaces.has(face2)) {
72
+ continue;
73
+ }
74
+ const bbox2 = faceBoxes[j].bbox;
75
+ // Quick bounding box intersection test before expensive geometric operations
76
+ if (!this.boundingBoxesIntersect(bbox1, bbox2)) {
77
+ continue;
78
+ }
79
+ const newFusedFace = FaceOps.fuseFacesAndUnify(fusedFace, face2);
80
+ if (newFusedFace) {
81
+ fusedFace = newFusedFace;
82
+ bbox1 = ShapeOps.getBoundingBox(fusedFace);
83
+ facesToFuse.push(face2);
84
+ }
85
+ }
86
+ // Add the final fused face to results
87
+ result.push(fusedFace);
88
+ // Mark all processed faces
89
+ facesToFuse.forEach(face => processedFaces.add(face));
90
+ }
91
+ console.log("Fused faces count:", result.length);
92
+ return result;
93
+ }
94
+ static boundingBoxesIntersect(bbox1, bbox2) {
95
+ return !(bbox1.maxX < bbox2.minX || bbox2.maxX < bbox1.minX ||
96
+ bbox1.maxY < bbox2.minY || bbox2.maxY < bbox1.minY);
97
+ }
98
+ static getFaceInfos(faces, facesWires) {
99
+ const faceInfos = faces.map((face, index) => {
100
+ const bbox = ShapeOps.getBoundingBox(face);
101
+ const diagonal = Math.sqrt(Math.pow(bbox.maxX - bbox.minX, 2) + Math.pow(bbox.maxY - bbox.minY, 2));
102
+ return { face, wire: facesWires[index], bbox, diagonal };
103
+ });
104
+ // Sort by diagonal size (largest first for better hole containment logic)
105
+ faceInfos.sort((a, b) => b.diagonal - a.diagonal);
106
+ return faceInfos;
107
+ }
108
+ static getWiresFromFaces(faces) {
109
+ const wires = [];
110
+ for (let face of faces) {
111
+ const faceWires = Explorer.findWiresWrapped(face);
112
+ console.log("Found wires in face:", faceWires.length);
113
+ for (const wire of faceWires) {
114
+ wires.push(wire);
115
+ }
116
+ }
117
+ return wires;
118
+ }
119
+ }
@@ -0,0 +1,6 @@
1
+ import { Wire } from "../../common/wire.js";
2
+ import { Plane } from "../../math/plane.js";
3
+ import { Edge } from "../../common/edge.js";
4
+ export declare class FaceMaker2 {
5
+ static getFaces(shapes: Array<Wire | Edge>, plane: Plane, drill?: boolean): void;
6
+ }
@@ -0,0 +1,54 @@
1
+ import { Face } from "../../common/face.js";
2
+ import { Explorer } from "../../oc/explorer.js";
3
+ export class FaceMaker2 {
4
+ static getFaces(shapes, plane, drill = true) {
5
+ const cellsBuilder = new oc.BOPAlgo_CellsBuilder();
6
+ const argsList = new oc.TopTools_ListOfShape();
7
+ for (const face of sketchShapes) {
8
+ argsList.Append(face.getShape());
9
+ }
10
+ cellsBuilder.SetArguments(argsList);
11
+ cellsBuilder.SetNonDestructive(true);
12
+ const progress = new oc.Message_ProgressRange();
13
+ cellsBuilder.Perform(progress);
14
+ if (cellsBuilder.HasErrors()) {
15
+ console.error('CellsBuilder: Perform() reported errors');
16
+ cellsBuilder.delete();
17
+ argsList.delete();
18
+ progress.delete();
19
+ throw new Error('Failed to partition sketch faces for pick mode');
20
+ // cells = sketchFaces;
21
+ }
22
+ else {
23
+ cellsBuilder.AddAllToResult(0, false);
24
+ // cellsBuilder.MakeContainers();
25
+ // cellsBuilder.Perform(new oc.Message_ProgressRange());
26
+ const allParts = cellsBuilder.GetAllParts();
27
+ console.log('CellsBuilder: GetAllParts count:', allParts.NbChildren());
28
+ const [gpPln, dispose] = Convert.toGpPln(plane);
29
+ const planeFace = new oc.BRepBuilderAPI_MakeFace(gpPln, -10000, 10000, -10000, 10000).Face();
30
+ // 3. Split the face using the edges as tools
31
+ const splitter = new oc.BRepAlgoAPI_Splitter();
32
+ const objects = new oc.TopTools_ListOfShape();
33
+ objects.Append(planeFace);
34
+ splitter.SetArguments(objects);
35
+ // Add each split edge as a tool
36
+ const tools = Explorer.findShapes(allParts, oc.TopAbs_ShapeEnum.TopAbs_EDGE).map(e => oc.TopoDS.Edge(e));
37
+ const toolsList = new oc.TopTools_ListOfShape();
38
+ for (const t of tools) {
39
+ toolsList.Append(t);
40
+ }
41
+ splitter.SetTools(toolsList);
42
+ splitter.SetNonDestructive(true);
43
+ splitter.SetCheckInverted(true);
44
+ splitter.Build(new oc.Message_ProgressRange());
45
+ splitter.SimplifyResult(false, false, oc.Precision.Angular());
46
+ const result = splitter.Shape();
47
+ const areas = Explorer.findShapes(result, oc.TopAbs_ShapeEnum.TopAbs_FACE);
48
+ cells = areas.map(f => {
49
+ console.log('Converting cell face from OC shape', Explorer.getShapeType(f));
50
+ return Face.fromTopoDSFace(oc.TopoDS.Face(f));
51
+ });
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,33 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { PlaneLike } from "../../math/plane.js";
3
+ import { IGeometry, ISceneObject } from "../interfaces.js";
4
+ interface HLineFunction {
5
+ /**
6
+ * Draws a horizontal line of the given distance.
7
+ * @param distance - The line length
8
+ * @param centered - Whether to center the line on the current position
9
+ */
10
+ (distance: number, centered?: boolean): IGeometry;
11
+ /**
12
+ * Draws a horizontal line from a start point.
13
+ * @param start - The start point
14
+ * @param distance - The line length
15
+ * @param centered - Whether to center the line on the start point
16
+ */
17
+ (start: Point2DLike, distance: number, centered?: boolean): IGeometry;
18
+ /**
19
+ * Draws a horizontal line on a specific plane.
20
+ * @param distance - The line length
21
+ * @param targetPlane - The plane to draw on
22
+ */
23
+ (distance: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
24
+ /**
25
+ * Draws a horizontal line with centering on a specific plane.
26
+ * @param distance - The line length
27
+ * @param centered - Whether to center the line on the current position
28
+ * @param targetPlane - The plane to draw on
29
+ */
30
+ (distance: number, centered: boolean, targetPlane: PlaneLike | ISceneObject): IGeometry;
31
+ }
32
+ declare const _default: HLineFunction;
33
+ export default _default;
@@ -0,0 +1,37 @@
1
+ import { isPoint2DLike } from "../../math/point.js";
2
+ import { Move } from "../../features/2d/move.js";
3
+ import { HorizontalLine } from "../../features/2d/hline.js";
4
+ import { normalizePoint2D } from "../../helpers/normalize.js";
5
+ import { registerBuilder } from "../../index.js";
6
+ import { isPlaneLike } from "../../math/plane.js";
7
+ import { SceneObject } from "../../common/scene-object.js";
8
+ import { resolvePlane } from "../../helpers/resolve.js";
9
+ function build(context) {
10
+ return function line() {
11
+ let planeObj = null;
12
+ let argCount = arguments.length;
13
+ // Detect plane as last argument
14
+ if (argCount > 0) {
15
+ const lastArg = arguments[argCount - 1];
16
+ if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
17
+ planeObj = resolvePlane(lastArg, context);
18
+ argCount--;
19
+ }
20
+ }
21
+ if (typeof arguments[0] !== 'number') {
22
+ // hline(start, distance) or hline(start, distance, centered)
23
+ const start = normalizePoint2D(arguments[0]);
24
+ const distance = arguments[1];
25
+ const centered = argCount >= 3 ? arguments[2] : false;
26
+ const hline = new HorizontalLine(distance, centered, planeObj);
27
+ context.addSceneObjects([new Move(start), hline]);
28
+ return hline;
29
+ }
30
+ const distance = arguments[0];
31
+ const centered = argCount >= 2 ? arguments[1] : false;
32
+ const hline = new HorizontalLine(distance, centered, planeObj);
33
+ context.addSceneObject(hline);
34
+ return hline;
35
+ };
36
+ }
37
+ export default registerBuilder(build);
@@ -0,0 +1,9 @@
1
+ interface HMoveFunction {
2
+ /**
3
+ * Moves the cursor horizontally by the given distance.
4
+ * @param distance - The horizontal distance to move
5
+ */
6
+ (distance: number): void;
7
+ }
8
+ declare const _default: HMoveFunction;
9
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { HMove } from "../../features/2d/hmove.js";
2
+ import { registerBuilder } from "../../index.js";
3
+ function build(context) {
4
+ return function move() {
5
+ const distance = arguments[0];
6
+ const hmove = new HMove(distance);
7
+ context.addSceneObject(hmove);
8
+ return hmove;
9
+ };
10
+ }
11
+ export default registerBuilder(build);
@@ -0,0 +1,22 @@
1
+ export { default as line } from './line.js';
2
+ export { default as circle } from './circle.js';
3
+ export { default as rect } from './rect.js';
4
+ export { default as hMove } from './hmove.js';
5
+ export { default as vMove } from './vmove.js';
6
+ export { default as rMove } from './rmove.js';
7
+ export { default as hLine } from './hline.js';
8
+ export { default as vLine } from './vline.js';
9
+ export { default as tLine } from './tline.js';
10
+ export { default as tCircle } from './tcircle.js';
11
+ export { default as tArc } from './tarc.js';
12
+ export { default as arc } from './arc.js';
13
+ export { default as move } from './move.js';
14
+ export { default as pMove } from './pmove.js';
15
+ export { default as aLine } from './aline.js';
16
+ export { default as wire } from './wire.js';
17
+ export { default as slot } from './slot.js';
18
+ export { default as connect } from './connect.js';
19
+ export { default as polygon } from './polygon.js';
20
+ export { default as offset } from './offset.js';
21
+ export { default as project } from './project.js';
22
+ export { default as bezier } from './bezier.js';
@@ -0,0 +1,22 @@
1
+ export { default as line } from './line.js';
2
+ export { default as circle } from './circle.js';
3
+ export { default as rect } from './rect.js';
4
+ export { default as hMove } from './hmove.js';
5
+ export { default as vMove } from './vmove.js';
6
+ export { default as rMove } from './rmove.js';
7
+ export { default as hLine } from './hline.js';
8
+ export { default as vLine } from './vline.js';
9
+ export { default as tLine } from './tline.js';
10
+ export { default as tCircle } from './tcircle.js';
11
+ export { default as tArc } from './tarc.js';
12
+ export { default as arc } from './arc.js';
13
+ export { default as move } from './move.js';
14
+ export { default as pMove } from './pmove.js';
15
+ export { default as aLine } from './aline.js';
16
+ export { default as wire } from './wire.js';
17
+ export { default as slot } from './slot.js';
18
+ export { default as connect } from './connect.js';
19
+ export { default as polygon } from './polygon.js';
20
+ export { default as offset } from './offset.js';
21
+ export { default as project } from './project.js';
22
+ export { default as bezier } from './bezier.js';
@@ -0,0 +1,24 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { PlaneLike } from "../../math/plane.js";
3
+ import { IGeometry, ISceneObject } from "../interfaces.js";
4
+ interface LineFunction {
5
+ /**
6
+ * Draws a line from the current position to the given point.
7
+ * @param end - The end point
8
+ */
9
+ (end: Point2DLike): IGeometry;
10
+ /**
11
+ * Draws a line between two points.
12
+ * @param start - The start point
13
+ * @param end - The end point
14
+ */
15
+ (start: Point2DLike, end: Point2DLike): IGeometry;
16
+ /**
17
+ * Draws a line to the given point on a specific plane.
18
+ * @param end - The end point
19
+ * @param targetPlane - The plane to draw on
20
+ */
21
+ (end: Point2DLike, targetPlane: PlaneLike | ISceneObject): IGeometry;
22
+ }
23
+ declare const _default: LineFunction;
24
+ export default _default;
@@ -0,0 +1,40 @@
1
+ import { isPoint2DLike } from "../../math/point.js";
2
+ import { LineTo } from "../../features/2d/line.js";
3
+ import { Move } from "../../features/2d/move.js";
4
+ import { normalizePoint2D } from "../../helpers/normalize.js";
5
+ import { registerBuilder } from "../../index.js";
6
+ import { isPlaneLike } from "../../math/plane.js";
7
+ import { SceneObject } from "../../common/scene-object.js";
8
+ import { resolvePlane } from "../../helpers/resolve.js";
9
+ function build(context) {
10
+ return function line() {
11
+ let line;
12
+ let planeObj = null;
13
+ let argCount = arguments.length;
14
+ // Detect plane as last argument
15
+ // Point2DLike is not plane-like so no conflict
16
+ if (argCount > 0) {
17
+ const lastArg = arguments[argCount - 1];
18
+ if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
19
+ planeObj = resolvePlane(lastArg, context);
20
+ argCount--;
21
+ }
22
+ }
23
+ if (argCount === 1) {
24
+ const vertex = normalizePoint2D(arguments[0]);
25
+ line = new LineTo(vertex, planeObj);
26
+ context.addSceneObject(line);
27
+ }
28
+ else if (argCount === 2) {
29
+ const start = normalizePoint2D(arguments[0]);
30
+ const end = normalizePoint2D(arguments[1]);
31
+ line = new LineTo(end, planeObj);
32
+ context.addSceneObjects([new Move(start), line]);
33
+ }
34
+ else {
35
+ throw new Error(`Invalid number of arguments for line(): ${argCount}`);
36
+ }
37
+ return line;
38
+ };
39
+ }
40
+ export default registerBuilder(build);
@@ -0,0 +1,13 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { IGeometry } from "../interfaces.js";
3
+ interface MoveFunction {
4
+ /** Moves the cursor to the origin. */
5
+ (): IGeometry;
6
+ /**
7
+ * Moves the cursor to the given point.
8
+ * @param to - The target point
9
+ */
10
+ (to: Point2DLike): IGeometry;
11
+ }
12
+ declare const _default: MoveFunction;
13
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { Point2D } from "../../math/point.js";
2
+ import { Move } from "../../features/2d/move.js";
3
+ import { normalizePoint2D } from "../../helpers/normalize.js";
4
+ import { registerBuilder } from "../../index.js";
5
+ function build(context) {
6
+ return function move() {
7
+ const to = normalizePoint2D(arguments[0] ?? new Point2D(0, 0));
8
+ const move = new Move(to);
9
+ context.addSceneObject(move);
10
+ return move;
11
+ };
12
+ }
13
+ export default registerBuilder(build);
@@ -0,0 +1,21 @@
1
+ import { PlaneLike } from "../../math/plane.js";
2
+ import { IExtrudableGeometry, ISceneObject } from "../interfaces.js";
3
+ import { Extrudable } from "../../helpers/types.js";
4
+ interface OffsetFunction {
5
+ /**
6
+ * Offsets the current sketch geometry by the given distance.
7
+ * @param distance - The offset distance (defaults to 1)
8
+ * @param removeOriginal - Whether to remove the original geometry
9
+ */
10
+ (distance?: number, removeOriginal?: boolean): IExtrudableGeometry;
11
+ /**
12
+ * Offsets source geometries onto a target plane.
13
+ * @param distance - The offset distance
14
+ * @param removeOriginal - Whether to remove the original geometry
15
+ * @param targetPlane - The plane to offset onto
16
+ * @param sourceGeometries - The geometries to offset
17
+ */
18
+ (distance: number, removeOriginal: boolean, targetPlane: PlaneLike | ISceneObject, ...sourceGeometries: Extrudable[]): IExtrudableGeometry;
19
+ }
20
+ declare const _default: OffsetFunction;
21
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { Offset } from "../../features/2d/offset.js";
2
+ import { registerBuilder } from "../../index.js";
3
+ import { resolvePlane } from "../../helpers/resolve.js";
4
+ function build(context) {
5
+ return function offset(...args) {
6
+ // Outside-sketch mode: offset(distance, removeOriginal, plane, ...sourceGeometries)
7
+ if (args.length >= 3 && !Array.isArray(args[0])) {
8
+ const distance = args[0] ?? 1;
9
+ const removeOriginal = args[1] ?? false;
10
+ const planeObj = resolvePlane(args[2], context);
11
+ const sourceObjects = args.slice(3);
12
+ const off = new Offset(distance, removeOriginal, sourceObjects, planeObj);
13
+ context.addSceneObject(off);
14
+ return off;
15
+ }
16
+ // In-sketch mode: offset(distance, removeOriginal)
17
+ const distance = args[0] ?? 1;
18
+ const removeOriginal = args[1] ?? false;
19
+ const off = new Offset(distance, removeOriginal);
20
+ context.addSceneObject(off);
21
+ return off;
22
+ };
23
+ }
24
+ export default registerBuilder(build);
@@ -0,0 +1,11 @@
1
+ import { IGeometry } from "../interfaces.js";
2
+ interface PolarMoveFunction {
3
+ /**
4
+ * Moves the cursor by polar coordinates.
5
+ * @param radius - The distance to move
6
+ * @param angle - The angle in degrees
7
+ */
8
+ (radius: number, angle: number): IGeometry;
9
+ }
10
+ declare const _default: PolarMoveFunction;
11
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { PolarMove } from "../../features/2d/pmove.js";
2
+ import { registerBuilder } from "../../index.js";
3
+ function build(context) {
4
+ return function pmove() {
5
+ const radius = arguments[0];
6
+ const angle = arguments[1] * Math.PI / 180;
7
+ const pmove = new PolarMove(radius, angle);
8
+ context.addSceneObject(pmove);
9
+ return pmove;
10
+ };
11
+ }
12
+ export default registerBuilder(build);