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,9 @@
1
+ interface VMoveFunction {
2
+ /**
3
+ * Moves the cursor vertically by the given distance.
4
+ * @param distance - The vertical distance to move
5
+ */
6
+ (distance: number): void;
7
+ }
8
+ declare const _default: VMoveFunction;
9
+ export default _default;
@@ -0,0 +1,11 @@
1
+ import { VMove } from "../../features/2d/vmove.js";
2
+ import { registerBuilder } from "../../index.js";
3
+ function build(context) {
4
+ return function move() {
5
+ const distance = arguments[0];
6
+ const move = new VMove(distance);
7
+ context.addSceneObject(move);
8
+ return move;
9
+ };
10
+ }
11
+ export default registerBuilder(build);
@@ -0,0 +1,11 @@
1
+ import { PlaneLike } from "../../math/plane.js";
2
+ import { IExtrudableGeometry, IGeometry, ISceneObject } from "../interfaces.js";
3
+ interface WireFunction {
4
+ /**
5
+ * Groups geometry segments into a closed wire for extrusion.
6
+ * @param args - The geometry segments to group, optionally ending with a target plane
7
+ */
8
+ (...args: (IGeometry | PlaneLike | ISceneObject)[]): IExtrudableGeometry;
9
+ }
10
+ declare const _default: WireFunction;
11
+ export default _default;
@@ -0,0 +1,29 @@
1
+ import { GeometrySceneObject } from "../../features/2d/geometry.js";
2
+ import { WireObject } from "../../features/2d/wire.js";
3
+ import { registerBuilder } from "../../index.js";
4
+ import { isPlaneLike } from "../../math/plane.js";
5
+ import { SceneObject } from "../../common/scene-object.js";
6
+ import { resolvePlane } from "../../helpers/resolve.js";
7
+ function build(context) {
8
+ return function wire() {
9
+ let planeObj = null;
10
+ let argCount = arguments.length;
11
+ // Check if last argument is a plane
12
+ if (argCount > 0) {
13
+ const lastArg = arguments[argCount - 1];
14
+ if (isPlaneLike(lastArg) || (lastArg instanceof SceneObject && !(lastArg instanceof GeometrySceneObject))) {
15
+ planeObj = resolvePlane(lastArg, context);
16
+ argCount--;
17
+ }
18
+ }
19
+ // Collect target objects from arguments
20
+ let targetObjects = [];
21
+ for (let i = 0; i < argCount; i++) {
22
+ targetObjects.push(arguments[i]);
23
+ }
24
+ const path = new WireObject(targetObjects.length > 0 ? targetObjects : null, planeObj);
25
+ context.addSceneObject(path);
26
+ return path;
27
+ };
28
+ }
29
+ export default registerBuilder(build);
@@ -0,0 +1,41 @@
1
+ import { AxisLike, AxisTransformOptions } from "../math/axis.js";
2
+ import { IAxis, ISceneObject } from "./interfaces.js";
3
+ interface AxisFunction {
4
+ /**
5
+ * Creates an axis from a direction vector.
6
+ * @param axis - The direction vector or standard axis
7
+ */
8
+ (axis: AxisLike): IAxis;
9
+ /**
10
+ * Creates an axis from a direction vector with transform options.
11
+ * @param axis - The direction vector or standard axis
12
+ * @param options - Transform options (offset, flip, etc.)
13
+ */
14
+ (axis: AxisLike, options: AxisTransformOptions): IAxis;
15
+ /**
16
+ * Creates an axis from a scene object's edge.
17
+ * @param source - The scene object whose edge defines the axis
18
+ */
19
+ (source: ISceneObject): IAxis;
20
+ /**
21
+ * Creates an axis from a scene object's edge with transform options.
22
+ * @param source - The scene object whose edge defines the axis
23
+ * @param options - Transform options (offset, flip, etc.)
24
+ */
25
+ (source: ISceneObject, options: AxisTransformOptions): IAxis;
26
+ /**
27
+ * Transforms an existing axis with options.
28
+ * @param axis - The existing axis to transform
29
+ * @param options - Transform options (offset, flip, etc.)
30
+ */
31
+ (axis: IAxis, options: AxisTransformOptions): IAxis;
32
+ /**
33
+ * Creates an axis midway between two axes.
34
+ * @param a1 - The first axis
35
+ * @param a2 - The second axis
36
+ * @param options - Transform options (offset, flip, etc.)
37
+ */
38
+ (a1: AxisLike | IAxis, a2: AxisLike | IAxis, options?: AxisTransformOptions): IAxis;
39
+ }
40
+ declare const _default: AxisFunction;
41
+ export default _default;
@@ -0,0 +1,104 @@
1
+ import { registerBuilder } from "../index.js";
2
+ import { isAxisLike } from "../math/axis.js";
3
+ import { AxisObject } from "../features/axis.js";
4
+ import { normalizeAxis } from "../helpers/normalize.js";
5
+ import { AxisFromEdge } from "../features/axis-from-edge.js";
6
+ import { AxisObjectBase } from "../features/axis-renderable-base.js";
7
+ import { AxisMiddle } from "../features/axis-mid.js";
8
+ import { SceneObject } from "../common/scene-object.js";
9
+ function build(context) {
10
+ return function axis() {
11
+ if (arguments.length === 1) {
12
+ if (arguments[0] instanceof SceneObject) {
13
+ context.addSceneObject(arguments[0]);
14
+ const a = new AxisFromEdge(arguments[0]);
15
+ context.addSceneObject(a);
16
+ return a;
17
+ }
18
+ else {
19
+ const axis = normalizeAxis(arguments[0]);
20
+ const a = new AxisObject(axis);
21
+ context.addSceneObject(a);
22
+ return a;
23
+ }
24
+ }
25
+ if (arguments.length === 2) {
26
+ if ((arguments[0] instanceof AxisObjectBase || isAxisLike(arguments[0])) &&
27
+ (arguments[1] instanceof AxisObjectBase || isAxisLike(arguments[1]))) {
28
+ // axis between two others
29
+ let a1;
30
+ let a2;
31
+ if (arguments[0] instanceof AxisObjectBase) {
32
+ a1 = arguments[0];
33
+ }
34
+ else {
35
+ const axis = normalizeAxis(arguments[0]);
36
+ a1 = new AxisObject(axis);
37
+ }
38
+ if (arguments[1] instanceof AxisObjectBase) {
39
+ a2 = arguments[1];
40
+ }
41
+ else {
42
+ const axis = normalizeAxis(arguments[1]);
43
+ a2 = new AxisObject(axis);
44
+ }
45
+ context.addSceneObject(a1);
46
+ context.addSceneObject(a2);
47
+ const a = new AxisMiddle(a1, a2);
48
+ context.addSceneObject(a);
49
+ return a;
50
+ }
51
+ if ((arguments[0] instanceof AxisObjectBase) && typeof arguments[1] === 'object') {
52
+ const axis = arguments[0];
53
+ const options = arguments[1];
54
+ context.addSceneObject(axis);
55
+ const a = new AxisFromEdge(axis, options);
56
+ context.addSceneObject(a);
57
+ return a;
58
+ }
59
+ if (arguments[0] instanceof SceneObject) {
60
+ context.addSceneObject(arguments[0]);
61
+ const a = new AxisFromEdge(arguments[0], arguments[1]);
62
+ context.addSceneObject(a);
63
+ return a;
64
+ }
65
+ if (isAxisLike(arguments[0])) {
66
+ const axis1 = normalizeAxis(arguments[0]);
67
+ const options = arguments[1];
68
+ const a = new AxisObject(axis1, options);
69
+ context.addSceneObject(a);
70
+ return a;
71
+ }
72
+ }
73
+ if (arguments.length === 3) {
74
+ if ((arguments[0] instanceof AxisObjectBase || isAxisLike((arguments[0]))) &&
75
+ (arguments[1] instanceof AxisObjectBase || isAxisLike((arguments[1])))) {
76
+ // axis between two others with options
77
+ let a1;
78
+ let a2;
79
+ if (arguments[0] instanceof AxisObjectBase) {
80
+ a1 = arguments[0];
81
+ }
82
+ else {
83
+ const axis = normalizeAxis(arguments[0]);
84
+ a1 = new AxisObject(axis);
85
+ }
86
+ if (arguments[1] instanceof AxisObjectBase) {
87
+ a2 = arguments[1];
88
+ }
89
+ else {
90
+ const axis = normalizeAxis(arguments[1]);
91
+ a2 = new AxisObject(axis);
92
+ }
93
+ const options = arguments[2];
94
+ context.addSceneObject(a1);
95
+ context.addSceneObject(a2);
96
+ const a = new AxisMiddle(a1, a2, options);
97
+ context.addSceneObject(a);
98
+ return a;
99
+ }
100
+ }
101
+ throw new Error("Invalid arguments for axis function");
102
+ };
103
+ }
104
+ export default registerBuilder(build);
@@ -0,0 +1,31 @@
1
+ import { ISceneObject } from "./interfaces.js";
2
+ interface ChamferFunction {
3
+ /**
4
+ * Chamfers selected edges with the given distance.
5
+ * @param distance - The chamfer distance (defaults to 1)
6
+ */
7
+ (distance?: number): ISceneObject;
8
+ /**
9
+ * Chamfers the given edge selection with the given distance.
10
+ * @param distance - The chamfer distance
11
+ * @param selection - The edge selection to chamfer
12
+ */
13
+ (distance: number, selection: ISceneObject): ISceneObject;
14
+ /**
15
+ * Chamfers selected edges with two distances or a distance and angle.
16
+ * @param distance - The first chamfer distance
17
+ * @param distance2 - The second distance, or angle if `isAngle` is true
18
+ * @param isAngle - Whether `distance2` is an angle
19
+ */
20
+ (distance: number, distance2: number, isAngle?: boolean): ISceneObject;
21
+ /**
22
+ * Chamfers the given edge selection with two distances or a distance and angle.
23
+ * @param distance - The first chamfer distance
24
+ * @param distance2 - The second distance, or angle if `isAngle` is true
25
+ * @param isAngle - Whether `distance2` is an angle
26
+ * @param selection - The edge selection to chamfer
27
+ */
28
+ (distance: number, distance2: number, isAngle: boolean, selection: ISceneObject): ISceneObject;
29
+ }
30
+ declare const _default: ChamferFunction;
31
+ export default _default;
@@ -0,0 +1,32 @@
1
+ import { Chamfer } from "../features/chamfer.js";
2
+ import { SceneObject } from "../common/scene-object.js";
3
+ import { registerBuilder } from "../index.js";
4
+ function build(context) {
5
+ return function chamfer() {
6
+ const args = Array.from(arguments);
7
+ let selection;
8
+ if (args.length > 0 && args[args.length - 1] instanceof SceneObject) {
9
+ selection = args.pop();
10
+ }
11
+ else {
12
+ selection = context.getLastSelection() || undefined;
13
+ }
14
+ context.addSceneObject(selection); // Ensure lazy selections are added to the scene
15
+ let distance = 1;
16
+ let distance2 = undefined;
17
+ let isAngle = false;
18
+ if (args.length >= 1 && typeof args[0] === 'number') {
19
+ distance = args[0];
20
+ }
21
+ if (args.length >= 2 && typeof args[1] === 'number') {
22
+ distance2 = args[1];
23
+ }
24
+ if (args.length >= 3 && typeof args[2] === 'boolean') {
25
+ isAngle = args[2];
26
+ }
27
+ const chamfer = new Chamfer(distance, distance2, isAngle, selection);
28
+ context.addSceneObject(chamfer);
29
+ return chamfer;
30
+ };
31
+ }
32
+ export default registerBuilder(build);
@@ -0,0 +1,16 @@
1
+ import { ISceneObject } from "./interfaces.js";
2
+ interface ColorFunction {
3
+ /**
4
+ * Applies a color to the last selection.
5
+ * @param color - The color value (CSS color string)
6
+ */
7
+ (color: string): ISceneObject;
8
+ /**
9
+ * Applies a color to the given selection.
10
+ * @param color - The color value (CSS color string)
11
+ * @param selection - The face or edge selection to color
12
+ */
13
+ (color: string, selection: ISceneObject): ISceneObject;
14
+ }
15
+ declare const _default: ColorFunction;
16
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import { registerBuilder } from "../index.js";
2
+ import { SceneObject } from "../common/scene-object.js";
3
+ import { Color } from "../features/color.js";
4
+ function build(context) {
5
+ return function color() {
6
+ let selection;
7
+ if (arguments.length >= 2 && arguments[1] instanceof SceneObject) {
8
+ selection = arguments[1];
9
+ }
10
+ else {
11
+ selection = context.getLastSelection() || undefined;
12
+ }
13
+ context.addSceneObject(selection);
14
+ const obj = new Color(arguments[0], selection);
15
+ context.addSceneObject(obj);
16
+ return obj;
17
+ };
18
+ }
19
+ export default registerBuilder(build);
@@ -0,0 +1,12 @@
1
+ import { ICommon, ISceneObject } from "./interfaces.js";
2
+ interface CommonFunction {
3
+ /** Computes the common (intersection) of all shapes or 2D geometries in the current context. */
4
+ (): ICommon;
5
+ /**
6
+ * Computes the common (intersection) of the given shapes or 2D geometries.
7
+ * @param objects - The objects to intersect
8
+ */
9
+ (...objects: ISceneObject[]): ICommon;
10
+ }
11
+ declare const _default: CommonFunction;
12
+ export default _default;
@@ -0,0 +1,36 @@
1
+ import { registerBuilder } from "../index.js";
2
+ import { Common } from "../features/common.js";
3
+ import { Common2D } from "../features/common2d.js";
4
+ function build(context) {
5
+ return function common(...args) {
6
+ const activeSketch = context.getActiveSketch();
7
+ if (activeSketch) {
8
+ let objects;
9
+ if (args.length > 0) {
10
+ if (args.length === 1 && Array.isArray(args[0])) {
11
+ objects = args[0];
12
+ }
13
+ else {
14
+ objects = args;
15
+ }
16
+ }
17
+ else {
18
+ objects = [];
19
+ }
20
+ const common2d = new Common2D(...objects);
21
+ context.addSceneObject(common2d);
22
+ return common2d;
23
+ }
24
+ let solids;
25
+ if (args.length === 1 && Array.isArray(args[0])) {
26
+ solids = args[0];
27
+ }
28
+ else {
29
+ solids = args;
30
+ }
31
+ const common = new Common(...solids);
32
+ context.addSceneObject(common);
33
+ return common;
34
+ };
35
+ }
36
+ export default registerBuilder(build);
@@ -0,0 +1,58 @@
1
+ import { AxisLike } from "../math/axis.js";
2
+ import { Point2DLike } from "../math/point.js";
3
+ import { LinearCopyOptions } from "../features/copy-linear.js";
4
+ import { CircularCopyOptions } from "../features/copy-circular.js";
5
+ import { ISceneObject } from "./interfaces.js";
6
+ export type CopyType = 'linear' | 'circular';
7
+ interface CopyFunction {
8
+ /**
9
+ * [2D] Creates linear copies along an axis inside a sketch.
10
+ * @param type - Must be `'linear'`
11
+ * @param axis - The axis to copy along
12
+ * @param options - Copy count, spacing, etc.
13
+ * @param objects - The objects to copy (defaults to last object)
14
+ */
15
+ (type: 'linear', axis: AxisLike, options: LinearCopyOptions, ...objects: ISceneObject[]): ISceneObject;
16
+ /**
17
+ * [2D] Creates linear copies along multiple axes inside a sketch.
18
+ * @param type - Must be `'linear'`
19
+ * @param axis - The axes to copy along
20
+ * @param options - Copy count, spacing, etc.
21
+ * @param objects - The objects to copy (defaults to last object)
22
+ */
23
+ (type: 'linear', axis: AxisLike[], options: LinearCopyOptions, ...objects: ISceneObject[]): ISceneObject;
24
+ /**
25
+ * [3D] Creates linear copies along an axis.
26
+ * @param type - Must be `'linear'`
27
+ * @param axis - The axis to copy along
28
+ * @param options - Copy count, spacing, etc.
29
+ * @param objects - The objects to copy (defaults to last object)
30
+ */
31
+ (type: 'linear', axis: AxisLike, options: LinearCopyOptions, ...objects: ISceneObject[]): ISceneObject;
32
+ /**
33
+ * [3D] Creates linear copies along multiple axes.
34
+ * @param type - Must be `'linear'`
35
+ * @param axis - The axes to copy along
36
+ * @param options - Copy count, spacing, etc.
37
+ * @param objects - The objects to copy (defaults to last object)
38
+ */
39
+ (type: 'linear', axis: AxisLike[], options: LinearCopyOptions, ...objects: ISceneObject[]): ISceneObject;
40
+ /**
41
+ * [2D] Creates circular copies around a center point inside a sketch.
42
+ * @param type - Must be `'circular'`
43
+ * @param center - The center point to copy around
44
+ * @param options - Copy count, angle, etc.
45
+ * @param objects - The objects to copy (defaults to last object)
46
+ */
47
+ (type: 'circular', center: Point2DLike, options: CircularCopyOptions, ...objects: ISceneObject[]): ISceneObject;
48
+ /**
49
+ * [3D] Creates circular copies around an axis.
50
+ * @param type - Must be `'circular'`
51
+ * @param axis - The axis to copy around
52
+ * @param options - Copy count, angle, etc.
53
+ * @param objects - The objects to copy (defaults to last object)
54
+ */
55
+ (type: 'circular', axis: AxisLike, options: CircularCopyOptions, ...objects: ISceneObject[]): ISceneObject;
56
+ }
57
+ declare const _default: CopyFunction;
58
+ export default _default;
@@ -0,0 +1,49 @@
1
+ import { registerBuilder } from "../index.js";
2
+ import { normalizeAxis, normalizePoint2D } from "../helpers/normalize.js";
3
+ import { CopyLinear } from "../features/copy-linear.js";
4
+ import { CopyCircular } from "../features/copy-circular.js";
5
+ import { CopyLinear2D } from "../features/copy-linear2d.js";
6
+ import { CopyCircular2D } from "../features/copy-circular2d.js";
7
+ function build(context) {
8
+ return function copy() {
9
+ const args = Array.from(arguments);
10
+ if (args.length < 3) {
11
+ throw new Error("Invalid arguments for copy function: expected at least (type, axis, options)");
12
+ }
13
+ const type = args[0];
14
+ const activeSketch = context.getActiveSketch();
15
+ const options = args[2];
16
+ const restObjects = args.slice(3);
17
+ const objects = restObjects.length > 0
18
+ ? restObjects
19
+ : [context.getSceneObjects().at(-1)];
20
+ if (type === 'linear') {
21
+ const axisArg = args[1];
22
+ const axes = Array.isArray(axisArg)
23
+ ? axisArg.map(a => normalizeAxis(a))
24
+ : [normalizeAxis(axisArg)];
25
+ if (activeSketch) {
26
+ const copy = new CopyLinear2D(axes, options, restObjects.length > 0 ? restObjects : null);
27
+ context.addSceneObject(copy);
28
+ return copy;
29
+ }
30
+ const copy = new CopyLinear(axes, options, objects);
31
+ context.addSceneObject(copy);
32
+ return copy;
33
+ }
34
+ if (type === 'circular') {
35
+ if (activeSketch) {
36
+ const center = normalizePoint2D(args[1]);
37
+ const copy = new CopyCircular2D(center, options, restObjects.length > 0 ? restObjects : null);
38
+ context.addSceneObject(copy);
39
+ return copy;
40
+ }
41
+ const axis = normalizeAxis(args[1]);
42
+ const copy = new CopyCircular(axis, options, objects);
43
+ context.addSceneObject(copy);
44
+ return copy;
45
+ }
46
+ throw new Error(`Invalid copy type: ${type}`);
47
+ };
48
+ }
49
+ export default registerBuilder(build);
@@ -0,0 +1,46 @@
1
+ import { ICut, ISceneObject } from "./interfaces.js";
2
+ interface CutFunction {
3
+ /**
4
+ * Cuts through all using the last sketch
5
+ * @param target - The sketch to cut with
6
+ */
7
+ (): ICut;
8
+ /**
9
+ * Cuts using the given sketch with a default distance.
10
+ * @param target - The sketch to cut with
11
+ */
12
+ (target: ISceneObject): ICut;
13
+ /**
14
+ * Cuts using the given sketch by a given distance.
15
+ * @param distance - The cut depth
16
+ * @param target - The sketch to cut with
17
+ */
18
+ (distance: number, target?: ISceneObject): ICut;
19
+ /**
20
+ * Cuts by two distances using the last sketch.
21
+ * @param distance1 - The first cut distance
22
+ * @param distance2 - The second cut distance
23
+ */
24
+ (distance1: number, distance2: number): ICut;
25
+ /**
26
+ * Cuts by two distances using the given sketch.
27
+ * @param distance1 - The first cut distance
28
+ * @param distance2 - The second cut distance
29
+ * @param target - The sketch to cut with
30
+ */
31
+ (distance1: number, distance2: number, target: ISceneObject): ICut;
32
+ /**
33
+ * Cuts up to face using the last sketch.
34
+ * @param face - The face to cut up to, or `'first-face'`/`'last-face'`
35
+ * @param target - The sketch to cut with
36
+ */
37
+ (face: ISceneObject | 'first-face' | 'last-face'): ICut;
38
+ /**
39
+ * Cuts up to face using the given sketch.
40
+ * @param face - The face to cut up to, or `'first-face'`/`'last-face'`
41
+ * @param target - The sketch to cut with
42
+ */
43
+ (face: ISceneObject | 'first-face' | 'last-face', target: ISceneObject): ICut;
44
+ }
45
+ declare const _default: CutFunction;
46
+ export default _default;
@@ -0,0 +1,53 @@
1
+ import { SceneObject } from "../common/scene-object.js";
2
+ import { registerBuilder } from "../index.js";
3
+ import { Extrude } from "../features/extrude.js";
4
+ import { ExtrudeToFace } from "../features/extrude-to-face.js";
5
+ import { ExtrudeTwoDistances } from "../features/extrude-two-distances.js";
6
+ function isExtrudable(obj) {
7
+ return obj instanceof SceneObject && obj.isExtrudable();
8
+ }
9
+ function build(context) {
10
+ function doCut(params, extrudable) {
11
+ if (params.length === 0) {
12
+ return new Extrude(0, extrudable).remove();
13
+ }
14
+ else if (params.length === 1) {
15
+ if (typeof params[0] === 'number') {
16
+ return new Extrude(params[0], extrudable).remove();
17
+ }
18
+ else if (params[0] === 'first-face') {
19
+ return new ExtrudeToFace('first-face', extrudable).remove();
20
+ }
21
+ else if (params[0] === 'last-face') {
22
+ return new ExtrudeToFace('last-face', extrudable).remove();
23
+ }
24
+ else if (params[0] instanceof SceneObject) {
25
+ context.addSceneObject(params[0]);
26
+ return new ExtrudeToFace(params[0], extrudable).remove();
27
+ }
28
+ else {
29
+ throw new Error("Invalid parameter for cut function.");
30
+ }
31
+ }
32
+ else if (params.length === 2) {
33
+ if (typeof params[0] === 'number' && typeof params[1] === 'number') {
34
+ return new ExtrudeTwoDistances(params[0], params[1], extrudable).remove();
35
+ }
36
+ }
37
+ throw new Error("Invalid parameters for cut function.");
38
+ }
39
+ return function cut() {
40
+ const args = [...arguments];
41
+ let extrudable;
42
+ if (args.length > 0 && isExtrudable(args[args.length - 1])) {
43
+ extrudable = args.pop();
44
+ }
45
+ else {
46
+ extrudable = context.getLastExtrudable() || undefined;
47
+ }
48
+ const result = doCut(args, extrudable);
49
+ context.addSceneObject(result);
50
+ return result;
51
+ };
52
+ }
53
+ export default registerBuilder(build);
@@ -0,0 +1,11 @@
1
+ import { ISceneObject } from "./interfaces.js";
2
+ interface CylinderFunction {
3
+ /**
4
+ * Creates a cylinder with the given radius and height.
5
+ * @param radius - The cylinder radius
6
+ * @param height - The cylinder height
7
+ */
8
+ (radius: number, height: number): ISceneObject;
9
+ }
10
+ declare const _default: CylinderFunction;
11
+ export default _default;
@@ -0,0 +1,10 @@
1
+ import { Cylinder } from "../features/cylinder.js";
2
+ import { registerBuilder } from "../index.js";
3
+ function build(context) {
4
+ return function cylinder(radius, height) {
5
+ const cylinder = new Cylinder(radius, height);
6
+ context.addSceneObject(cylinder);
7
+ return cylinder;
8
+ };
9
+ }
10
+ export default registerBuilder(build);
@@ -0,0 +1,36 @@
1
+ import { IExtrude, ISceneObject } from "./interfaces.js";
2
+ interface ExtrudeFunction {
3
+ /**
4
+ * Extrudes the last sketch with a default distance.
5
+ * @param target - The sketch to extrude
6
+ */
7
+ (target?: ISceneObject): IExtrude;
8
+ /**
9
+ * Extrudes the last sketch by a given distance.
10
+ * @param distance - The extrusion distance
11
+ * @param target - The sketch to extrude
12
+ */
13
+ (distance: number, target?: ISceneObject): IExtrude;
14
+ /**
15
+ * Extrudes the last sketch between two distances.
16
+ * @param distance1 - The first extrusion distance
17
+ * @param distance2 - The second extrusion distance
18
+ * @param target - The sketch to extrude
19
+ */
20
+ (distance1: number, distance2: number): IExtrude;
21
+ /**
22
+ * Extrudes the given sketch between two distances.
23
+ * @param distance1 - The first extrusion distance
24
+ * @param distance2 - The second extrusion distance
25
+ * @param target - The sketch to extrude
26
+ */
27
+ (distance1: number, distance2: number, target: ISceneObject): IExtrude;
28
+ /**
29
+ * Extrudes the last sketch up to a face.
30
+ * @param face - The face to extrude up to, or `'first-face'`/`'last-face'`
31
+ * @param target - The sketch to extrude
32
+ */
33
+ (face: ISceneObject | 'first-face' | 'last-face', target?: ISceneObject): IExtrude;
34
+ }
35
+ declare const _default: ExtrudeFunction;
36
+ export default _default;