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,17 @@
1
+ import type { TopoDS_Vertex } from "occjs-wrapper";
2
+ import { ShapeType } from "./shape-type.js";
3
+ import { Shape } from "./shape.js";
4
+ import { Point, Point2D } from "../math/point.js";
5
+ export declare class Vertex extends Shape<TopoDS_Vertex> {
6
+ constructor(vertex: TopoDS_Vertex);
7
+ getType(): ShapeType;
8
+ isVertex(): boolean;
9
+ toPoint(): Point;
10
+ toPoint2D(): Point2D;
11
+ getSubShapes(): Shape[];
12
+ static fromTopoDSVertex(vertex: TopoDS_Vertex): Vertex;
13
+ static fromPoint(point: Point): Vertex;
14
+ static fromPoint2D(point: Point2D): Vertex;
15
+ compareTo(other: Vertex): boolean;
16
+ serialize(): {};
17
+ }
@@ -0,0 +1,44 @@
1
+ import { Shape } from "./shape.js";
2
+ import { Point, Point2D } from "../math/point.js";
3
+ import { VertexOps } from "../oc/vertex-ops.js";
4
+ export class Vertex extends Shape {
5
+ constructor(vertex) {
6
+ super(vertex);
7
+ }
8
+ getType() {
9
+ return "vertex";
10
+ }
11
+ isVertex() {
12
+ return true;
13
+ }
14
+ toPoint() {
15
+ return VertexOps.toPointRaw(this.getShape());
16
+ }
17
+ toPoint2D() {
18
+ const pnt = this.toPoint();
19
+ return new Point2D(pnt.x, pnt.y);
20
+ }
21
+ getSubShapes() {
22
+ return [];
23
+ }
24
+ static fromTopoDSVertex(vertex) {
25
+ return new Vertex(vertex);
26
+ }
27
+ static fromPoint(point) {
28
+ const vertex = VertexOps.fromPointRaw(point);
29
+ return new Vertex(vertex);
30
+ }
31
+ static fromPoint2D(point) {
32
+ console.log("Creating vertex from point2D:", point);
33
+ return Vertex.fromPoint(new Point(point.x, point.y, 0));
34
+ }
35
+ compareTo(other) {
36
+ if (!(other instanceof Vertex)) {
37
+ return false;
38
+ }
39
+ return this.getShape().IsPartner(other.getShape());
40
+ }
41
+ serialize() {
42
+ return {};
43
+ }
44
+ }
@@ -0,0 +1,22 @@
1
+ import type { TopoDS_Wire } from "occjs-wrapper";
2
+ import { ShapeType } from "./shape-type.js";
3
+ import { Shape } from "./shape.js";
4
+ import { Vector3d } from "../math/vector3d.js";
5
+ import { Vertex } from "./vertex.js";
6
+ import { Edge } from "./edge.js";
7
+ export declare class Wire extends Shape<TopoDS_Wire> {
8
+ vertices: Vertex[] | null;
9
+ edges: Edge[] | null;
10
+ constructor(wire: TopoDS_Wire);
11
+ getType(): ShapeType;
12
+ isWire(): boolean;
13
+ isCW(normal: Vector3d): boolean;
14
+ getSubShapes(type: ShapeType): Shape[];
15
+ getEdges(): Edge[];
16
+ private static normalizeStartEdge;
17
+ getFirstVertex(): Vertex;
18
+ getLastVertex(): Vertex;
19
+ static fromTopoDSWire(wire: TopoDS_Wire): Wire;
20
+ isClosed(): boolean;
21
+ getVertices(): Vertex[];
22
+ }
@@ -0,0 +1,97 @@
1
+ import { WireOps } from "../oc/wire-ops.js";
2
+ import { Shape } from "./shape.js";
3
+ import { Explorer } from "../oc/explorer.js";
4
+ import { EdgeOps } from "../oc/edge-ops.js";
5
+ export class Wire extends Shape {
6
+ vertices = null;
7
+ edges = null;
8
+ constructor(wire) {
9
+ super(wire);
10
+ }
11
+ getType() {
12
+ return "wire";
13
+ }
14
+ isWire() {
15
+ return true;
16
+ }
17
+ isCW(normal) {
18
+ return WireOps.isCW(this, normal);
19
+ }
20
+ getSubShapes(type) {
21
+ if (type === 'edge') {
22
+ return this.getEdges();
23
+ }
24
+ if (type === 'wire') {
25
+ return [this];
26
+ }
27
+ return [];
28
+ }
29
+ getEdges() {
30
+ if (this.edges) {
31
+ return this.edges;
32
+ }
33
+ // Use BRepTools_WireExplorer (via findEdgesInWireOrderWrapped) instead of
34
+ // TopExp_Explorer to get edges in wire-parametric order. TopExp_Explorer
35
+ // returns edges in topology-graph order which varies depending on how the
36
+ // shape was constructed (e.g. mirrored vs original extrusions).
37
+ let edges = Explorer.findEdgesInWireOrderWrapped(this);
38
+ // For closed wires, the starting edge from BRepTools_WireExplorer is still
39
+ // construction-dependent. Normalize by rotating to start from the edge with
40
+ // the lexicographically smallest midpoint, making indices geometry-based.
41
+ if (this.isClosed() && edges.length > 1) {
42
+ edges = Wire.normalizeStartEdge(edges);
43
+ }
44
+ this.edges = edges;
45
+ return this.edges;
46
+ }
47
+ // Rotates the edge list so it starts from the edge with the smallest midpoint
48
+ // (lexicographic x → y → z). This ensures consistent indexing regardless of
49
+ // how OCCT constructed the wire internally.
50
+ static normalizeStartEdge(edges) {
51
+ const eps = 1e-10;
52
+ let minIdx = 0;
53
+ let minMid = EdgeOps.getEdgeMidPoint(edges[0]);
54
+ for (let i = 1; i < edges.length; i++) {
55
+ const mid = EdgeOps.getEdgeMidPoint(edges[i]);
56
+ if (mid.x < minMid.x - eps
57
+ || (Math.abs(mid.x - minMid.x) < eps && mid.y < minMid.y - eps)
58
+ || (Math.abs(mid.x - minMid.x) < eps && Math.abs(mid.y - minMid.y) < eps && mid.z < minMid.z - eps)) {
59
+ minIdx = i;
60
+ minMid = mid;
61
+ }
62
+ }
63
+ if (minIdx === 0) {
64
+ return edges;
65
+ }
66
+ return [...edges.slice(minIdx), ...edges.slice(0, minIdx)];
67
+ }
68
+ getFirstVertex() {
69
+ const edges = this.getEdges();
70
+ if (edges.length === 0) {
71
+ return null;
72
+ }
73
+ const firstEdge = edges[0];
74
+ return firstEdge.getFirstVertex();
75
+ }
76
+ getLastVertex() {
77
+ const edges = this.getEdges();
78
+ if (edges.length === 0) {
79
+ return null;
80
+ }
81
+ const lastEdge = edges[edges.length - 1];
82
+ return lastEdge.getLastVertex();
83
+ }
84
+ static fromTopoDSWire(wire) {
85
+ return new Wire(wire);
86
+ }
87
+ isClosed() {
88
+ return this.getShape().Closed();
89
+ }
90
+ getVertices() {
91
+ if (this.vertices) {
92
+ return this.vertices;
93
+ }
94
+ this.vertices = Explorer.findVerticesWrapped(this);
95
+ return this.vertices;
96
+ }
97
+ }
@@ -0,0 +1,11 @@
1
+ import { GccEnt_Position, gp_Pln } from "occjs-wrapper";
2
+ import { Comparable, SceneObject } from "../common/scene-object.js";
3
+ export type ConstraintQualifier = 'any' | 'outside' | 'enclosed' | 'enclosing';
4
+ export declare class GeometricConstraint implements Comparable<GeometricConstraint> {
5
+ private object;
6
+ private qualifier;
7
+ constructor(object: SceneObject, qualifier: ConstraintQualifier);
8
+ getQualified(plane: gp_Pln): import("occjs-wrapper").GccEnt_QualifiedCirc | import("occjs-wrapper").GccEnt_QualifiedLin;
9
+ getQualifier(qualifier: ConstraintQualifier): GccEnt_Position;
10
+ compareTo(other: GeometricConstraint): boolean;
11
+ }
@@ -0,0 +1,51 @@
1
+ import { getOC } from "../load.js";
2
+ import { Geometry } from "../oc/geometry.js";
3
+ export class GeometricConstraint {
4
+ object;
5
+ qualifier;
6
+ constructor(object, qualifier) {
7
+ this.object = object;
8
+ this.qualifier = qualifier;
9
+ }
10
+ getQualified(plane) {
11
+ const oc = getOC();
12
+ const shape = this.object.getShapes()[0];
13
+ const adaptor = new oc.BRepAdaptor_Curve(shape.getShape());
14
+ const type = adaptor.GetType();
15
+ if (type === oc.GeomAbs_CurveType.GeomAbs_Circle) {
16
+ const circle = adaptor.Circle();
17
+ adaptor.delete();
18
+ const c1 = Geometry.get2dCircleRaw(plane, circle);
19
+ circle.delete();
20
+ const qualifier = this.getQualifier(this.qualifier);
21
+ const qualified = new oc.GccEnt_QualifiedCirc(c1, qualifier);
22
+ return qualified;
23
+ }
24
+ else if (type === oc.GeomAbs_CurveType.GeomAbs_Line) {
25
+ const line = adaptor.Line();
26
+ adaptor.delete();
27
+ const l1 = Geometry.get2dLineRaw(plane, line);
28
+ line.delete();
29
+ const qualifier = this.getQualifier(this.qualifier);
30
+ const qualified = new oc.GccEnt_QualifiedLin(l1, qualifier);
31
+ return qualified;
32
+ }
33
+ throw new Error('Unsupported shape type for constraint: ' + type);
34
+ }
35
+ getQualifier(qualifier) {
36
+ const oc = getOC();
37
+ switch (qualifier) {
38
+ case 'any':
39
+ return oc.GccEnt_Position.GccEnt_unqualified;
40
+ case 'enclosed':
41
+ return oc.GccEnt_Position.GccEnt_enclosed;
42
+ case 'enclosing':
43
+ return oc.GccEnt_Position.GccEnt_enclosing;
44
+ case 'outside':
45
+ return oc.GccEnt_Position.GccEnt_outside;
46
+ }
47
+ }
48
+ compareTo(other) {
49
+ return this.qualifier === other.qualifier && this.object.compareTo(other.object);
50
+ }
51
+ }
@@ -0,0 +1,3 @@
1
+ import { SceneObject } from "../common/scene-object.js";
2
+ import { GeometricConstraint } from "./constraint.js";
3
+ export declare function outside(sceneObject: SceneObject): GeometricConstraint;
@@ -0,0 +1,4 @@
1
+ import { GeometricConstraint } from "./constraint.js";
2
+ export function outside(sceneObject) {
3
+ return new GeometricConstraint(sceneObject, 'outside');
4
+ }
@@ -0,0 +1,28 @@
1
+ import { PlaneLike } from "../../math/plane.js";
2
+ import { IGeometry, ISceneObject } from "../interfaces.js";
3
+ interface ALineFunction {
4
+ /**
5
+ * Draws a line at the given angle with the given length.
6
+ * @param length - The line length
7
+ * @param angle - The angle in degrees
8
+ * @param centered - Whether to center the line on the current position
9
+ */
10
+ (length: number, angle: number, centered?: boolean): IGeometry;
11
+ /**
12
+ * Draws a line at the given angle on a specific plane.
13
+ * @param length - The line length
14
+ * @param angle - The angle in degrees
15
+ * @param targetPlane - The plane to draw on
16
+ */
17
+ (length: number, angle: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
18
+ /**
19
+ * Draws a centered line at the given angle on a specific plane.
20
+ * @param length - The line length
21
+ * @param angle - The angle in degrees
22
+ * @param centered - Whether to center the line on the current position
23
+ * @param targetPlane - The plane to draw on
24
+ */
25
+ (length: number, angle: number, centered: boolean, targetPlane: PlaneLike | ISceneObject): IGeometry;
26
+ }
27
+ declare const _default: ALineFunction;
28
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { AngledLine } from "../../features/2d/aline.js";
2
+ import { registerBuilder } from "../../index.js";
3
+ import { isPlaneLike } from "../../math/plane.js";
4
+ import { SceneObject } from "../../common/scene-object.js";
5
+ import { resolvePlane } from "../../helpers/resolve.js";
6
+ function build(context) {
7
+ return function line() {
8
+ let planeObj = null;
9
+ let argCount = arguments.length;
10
+ // Detect plane as last argument
11
+ if (argCount > 0) {
12
+ const lastArg = arguments[argCount - 1];
13
+ if (isPlaneLike(lastArg) || lastArg instanceof SceneObject) {
14
+ planeObj = resolvePlane(lastArg, context);
15
+ argCount--;
16
+ }
17
+ }
18
+ const length = arguments[0];
19
+ const angle = arguments[1];
20
+ const centered = argCount >= 3 ? arguments[2] : false;
21
+ const aline = new AngledLine(length, angle, centered, planeObj);
22
+ context.addSceneObject(aline);
23
+ return aline;
24
+ };
25
+ }
26
+ export default registerBuilder(build);
@@ -0,0 +1,77 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { PlaneLike } from "../../math/plane.js";
3
+ import { IGeometry, ISceneObject } from "../interfaces.js";
4
+ interface ArcFunction {
5
+ /**
6
+ * Draws an arc to an end point with an optional bulge radius.
7
+ * @param endPoint - The end point of the arc
8
+ * @param radius - The bulge radius (0 = auto)
9
+ */
10
+ (endPoint: Point2DLike, radius?: number): IGeometry;
11
+ /**
12
+ * Draws an arc from a start point to an end point with an optional bulge radius.
13
+ * @param startPoint - The start point of the arc
14
+ * @param endPoint - The end point of the arc
15
+ * @param radius - The bulge radius (0 = auto)
16
+ */
17
+ (startPoint: Point2DLike, endPoint: Point2DLike, radius?: number): IGeometry;
18
+ /**
19
+ * Draws an arc by radius and angle range.
20
+ * @param radius - The arc radius
21
+ * @param startAngle - The start angle in degrees (defaults to 0)
22
+ * @param endAngle - The end angle in degrees (defaults to 180)
23
+ * @param centered - Whether to center the arc on the current position
24
+ */
25
+ (radius: number, startAngle?: number, endAngle?: number, centered?: boolean): IGeometry;
26
+ /**
27
+ * Draws an arc to an end point on a specific plane.
28
+ * @param endPoint - The end point of the arc
29
+ * @param targetPlane - The plane to draw on
30
+ */
31
+ (endPoint: Point2DLike, targetPlane: PlaneLike | ISceneObject): IGeometry;
32
+ /**
33
+ * Draws an arc to an end point with a bulge radius on a specific plane.
34
+ * @param endPoint - The end point of the arc
35
+ * @param radius - The bulge radius
36
+ * @param targetPlane - The plane to draw on
37
+ */
38
+ (endPoint: Point2DLike, radius: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
39
+ /**
40
+ * Draws an arc between two points on a specific plane.
41
+ * @param startPoint - The start point of the arc
42
+ * @param endPoint - The end point of the arc
43
+ * @param targetPlane - The plane to draw on
44
+ */
45
+ (startPoint: Point2DLike, endPoint: Point2DLike, targetPlane: PlaneLike | ISceneObject): IGeometry;
46
+ /**
47
+ * Draws an arc between two points with a bulge radius on a specific plane.
48
+ * @param startPoint - The start point of the arc
49
+ * @param endPoint - The end point of the arc
50
+ * @param radius - The bulge radius
51
+ * @param targetPlane - The plane to draw on
52
+ */
53
+ (startPoint: Point2DLike, endPoint: Point2DLike, radius: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
54
+ /**
55
+ * Draws an arc by radius on a specific plane.
56
+ * @param radius - The arc radius
57
+ * @param targetPlane - The plane to draw on
58
+ */
59
+ (radius: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
60
+ /**
61
+ * Draws an arc by radius and start angle on a specific plane.
62
+ * @param radius - The arc radius
63
+ * @param startAngle - The start angle in degrees
64
+ * @param targetPlane - The plane to draw on
65
+ */
66
+ (radius: number, startAngle: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
67
+ /**
68
+ * Draws an arc by radius and angle range on a specific plane.
69
+ * @param radius - The arc radius
70
+ * @param startAngle - The start angle in degrees
71
+ * @param endAngle - The end angle in degrees
72
+ * @param targetPlane - The plane to draw on
73
+ */
74
+ (radius: number, startAngle: number, endAngle: number, targetPlane: PlaneLike | ISceneObject): IGeometry;
75
+ }
76
+ declare const _default: ArcFunction;
77
+ export default _default;
@@ -0,0 +1,49 @@
1
+ import { isPoint2DLike } from "../../math/point.js";
2
+ import { ArcFromTwoAngles } from "../../features/2d/arc.js";
3
+ import { ArcToPoint } from "../../features/2d/arc-to-point.js";
4
+ import { Move } from "../../features/2d/move.js";
5
+ import { normalizePoint2D } from "../../helpers/normalize.js";
6
+ import { registerBuilder } from "../../index.js";
7
+ import { isPlaneLike } from "../../math/plane.js";
8
+ import { SceneObject } from "../../common/scene-object.js";
9
+ import { resolvePlane } from "../../helpers/resolve.js";
10
+ function build(context) {
11
+ return function arc() {
12
+ let planeObj = null;
13
+ let argCount = arguments.length;
14
+ // Detect plane as last argument
15
+ if (argCount > 0) {
16
+ const lastArg = arguments[argCount - 1];
17
+ if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
18
+ planeObj = resolvePlane(lastArg, context);
19
+ argCount--;
20
+ }
21
+ }
22
+ // (startPoint, endPoint, radius?) — two Point2DLike args
23
+ if (argCount >= 2 && isPoint2DLike(arguments[0]) && isPoint2DLike(arguments[1])) {
24
+ const start = normalizePoint2D(arguments[0]);
25
+ const end = normalizePoint2D(arguments[1]);
26
+ const radius = argCount >= 3 ? arguments[2] : 0;
27
+ const arcObj = new ArcToPoint(end, radius, planeObj);
28
+ context.addSceneObjects([new Move(start), arcObj]);
29
+ return arcObj;
30
+ }
31
+ // (endPoint, radius?) — single Point2DLike arg
32
+ if (isPoint2DLike(arguments[0])) {
33
+ const end = normalizePoint2D(arguments[0]);
34
+ const radius = argCount >= 2 ? arguments[1] : 0;
35
+ const arcObj = new ArcToPoint(end, radius, planeObj);
36
+ context.addSceneObject(arcObj);
37
+ return arcObj;
38
+ }
39
+ // (radius, startAngle, endAngle?, centered?) — all numeric args
40
+ const radius = arguments[0] || 100;
41
+ const startAngle = arguments[1] || 0;
42
+ const endAngle = argCount >= 3 ? arguments[2] : 180;
43
+ const centered = argCount >= 4 ? arguments[3] : false;
44
+ const arcObj = new ArcFromTwoAngles(radius, startAngle, endAngle, centered, planeObj);
45
+ context.addSceneObject(arcObj);
46
+ return arcObj;
47
+ };
48
+ }
49
+ export default registerBuilder(build);
@@ -0,0 +1,12 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { Slot } from "../../features/2d/slot.js";
3
+ import { PlaneLike } from "../../math/plane.js";
4
+ import { SceneObject } from "../../common/scene-object.js";
5
+ interface ASlotFunction {
6
+ (distance: number, radius: number, angle: number, centered?: boolean): Slot;
7
+ (start: Point2DLike, distance: number, radius: number, angle: number): Slot;
8
+ (distance: number, radius: number, angle: number, targetPlane: PlaneLike | SceneObject): Slot;
9
+ (distance: number, radius: number, angle: number, centered: boolean, targetPlane: PlaneLike | SceneObject): Slot;
10
+ }
11
+ declare const _default: ASlotFunction;
12
+ export default _default;
@@ -0,0 +1,40 @@
1
+ import { isPoint2DLike } from "../../math/point.js";
2
+ import { Move } from "../../features/2d/move.js";
3
+ import { Slot } from "../../features/2d/slot.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 aSlot() {
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
+ // aslot(start, distance, radius, angle)
23
+ const start = normalizePoint2D(arguments[0]);
24
+ const distance = arguments[1];
25
+ const radius = arguments[2];
26
+ const angle = arguments[3];
27
+ const s = new Slot(distance, radius, false, angle, planeObj);
28
+ context.addSceneObjects([new Move(start), s]);
29
+ return s;
30
+ }
31
+ const distance = arguments[0];
32
+ const radius = arguments[1];
33
+ const angle = arguments[2];
34
+ const centered = argCount === 4 ? arguments[3] : false;
35
+ const s = new Slot(distance, radius, centered, angle, planeObj);
36
+ context.addSceneObject(s);
37
+ return s;
38
+ };
39
+ }
40
+ export default registerBuilder(build);
@@ -0,0 +1,16 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { IGeometry } from "../interfaces.js";
3
+ interface BezierFunction {
4
+ /**
5
+ * Draws a bezier curve from the current position through control points to the end point.
6
+ * The last argument is the endpoint; all preceding arguments are control points.
7
+ * With 0 args: interactive mode placeholder (no geometry).
8
+ * With 1 arg: degree 1 (line).
9
+ * With 2 args: degree 2 (quadratic bezier).
10
+ * With 3 args: degree 3 (cubic bezier).
11
+ * @param points - Control points and end point
12
+ */
13
+ (...points: Point2DLike[]): IGeometry;
14
+ }
15
+ declare const _default: BezierFunction;
16
+ export default _default;
@@ -0,0 +1,15 @@
1
+ import { BezierCurve } from "../../features/2d/bezier.js";
2
+ import { normalizePoint2D } from "../../helpers/normalize.js";
3
+ import { registerBuilder } from "../../index.js";
4
+ function build(context) {
5
+ return function bezier() {
6
+ const controlPoints = [];
7
+ for (let i = 0; i < arguments.length; i++) {
8
+ controlPoints.push(normalizePoint2D(arguments[i]));
9
+ }
10
+ const curve = new BezierCurve(controlPoints);
11
+ context.addSceneObject(curve);
12
+ return curve;
13
+ };
14
+ }
15
+ export default registerBuilder(build);
@@ -0,0 +1,24 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { PlaneLike } from "../../math/plane.js";
3
+ import { IExtrudableGeometry, ISceneObject } from "../interfaces.js";
4
+ interface CircleFunction {
5
+ /**
6
+ * Draws a circle at a given center with an optional diameter.
7
+ * @param center - The center point
8
+ * @param diameter - The circle diameter (defaults to 40)
9
+ */
10
+ (center: Point2DLike, diameter?: number): IExtrudableGeometry;
11
+ /**
12
+ * Draws a circle at the origin with an optional diameter.
13
+ * @param diameter - The circle diameter (defaults to 40)
14
+ */
15
+ (diameter?: number): IExtrudableGeometry;
16
+ /**
17
+ * Draws a circle with a given diameter on a specific plane.
18
+ * @param diameter - The circle diameter
19
+ * @param targetPlane - The plane to draw on
20
+ */
21
+ (diameter: number, targetPlane: PlaneLike | ISceneObject): IExtrudableGeometry;
22
+ }
23
+ declare const _default: CircleFunction;
24
+ export default _default;
@@ -0,0 +1,44 @@
1
+ import { isPoint2DLike } from "../../math/point.js";
2
+ import { Circle } from "../../features/2d/circle.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 circle() {
11
+ let diameter;
12
+ let center;
13
+ let circle;
14
+ let planeObj = null;
15
+ let argCount = arguments.length;
16
+ // Detect plane as last argument
17
+ if (argCount > 0) {
18
+ const lastArg = arguments[argCount - 1];
19
+ if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !isPoint2DLike(lastArg))) {
20
+ planeObj = resolvePlane(lastArg, context);
21
+ argCount--;
22
+ }
23
+ }
24
+ if (argCount === 0) {
25
+ diameter = 40;
26
+ circle = new Circle(diameter, null, planeObj);
27
+ context.addSceneObject(circle);
28
+ }
29
+ else if (argCount === 1) {
30
+ diameter = arguments[0] || 40;
31
+ circle = new Circle(diameter, null, planeObj);
32
+ context.addSceneObject(circle);
33
+ }
34
+ else {
35
+ center = normalizePoint2D(arguments[0]);
36
+ diameter = arguments[1] || 40;
37
+ circle = new Circle(diameter, null, planeObj);
38
+ const move = new Move(center);
39
+ context.addSceneObjects([move, circle]);
40
+ }
41
+ return circle;
42
+ };
43
+ }
44
+ export default registerBuilder(build);
@@ -0,0 +1,11 @@
1
+ import { ConnectMode } from "../../features/2d/connect.js";
2
+ import { IGeometry } from "../interfaces.js";
3
+ interface ConnectFunction {
4
+ /**
5
+ * Connects the current position back to the start to close the sketch.
6
+ * @param mode - The connection mode
7
+ */
8
+ (mode?: ConnectMode): IGeometry;
9
+ }
10
+ declare const _default: ConnectFunction;
11
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { Connect } from "../../features/2d/connect.js";
2
+ import { registerBuilder } from "../../index.js";
3
+ function build(context) {
4
+ return function connect(mode) {
5
+ const connect = new Connect(mode);
6
+ context.addSceneObject(connect);
7
+ return connect;
8
+ };
9
+ }
10
+ export default registerBuilder(build);
@@ -0,0 +1,12 @@
1
+ import { Point2DLike } from "../../math/point.js";
2
+ import { Rect, RectOptions } from "../../features/2d/rect.js";
3
+ import { PlaneLike } from "../../math/plane.js";
4
+ import { SceneObject } from "../../common/scene-object.js";
5
+ interface CRectFunction {
6
+ (width: number, height?: number, options?: RectOptions): Rect;
7
+ (start: Point2DLike, width: number, height?: number, options?: RectOptions): Rect;
8
+ (width: number, height: number, targetPlane: PlaneLike | SceneObject): Rect;
9
+ (width: number, height: number, options: RectOptions, targetPlane: PlaneLike | SceneObject): Rect;
10
+ }
11
+ declare const _default: CRectFunction;
12
+ export default _default;