@snaptrude/plugin-core 0.0.0-bimsvg-20260928124803

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 (383) hide show
  1. package/AGENTS.md +231 -0
  2. package/CHANGELOG.md +341 -0
  3. package/CLAUDE.md +11 -0
  4. package/api-manifest.json +9120 -0
  5. package/dist/api/analysis/daylight.d.ts +603 -0
  6. package/dist/api/analysis/daylight.d.ts.map +1 -0
  7. package/dist/api/analysis/heatmaps.d.ts +658 -0
  8. package/dist/api/analysis/heatmaps.d.ts.map +1 -0
  9. package/dist/api/analysis/illuminance.d.ts +145 -0
  10. package/dist/api/analysis/illuminance.d.ts.map +1 -0
  11. package/dist/api/analysis/index.d.ts +59 -0
  12. package/dist/api/analysis/index.d.ts.map +1 -0
  13. package/dist/api/analysis/shadows.d.ts +165 -0
  14. package/dist/api/analysis/shadows.d.ts.map +1 -0
  15. package/dist/api/analysis/solar.d.ts +249 -0
  16. package/dist/api/analysis/solar.d.ts.map +1 -0
  17. package/dist/api/analysis/sunlightHours.d.ts +208 -0
  18. package/dist/api/analysis/sunlightHours.d.ts.map +1 -0
  19. package/dist/api/analysis/sunpath.d.ts +80 -0
  20. package/dist/api/analysis/sunpath.d.ts.map +1 -0
  21. package/dist/api/analysis/weather.d.ts +193 -0
  22. package/dist/api/analysis/weather.d.ts.map +1 -0
  23. package/dist/api/core/buildings.d.ts +427 -0
  24. package/dist/api/core/buildings.d.ts.map +1 -0
  25. package/dist/api/core/camera/index.d.ts +261 -0
  26. package/dist/api/core/camera/index.d.ts.map +1 -0
  27. package/dist/api/core/comment/index.d.ts +333 -0
  28. package/dist/api/core/comment/index.d.ts.map +1 -0
  29. package/dist/api/core/geom/create/index.d.ts +1073 -0
  30. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  31. package/dist/api/core/geom/delete/index.d.ts +78 -0
  32. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/index.d.ts +33 -0
  34. package/dist/api/core/geom/index.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/arc.d.ts +169 -0
  36. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  37. package/dist/api/core/geom/query/brep.d.ts +514 -0
  38. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  39. package/dist/api/core/geom/query/circle.d.ts +378 -0
  40. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  41. package/dist/api/core/geom/query/contour.d.ts +450 -0
  42. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  43. package/dist/api/core/geom/query/curve.d.ts +918 -0
  44. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  45. package/dist/api/core/geom/query/edge.d.ts +128 -0
  46. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  47. package/dist/api/core/geom/query/face.d.ts +363 -0
  48. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  49. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  50. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  51. package/dist/api/core/geom/query/index.d.ts +61 -0
  52. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  53. package/dist/api/core/geom/query/profile.d.ts +410 -0
  54. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  55. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  56. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  57. package/dist/api/core/geom/update/contour.d.ts +272 -0
  58. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  59. package/dist/api/core/geom/update/curve.d.ts +180 -0
  60. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  61. package/dist/api/core/geom/update/index.d.ts +27 -0
  62. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  63. package/dist/api/core/geom/update/profile.d.ts +329 -0
  64. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  65. package/dist/api/core/groups.d.ts +485 -0
  66. package/dist/api/core/groups.d.ts.map +1 -0
  67. package/dist/api/core/handles/index.d.ts +210 -0
  68. package/dist/api/core/handles/index.d.ts.map +1 -0
  69. package/dist/api/core/history/index.d.ts +78 -0
  70. package/dist/api/core/history/index.d.ts.map +1 -0
  71. package/dist/api/core/index.d.ts +97 -0
  72. package/dist/api/core/index.d.ts.map +1 -0
  73. package/dist/api/core/io/export/index.d.ts +134 -0
  74. package/dist/api/core/io/export/index.d.ts.map +1 -0
  75. package/dist/api/core/io/import/index.d.ts +455 -0
  76. package/dist/api/core/io/import/index.d.ts.map +1 -0
  77. package/dist/api/core/io/index.d.ts +40 -0
  78. package/dist/api/core/io/index.d.ts.map +1 -0
  79. package/dist/api/core/io/job/index.d.ts +139 -0
  80. package/dist/api/core/io/job/index.d.ts.map +1 -0
  81. package/dist/api/core/io/query/index.d.ts +74 -0
  82. package/dist/api/core/io/query/index.d.ts.map +1 -0
  83. package/dist/api/core/io/terrain/index.d.ts +341 -0
  84. package/dist/api/core/io/terrain/index.d.ts.map +1 -0
  85. package/dist/api/core/io/underlay/index.d.ts +805 -0
  86. package/dist/api/core/io/underlay/index.d.ts.map +1 -0
  87. package/dist/api/core/layers.d.ts +402 -0
  88. package/dist/api/core/layers.d.ts.map +1 -0
  89. package/dist/api/core/math/index.d.ts +18 -0
  90. package/dist/api/core/math/index.d.ts.map +1 -0
  91. package/dist/api/core/math/quat.d.ts +170 -0
  92. package/dist/api/core/math/quat.d.ts.map +1 -0
  93. package/dist/api/core/math/vec3.d.ts +174 -0
  94. package/dist/api/core/math/vec3.d.ts.map +1 -0
  95. package/dist/api/core/mode/index.d.ts +111 -0
  96. package/dist/api/core/mode/index.d.ts.map +1 -0
  97. package/dist/api/core/project/index.d.ts +466 -0
  98. package/dist/api/core/project/index.d.ts.map +1 -0
  99. package/dist/api/core/proposals/index.d.ts +531 -0
  100. package/dist/api/core/proposals/index.d.ts.map +1 -0
  101. package/dist/api/core/storeys/index.d.ts +265 -0
  102. package/dist/api/core/storeys/index.d.ts.map +1 -0
  103. package/dist/api/core/tags.d.ts +860 -0
  104. package/dist/api/core/tags.d.ts.map +1 -0
  105. package/dist/api/core/units/index.d.ts +175 -0
  106. package/dist/api/core/units/index.d.ts.map +1 -0
  107. package/dist/api/core/user.d.ts +44 -0
  108. package/dist/api/core/user.d.ts.map +1 -0
  109. package/dist/api/core/zoom/index.d.ts +49 -0
  110. package/dist/api/core/zoom/index.d.ts.map +1 -0
  111. package/dist/api/design/boolean/index.d.ts +168 -0
  112. package/dist/api/design/boolean/index.d.ts.map +1 -0
  113. package/dist/api/design/create/bulk-items.d.ts +185 -0
  114. package/dist/api/design/create/bulk-items.d.ts.map +1 -0
  115. package/dist/api/design/create/grids.d.ts +132 -0
  116. package/dist/api/design/create/grids.d.ts.map +1 -0
  117. package/dist/api/design/create/index.d.ts +1747 -0
  118. package/dist/api/design/create/index.d.ts.map +1 -0
  119. package/dist/api/design/create/opening-fields.d.ts +37 -0
  120. package/dist/api/design/create/opening-fields.d.ts.map +1 -0
  121. package/dist/api/design/delete/index.d.ts +70 -0
  122. package/dist/api/design/delete/index.d.ts.map +1 -0
  123. package/dist/api/design/dimensions.d.ts +427 -0
  124. package/dist/api/design/dimensions.d.ts.map +1 -0
  125. package/dist/api/design/doors/index.d.ts +470 -0
  126. package/dist/api/design/doors/index.d.ts.map +1 -0
  127. package/dist/api/design/edit/index.d.ts +49 -0
  128. package/dist/api/design/edit/index.d.ts.map +1 -0
  129. package/dist/api/design/erase/index.d.ts +160 -0
  130. package/dist/api/design/erase/index.d.ts.map +1 -0
  131. package/dist/api/design/family.d.ts +611 -0
  132. package/dist/api/design/family.d.ts.map +1 -0
  133. package/dist/api/design/furniture/index.d.ts +296 -0
  134. package/dist/api/design/furniture/index.d.ts.map +1 -0
  135. package/dist/api/design/grids.d.ts +237 -0
  136. package/dist/api/design/grids.d.ts.map +1 -0
  137. package/dist/api/design/index.d.ts +260 -0
  138. package/dist/api/design/index.d.ts.map +1 -0
  139. package/dist/api/design/lock.d.ts +67 -0
  140. package/dist/api/design/lock.d.ts.map +1 -0
  141. package/dist/api/design/materials/index.d.ts +551 -0
  142. package/dist/api/design/materials/index.d.ts.map +1 -0
  143. package/dist/api/design/query/geometry/index.d.ts +252 -0
  144. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  145. package/dist/api/design/query/grids.d.ts +287 -0
  146. package/dist/api/design/query/grids.d.ts.map +1 -0
  147. package/dist/api/design/query/index.d.ts +1318 -0
  148. package/dist/api/design/query/index.d.ts.map +1 -0
  149. package/dist/api/design/query/referenceLines.d.ts +45 -0
  150. package/dist/api/design/query/referenceLines.d.ts.map +1 -0
  151. package/dist/api/design/query/spaces.d.ts +394 -0
  152. package/dist/api/design/query/spaces.d.ts.map +1 -0
  153. package/dist/api/design/selection/index.d.ts +282 -0
  154. package/dist/api/design/selection/index.d.ts.map +1 -0
  155. package/dist/api/design/shared.d.ts +38 -0
  156. package/dist/api/design/shared.d.ts.map +1 -0
  157. package/dist/api/design/transform/index.d.ts +249 -0
  158. package/dist/api/design/transform/index.d.ts.map +1 -0
  159. package/dist/api/design/types/index.d.ts +181 -0
  160. package/dist/api/design/types/index.d.ts.map +1 -0
  161. package/dist/api/design/update/index.d.ts +803 -0
  162. package/dist/api/design/update/index.d.ts.map +1 -0
  163. package/dist/api/design/visibility.d.ts +126 -0
  164. package/dist/api/design/visibility.d.ts.map +1 -0
  165. package/dist/api/design/windows/index.d.ts +300 -0
  166. package/dist/api/design/windows/index.d.ts.map +1 -0
  167. package/dist/api/entity/buildableEnvelope.d.ts +265 -0
  168. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  169. package/dist/api/entity/department.d.ts +1 -0
  170. package/dist/api/entity/department.d.ts.map +1 -0
  171. package/dist/api/entity/index.d.ts +28 -0
  172. package/dist/api/entity/index.d.ts.map +1 -0
  173. package/dist/api/entity/referenceLine.d.ts +210 -0
  174. package/dist/api/entity/referenceLine.d.ts.map +1 -0
  175. package/dist/api/entity/space.d.ts +846 -0
  176. package/dist/api/entity/space.d.ts.map +1 -0
  177. package/dist/api/entity/story.d.ts +476 -0
  178. package/dist/api/entity/story.d.ts.map +1 -0
  179. package/dist/api/index.d.ts +45 -0
  180. package/dist/api/index.d.ts.map +1 -0
  181. package/dist/api/presentation/aiInspiration.d.ts +2400 -0
  182. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  183. package/dist/api/presentation/annotate.d.ts +483 -0
  184. package/dist/api/presentation/annotate.d.ts.map +1 -0
  185. package/dist/api/presentation/diagrams.d.ts +184 -0
  186. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  187. package/dist/api/presentation/drawings.d.ts +2900 -0
  188. package/dist/api/presentation/drawings.d.ts.map +1 -0
  189. package/dist/api/presentation/export.d.ts +126 -0
  190. package/dist/api/presentation/export.d.ts.map +1 -0
  191. package/dist/api/presentation/import.d.ts +164 -0
  192. package/dist/api/presentation/import.d.ts.map +1 -0
  193. package/dist/api/presentation/index.d.ts +114 -0
  194. package/dist/api/presentation/index.d.ts.map +1 -0
  195. package/dist/api/presentation/placedViews.d.ts +1232 -0
  196. package/dist/api/presentation/placedViews.d.ts.map +1 -0
  197. package/dist/api/presentation/shapes.d.ts +481 -0
  198. package/dist/api/presentation/shapes.d.ts.map +1 -0
  199. package/dist/api/presentation/sheets.d.ts +643 -0
  200. package/dist/api/presentation/sheets.d.ts.map +1 -0
  201. package/dist/api/presentation/slideshow.d.ts +125 -0
  202. package/dist/api/presentation/slideshow.d.ts.map +1 -0
  203. package/dist/api/presentation/tables.d.ts +81 -0
  204. package/dist/api/presentation/tables.d.ts.map +1 -0
  205. package/dist/api/presentation/viewPresets.d.ts +70 -0
  206. package/dist/api/presentation/viewPresets.d.ts.map +1 -0
  207. package/dist/api/presentation/views.d.ts +741 -0
  208. package/dist/api/presentation/views.d.ts.map +1 -0
  209. package/dist/api/program/adjacency.d.ts +155 -0
  210. package/dist/api/program/adjacency.d.ts.map +1 -0
  211. package/dist/api/program/areas.d.ts +450 -0
  212. package/dist/api/program/areas.d.ts.map +1 -0
  213. package/dist/api/program/classification.d.ts +135 -0
  214. package/dist/api/program/classification.d.ts.map +1 -0
  215. package/dist/api/program/cores.d.ts +78 -0
  216. package/dist/api/program/cores.d.ts.map +1 -0
  217. package/dist/api/program/departments.d.ts +487 -0
  218. package/dist/api/program/departments.d.ts.map +1 -0
  219. package/dist/api/program/index.d.ts +71 -0
  220. package/dist/api/program/index.d.ts.map +1 -0
  221. package/dist/api/program/labels.d.ts +355 -0
  222. package/dist/api/program/labels.d.ts.map +1 -0
  223. package/dist/api/program/layout.d.ts +398 -0
  224. package/dist/api/program/layout.d.ts.map +1 -0
  225. package/dist/api/program/metadata.d.ts +328 -0
  226. package/dist/api/program/metadata.d.ts.map +1 -0
  227. package/dist/api/program/metrics.d.ts +108 -0
  228. package/dist/api/program/metrics.d.ts.map +1 -0
  229. package/dist/api/program/site.d.ts +823 -0
  230. package/dist/api/program/site.d.ts.map +1 -0
  231. package/dist/api/program/spreadsheet.d.ts +2628 -0
  232. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  233. package/dist/api/workspace/index.d.ts +552 -0
  234. package/dist/api/workspace/index.d.ts.map +1 -0
  235. package/dist/errors/codes.d.ts +34 -0
  236. package/dist/errors/codes.d.ts.map +1 -0
  237. package/dist/errors/envelope.d.ts +56 -0
  238. package/dist/errors/envelope.d.ts.map +1 -0
  239. package/dist/errors/index.d.ts +6 -0
  240. package/dist/errors/index.d.ts.map +1 -0
  241. package/dist/errors/plugin-error.d.ts +69 -0
  242. package/dist/errors/plugin-error.d.ts.map +1 -0
  243. package/dist/handles.d.ts +229 -0
  244. package/dist/handles.d.ts.map +1 -0
  245. package/dist/host-utils.d.ts +47 -0
  246. package/dist/host-utils.d.ts.map +1 -0
  247. package/dist/index.cjs +8836 -0
  248. package/dist/index.cjs.map +1 -0
  249. package/dist/index.d.ts +6 -0
  250. package/dist/index.d.ts.map +1 -0
  251. package/dist/index.js +7568 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/types.d.ts +16 -0
  254. package/dist/types.d.ts.map +1 -0
  255. package/package.json +41 -0
  256. package/scripts/generate-manifest.mjs +238 -0
  257. package/scripts/generate-manifest.test.mjs +292 -0
  258. package/src/api/analysis/daylight.ts +470 -0
  259. package/src/api/analysis/heatmaps.ts +683 -0
  260. package/src/api/analysis/illuminance.ts +155 -0
  261. package/src/api/analysis/index.ts +61 -0
  262. package/src/api/analysis/shadows.ts +183 -0
  263. package/src/api/analysis/solar.ts +237 -0
  264. package/src/api/analysis/sunlightHours.ts +211 -0
  265. package/src/api/analysis/sunpath.ts +83 -0
  266. package/src/api/analysis/weather.ts +179 -0
  267. package/src/api/core/buildings.ts +485 -0
  268. package/src/api/core/camera/index.ts +268 -0
  269. package/src/api/core/comment/index.ts +376 -0
  270. package/src/api/core/geom/create/index.ts +1204 -0
  271. package/src/api/core/geom/delete/index.ts +84 -0
  272. package/src/api/core/geom/index.ts +35 -0
  273. package/src/api/core/geom/query/arc.ts +169 -0
  274. package/src/api/core/geom/query/brep.ts +563 -0
  275. package/src/api/core/geom/query/circle.ts +404 -0
  276. package/src/api/core/geom/query/contour.ts +540 -0
  277. package/src/api/core/geom/query/curve.ts +1078 -0
  278. package/src/api/core/geom/query/edge.ts +130 -0
  279. package/src/api/core/geom/query/face.ts +403 -0
  280. package/src/api/core/geom/query/halfedge.ts +210 -0
  281. package/src/api/core/geom/query/index.ts +63 -0
  282. package/src/api/core/geom/query/profile.ts +473 -0
  283. package/src/api/core/geom/query/vertex.ts +205 -0
  284. package/src/api/core/geom/update/contour.ts +315 -0
  285. package/src/api/core/geom/update/curve.ts +209 -0
  286. package/src/api/core/geom/update/index.ts +29 -0
  287. package/src/api/core/geom/update/profile.ts +377 -0
  288. package/src/api/core/groups.ts +521 -0
  289. package/src/api/core/handles/index.ts +233 -0
  290. package/src/api/core/history/index.ts +84 -0
  291. package/src/api/core/index.ts +99 -0
  292. package/src/api/core/io/export/index.ts +126 -0
  293. package/src/api/core/io/import/index.ts +504 -0
  294. package/src/api/core/io/index.ts +42 -0
  295. package/src/api/core/io/job/index.ts +140 -0
  296. package/src/api/core/io/query/index.ts +71 -0
  297. package/src/api/core/io/terrain/index.ts +360 -0
  298. package/src/api/core/io/underlay/index.ts +705 -0
  299. package/src/api/core/layers.ts +333 -0
  300. package/src/api/core/math/index.ts +20 -0
  301. package/src/api/core/math/quat.ts +172 -0
  302. package/src/api/core/math/vec3.ts +179 -0
  303. package/src/api/core/mode/index.ts +108 -0
  304. package/src/api/core/project/index.ts +479 -0
  305. package/src/api/core/proposals/index.ts +569 -0
  306. package/src/api/core/storeys/index.ts +294 -0
  307. package/src/api/core/tags.ts +911 -0
  308. package/src/api/core/units/index.ts +164 -0
  309. package/src/api/core/user.ts +46 -0
  310. package/src/api/core/zoom/index.ts +51 -0
  311. package/src/api/design/boolean/index.ts +179 -0
  312. package/src/api/design/create/bulk-items.ts +186 -0
  313. package/src/api/design/create/grids.ts +137 -0
  314. package/src/api/design/create/index.ts +1954 -0
  315. package/src/api/design/create/opening-fields.ts +37 -0
  316. package/src/api/design/delete/index.ts +74 -0
  317. package/src/api/design/dimensions.ts +453 -0
  318. package/src/api/design/doors/index.ts +500 -0
  319. package/src/api/design/edit/index.ts +54 -0
  320. package/src/api/design/erase/index.ts +151 -0
  321. package/src/api/design/family.ts +646 -0
  322. package/src/api/design/furniture/index.ts +319 -0
  323. package/src/api/design/grids.ts +237 -0
  324. package/src/api/design/index.ts +274 -0
  325. package/src/api/design/lock.ts +69 -0
  326. package/src/api/design/materials/index.ts +608 -0
  327. package/src/api/design/query/geometry/index.ts +288 -0
  328. package/src/api/design/query/grids.ts +197 -0
  329. package/src/api/design/query/index.ts +1176 -0
  330. package/src/api/design/query/referenceLines.ts +52 -0
  331. package/src/api/design/query/spaces.ts +275 -0
  332. package/src/api/design/selection/index.ts +273 -0
  333. package/src/api/design/shared.ts +40 -0
  334. package/src/api/design/transform/index.ts +254 -0
  335. package/src/api/design/types/index.ts +156 -0
  336. package/src/api/design/update/index.ts +798 -0
  337. package/src/api/design/visibility.ts +143 -0
  338. package/src/api/design/windows/index.ts +333 -0
  339. package/src/api/entity/buildableEnvelope.ts +322 -0
  340. package/src/api/entity/department.ts +0 -0
  341. package/src/api/entity/index.ts +30 -0
  342. package/src/api/entity/referenceLine.ts +235 -0
  343. package/src/api/entity/space.ts +612 -0
  344. package/src/api/entity/story.ts +517 -0
  345. package/src/api/index.ts +47 -0
  346. package/src/api/presentation/aiInspiration.ts +1116 -0
  347. package/src/api/presentation/annotate.ts +417 -0
  348. package/src/api/presentation/diagrams.ts +194 -0
  349. package/src/api/presentation/drawings.ts +529 -0
  350. package/src/api/presentation/export.ts +133 -0
  351. package/src/api/presentation/import.ts +159 -0
  352. package/src/api/presentation/index.ts +129 -0
  353. package/src/api/presentation/placedViews.ts +1203 -0
  354. package/src/api/presentation/shapes.ts +274 -0
  355. package/src/api/presentation/sheets.ts +616 -0
  356. package/src/api/presentation/slideshow.ts +134 -0
  357. package/src/api/presentation/tables.ts +84 -0
  358. package/src/api/presentation/viewPresets.ts +83 -0
  359. package/src/api/presentation/views.ts +698 -0
  360. package/src/api/program/adjacency.ts +164 -0
  361. package/src/api/program/areas.ts +408 -0
  362. package/src/api/program/classification.ts +138 -0
  363. package/src/api/program/cores.ts +83 -0
  364. package/src/api/program/departments.ts +517 -0
  365. package/src/api/program/index.ts +73 -0
  366. package/src/api/program/labels.ts +332 -0
  367. package/src/api/program/layout.ts +422 -0
  368. package/src/api/program/metadata.ts +364 -0
  369. package/src/api/program/metrics.ts +120 -0
  370. package/src/api/program/site.ts +748 -0
  371. package/src/api/program/spreadsheet.ts +2698 -0
  372. package/src/api/workspace/index.ts +612 -0
  373. package/src/errors/codes.ts +136 -0
  374. package/src/errors/envelope.ts +75 -0
  375. package/src/errors/index.ts +21 -0
  376. package/src/errors/plugin-error.ts +134 -0
  377. package/src/handles.ts +282 -0
  378. package/src/host-utils.ts +68 -0
  379. package/src/index.ts +5 -0
  380. package/src/types.ts +16 -0
  381. package/test/errors.test.mjs +184 -0
  382. package/tsconfig.json +22 -0
  383. package/tsup.config.ts +12 -0
