@snaptrude/plugin-core 0.3.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/AGENTS.md +130 -48
  2. package/CHANGELOG.md +163 -0
  3. package/api-manifest.full.json +5600 -0
  4. package/api-manifest.json +5502 -0
  5. package/dist/api/analysis/heatmaps.d.ts +234 -0
  6. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  7. package/dist/api/analysis/illuminance.d.ts +145 -0
  8. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  9. package/dist/api/analysis/index.d.ts +44 -0
  10. package/dist/api/analysis/index.d.ts.map +1 -0
  11. package/dist/api/analysis/shadows.d.ts +165 -0
  12. package/dist/api/analysis/shadows.d.ts.map +1 -0
  13. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  14. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  15. package/dist/api/analysis/sunpath.d.ts +80 -0
  16. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  17. package/dist/api/core/buildings.d.ts +427 -0
  18. package/dist/api/core/buildings.d.ts.map +1 -0
  19. package/dist/api/core/comment/index.d.ts +230 -0
  20. package/dist/api/core/comment/index.d.ts.map +1 -0
  21. package/dist/api/core/geom/create/index.d.ts +247 -0
  22. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  23. package/dist/api/core/geom/delete/index.d.ts +72 -0
  24. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  25. package/dist/api/core/geom/index.d.ts +24 -23
  26. package/dist/api/core/geom/index.d.ts.map +1 -1
  27. package/dist/api/core/geom/query/arc.d.ts +169 -0
  28. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  29. package/dist/api/core/geom/query/brep.d.ts +402 -0
  30. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  31. package/dist/api/core/geom/query/circle.d.ts +378 -0
  32. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  33. package/dist/api/core/geom/query/contour.d.ts +450 -0
  34. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/curve.d.ts +918 -0
  36. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/edge.d.ts +128 -0
  38. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/face.d.ts +363 -0
  40. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  42. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/index.d.ts +61 -0
  44. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/profile.d.ts +410 -0
  46. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  48. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  49. package/dist/api/core/geom/update/contour.d.ts +272 -0
  50. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  51. package/dist/api/core/geom/update/curve.d.ts +180 -0
  52. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  53. package/dist/api/core/geom/update/index.d.ts +27 -0
  54. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  55. package/dist/api/core/geom/update/profile.d.ts +329 -0
  56. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  57. package/dist/api/core/groups.d.ts +485 -0
  58. package/dist/api/core/groups.d.ts.map +1 -0
  59. package/dist/api/core/history/index.d.ts +78 -0
  60. package/dist/api/core/history/index.d.ts.map +1 -0
  61. package/dist/api/core/index.d.ts +51 -1
  62. package/dist/api/core/index.d.ts.map +1 -1
  63. package/dist/api/core/io/import/index.d.ts +392 -0
  64. package/dist/api/core/io/import/index.d.ts.map +1 -0
  65. package/dist/api/core/io/index.d.ts +35 -0
  66. package/dist/api/core/io/index.d.ts.map +1 -0
  67. package/dist/api/core/io/job/index.d.ts +139 -0
  68. package/dist/api/core/io/job/index.d.ts.map +1 -0
  69. package/dist/api/core/io/query/index.d.ts +74 -0
  70. package/dist/api/core/io/query/index.d.ts.map +1 -0
  71. package/dist/api/core/io/terrain/index.d.ts +206 -0
  72. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  73. package/dist/api/core/io/underlay/index.d.ts +286 -0
  74. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  75. package/dist/api/core/layers.d.ts +402 -0
  76. package/dist/api/core/layers.d.ts.map +1 -0
  77. package/dist/api/core/math/quat.d.ts +111 -128
  78. package/dist/api/core/math/quat.d.ts.map +1 -1
  79. package/dist/api/core/math/vec3.d.ts +120 -102
  80. package/dist/api/core/math/vec3.d.ts.map +1 -1
  81. package/dist/api/core/project/index.d.ts +399 -0
  82. package/dist/api/core/project/index.d.ts.map +1 -0
  83. package/dist/api/core/tags.d.ts +755 -0
  84. package/dist/api/core/tags.d.ts.map +1 -0
  85. package/dist/api/core/units/index.d.ts +175 -0
  86. package/dist/api/core/units/index.d.ts.map +1 -0
  87. package/dist/api/core/zoom/index.d.ts +45 -0
  88. package/dist/api/core/zoom/index.d.ts.map +1 -0
  89. package/dist/api/design/boolean/index.d.ts +168 -0
  90. package/dist/api/design/boolean/index.d.ts.map +1 -0
  91. package/dist/api/design/create/index.d.ts +837 -0
  92. package/dist/api/design/create/index.d.ts.map +1 -0
  93. package/dist/api/design/delete/index.d.ts +63 -0
  94. package/dist/api/design/delete/index.d.ts.map +1 -0
  95. package/dist/api/design/doors/index.d.ts +268 -0
  96. package/dist/api/design/doors/index.d.ts.map +1 -0
  97. package/dist/api/design/edit/index.d.ts +49 -0
  98. package/dist/api/design/edit/index.d.ts.map +1 -0
  99. package/dist/api/design/erase/index.d.ts +160 -0
  100. package/dist/api/design/erase/index.d.ts.map +1 -0
  101. package/dist/api/design/furniture/index.d.ts +123 -0
  102. package/dist/api/design/furniture/index.d.ts.map +1 -0
  103. package/dist/api/design/index.d.ts +153 -0
  104. package/dist/api/design/index.d.ts.map +1 -0
  105. package/dist/api/design/lock.d.ts +41 -0
  106. package/dist/api/design/lock.d.ts.map +1 -0
  107. package/dist/api/design/materials/index.d.ts +297 -0
  108. package/dist/api/design/materials/index.d.ts.map +1 -0
  109. package/dist/api/design/query/geometry/index.d.ts +140 -0
  110. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  111. package/dist/api/design/query/index.d.ts +1011 -0
  112. package/dist/api/design/query/index.d.ts.map +1 -0
  113. package/dist/api/design/query/spaces.d.ts +221 -0
  114. package/dist/api/design/query/spaces.d.ts.map +1 -0
  115. package/dist/api/design/selection/index.d.ts +282 -0
  116. package/dist/api/design/selection/index.d.ts.map +1 -0
  117. package/dist/api/design/shared.d.ts +38 -0
  118. package/dist/api/design/shared.d.ts.map +1 -0
  119. package/dist/api/design/transform/index.d.ts +87 -0
  120. package/dist/api/design/transform/index.d.ts.map +1 -0
  121. package/dist/api/design/update/index.d.ts +178 -0
  122. package/dist/api/design/update/index.d.ts.map +1 -0
  123. package/dist/api/design/windows/index.d.ts +189 -0
  124. package/dist/api/design/windows/index.d.ts.map +1 -0
  125. package/dist/api/entity/buildableEnvelope.d.ts +261 -0
  126. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  127. package/dist/api/entity/department.d.ts +0 -98
  128. package/dist/api/entity/department.d.ts.map +1 -1
  129. package/dist/api/entity/index.d.ts +9 -9
  130. package/dist/api/entity/index.d.ts.map +1 -1
  131. package/dist/api/entity/referenceLine.d.ts +49 -106
  132. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  133. package/dist/api/entity/space.d.ts +484 -251
  134. package/dist/api/entity/space.d.ts.map +1 -1
  135. package/dist/api/entity/story.d.ts +49 -39
  136. package/dist/api/entity/story.d.ts.map +1 -1
  137. package/dist/api/index.d.ts +22 -12
  138. package/dist/api/index.d.ts.map +1 -1
  139. package/dist/api/presentation/aiInspiration.d.ts +440 -0
  140. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  141. package/dist/api/presentation/diagrams.d.ts +81 -0
  142. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  143. package/dist/api/presentation/import.d.ts +113 -0
  144. package/dist/api/presentation/import.d.ts.map +1 -0
  145. package/dist/api/presentation/index.d.ts +46 -0
  146. package/dist/api/presentation/index.d.ts.map +1 -0
  147. package/dist/api/presentation/sheets.d.ts +176 -0
  148. package/dist/api/presentation/sheets.d.ts.map +1 -0
  149. package/dist/api/presentation/views.d.ts +296 -0
  150. package/dist/api/presentation/views.d.ts.map +1 -0
  151. package/dist/api/program/adjacency.d.ts +155 -0
  152. package/dist/api/program/adjacency.d.ts.map +1 -0
  153. package/dist/api/program/areas.d.ts +360 -0
  154. package/dist/api/program/areas.d.ts.map +1 -0
  155. package/dist/api/program/classification.d.ts +135 -0
  156. package/dist/api/program/classification.d.ts.map +1 -0
  157. package/dist/api/program/cores.d.ts +174 -0
  158. package/dist/api/program/cores.d.ts.map +1 -0
  159. package/dist/api/program/departments.d.ts +431 -0
  160. package/dist/api/program/departments.d.ts.map +1 -0
  161. package/dist/api/program/index.d.ts +69 -0
  162. package/dist/api/program/index.d.ts.map +1 -0
  163. package/dist/api/program/layout.d.ts +63 -0
  164. package/dist/api/program/layout.d.ts.map +1 -0
  165. package/dist/api/program/metrics.d.ts +108 -0
  166. package/dist/api/program/metrics.d.ts.map +1 -0
  167. package/dist/api/program/site.d.ts +451 -0
  168. package/dist/api/program/site.d.ts.map +1 -0
  169. package/dist/api/program/spreadsheet.d.ts +2041 -0
  170. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  171. package/dist/handles.d.ts +171 -0
  172. package/dist/handles.d.ts.map +1 -0
  173. package/dist/host-utils.d.ts +7 -5
  174. package/dist/host-utils.d.ts.map +1 -1
  175. package/dist/index.cjs +4344 -899
  176. package/dist/index.cjs.map +1 -1
  177. package/dist/index.d.ts +1 -0
  178. package/dist/index.d.ts.map +1 -1
  179. package/dist/index.js +3682 -865
  180. package/dist/index.js.map +1 -1
  181. package/package.json +6 -2
  182. package/scripts/generate-manifest.mjs +193 -0
  183. package/scripts/generate-manifest.test.mjs +215 -0
  184. package/src/api/analysis/heatmaps.ts +256 -0
  185. package/src/api/analysis/illuminance.ts +155 -0
  186. package/src/api/analysis/index.ts +46 -0
  187. package/src/api/analysis/shadows.ts +183 -0
  188. package/src/api/analysis/sunlightHours.ts +211 -0
  189. package/src/api/analysis/sunpath.ts +83 -0
  190. package/src/api/core/buildings.ts +485 -0
  191. package/src/api/core/comment/index.ts +258 -0
  192. package/src/api/core/geom/create/index.ts +293 -0
  193. package/src/api/core/geom/delete/index.ts +78 -0
  194. package/src/api/core/geom/index.ts +24 -23
  195. package/src/api/core/geom/query/arc.ts +169 -0
  196. package/src/api/core/geom/query/brep.ts +444 -0
  197. package/src/api/core/geom/query/circle.ts +404 -0
  198. package/src/api/core/geom/query/contour.ts +540 -0
  199. package/src/api/core/geom/query/curve.ts +1078 -0
  200. package/src/api/core/geom/query/edge.ts +130 -0
  201. package/src/api/core/geom/query/face.ts +403 -0
  202. package/src/api/core/geom/query/halfedge.ts +210 -0
  203. package/src/api/core/geom/query/index.ts +63 -0
  204. package/src/api/core/geom/query/profile.ts +473 -0
  205. package/src/api/core/geom/query/vertex.ts +205 -0
  206. package/src/api/core/geom/update/contour.ts +315 -0
  207. package/src/api/core/geom/update/curve.ts +209 -0
  208. package/src/api/core/geom/update/index.ts +29 -0
  209. package/src/api/core/geom/update/profile.ts +377 -0
  210. package/src/api/core/groups.ts +521 -0
  211. package/src/api/core/history/index.ts +84 -0
  212. package/src/api/core/index.ts +51 -1
  213. package/src/api/core/io/import/index.ts +432 -0
  214. package/src/api/core/io/index.ts +37 -0
  215. package/src/api/core/io/job/index.ts +140 -0
  216. package/src/api/core/io/query/index.ts +71 -0
  217. package/src/api/core/io/terrain/index.ts +214 -0
  218. package/src/api/core/io/underlay/index.ts +295 -0
  219. package/src/api/core/layers.ts +333 -0
  220. package/src/api/core/math/quat.ts +112 -235
  221. package/src/api/core/math/vec3.ts +124 -159
  222. package/src/api/core/project/index.ts +418 -0
  223. package/src/api/core/tags.ts +808 -0
  224. package/src/api/core/units/index.ts +164 -0
  225. package/src/api/core/zoom/index.ts +47 -0
  226. package/src/api/design/boolean/index.ts +179 -0
  227. package/src/api/design/create/index.ts +895 -0
  228. package/src/api/design/delete/index.ts +67 -0
  229. package/src/api/design/doors/index.ts +285 -0
  230. package/src/api/design/edit/index.ts +54 -0
  231. package/src/api/design/erase/index.ts +151 -0
  232. package/src/api/design/furniture/index.ts +130 -0
  233. package/src/api/design/index.ts +162 -0
  234. package/src/api/design/lock.ts +42 -0
  235. package/src/api/design/materials/index.ts +301 -0
  236. package/src/api/design/query/geometry/index.ts +166 -0
  237. package/src/api/design/query/index.ts +937 -0
  238. package/src/api/design/query/spaces.ts +132 -0
  239. package/src/api/design/selection/index.ts +273 -0
  240. package/src/api/design/shared.ts +40 -0
  241. package/src/api/design/transform/index.ts +93 -0
  242. package/src/api/design/update/index.ts +117 -0
  243. package/src/api/design/windows/index.ts +207 -0
  244. package/src/api/entity/buildableEnvelope.ts +318 -0
  245. package/src/api/entity/department.ts +0 -113
  246. package/src/api/entity/index.ts +9 -9
  247. package/src/api/entity/referenceLine.ts +50 -38
  248. package/src/api/entity/space.ts +285 -226
  249. package/src/api/entity/story.ts +53 -42
  250. package/src/api/index.ts +22 -12
  251. package/src/api/presentation/aiInspiration.ts +362 -0
  252. package/src/api/presentation/diagrams.ts +84 -0
  253. package/src/api/presentation/import.ts +112 -0
  254. package/src/api/presentation/index.ts +48 -0
  255. package/src/api/presentation/sheets.ts +198 -0
  256. package/src/api/presentation/views.ts +303 -0
  257. package/src/api/program/adjacency.ts +164 -0
  258. package/src/api/program/areas.ts +335 -0
  259. package/src/api/program/classification.ts +138 -0
  260. package/src/api/program/cores.ts +171 -0
  261. package/src/api/program/departments.ts +465 -0
  262. package/src/api/program/index.ts +71 -0
  263. package/src/api/program/layout.ts +68 -0
  264. package/src/api/program/metrics.ts +120 -0
  265. package/src/api/program/site.ts +419 -0
  266. package/src/api/program/spreadsheet.ts +2075 -0
  267. package/src/handles.ts +194 -0
  268. package/src/host-utils.ts +10 -6
  269. package/src/index.ts +1 -0
  270. package/dist/api/core/geom/arc.d.ts +0 -81
  271. package/dist/api/core/geom/arc.d.ts.map +0 -1
  272. package/dist/api/core/geom/curve.d.ts +0 -70
  273. package/dist/api/core/geom/curve.d.ts.map +0 -1
  274. package/dist/api/core/geom/line.d.ts +0 -56
  275. package/dist/api/core/geom/line.d.ts.map +0 -1
  276. package/dist/api/core/geom/profile.d.ts +0 -121
  277. package/dist/api/core/geom/profile.d.ts.map +0 -1
  278. package/dist/api/tools/copy.d.ts +0 -59
  279. package/dist/api/tools/copy.d.ts.map +0 -1
  280. package/dist/api/tools/index.d.ts +0 -33
  281. package/dist/api/tools/index.d.ts.map +0 -1
  282. package/dist/api/tools/material.d.ts +0 -51
  283. package/dist/api/tools/material.d.ts.map +0 -1
  284. package/dist/api/tools/offset.d.ts +0 -43
  285. package/dist/api/tools/offset.d.ts.map +0 -1
  286. package/dist/api/tools/selection.d.ts +0 -48
  287. package/dist/api/tools/selection.d.ts.map +0 -1
  288. package/dist/api/tools/transform.d.ts +0 -114
  289. package/dist/api/tools/transform.d.ts.map +0 -1
  290. package/dist/api/units/index.d.ts +0 -163
  291. package/dist/api/units/index.d.ts.map +0 -1
  292. package/src/api/core/geom/arc.ts +0 -70
  293. package/src/api/core/geom/curve.ts +0 -41
  294. package/src/api/core/geom/line.ts +0 -53
  295. package/src/api/core/geom/profile.ts +0 -94
  296. package/src/api/tools/copy.ts +0 -55
  297. package/src/api/tools/index.ts +0 -39
  298. package/src/api/tools/material.ts +0 -49
  299. package/src/api/tools/offset.ts +0 -43
  300. package/src/api/tools/selection.ts +0 -51
  301. package/src/api/tools/transform.ts +0 -117
  302. package/src/api/units/index.ts +0 -163
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../src/api/core/tags.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ /**
4
+ * Unit-type queries and conversion.
5
+ *
6
+ * Snaptrude stores all geometry in an internal `babylon` unit. These methods
7
+ * read the available unit types, the internal (`babylon`) type, and the current
8
+ * project type; set the current project type; and convert values between any two
9
+ * unit types.
10
+ *
11
+ * Accessed via `snaptrude.core.units`.
12
+ */
13
+ export declare abstract class PluginUnitsApi {
14
+ constructor();
15
+ /**
16
+ * List the selectable real-world unit types (excludes the internal `babylon`
17
+ * storage type, which is read via {@linkcode PluginUnitsApi.getBabylonType}).
18
+ *
19
+ * @examplePrompt What units can I use in this project?
20
+ * @examplePrompt List all the available measurement units
21
+ * @examplePrompt Which unit systems does Snaptrude support?
22
+ * @examplePrompt Show the unit options I could switch the model to
23
+ *
24
+ * # Example
25
+ * ```ts
26
+ * const types = await snaptrude.core.units.listTypes()
27
+ * console.log(types) // ["meters", "feet-inches", "inches", ...]
28
+ * ```
29
+ */
30
+ abstract listTypes(): PluginApiReturn<PUnitType[]>;
31
+ /**
32
+ * Get the internal storage unit type that all geometry is kept in — always
33
+ * `"babylon"` — for use as one side of a {@linkcode PluginUnitsApi.convert} call.
34
+ *
35
+ * @examplePrompt What unit does Snaptrude store geometry in internally?
36
+ * @examplePrompt Get the internal babylon unit type
37
+ * @examplePrompt Which unit are raw model coordinates saved in?
38
+ *
39
+ * # Example
40
+ * ```ts
41
+ * const babylon = await snaptrude.core.units.getBabylonType() // "babylon"
42
+ * const meters = await snaptrude.core.units.convert(10, babylon, "meters")
43
+ * ```
44
+ */
45
+ abstract getBabylonType(): PluginApiReturn<PUnitType>;
46
+ /**
47
+ * Get the current project's unit type — the unit lengths are displayed and
48
+ * entered in. Paired with {@linkcode PluginUnitsApi.setType}.
49
+ *
50
+ * @examplePrompt What units is this project using?
51
+ * @examplePrompt Are we working in metric or imperial?
52
+ * @examplePrompt Check the current measurement unit of the model
53
+ * @examplePrompt Is the file set to millimetres or feet and inches?
54
+ *
55
+ * # Example
56
+ * ```ts
57
+ * const type = await snaptrude.core.units.getType()
58
+ * console.log(type) // e.g. "millimeters"
59
+ * ```
60
+ */
61
+ abstract getType(): PluginApiReturn<PUnitType>;
62
+ /**
63
+ * Set the current project's unit type. Paired with {@linkcode PluginUnitsApi.getType}.
64
+ *
65
+ * @param type - The unit type to set as the project unit.
66
+ * @returns `true` if applied; `false` if `type` is not a settable project unit
67
+ * (e.g. `kilometers`, `miles`, `babylon`).
68
+ *
69
+ * @examplePrompt Change the project units to millimeters
70
+ * @examplePrompt Switch this model to feet and inches
71
+ * @examplePrompt Set the working units to metric
72
+ * @examplePrompt Make the drawing use centimetres instead of meters
73
+ *
74
+ * # Example
75
+ * ```ts
76
+ * await snaptrude.core.units.setType("meters")
77
+ * ```
78
+ */
79
+ abstract setType(type: PUnitType): PluginApiReturn<boolean>;
80
+ /**
81
+ * Convert a value between two unit types.
82
+ *
83
+ * @param value - The numeric value to convert.
84
+ * @param from - Source unit type.
85
+ * @param to - Target unit type.
86
+ * @param degree - (Optional) 1 = length, 2 = area, 3 = volume. Defaults to 1.
87
+ * @returns The converted numeric value.
88
+ *
89
+ * @examplePrompt Convert 5 meters to feet and inches
90
+ * @examplePrompt How many millimetres is 12 feet?
91
+ * @examplePrompt Change this area from internal units to square metres
92
+ * @examplePrompt Turn 2500 mm into meters
93
+ * @examplePrompt Convert a volume value from babylon units to cubic feet
94
+ *
95
+ * # Example
96
+ * ```ts
97
+ * // 5 meters → internal babylon units
98
+ * const b = await snaptrude.core.units.convert(5, "meters", "babylon")
99
+ * // an internal area → square metres
100
+ * const m2 = await snaptrude.core.units.convert(area, "babylon", "meters", 2)
101
+ * ```
102
+ */
103
+ abstract convert(value: number, from: PUnitType, to: PUnitType, degree?: number): PluginApiReturn<number>;
104
+ }
105
+ /**
106
+ * Supported unit types. `babylon` is Snaptrude's internal storage unit; the rest
107
+ * are real-world units. Mirrors the engine `Converter.UNITS` vocabulary.
108
+ */
109
+ export declare const PUnitType: z.ZodEnum<{
110
+ meters: "meters";
111
+ "feet-inches": "feet-inches";
112
+ inches: "inches";
113
+ centimeters: "centimeters";
114
+ millimeters: "millimeters";
115
+ kilometers: "kilometers";
116
+ miles: "miles";
117
+ babylon: "babylon";
118
+ }>;
119
+ export type PUnitType = z.infer<typeof PUnitType>;
120
+ /**
121
+ * Arguments for {@linkcode PluginUnitsApi.setType}.
122
+ *
123
+ * | Property | Type | Description |
124
+ * |---|---|---|
125
+ * | `type` | {@linkcode PUnitType} | The unit type to set as the project unit |
126
+ */
127
+ export declare const PluginUnitsSetTypeArgs: z.ZodObject<{
128
+ type: z.ZodEnum<{
129
+ meters: "meters";
130
+ "feet-inches": "feet-inches";
131
+ inches: "inches";
132
+ centimeters: "centimeters";
133
+ millimeters: "millimeters";
134
+ kilometers: "kilometers";
135
+ miles: "miles";
136
+ babylon: "babylon";
137
+ }>;
138
+ }, z.core.$strip>;
139
+ export type PluginUnitsSetTypeArgs = z.infer<typeof PluginUnitsSetTypeArgs>;
140
+ /**
141
+ * Arguments for {@linkcode PluginUnitsApi.convert}.
142
+ *
143
+ * | Property | Type | Description |
144
+ * |---|---|---|
145
+ * | `value` | `number` | The numeric value to convert |
146
+ * | `from` | {@linkcode PUnitType} | Source unit type |
147
+ * | `to` | {@linkcode PUnitType} | Target unit type |
148
+ * | `degree` | `1 \| 2 \| 3` | (Optional) 1 = length, 2 = area, 3 = volume. Defaults to 1 |
149
+ */
150
+ export declare const PluginUnitsConvertArgs: z.ZodObject<{
151
+ value: z.ZodNumber;
152
+ from: z.ZodEnum<{
153
+ meters: "meters";
154
+ "feet-inches": "feet-inches";
155
+ inches: "inches";
156
+ centimeters: "centimeters";
157
+ millimeters: "millimeters";
158
+ kilometers: "kilometers";
159
+ miles: "miles";
160
+ babylon: "babylon";
161
+ }>;
162
+ to: z.ZodEnum<{
163
+ meters: "meters";
164
+ "feet-inches": "feet-inches";
165
+ inches: "inches";
166
+ centimeters: "centimeters";
167
+ millimeters: "millimeters";
168
+ kilometers: "kilometers";
169
+ miles: "miles";
170
+ babylon: "babylon";
171
+ }>;
172
+ degree: z.ZodOptional<z.ZodNumber>;
173
+ }, z.core.$strip>;
174
+ export type PluginUnitsConvertArgs = z.infer<typeof PluginUnitsConvertArgs>;
175
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/units/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;;;;;;;GASG;AACH,8BAAsB,cAAc;;IAGlC;;;;;;;;;;;;;;OAcG;aACa,SAAS,IAAI,eAAe,CAAC,SAAS,EAAE,CAAC;IAEzD;;;;;;;;;;;;;OAaG;aACa,cAAc,IAAI,eAAe,CAAC,SAAS,CAAC;IAE5D;;;;;;;;;;;;;;OAcG;aACa,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC;IAErD;;;;;;;;;;;;;;;;OAgBG;aACa,OAAO,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC;IAElE;;;;;;;;;;;;;;;;;;;;;;OAsBG;aACa,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAAC,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;EASpB,CAAA;AAEF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAA;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAEjC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;iBAKjC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA"}
@@ -0,0 +1,45 @@
1
+ import { PluginApiReturn } from "../../../types";
2
+ /**
3
+ * Camera zoom controls.
4
+ *
5
+ * Frame the viewport camera onto scene geometry — mirrors the canvas zoom menu
6
+ * ("Zoom extents" / "Zoom to selection"). Accessed via `snaptrude.core.zoom`.
7
+ */
8
+ export declare abstract class PluginZoomApi {
9
+ constructor();
10
+ /**
11
+ * Zoom (fit) the camera to all geometry in the scene — the "zoom extents" action.
12
+ *
13
+ * @returns `true` once the camera has been framed to the scene.
14
+ *
15
+ * @examplePrompt Zoom out so I can see the whole model
16
+ * @examplePrompt Fit everything in the view
17
+ * @examplePrompt Frame the entire building in the viewport
18
+ * @examplePrompt Do a zoom extents on the canvas
19
+ * @examplePrompt Show me the full scene
20
+ *
21
+ * # Example
22
+ * ```ts
23
+ * await snaptrude.core.zoom.extents()
24
+ * ```
25
+ */
26
+ abstract extents(): PluginApiReturn<boolean>;
27
+ /**
28
+ * Zoom (fit) the camera to the current selection.
29
+ *
30
+ * @returns `true` if there was a selection to frame; `false` if nothing is
31
+ * selected (no-op).
32
+ *
33
+ * @examplePrompt Zoom in on what I have selected
34
+ * @examplePrompt Frame the selected walls in the view
35
+ * @examplePrompt Focus the camera on my current selection
36
+ * @examplePrompt Fit the view to the selected room
37
+ *
38
+ * # Example
39
+ * ```ts
40
+ * await snaptrude.core.zoom.selection()
41
+ * ```
42
+ */
43
+ abstract selection(): PluginApiReturn<boolean>;
44
+ }
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/zoom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAEhD;;;;;GAKG;AACH,8BAAsB,aAAa;;IAGjC;;;;;;;;;;;;;;;OAeG;aACa,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC;IAEnD;;;;;;;;;;;;;;;OAeG;aACa,SAAS,IAAI,eAAe,CAAC,OAAO,CAAC;CACtD"}
@@ -0,0 +1,168 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ import { ComponentHandle } from "../../../handles";
4
+ import { BooleanOutcome } from "../shared";
5
+ /**
6
+ * `snaptrude.design.boolean` — OpenCascade CSG on scene masses/spaces.
7
+ *
8
+ * Every method **commits** the operation as one undoable step (engine `run()`
9
+ * queues create/delete/group/dimension commands, `execute()` runs them through
10
+ * `CommandManager`) and returns the committed {@linkcode BooleanOutcome}. Failures
11
+ * **throw** (RPC rejects) — no `Result<>` monad crosses the boundary.
12
+ *
13
+ * Eligibility (all inputs): a `Mass` that is a room OR a DEPARTMENT, has a brep, is
14
+ * unlocked (mesh + bucket), visible, and NOT in a parametric-copy group; the whole
15
+ * set must be all-planar OR all-non-planar; **≥2** components; all inputs share one
16
+ * group or are ungrouped; inputs must be adjacent/overlapping.
17
+ *
18
+ * `design.boolean.subtract` is a **CSG geometry delete** — distinct from
19
+ * `design.delete.entities` (hard entity removal) and `design.erase.edge`
20
+ * (adjacency-edge topology op).
21
+ *
22
+ * TRANSPORT: positional args per method.
23
+ */
24
+ export declare abstract class PluginDesignBooleanApi {
25
+ constructor();
26
+ /**
27
+ * Fuse two or more masses into a single combined mass (`A ∪ B ∪ …`) — a boolean
28
+ * (CSG) union that merges the adjacent or overlapping inputs into one solid,
29
+ * committed as a single undoable step. Order-independent.
30
+ * @param components - The ≥2 entities to fuse (order-independent)
31
+ * @param options - Optional output offset — {@linkcode BooleanOptions}
32
+ * @returns The committed CSG delta — {@linkcode BooleanOutcome}
33
+ * @throws if inputs are ineligible, disjoint, non-manifold when joined, span
34
+ * different groups, or the CSG yields no / invalid geometry.
35
+ *
36
+ * @examplePrompt Merge these two masses into one
37
+ * @examplePrompt Union the selected volumes into a single mass
38
+ * @examplePrompt Combine the overlapping rooms into one shape
39
+ * @examplePrompt Join the tower and podium blocks together
40
+ * @examplePrompt Fuse all the selected massing blocks into a single solid
41
+ *
42
+ * # Example
43
+ * ```ts
44
+ * // Fuse the overlapping massing blocks on the ground storey into one solid
45
+ * const masses = await snaptrude.design.query.listMasses({ storeys: [1] })
46
+ * const { created, deleted } = await snaptrude.design.boolean.union(masses)
47
+ * console.log("created", created.length, "mass; consumed", deleted.length)
48
+ * ```
49
+ */
50
+ abstract union(components: ComponentHandle[], options?: BooleanOptions): PluginApiReturn<BooleanOutcome>;
51
+ /**
52
+ * Cut one or more tool masses out of a target mass (`target − ⋃tools`) — a
53
+ * boolean (CSG) subtraction that carves the tools' volume out of the target and
54
+ * commits the remainder as a single undoable step.
55
+ *
56
+ * ORDER-SENSITIVE: the host seeds `[target, ...tools]`; index 0 is the arg brep,
57
+ * the rest are tool breps. `deleted` includes the target AND every tool;
58
+ * `created` is the remainder mass(es).
59
+ * @param target - The entity subtracted FROM (arg brep)
60
+ * @param tools - The ≥1 entities subtracted (tool breps)
61
+ * @param options - Optional output offset — {@linkcode BooleanOptions}
62
+ * @returns The committed CSG delta — {@linkcode BooleanOutcome}
63
+ * @throws as {@linkcode union}; a `NoResult` here carries the "select the target
64
+ * object first" hint from the engine.
65
+ *
66
+ * @examplePrompt Cut this shape out of the bigger mass
67
+ * @examplePrompt Subtract the cylinder from the building volume
68
+ * @examplePrompt Punch an opening through this block using the small box
69
+ * @examplePrompt Carve the courtyard volume out of the main massing
70
+ * @examplePrompt Remove the overlapping part of mass B from mass A
71
+ *
72
+ * # Example
73
+ * ```ts
74
+ * // Order matters: the first arg is the target, the array holds the tools
75
+ * const [building, courtyard] = await snaptrude.design.selection.get()
76
+ * const { created, deleted } = await snaptrude.design.boolean.subtract(building, [courtyard])
77
+ * // deleted includes the target AND every tool; created is the remainder
78
+ * ```
79
+ */
80
+ abstract subtract(target: ComponentHandle, tools: ComponentHandle[], options?: BooleanOptions): PluginApiReturn<BooleanOutcome>;
81
+ /**
82
+ * Keep only the overlapping volume of exactly two masses (`A ∩ B`) — a boolean
83
+ * (CSG) intersection that discards everything outside the shared region and
84
+ * commits the overlap as a single undoable step. Order-independent.
85
+ *
86
+ * HARD constraint: **EXACTLY 2** components (schema `.length(2)`; the engine
87
+ * also throws `MoreThan2ComponentsForIntersect` on >2).
88
+ * @param components - **EXACTLY 2** entities to intersect (order-independent)
89
+ * @param options - Optional output offset — {@linkcode BooleanOptions}
90
+ * @returns The committed CSG delta — {@linkcode BooleanOutcome}
91
+ * @throws as {@linkcode union}, plus `MoreThan2ComponentsForIntersect` on >2.
92
+ *
93
+ * @examplePrompt Keep only the part where these two masses overlap
94
+ * @examplePrompt Intersect the two selected volumes
95
+ * @examplePrompt Give me the common volume between the tower and the zoning envelope
96
+ * @examplePrompt Trim this mass down to just its overlap with the other one
97
+ *
98
+ * # Example
99
+ * ```ts
100
+ * // Keep only the overlap of the tower and the zoning envelope (EXACTLY 2 inputs),
101
+ * // shifting the result mass 10 units in x via the optional offset
102
+ * const [tower, envelope] = await snaptrude.design.query.listMasses()
103
+ * const offset = await snaptrude.core.math.vec3.new(10, 0, 0)
104
+ * const { created } = await snaptrude.design.boolean.intersect([tower, envelope], { offset })
105
+ * ```
106
+ */
107
+ abstract intersect(components: ComponentHandle[], options?: BooleanOptions): PluginApiReturn<BooleanOutcome>;
108
+ }
109
+ /**
110
+ * Optional knobs shared by all boolean ops. The only safe one is a world-space
111
+ * translation applied to the output mass(es) — maps to `Boolean3dOperation.offset`.
112
+ *
113
+ * | Property | Type | Description |
114
+ * |---|---|---|
115
+ * | `offset` | {@linkcode Vec3Handle} | Translation added to the created result mass(es) (default: none) |
116
+ */
117
+ export declare const BooleanOptions: z.ZodObject<{
118
+ offset: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
119
+ }, z.core.$strip>;
120
+ export type BooleanOptions = z.infer<typeof BooleanOptions>;
121
+ /**
122
+ * Arguments for {@linkcode PluginDesignBooleanApi.union}.
123
+ *
124
+ * | Property | Type | Description |
125
+ * |---|---|---|
126
+ * | `components` | {@linkcode ComponentHandle}`[]` | The ≥2 entities to fuse (order-independent) |
127
+ * | `options` | {@linkcode BooleanOptions} | Optional output offset |
128
+ */
129
+ export declare const PluginDesignBooleanUnionArgs: z.ZodObject<{
130
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
131
+ options: z.ZodOptional<z.ZodObject<{
132
+ offset: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
133
+ }, z.core.$strip>>;
134
+ }, z.core.$strip>;
135
+ export type PluginDesignBooleanUnionArgs = z.infer<typeof PluginDesignBooleanUnionArgs>;
136
+ /**
137
+ * Arguments for {@linkcode PluginDesignBooleanApi.subtract}.
138
+ *
139
+ * | Property | Type | Description |
140
+ * |---|---|---|
141
+ * | `target` | {@linkcode ComponentHandle} | The entity subtracted FROM (arg brep) |
142
+ * | `tools` | {@linkcode ComponentHandle}`[]` | The ≥1 entities subtracted (tool breps) |
143
+ * | `options` | {@linkcode BooleanOptions} | Optional output offset |
144
+ */
145
+ export declare const PluginDesignBooleanSubtractArgs: z.ZodObject<{
146
+ target: z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>;
147
+ tools: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
148
+ options: z.ZodOptional<z.ZodObject<{
149
+ offset: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
150
+ }, z.core.$strip>>;
151
+ }, z.core.$strip>;
152
+ export type PluginDesignBooleanSubtractArgs = z.infer<typeof PluginDesignBooleanSubtractArgs>;
153
+ /**
154
+ * Arguments for {@linkcode PluginDesignBooleanApi.intersect}.
155
+ *
156
+ * | Property | Type | Description |
157
+ * |---|---|---|
158
+ * | `components` | {@linkcode ComponentHandle}`[]` | **EXACTLY 2** entities to intersect (order-independent) |
159
+ * | `options` | {@linkcode BooleanOptions} | Optional output offset |
160
+ */
161
+ export declare const PluginDesignBooleanIntersectArgs: z.ZodObject<{
162
+ components: z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<ComponentHandle, string>>>;
163
+ options: z.ZodOptional<z.ZodObject<{
164
+ offset: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../../..").Handle<"vec3">, string>>>;
165
+ }, z.core.$strip>>;
166
+ }, z.core.$strip>;
167
+ export type PluginDesignBooleanIntersectArgs = z.infer<typeof PluginDesignBooleanIntersectArgs>;
168
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/design/boolean/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,eAAe,EAAc,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;aACa,KAAK,CACnB,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,eAAe,CAAC,cAAc,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;aACa,QAAQ,CACtB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,eAAe,EAAE,EACxB,OAAO,CAAC,EAAE,cAAc,GACvB,eAAe,CAAC,cAAc,CAAC;IAElC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;aACa,SAAS,CACvB,UAAU,EAAE,eAAe,EAAE,EAC7B,OAAO,CAAC,EAAE,cAAc,GACvB,eAAe,CAAC,cAAc,CAAC;CACnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;iBAEzB,CAAA;AACF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AAE3D;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B;;;;;iBAGvC,CAAA;AACF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;;;GAQG;AACH,eAAO,MAAM,+BAA+B;;;;;;iBAI1C,CAAA;AACF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC;;;;;iBAG3C,CAAA;AACF,MAAM,MAAM,gCAAgC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAA"}