@@ -0,0 +1,427 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../types";
3
+ /**
4
+ * Buildings — read and edit the buildings of the active project.
5
+ *
6
+ * A **building** is the top of the project's spatial hierarchy: a named container
7
+ * of storeys, positioned by its base elevation. This namespace reads a building's
8
+ * identity and base elevation and lists the storeys it holds; storey detail is
9
+ * read through the entity story surface (`snaptrude.entity.story`).
10
+ *
11
+ * Reads return plain records and never throw for a missing building (`get` and
12
+ * `getActive` return `null`, `list` returns `[]`). Ids are stable public strings.
13
+ *
14
+ * Sub-namespace members typed as optional (`?`) are **authored ahead of the
15
+ * host** — declared so plugins and codegen can see the shape, but kept out of the
16
+ * discovery manifest until the host lands them (at which point they are promoted
17
+ * to required `abstract` members).
18
+ *
19
+ * Accessed via `snaptrude.core.buildings`.
20
+ */
21
+ export declare abstract class PluginCoreBuildingsApi {
22
+ constructor();
23
+ /**
24
+ * List the buildings in the active project.
25
+ *
26
+ * @returns A {@linkcode PluginCoreBuildingsListResult} with a `buildings` array
27
+ * (empty when the project has none).
28
+ *
29
+ * @examplePrompt List all the buildings in my project
30
+ * @examplePrompt How many buildings are in this model?
31
+ * @examplePrompt Show every building with its base elevation
32
+ *
33
+ * # Example
34
+ * ```ts
35
+ * const { buildings } = await snaptrude.core.buildings.list()
36
+ * for (const b of buildings) console.log(b.name, b.baseElevation)
37
+ * ```
38
+ */
39
+ abstract list(): PluginApiReturn<PluginCoreBuildingsListResult>;
40
+ /**
41
+ * Get a single building by id.
42
+ *
43
+ * @param buildingId - The id of the building to read.
44
+ * @returns The matching {@linkcode PluginCoreBuildingRef}, or `null` if no
45
+ * building has that id.
46
+ *
47
+ * @examplePrompt Get the building with id blg_1
48
+ * @examplePrompt Look up a single building by its id
49
+ * @examplePrompt What is the base elevation of building blg_2?
50
+ *
51
+ * # Example
52
+ * ```ts
53
+ * const building = await snaptrude.core.buildings.get("blg_1")
54
+ * if (building) console.log(building.name, building.baseElevation)
55
+ * ```
56
+ */
57
+ abstract get(buildingId: string): PluginApiReturn<PluginCoreBuildingsGetResult>;
58
+ /**
59
+ * List the storeys of a building.
60
+ *
61
+ * Returns the building's storeys as stable storey ids, in the project's storey
62
+ * order. Read each storey's detail through `snaptrude.entity.story`.
63
+ *
64
+ * @param buildingId - The id of the building whose storeys to list.
65
+ * @returns A {@linkcode PluginCoreBuildingsListStoreysResult} with a `storeyIds`
66
+ * array (empty when the building is missing or has no storeys).
67
+ *
68
+ * @examplePrompt List the storeys in building blg_1
69
+ * @examplePrompt How many floors does this building have?
70
+ * @examplePrompt Get the storey ids of the active building
71
+ *
72
+ * # Example
73
+ * ```ts
74
+ * const { storeyIds } = await snaptrude.core.buildings.listStoreys("blg_1")
75
+ * console.log(`${storeyIds.length} storeys`)
76
+ * ```
77
+ */
78
+ abstract listStoreys(buildingId: string): PluginApiReturn<PluginCoreBuildingsListStoreysResult>;
79
+ /**
80
+ * Get the active building.
81
+ *
82
+ * The active building is the one new storeys and edits target. Paired with
83
+ * {@linkcode PluginCoreBuildingsApi.setActive}.
84
+ *
85
+ * @returns A {@linkcode PluginCoreBuildingsGetActiveResult} with the active
86
+ * `buildingId`, or `null` if there is no active building.
87
+ *
88
+ * @examplePrompt Which building is active?
89
+ * @examplePrompt Get the current building
90
+ * @examplePrompt What building am I working in?
91
+ *
92
+ * # Example
93
+ * ```ts
94
+ * const active = await snaptrude.core.buildings.getActive()
95
+ * if (active) console.log(active.buildingId)
96
+ * ```
97
+ */
98
+ abstract getActive(): PluginApiReturn<PluginCoreBuildingsGetActiveResult>;
99
+ /**
100
+ * Make a building the active building.
101
+ *
102
+ * Paired with {@linkcode PluginCoreBuildingsApi.getActive}.
103
+ *
104
+ * @param buildingId - The id of the building to activate.
105
+ * @returns The id of the now-active building.
106
+ * @throws If no building has the given id.
107
+ *
108
+ * @examplePrompt Switch to building blg_2
109
+ * @examplePrompt Make this building the active one
110
+ * @examplePrompt Set the active building to blg_1
111
+ *
112
+ * # Example
113
+ * ```ts
114
+ * await snaptrude.core.buildings.setActive("blg_2")
115
+ * ```
116
+ */
117
+ abstract setActive(buildingId: string): PluginApiReturn<PluginCoreBuildingsSetActiveResult>;
118
+ /**
119
+ * Create a new building.
120
+ *
121
+ * Adds a named building at the given base elevation (defaults to `0`). The new
122
+ * building starts empty — add storeys through the storeys namespace.
123
+ *
124
+ * @param name - Display name of the new building.
125
+ * @param baseElevation - Base elevation in meters (defaults to `0`).
126
+ * @returns The new building's id (read the full record back with
127
+ * {@linkcode PluginCoreBuildingsApi.get}).
128
+ * @throws If the building could not be created.
129
+ *
130
+ * @examplePrompt Create a building called Tower B
131
+ * @examplePrompt Add a new building at elevation 12 meters
132
+ * @examplePrompt Make a second building named Annex
133
+ *
134
+ * # Example
135
+ * ```ts
136
+ * const { buildingId } = await snaptrude.core.buildings.create("Tower B", 0)
137
+ * ```
138
+ */
139
+ abstract create(name: string, baseElevation?: number): PluginApiReturn<PluginCoreBuildingsCreateResult>;
140
+ /**
141
+ * Update a building's name and/or base elevation.
142
+ *
143
+ * A **sparse** update: omitted fields are left unchanged.
144
+ *
145
+ * @param buildingId - The id of the building to update.
146
+ * @param options - Any of `name`, `baseElevation`; omitted fields are left
147
+ * unchanged.
148
+ * @returns The updated {@linkcode PluginCoreBuildingRef}.
149
+ * @throws If no building has the given id.
150
+ *
151
+ * @examplePrompt Rename building blg_1 to Tower A
152
+ * @examplePrompt Move the building up to elevation 6 meters
153
+ * @examplePrompt Change the base elevation of blg_2
154
+ *
155
+ * # Example
156
+ * ```ts
157
+ * const building = await snaptrude.core.buildings.update("blg_1", { name: "Tower A" })
158
+ * ```
159
+ */
160
+ abstract update(buildingId: string, options?: {
161
+ name?: string;
162
+ baseElevation?: number;
163
+ }): PluginApiReturn<PluginCoreBuildingsUpdateResult>;
164
+ /**
165
+ * Copy a building.
166
+ *
167
+ * Copies the building — its storeys, components, and drawing layers — into a new
168
+ * building. `asInstances` controls the copy's geometry: `true` shares the source
169
+ * geometry as instances (low memory), `false` makes independent editable copies
170
+ * (the host defaults to `true`). Optionally override the copy's `name` and
171
+ * `baseElevation`.
172
+ *
173
+ * @param buildingId - The id of the building to copy.
174
+ * @param options - Optional `name`, `baseElevation`, `asInstances` overrides
175
+ * for the copy.
176
+ * @returns The new building's id.
177
+ * @throws If no building has the given id.
178
+ *
179
+ * @examplePrompt Copy building blg_1
180
+ * @examplePrompt Make an independent editable copy of this building
181
+ * @examplePrompt Copy Tower A as instances to save memory
182
+ *
183
+ * # Example
184
+ * ```ts
185
+ * const { buildingId } = await snaptrude.core.buildings.copy("blg_1", {
186
+ * name: "Tower A Copy",
187
+ * asInstances: false,
188
+ * })
189
+ * ```
190
+ */
191
+ abstract copy(buildingId: string, options?: {
192
+ name?: string;
193
+ baseElevation?: number;
194
+ asInstances?: boolean;
195
+ }): PluginApiReturn<PluginCoreBuildingsCopyResult>;
196
+ /**
197
+ * Delete a building.
198
+ *
199
+ * **Gated and destructive.** Deleting a building cascades through its meshes,
200
+ * storeys, and the building itself, and removes its saved views — **saved views
201
+ * are not restored on undo.** The project's only remaining building cannot be
202
+ * deleted.
203
+ *
204
+ * @param buildingId - The id of the building to delete.
205
+ * @returns Confirmation that the building was deleted.
206
+ * @throws If no building has the given id, or it is the only building.
207
+ *
208
+ * @examplePrompt Delete building blg_2
209
+ * @examplePrompt Remove the Annex building and everything in it
210
+ * @examplePrompt Delete this building
211
+ *
212
+ * # Example
213
+ * ```ts
214
+ * await snaptrude.core.buildings.delete("blg_2")
215
+ * ```
216
+ */
217
+ abstract delete(buildingId: string): PluginApiReturn<PluginCoreBuildingsDeleteResult>;
218
+ }
219
+ /**
220
+ * A building in the active project.
221
+ *
222
+ * | Property | Type | Description |
223
+ * |---|---|---|
224
+ * | `id` | `string` | Stable public building id (e.g. `"blg_1"`) |
225
+ * | `name` | `string` | Display name |
226
+ * | `baseElevation` | `number` | Base elevation in meters, positive up (default `0`) |
227
+ */
228
+ export declare const PluginCoreBuildingRef: z.ZodObject<{
229
+ id: z.ZodString;
230
+ name: z.ZodString;
231
+ baseElevation: z.ZodNumber;
232
+ }, z.core.$strip>;
233
+ export type PluginCoreBuildingRef = z.infer<typeof PluginCoreBuildingRef>;
234
+ /**
235
+ * Result of {@linkcode PluginCoreBuildingsApi.list}.
236
+ *
237
+ * | Property | Type | Description |
238
+ * |---|---|---|
239
+ * | `buildings` | {@linkcode PluginCoreBuildingRef}`[]` | Every building in the active project |
240
+ */
241
+ export declare const PluginCoreBuildingsListResult: z.ZodObject<{
242
+ buildings: z.ZodArray<z.ZodObject<{
243
+ id: z.ZodString;
244
+ name: z.ZodString;
245
+ baseElevation: z.ZodNumber;
246
+ }, z.core.$strip>>;
247
+ }, z.core.$strip>;
248
+ export type PluginCoreBuildingsListResult = z.infer<typeof PluginCoreBuildingsListResult>;
249
+ /**
250
+ * Arguments for {@linkcode PluginCoreBuildingsApi.get}.
251
+ *
252
+ * | Property | Type | Description |
253
+ * |---|---|---|
254
+ * | `buildingId` | `string` | The id of the building to read |
255
+ */
256
+ export declare const PluginCoreBuildingsGetArgs: z.ZodObject<{
257
+ buildingId: z.ZodString;
258
+ }, z.core.$strip>;
259
+ export type PluginCoreBuildingsGetArgs = z.infer<typeof PluginCoreBuildingsGetArgs>;
260
+ /**
261
+ * Result of {@linkcode PluginCoreBuildingsApi.get} — the building, or `null` when
262
+ * no building has the given id.
263
+ */
264
+ export declare const PluginCoreBuildingsGetResult: z.ZodNullable<z.ZodObject<{
265
+ id: z.ZodString;
266
+ name: z.ZodString;
267
+ baseElevation: z.ZodNumber;
268
+ }, z.core.$strip>>;
269
+ export type PluginCoreBuildingsGetResult = z.infer<typeof PluginCoreBuildingsGetResult>;
270
+ /**
271
+ * Arguments for {@linkcode PluginCoreBuildingsApi.listStoreys}.
272
+ *
273
+ * | Property | Type | Description |
274
+ * |---|---|---|
275
+ * | `buildingId` | `string` | The id of the building whose storeys to list |
276
+ */
277
+ export declare const PluginCoreBuildingsListStoreysArgs: z.ZodObject<{
278
+ buildingId: z.ZodString;
279
+ }, z.core.$strip>;
280
+ export type PluginCoreBuildingsListStoreysArgs = z.infer<typeof PluginCoreBuildingsListStoreysArgs>;
281
+ /**
282
+ * Result of {@linkcode PluginCoreBuildingsApi.listStoreys}.
283
+ *
284
+ * | Property | Type | Description |
285
+ * |---|---|---|
286
+ * | `storeyIds` | `string[]` | The building's storey ids in storey order (empty when missing or none) |
287
+ */
288
+ export declare const PluginCoreBuildingsListStoreysResult: z.ZodObject<{
289
+ storeyIds: z.ZodArray<z.ZodString>;
290
+ }, z.core.$strip>;
291
+ export type PluginCoreBuildingsListStoreysResult = z.infer<typeof PluginCoreBuildingsListStoreysResult>;
292
+ /**
293
+ * Result of {@linkcode PluginCoreBuildingsApi.getActive} — the active building's
294
+ * id, or `null` when there is no active building.
295
+ *
296
+ * | Property | Type | Description |
297
+ * |---|---|---|
298
+ * | `buildingId` | `string` | The id of the active building |
299
+ */
300
+ export declare const PluginCoreBuildingsGetActiveResult: z.ZodNullable<z.ZodObject<{
301
+ buildingId: z.ZodString;
302
+ }, z.core.$strip>>;
303
+ export type PluginCoreBuildingsGetActiveResult = z.infer<typeof PluginCoreBuildingsGetActiveResult>;
304
+ /**
305
+ * Arguments for {@linkcode PluginCoreBuildingsApi.setActive}.
306
+ *
307
+ * | Property | Type | Description |
308
+ * |---|---|---|
309
+ * | `buildingId` | `string` | The id of the building to activate |
310
+ */
311
+ export declare const PluginCoreBuildingsSetActiveArgs: z.ZodObject<{
312
+ buildingId: z.ZodString;
313
+ }, z.core.$strip>;
314
+ export type PluginCoreBuildingsSetActiveArgs = z.infer<typeof PluginCoreBuildingsSetActiveArgs>;
315
+ /**
316
+ * Result of {@linkcode PluginCoreBuildingsApi.setActive} — the now-active
317
+ * building's id.
318
+ *
319
+ * | Property | Type | Description |
320
+ * |---|---|---|
321
+ * | `buildingId` | `string` | The id of the now-active building |
322
+ */
323
+ export declare const PluginCoreBuildingsSetActiveResult: z.ZodObject<{
324
+ buildingId: z.ZodString;
325
+ }, z.core.$strip>;
326
+ export type PluginCoreBuildingsSetActiveResult = z.infer<typeof PluginCoreBuildingsSetActiveResult>;
327
+ /**
328
+ * Arguments for {@linkcode PluginCoreBuildingsApi.create}.
329
+ *
330
+ * | Property | Type | Description |
331
+ * |---|---|---|
332
+ * | `name` | `string` | Display name of the new building |
333
+ * | `baseElevation` | `number \| undefined` | Base elevation in meters (defaults to `0`) |
334
+ */
335
+ export declare const PluginCoreBuildingsCreateArgs: z.ZodObject<{
336
+ name: z.ZodString;
337
+ baseElevation: z.ZodOptional<z.ZodNumber>;
338
+ }, z.core.$strip>;
339
+ export type PluginCoreBuildingsCreateArgs = z.infer<typeof PluginCoreBuildingsCreateArgs>;
340
+ /**
341
+ * Result of {@linkcode PluginCoreBuildingsApi.create} — the id of the new
342
+ * building.
343
+ *
344
+ * | Property | Type | Description |
345
+ * |---|---|---|
346
+ * | `buildingId` | `string` | The id of the newly created building |
347
+ */
348
+ export declare const PluginCoreBuildingsCreateResult: z.ZodObject<{
349
+ buildingId: z.ZodString;
350
+ }, z.core.$strip>;
351
+ export type PluginCoreBuildingsCreateResult = z.infer<typeof PluginCoreBuildingsCreateResult>;
352
+ /**
353
+ * Arguments for {@linkcode PluginCoreBuildingsApi.update}. Sparse — only the
354
+ * provided fields are changed.
355
+ *
356
+ * | Property | Type | Description |
357
+ * |---|---|---|
358
+ * | `buildingId` | `string` | The id of the building to update |
359
+ * | `name` | `string \| undefined` | New display name (unchanged if omitted) |
360
+ * | `baseElevation` | `number \| undefined` | New base elevation in meters (unchanged if omitted) |
361
+ */
362
+ export declare const PluginCoreBuildingsUpdateArgs: z.ZodObject<{
363
+ buildingId: z.ZodString;
364
+ name: z.ZodOptional<z.ZodString>;
365
+ baseElevation: z.ZodOptional<z.ZodNumber>;
366
+ }, z.core.$strip>;
367
+ export type PluginCoreBuildingsUpdateArgs = z.infer<typeof PluginCoreBuildingsUpdateArgs>;
368
+ /** Result of {@linkcode PluginCoreBuildingsApi.update} — the updated record. */
369
+ export declare const PluginCoreBuildingsUpdateResult: z.ZodObject<{
370
+ id: z.ZodString;
371
+ name: z.ZodString;
372
+ baseElevation: z.ZodNumber;
373
+ }, z.core.$strip>;
374
+ export type PluginCoreBuildingsUpdateResult = z.infer<typeof PluginCoreBuildingsUpdateResult>;
375
+ /**
376
+ * Arguments for {@linkcode PluginCoreBuildingsApi.copy}.
377
+ *
378
+ * | Property | Type | Description |
379
+ * |---|---|---|
380
+ * | `buildingId` | `string` | The id of the building to copy |
381
+ * | `name` | `string \| undefined` | Name for the copy (auto-generated if omitted) |
382
+ * | `baseElevation` | `number \| undefined` | Base elevation for the copy in meters (source's if omitted) |
383
+ * | `asInstances` | `boolean \| undefined` | `true` shares source geometry as instances; `false` makes independent copies (host default `true`) |
384
+ */
385
+ export declare const PluginCoreBuildingsCopyArgs: z.ZodObject<{
386
+ buildingId: z.ZodString;
387
+ name: z.ZodOptional<z.ZodString>;
388
+ baseElevation: z.ZodOptional<z.ZodNumber>;
389
+ asInstances: z.ZodOptional<z.ZodBoolean>;
390
+ }, z.core.$strip>;
391
+ export type PluginCoreBuildingsCopyArgs = z.infer<typeof PluginCoreBuildingsCopyArgs>;
392
+ /**
393
+ * Result of {@linkcode PluginCoreBuildingsApi.copy} — the id of the new
394
+ * building.
395
+ *
396
+ * | Property | Type | Description |
397
+ * |---|---|---|
398
+ * | `buildingId` | `string` | The id of the copied building |
399
+ */
400
+ export declare const PluginCoreBuildingsCopyResult: z.ZodObject<{
401
+ buildingId: z.ZodString;
402
+ }, z.core.$strip>;
403
+ export type PluginCoreBuildingsCopyResult = z.infer<typeof PluginCoreBuildingsCopyResult>;
404
+ /**
405
+ * Arguments for {@linkcode PluginCoreBuildingsApi.delete}.
406
+ *
407
+ * | Property | Type | Description |
408
+ * |---|---|---|
409
+ * | `buildingId` | `string` | The id of the building to delete |
410
+ */
411
+ export declare const PluginCoreBuildingsDeleteArgs: z.ZodObject<{
412
+ buildingId: z.ZodString;
413
+ }, z.core.$strip>;
414
+ export type PluginCoreBuildingsDeleteArgs = z.infer<typeof PluginCoreBuildingsDeleteArgs>;
415
+ /**
416
+ * Result of {@linkcode PluginCoreBuildingsApi.delete} — confirmation that the
417
+ * building was deleted.
418
+ *
419
+ * | Property | Type | Description |
420
+ * |---|---|---|
421
+ * | `deleted` | `true` | Always `true` on success |
422
+ */
423
+ export declare const PluginCoreBuildingsDeleteResult: z.ZodObject<{
424
+ deleted: z.ZodLiteral<true>;
425
+ }, z.core.$strip>;
426
+ export type PluginCoreBuildingsDeleteResult = z.infer<typeof PluginCoreBuildingsDeleteResult>;
427
+ //# sourceMappingURL=buildings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildings.d.ts","sourceRoot":"","sources":["../../../src/api/core/buildings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../../types";
3
+ import { Vec3Handle } from "../../../handles";
4
+ /**
5
+ * Camera controls.
6
+ *
7
+ * Position the viewport camera, snap it to a standard orthographic/isometric
8
+ * view, and toggle between the 2D (plan) and 3D modelling modes — mirrors the
9
+ * canvas view menu and the 2D/3D toggle. Like {@linkcode PluginZoomApi}, these
10
+ * are transient VIEW-STATE changes: they are not model edits, so they are not
11
+ * write-gated and are not undoable. Accessed via `snaptrude.core.camera`.
12
+ */
13
+ export declare abstract class PluginCameraApi {
14
+ constructor();
15
+ /**
16
+ * Point the camera: place its eye at `eye` looking toward `target` (world
17
+ * coordinates, internal `babylon` units). View-state only — not undoable.
18
+ *
19
+ * @param eye - Camera position as a {@linkcode Vec3Handle}
20
+ * @param target - Point the camera looks at as a {@linkcode Vec3Handle}
21
+ * @returns `true` once the camera has been positioned.
22
+ *
23
+ * @examplePrompt Look at the model from above the north-east corner
24
+ * @examplePrompt Position the camera at (50, 30, 50) looking at the origin
25
+ * @examplePrompt Point the camera at the centre of the building from the side
26
+ * @examplePrompt Set the eye to this point and aim it at that point
27
+ *
28
+ * # Example
29
+ * ```ts
30
+ * const { vec3 } = snaptrude.core.math
31
+ * await snaptrude.core.camera.lookFrom(vec3.new(50, 30, 50), vec3.new(0, 0, 0))
32
+ * ```
33
+ */
34
+ abstract lookFrom(eye: Vec3Handle, target: Vec3Handle): PluginApiReturn<boolean>;
35
+ /**
36
+ * Snap the camera to a standard view — the five orthographic elevations
37
+ * (`top` / `front` / `back` / `left` / `right`) or the 3D `iso` (isometric
38
+ * perspective) view. Mirrors the canvas view menu. View-state only — not
39
+ * undoable. The orthographic presets exit 2D mode first if needed.
40
+ *
41
+ * @param view - The standard view to snap to ({@linkcode PluginStandardView})
42
+ * @returns `true` once the view has been applied.
43
+ *
44
+ * @examplePrompt Switch to the top view
45
+ * @examplePrompt Show me the front elevation
46
+ * @examplePrompt Go to the isometric view
47
+ * @examplePrompt Look at the model from the left
48
+ * @examplePrompt Give me a plan view from the top
49
+ *
50
+ * # Example
51
+ * ```ts
52
+ * await snaptrude.core.camera.setStandardView("top")
53
+ * ```
54
+ */
55
+ abstract setStandardView(view: PluginStandardView): PluginApiReturn<boolean>;
56
+ /**
57
+ * Get the current camera mode. Paired with {@linkcode PluginCameraApi.setMode}.
58
+ *
59
+ * @returns `"2d"` when the editor is in plan view, `"3d"` otherwise.
60
+ *
61
+ * @examplePrompt Am I in 2D or 3D?
62
+ * @examplePrompt What view mode is the editor in?
63
+ *
64
+ * # Example
65
+ * ```ts
66
+ * if ((await snaptrude.core.camera.getMode()) === "2d") {
67
+ * await snaptrude.core.camera.setMode("3d")
68
+ * }
69
+ * ```
70
+ */
71
+ abstract getMode(): PluginApiReturn<PluginCameraMode>;
72
+ /**
73
+ * Toggle the modelling mode between `2d` (plan) and `3d`. Mirrors the canvas
74
+ * 2D/3D toggle: `3d` enters the isometric perspective view, `2d` drops to the
75
+ * orthographic plan of the active storey. View-state only — not undoable.
76
+ *
77
+ * @param mode - `"2d"` or `"3d"` ({@linkcode PluginCameraMode})
78
+ * @returns `true` once the mode switch has been requested.
79
+ *
80
+ * @examplePrompt Switch to 3D view
81
+ * @examplePrompt Drop into 2D plan mode
82
+ * @examplePrompt Go back to 3D
83
+ * @examplePrompt Show the floor plan in 2D
84
+ *
85
+ * # Example
86
+ * ```ts
87
+ * await snaptrude.core.camera.setMode("3d")
88
+ * ```
89
+ */
90
+ abstract setMode(mode: PluginCameraMode): PluginApiReturn<boolean>;
91
+ /**
92
+ * Read the camera's current projection: `"perspective"` (the default 3D
93
+ * view) or `"orthographic"`. In 2D (plan) mode this always reports
94
+ * `"orthographic"` — a plan is an orthographic projection.
95
+ *
96
+ * @returns The current {@linkcode PluginCameraProjection}.
97
+ *
98
+ * @examplePrompt Is the camera in perspective or orthographic?
99
+ * @examplePrompt What projection is the 3D view using?
100
+ * @examplePrompt Check whether perspective is on
101
+ *
102
+ * # Example
103
+ * ```ts
104
+ * const projection = await snaptrude.core.camera.getProjection()
105
+ * console.log(projection) // "perspective" | "orthographic"
106
+ * ```
107
+ */
108
+ abstract getProjection(): PluginApiReturn<PluginCameraProjection>;
109
+ /**
110
+ * Switch the 3D camera between `"perspective"` and `"orthographic"`
111
+ * projection — the Perspective/Orthographic control in the Design tab's
112
+ * View Settings panel. Like {@linkcode PluginCameraApi.setMode}, this is a
113
+ * transient view-state change: not write-gated, not undoable.
114
+ *
115
+ * In 2D (plan) mode the canvas is always an orthographic plan:
116
+ * `"orthographic"` is accepted as a no-op, while `"perspective"` is
117
+ * rejected — switch to 3D first via `setMode("3d")`.
118
+ *
119
+ * @param projection - `"perspective"` or `"orthographic"` ({@linkcode PluginCameraProjection})
120
+ * @returns `true` once the projection has been applied.
121
+ *
122
+ * @examplePrompt Switch the camera to orthographic
123
+ * @examplePrompt Turn perspective off
124
+ * @examplePrompt Give me a perspective view of the model
125
+ * @examplePrompt Make the 3D view orthographic like an axonometric drawing
126
+ *
127
+ * # Example
128
+ * ```ts
129
+ * await snaptrude.core.camera.setProjection("orthographic")
130
+ * const projection = await snaptrude.core.camera.getProjection() // "orthographic"
131
+ * ```
132
+ */
133
+ abstract setProjection(projection: PluginCameraProjection): PluginApiReturn<boolean>;
134
+ /**
135
+ * Zoom (fit) the camera to all geometry in the scene — the "zoom extents"
136
+ * action. View-state only — not undoable. Canonical home of the zoom-extents
137
+ * read (the deprecated `core.zoom.extents`).
138
+ *
139
+ * @returns `true` once the camera has been framed to the scene.
140
+ *
141
+ * @examplePrompt Zoom out so I can see the whole model
142
+ * @examplePrompt Fit everything in the view
143
+ * @examplePrompt Frame the entire building in the viewport
144
+ * @examplePrompt Do a zoom extents on the canvas
145
+ *
146
+ * # Example
147
+ * ```ts
148
+ * await snaptrude.core.camera.zoomExtents()
149
+ * ```
150
+ */
151
+ abstract zoomExtents(): PluginApiReturn<boolean>;
152
+ /**
153
+ * Zoom (fit) the camera to the current selection. View-state only — not
154
+ * undoable. Canonical home of the zoom-to-selection read (the deprecated
155
+ * `core.zoom.selection`).
156
+ *
157
+ * @returns `true` if there was a selection to frame; `false` if nothing is
158
+ * selected (no-op).
159
+ *
160
+ * @examplePrompt Zoom in on what I have selected
161
+ * @examplePrompt Frame the selected walls in the view
162
+ * @examplePrompt Focus the camera on my current selection
163
+ * @examplePrompt Fit the view to the selected room
164
+ *
165
+ * # Example
166
+ * ```ts
167
+ * await snaptrude.core.camera.zoomSelection()
168
+ * ```
169
+ */
170
+ abstract zoomSelection(): PluginApiReturn<boolean>;
171
+ }
172
+ /**
173
+ * A standard camera view: the five orthographic elevations (`top`/`front`/
174
+ * `back`/`left`/`right`) or the 3D isometric perspective (`iso`).
175
+ */
176
+ export declare const PluginStandardView: z.ZodEnum<{
177
+ top: "top";
178
+ front: "front";
179
+ back: "back";
180
+ left: "left";
181
+ right: "right";
182
+ iso: "iso";
183
+ }>;
184
+ export type PluginStandardView = z.infer<typeof PluginStandardView>;
185
+ /**
186
+ * The modelling mode: `2d` (orthographic plan) or `3d` (isometric perspective).
187
+ */
188
+ export declare const PluginCameraMode: z.ZodEnum<{
189
+ "2d": "2d";
190
+ "3d": "3d";
191
+ }>;
192
+ export type PluginCameraMode = z.infer<typeof PluginCameraMode>;
193
+ /**
194
+ * The 3D camera projection: `perspective` (the default) or `orthographic` —
195
+ * the Perspective/Orthographic control in the Design tab's View Settings panel.
196
+ */
197
+ export declare const PluginCameraProjection: z.ZodEnum<{
198
+ perspective: "perspective";
199
+ orthographic: "orthographic";
200
+ }>;
201
+ export type PluginCameraProjection = z.infer<typeof PluginCameraProjection>;
202
+ /**
203
+ * Arguments for {@linkcode PluginCameraApi.lookFrom}.
204
+ *
205
+ * | Property | Type | Description |
206
+ * |---|---|---|
207
+ * | `eye` | {@linkcode Vec3Handle} | Camera position (world, `babylon` units) |
208
+ * | `target` | {@linkcode Vec3Handle} | Point the camera looks at |
209
+ */
210
+ export declare const PluginCameraLookFromArgs: z.ZodObject<{
211
+ eye: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
212
+ target: z.ZodPipe<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodString>, z.ZodTransform<import("../../..").Handle<"vec3">, string>>;
213
+ }, z.core.$strip>;
214
+ export type PluginCameraLookFromArgs = z.infer<typeof PluginCameraLookFromArgs>;
215
+ /**
216
+ * Arguments for {@linkcode PluginCameraApi.setStandardView}.
217
+ *
218
+ * | Property | Type | Description |
219
+ * |---|---|---|
220
+ * | `view` | {@linkcode PluginStandardView} | The standard view to snap to |
221
+ */
222
+ export declare const PluginCameraSetStandardViewArgs: z.ZodObject<{
223
+ view: z.ZodEnum<{
224
+ top: "top";
225
+ front: "front";
226
+ back: "back";
227
+ left: "left";
228
+ right: "right";
229
+ iso: "iso";
230
+ }>;
231
+ }, z.core.$strip>;
232
+ export type PluginCameraSetStandardViewArgs = z.infer<typeof PluginCameraSetStandardViewArgs>;
233
+ /**
234
+ * Arguments for {@linkcode PluginCameraApi.setMode}.
235
+ *
236
+ * | Property | Type | Description |
237
+ * |---|---|---|
238
+ * | `mode` | {@linkcode PluginCameraMode} | `"2d"` or `"3d"` |
239
+ */
240
+ export declare const PluginCameraSetModeArgs: z.ZodObject<{
241
+ mode: z.ZodEnum<{
242
+ "2d": "2d";
243
+ "3d": "3d";
244
+ }>;
245
+ }, z.core.$strip>;
246
+ export type PluginCameraSetModeArgs = z.infer<typeof PluginCameraSetModeArgs>;
247
+ /**
248
+ * Arguments for {@linkcode PluginCameraApi.setProjection}.
249
+ *
250
+ * | Property | Type | Description |
251
+ * |---|---|---|
252
+ * | `projection` | {@linkcode PluginCameraProjection} | `"perspective"` or `"orthographic"` |
253
+ */
254
+ export declare const PluginCameraSetProjectionArgs: z.ZodObject<{
255
+ projection: z.ZodEnum<{
256
+ perspective: "perspective";
257
+ orthographic: "orthographic";
258
+ }>;
259
+ }, z.core.$strip>;
260
+ export type PluginCameraSetProjectionArgs = z.infer<typeof PluginCameraSetProjectionArgs>;
261
+ //# sourceMappingURL=index.d.ts.map