@snaptrude/plugin-core 0.3.0 → 0.5.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 (266) hide show
  1. package/AGENTS.md +130 -48
  2. package/CHANGELOG.md +111 -0
  3. package/api-manifest.full.json +3999 -0
  4. package/api-manifest.json +3845 -0
  5. package/dist/api/core/buildings.d.ts +427 -0
  6. package/dist/api/core/buildings.d.ts.map +1 -0
  7. package/dist/api/core/comment/index.d.ts +230 -0
  8. package/dist/api/core/comment/index.d.ts.map +1 -0
  9. package/dist/api/core/geom/create/index.d.ts +247 -0
  10. package/dist/api/core/geom/create/index.d.ts.map +1 -0
  11. package/dist/api/core/geom/delete/index.d.ts +72 -0
  12. package/dist/api/core/geom/delete/index.d.ts.map +1 -0
  13. package/dist/api/core/geom/index.d.ts +24 -23
  14. package/dist/api/core/geom/index.d.ts.map +1 -1
  15. package/dist/api/core/geom/query/arc.d.ts +169 -0
  16. package/dist/api/core/geom/query/arc.d.ts.map +1 -0
  17. package/dist/api/core/geom/query/brep.d.ts +402 -0
  18. package/dist/api/core/geom/query/brep.d.ts.map +1 -0
  19. package/dist/api/core/geom/query/circle.d.ts +378 -0
  20. package/dist/api/core/geom/query/circle.d.ts.map +1 -0
  21. package/dist/api/core/geom/query/contour.d.ts +450 -0
  22. package/dist/api/core/geom/query/contour.d.ts.map +1 -0
  23. package/dist/api/core/geom/query/curve.d.ts +918 -0
  24. package/dist/api/core/geom/query/curve.d.ts.map +1 -0
  25. package/dist/api/core/geom/query/edge.d.ts +128 -0
  26. package/dist/api/core/geom/query/edge.d.ts.map +1 -0
  27. package/dist/api/core/geom/query/face.d.ts +363 -0
  28. package/dist/api/core/geom/query/face.d.ts.map +1 -0
  29. package/dist/api/core/geom/query/halfedge.d.ts +206 -0
  30. package/dist/api/core/geom/query/halfedge.d.ts.map +1 -0
  31. package/dist/api/core/geom/query/index.d.ts +61 -0
  32. package/dist/api/core/geom/query/index.d.ts.map +1 -0
  33. package/dist/api/core/geom/query/profile.d.ts +410 -0
  34. package/dist/api/core/geom/query/profile.d.ts.map +1 -0
  35. package/dist/api/core/geom/query/vertex.d.ts +187 -0
  36. package/dist/api/core/geom/query/vertex.d.ts.map +1 -0
  37. package/dist/api/core/geom/update/contour.d.ts +272 -0
  38. package/dist/api/core/geom/update/contour.d.ts.map +1 -0
  39. package/dist/api/core/geom/update/curve.d.ts +180 -0
  40. package/dist/api/core/geom/update/curve.d.ts.map +1 -0
  41. package/dist/api/core/geom/update/index.d.ts +27 -0
  42. package/dist/api/core/geom/update/index.d.ts.map +1 -0
  43. package/dist/api/core/geom/update/profile.d.ts +329 -0
  44. package/dist/api/core/geom/update/profile.d.ts.map +1 -0
  45. package/dist/api/core/groups.d.ts +485 -0
  46. package/dist/api/core/groups.d.ts.map +1 -0
  47. package/dist/api/core/history/index.d.ts +78 -0
  48. package/dist/api/core/history/index.d.ts.map +1 -0
  49. package/dist/api/core/index.d.ts +46 -1
  50. package/dist/api/core/index.d.ts.map +1 -1
  51. package/dist/api/core/layers.d.ts +402 -0
  52. package/dist/api/core/layers.d.ts.map +1 -0
  53. package/dist/api/core/math/quat.d.ts +111 -128
  54. package/dist/api/core/math/quat.d.ts.map +1 -1
  55. package/dist/api/core/math/vec3.d.ts +120 -102
  56. package/dist/api/core/math/vec3.d.ts.map +1 -1
  57. package/dist/api/core/project/index.d.ts +399 -0
  58. package/dist/api/core/project/index.d.ts.map +1 -0
  59. package/dist/api/core/tags.d.ts +755 -0
  60. package/dist/api/core/tags.d.ts.map +1 -0
  61. package/dist/api/core/units/index.d.ts +175 -0
  62. package/dist/api/core/units/index.d.ts.map +1 -0
  63. package/dist/api/core/zoom/index.d.ts +45 -0
  64. package/dist/api/core/zoom/index.d.ts.map +1 -0
  65. package/dist/api/design/boolean/index.d.ts +168 -0
  66. package/dist/api/design/boolean/index.d.ts.map +1 -0
  67. package/dist/api/design/create/index.d.ts +828 -0
  68. package/dist/api/design/create/index.d.ts.map +1 -0
  69. package/dist/api/design/delete/index.d.ts +63 -0
  70. package/dist/api/design/delete/index.d.ts.map +1 -0
  71. package/dist/api/design/doors/index.d.ts +268 -0
  72. package/dist/api/design/doors/index.d.ts.map +1 -0
  73. package/dist/api/design/edit/index.d.ts +49 -0
  74. package/dist/api/design/edit/index.d.ts.map +1 -0
  75. package/dist/api/design/erase/index.d.ts +160 -0
  76. package/dist/api/design/erase/index.d.ts.map +1 -0
  77. package/dist/api/design/furniture/index.d.ts +123 -0
  78. package/dist/api/design/furniture/index.d.ts.map +1 -0
  79. package/dist/api/design/index.d.ts +153 -0
  80. package/dist/api/design/index.d.ts.map +1 -0
  81. package/dist/api/design/lock.d.ts +41 -0
  82. package/dist/api/design/lock.d.ts.map +1 -0
  83. package/dist/api/design/materials/index.d.ts +297 -0
  84. package/dist/api/design/materials/index.d.ts.map +1 -0
  85. package/dist/api/design/query/geometry/index.d.ts +140 -0
  86. package/dist/api/design/query/geometry/index.d.ts.map +1 -0
  87. package/dist/api/design/query/index.d.ts +1011 -0
  88. package/dist/api/design/query/index.d.ts.map +1 -0
  89. package/dist/api/design/query/spaces.d.ts +221 -0
  90. package/dist/api/design/query/spaces.d.ts.map +1 -0
  91. package/dist/api/design/selection/index.d.ts +138 -0
  92. package/dist/api/design/selection/index.d.ts.map +1 -0
  93. package/dist/api/design/shared.d.ts +38 -0
  94. package/dist/api/design/shared.d.ts.map +1 -0
  95. package/dist/api/design/transform/index.d.ts +87 -0
  96. package/dist/api/design/transform/index.d.ts.map +1 -0
  97. package/dist/api/design/update/index.d.ts +178 -0
  98. package/dist/api/design/update/index.d.ts.map +1 -0
  99. package/dist/api/design/windows/index.d.ts +189 -0
  100. package/dist/api/design/windows/index.d.ts.map +1 -0
  101. package/dist/api/entity/buildableEnvelope.d.ts +261 -0
  102. package/dist/api/entity/buildableEnvelope.d.ts.map +1 -0
  103. package/dist/api/entity/department.d.ts +0 -98
  104. package/dist/api/entity/department.d.ts.map +1 -1
  105. package/dist/api/entity/index.d.ts +9 -9
  106. package/dist/api/entity/index.d.ts.map +1 -1
  107. package/dist/api/entity/referenceLine.d.ts +49 -106
  108. package/dist/api/entity/referenceLine.d.ts.map +1 -1
  109. package/dist/api/entity/space.d.ts +482 -249
  110. package/dist/api/entity/space.d.ts.map +1 -1
  111. package/dist/api/entity/story.d.ts +49 -39
  112. package/dist/api/entity/story.d.ts.map +1 -1
  113. package/dist/api/index.d.ts +17 -12
  114. package/dist/api/index.d.ts.map +1 -1
  115. package/dist/api/presentation/aiInspiration.d.ts +440 -0
  116. package/dist/api/presentation/aiInspiration.d.ts.map +1 -0
  117. package/dist/api/presentation/diagrams.d.ts +81 -0
  118. package/dist/api/presentation/diagrams.d.ts.map +1 -0
  119. package/dist/api/presentation/import.d.ts +113 -0
  120. package/dist/api/presentation/import.d.ts.map +1 -0
  121. package/dist/api/presentation/index.d.ts +46 -0
  122. package/dist/api/presentation/index.d.ts.map +1 -0
  123. package/dist/api/presentation/sheets.d.ts +176 -0
  124. package/dist/api/presentation/sheets.d.ts.map +1 -0
  125. package/dist/api/presentation/views.d.ts +296 -0
  126. package/dist/api/presentation/views.d.ts.map +1 -0
  127. package/dist/api/program/adjacency.d.ts +155 -0
  128. package/dist/api/program/adjacency.d.ts.map +1 -0
  129. package/dist/api/program/areas.d.ts +360 -0
  130. package/dist/api/program/areas.d.ts.map +1 -0
  131. package/dist/api/program/classification.d.ts +135 -0
  132. package/dist/api/program/classification.d.ts.map +1 -0
  133. package/dist/api/program/cores.d.ts +174 -0
  134. package/dist/api/program/cores.d.ts.map +1 -0
  135. package/dist/api/program/departments.d.ts +431 -0
  136. package/dist/api/program/departments.d.ts.map +1 -0
  137. package/dist/api/program/index.d.ts +69 -0
  138. package/dist/api/program/index.d.ts.map +1 -0
  139. package/dist/api/program/layout.d.ts +63 -0
  140. package/dist/api/program/layout.d.ts.map +1 -0
  141. package/dist/api/program/metrics.d.ts +108 -0
  142. package/dist/api/program/metrics.d.ts.map +1 -0
  143. package/dist/api/program/site.d.ts +367 -0
  144. package/dist/api/program/site.d.ts.map +1 -0
  145. package/dist/api/program/spreadsheet.d.ts +2041 -0
  146. package/dist/api/program/spreadsheet.d.ts.map +1 -0
  147. package/dist/handles.d.ts +138 -0
  148. package/dist/handles.d.ts.map +1 -0
  149. package/dist/host-utils.d.ts +7 -5
  150. package/dist/host-utils.d.ts.map +1 -1
  151. package/dist/index.cjs +4001 -904
  152. package/dist/index.cjs.map +1 -1
  153. package/dist/index.d.ts +1 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +3392 -870
  156. package/dist/index.js.map +1 -1
  157. package/package.json +6 -2
  158. package/scripts/generate-manifest.mjs +193 -0
  159. package/scripts/generate-manifest.test.mjs +193 -0
  160. package/src/api/core/buildings.ts +485 -0
  161. package/src/api/core/comment/index.ts +258 -0
  162. package/src/api/core/geom/create/index.ts +293 -0
  163. package/src/api/core/geom/delete/index.ts +78 -0
  164. package/src/api/core/geom/index.ts +24 -23
  165. package/src/api/core/geom/query/arc.ts +169 -0
  166. package/src/api/core/geom/query/brep.ts +444 -0
  167. package/src/api/core/geom/query/circle.ts +404 -0
  168. package/src/api/core/geom/query/contour.ts +540 -0
  169. package/src/api/core/geom/query/curve.ts +1078 -0
  170. package/src/api/core/geom/query/edge.ts +130 -0
  171. package/src/api/core/geom/query/face.ts +403 -0
  172. package/src/api/core/geom/query/halfedge.ts +210 -0
  173. package/src/api/core/geom/query/index.ts +63 -0
  174. package/src/api/core/geom/query/profile.ts +473 -0
  175. package/src/api/core/geom/query/vertex.ts +205 -0
  176. package/src/api/core/geom/update/contour.ts +315 -0
  177. package/src/api/core/geom/update/curve.ts +209 -0
  178. package/src/api/core/geom/update/index.ts +29 -0
  179. package/src/api/core/geom/update/profile.ts +377 -0
  180. package/src/api/core/groups.ts +521 -0
  181. package/src/api/core/history/index.ts +84 -0
  182. package/src/api/core/index.ts +46 -1
  183. package/src/api/core/layers.ts +333 -0
  184. package/src/api/core/math/quat.ts +112 -235
  185. package/src/api/core/math/vec3.ts +124 -159
  186. package/src/api/core/project/index.ts +418 -0
  187. package/src/api/core/tags.ts +808 -0
  188. package/src/api/core/units/index.ts +164 -0
  189. package/src/api/core/zoom/index.ts +47 -0
  190. package/src/api/design/boolean/index.ts +179 -0
  191. package/src/api/design/create/index.ts +886 -0
  192. package/src/api/design/delete/index.ts +67 -0
  193. package/src/api/design/doors/index.ts +285 -0
  194. package/src/api/design/edit/index.ts +54 -0
  195. package/src/api/design/erase/index.ts +151 -0
  196. package/src/api/design/furniture/index.ts +130 -0
  197. package/src/api/design/index.ts +162 -0
  198. package/src/api/design/lock.ts +42 -0
  199. package/src/api/design/materials/index.ts +301 -0
  200. package/src/api/design/query/geometry/index.ts +166 -0
  201. package/src/api/design/query/index.ts +937 -0
  202. package/src/api/design/query/spaces.ts +132 -0
  203. package/src/api/design/selection/index.ts +144 -0
  204. package/src/api/design/shared.ts +40 -0
  205. package/src/api/design/transform/index.ts +93 -0
  206. package/src/api/design/update/index.ts +117 -0
  207. package/src/api/design/windows/index.ts +207 -0
  208. package/src/api/entity/buildableEnvelope.ts +318 -0
  209. package/src/api/entity/department.ts +0 -113
  210. package/src/api/entity/index.ts +9 -9
  211. package/src/api/entity/referenceLine.ts +50 -38
  212. package/src/api/entity/space.ts +285 -226
  213. package/src/api/entity/story.ts +53 -42
  214. package/src/api/index.ts +17 -12
  215. package/src/api/presentation/aiInspiration.ts +362 -0
  216. package/src/api/presentation/diagrams.ts +84 -0
  217. package/src/api/presentation/import.ts +112 -0
  218. package/src/api/presentation/index.ts +48 -0
  219. package/src/api/presentation/sheets.ts +198 -0
  220. package/src/api/presentation/views.ts +303 -0
  221. package/src/api/program/adjacency.ts +164 -0
  222. package/src/api/program/areas.ts +335 -0
  223. package/src/api/program/classification.ts +138 -0
  224. package/src/api/program/cores.ts +171 -0
  225. package/src/api/program/departments.ts +465 -0
  226. package/src/api/program/index.ts +71 -0
  227. package/src/api/program/layout.ts +68 -0
  228. package/src/api/program/metrics.ts +120 -0
  229. package/src/api/program/site.ts +326 -0
  230. package/src/api/program/spreadsheet.ts +2075 -0
  231. package/src/handles.ts +148 -0
  232. package/src/host-utils.ts +10 -6
  233. package/src/index.ts +1 -0
  234. package/dist/api/core/geom/arc.d.ts +0 -81
  235. package/dist/api/core/geom/arc.d.ts.map +0 -1
  236. package/dist/api/core/geom/curve.d.ts +0 -70
  237. package/dist/api/core/geom/curve.d.ts.map +0 -1
  238. package/dist/api/core/geom/line.d.ts +0 -56
  239. package/dist/api/core/geom/line.d.ts.map +0 -1
  240. package/dist/api/core/geom/profile.d.ts +0 -121
  241. package/dist/api/core/geom/profile.d.ts.map +0 -1
  242. package/dist/api/tools/copy.d.ts +0 -59
  243. package/dist/api/tools/copy.d.ts.map +0 -1
  244. package/dist/api/tools/index.d.ts +0 -33
  245. package/dist/api/tools/index.d.ts.map +0 -1
  246. package/dist/api/tools/material.d.ts +0 -51
  247. package/dist/api/tools/material.d.ts.map +0 -1
  248. package/dist/api/tools/offset.d.ts +0 -43
  249. package/dist/api/tools/offset.d.ts.map +0 -1
  250. package/dist/api/tools/selection.d.ts +0 -48
  251. package/dist/api/tools/selection.d.ts.map +0 -1
  252. package/dist/api/tools/transform.d.ts +0 -114
  253. package/dist/api/tools/transform.d.ts.map +0 -1
  254. package/dist/api/units/index.d.ts +0 -163
  255. package/dist/api/units/index.d.ts.map +0 -1
  256. package/src/api/core/geom/arc.ts +0 -70
  257. package/src/api/core/geom/curve.ts +0 -41
  258. package/src/api/core/geom/line.ts +0 -53
  259. package/src/api/core/geom/profile.ts +0 -94
  260. package/src/api/tools/copy.ts +0 -55
  261. package/src/api/tools/index.ts +0 -39
  262. package/src/api/tools/material.ts +0 -49
  263. package/src/api/tools/offset.ts +0 -43
  264. package/src/api/tools/selection.ts +0 -51
  265. package/src/api/tools/transform.ts +0 -117
  266. package/src/api/units/index.ts +0 -163
@@ -1,99 +1 @@
1
- import * as z from "zod";
2
- import { PluginApiReturn } from "../../types";
3
- /**
4
- * Department management — create and query departments.
5
- *
6
- * A **department** is a named, colored grouping applied to spaces.
7
- * Departments are used to categorize spaces by function (e.g. "FOH",
8
- * "Emergency", "Residential") and control their visual appearance.
9
- *
10
- * Accessed via `snaptrude.entity.department`.
11
- */
12
- export declare abstract class PluginDepartmentApi {
13
- constructor();
14
- /**
15
- * Create a new department.
16
- *
17
- * @param args - An object containing:
18
- * - {@linkcode PluginDepartmentCreateArgs.name args.name} — Display name
19
- * - {@linkcode PluginDepartmentCreateArgs.color args.color} — CSS hex color string (e.g. `"#b5e1dc"`)
20
- * @returns A {@linkcode PluginDepartmentCreateResult} with the `departmentId`
21
- * of the created department
22
- * @throws If department creation fails
23
- *
24
- * # Example
25
- * ```ts
26
- * const { departmentId } = await snaptrude.entity.department.create({
27
- * name: "Emergency",
28
- * color: "#f5e68b",
29
- * })
30
- * ```
31
- */
32
- abstract create(args: PluginDepartmentCreateArgs): PluginApiReturn<PluginDepartmentCreateResult>;
33
- /**
34
- * Get all departments in the current project.
35
- *
36
- * Returns every department including well-known ones (Default, Site, etc.)
37
- * and user-created departments.
38
- *
39
- * @returns A {@linkcode PluginDepartmentGetAllResult} with a `departments` array
40
- *
41
- * # Example
42
- * ```ts
43
- * const { departments } = await snaptrude.entity.department.getAll()
44
- * for (const dept of departments) {
45
- * console.log(dept.id, dept.name, dept.color)
46
- * }
47
- * ```
48
- */
49
- abstract getAll(): PluginApiReturn<PluginDepartmentGetAllResult>;
50
- }
51
- /**
52
- * Arguments for {@linkcode PluginDepartmentApi.create}.
53
- *
54
- * | Property | Type | Description |
55
- * |---|---|---|
56
- * | `name` | `string` | Display name of the department |
57
- * | `color` | `string` | CSS hex color string (e.g. `"#b5e1dc"`) |
58
- */
59
- export declare const PluginDepartmentCreateArgs: z.ZodObject<{
60
- name: z.ZodString;
61
- color: z.ZodString;
62
- }, z.core.$strip>;
63
- export type PluginDepartmentCreateArgs = z.infer<typeof PluginDepartmentCreateArgs>;
64
- /**
65
- * Result of {@linkcode PluginDepartmentApi.create}.
66
- *
67
- * | Property | Type | Description |
68
- * |---|---|---|
69
- * | `departmentId` | `string` | Unique ID of the created department |
70
- */
71
- export declare const PluginDepartmentCreateResult: z.ZodObject<{
72
- departmentId: z.ZodString;
73
- }, z.core.$strip>;
74
- export type PluginDepartmentCreateResult = z.infer<typeof PluginDepartmentCreateResult>;
75
- /**
76
- * A single department entry returned by {@linkcode PluginDepartmentApi.getAll}.
77
- */
78
- export declare const PluginDepartmentEntry: z.ZodObject<{
79
- id: z.ZodString;
80
- name: z.ZodString;
81
- color: z.ZodString;
82
- }, z.core.$strip>;
83
- export type PluginDepartmentEntry = z.infer<typeof PluginDepartmentEntry>;
84
- /**
85
- * Result of {@linkcode PluginDepartmentApi.getAll}.
86
- *
87
- * | Property | Type | Description |
88
- * |---|---|---|
89
- * | `departments` | {@linkcode PluginDepartmentEntry}`[]` | All departments in the project |
90
- */
91
- export declare const PluginDepartmentGetAllResult: z.ZodObject<{
92
- departments: z.ZodArray<z.ZodObject<{
93
- id: z.ZodString;
94
- name: z.ZodString;
95
- color: z.ZodString;
96
- }, z.core.$strip>>;
97
- }, z.core.$strip>;
98
- export type PluginDepartmentGetAllResult = z.infer<typeof PluginDepartmentGetAllResult>;
99
1
  //# sourceMappingURL=department.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"department.d.ts","sourceRoot":"","sources":["../../../src/api/entity/department.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;GAQG;AACH,8BAAsB,mBAAmB;;IAGvC;;;;;;;;;;;;;;;;;OAiBG;aACa,MAAM,CACpB,IAAI,EAAE,0BAA0B,GAC/B,eAAe,CAAC,4BAA4B,CAAC;IAEhD;;;;;;;;;;;;;;;OAeG;aACa,MAAM,IAAI,eAAe,CAAC,4BAA4B,CAAC;CACxE;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;iBAGrC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,0BAA0B,CAClC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;iBAEvC,CAAA;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;iBAIhC,CAAA;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEzE;;;;;;GAMG;AACH,eAAO,MAAM,4BAA4B;;;;;;iBAEvC,CAAA;AAEF,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAA"}
1
+ {"version":3,"file":"department.d.ts","sourceRoot":"","sources":["../../../src/api/entity/department.ts"],"names":[],"mappings":""}
@@ -1,27 +1,27 @@
1
- import { PluginDepartmentApi } from "./department";
1
+ import { PluginBuildableEnvelopeApi } from "./buildableEnvelope";
2
2
  import { PluginReferenceLineApi } from "./referenceLine";
3
- import { PluginSpaceApi } from "./space";
4
3
  import { PluginStoryApi } from "./story";
5
4
  /**
6
5
  * CRUD operations on Snaptrude building entities.
7
6
  *
8
- * - {@linkcode PluginEntityApi.space} — Create, query, and delete spaces (rooms/masses)
9
7
  * - {@linkcode PluginEntityApi.story} — Create, query, and update stories (floors)
10
8
  * - {@linkcode PluginEntityApi.referenceLine} — Create, query, and delete reference lines
11
- * - {@linkcode PluginEntityApi.department} — Create and query departments
9
+ * - {@linkcode PluginEntityApi.buildableEnvelope} — Create or update parametric buildable envelopes
10
+ *
11
+ * Space operations moved to `design.create.spaces` / `design.update.*` /
12
+ * `design.query.*` / `design.delete.entities` (the `entity.space` API was removed);
13
+ * `./space` still exports the shared space value types.
12
14
  */
13
15
  export declare abstract class PluginEntityApi {
14
- /** Space (room/mass) operations. See {@linkcode PluginSpaceApi}. */
15
- abstract space: PluginSpaceApi;
16
16
  /** Story (floor/storey) operations. See {@linkcode PluginStoryApi}. */
17
17
  abstract story: PluginStoryApi;
18
18
  /** Reference line operations. See {@linkcode PluginReferenceLineApi}. */
19
19
  abstract referenceLine: PluginReferenceLineApi;
20
- /** Department operations. See {@linkcode PluginDepartmentApi}. */
21
- abstract department: PluginDepartmentApi;
20
+ /** Buildable Envelope operations. See {@linkcode PluginBuildableEnvelopeApi}. */
21
+ abstract buildableEnvelope: PluginBuildableEnvelopeApi;
22
22
  constructor();
23
23
  }
24
- export * from "./department";
24
+ export * from "./buildableEnvelope";
25
25
  export * from "./referenceLine";
26
26
  export * from "./space";
27
27
  export * from "./story";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/entity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC;;;;;;;GAOG;AACH,8BAAsB,eAAe;IACnC,oEAAoE;IACpE,SAAgB,KAAK,EAAE,cAAc,CAAA;IACrC,uEAAuE;IACvE,SAAgB,KAAK,EAAE,cAAc,CAAA;IACrC,yEAAyE;IACzE,SAAgB,aAAa,EAAE,sBAAsB,CAAA;IACrD,kEAAkE;IAClE,SAAgB,UAAU,EAAE,mBAAmB,CAAA;;CAGhD;AAED,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/entity/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAExC;;;;;;;;;;GAUG;AACH,8BAAsB,eAAe;IACnC,uEAAuE;IACvE,SAAgB,KAAK,EAAE,cAAc,CAAA;IACrC,yEAAyE;IACzE,SAAgB,aAAa,EAAE,sBAAsB,CAAA;IACrD,iFAAiF;IACjF,SAAgB,iBAAiB,EAAE,0BAA0B,CAAA;;CAG9D;AAED,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import * as z from "zod";
2
2
  import { PluginApiReturn } from "../../types";
3
+ import { ProfileHandle } from "../../handles";
3
4
  /**
4
5
  * Reference line management — create, query, and delete reference lines.
5
6
  *
@@ -17,57 +18,63 @@ export declare abstract class PluginReferenceLineApi {
17
18
  /**
18
19
  * Create multiple reference lines from a profile.
19
20
  *
20
- * Each {@linkcode PCurve} in the given {@linkcode PProfile} becomes
21
+ * Each curve in the given {@linkcode ProfileHandle} becomes
21
22
  * a separate reference line. Uses `ReferenceLineConstructor.createFromProfile`
22
23
  * internally.
23
24
  *
24
- * @param args - An object containing:
25
- * - {@linkcode PluginReferenceLineCreateMultiArgs.profile args.profile} — A
26
- * {@linkcode PProfile} whose curves define the reference lines to create
25
+ * @param profile - A {@linkcode ProfileHandle} whose curves define the
26
+ * reference lines to create
27
27
  * @returns A {@linkcode PluginReferenceLineCreateMultiResult} with the
28
28
  * `referenceLineIds` of the created reference lines
29
29
  * @throws If reference line creation fails
30
30
  *
31
+ * @examplePrompt Draw grid lines across the site
32
+ * @examplePrompt Create reference lines from these curves
33
+ * @examplePrompt Add alignment guides along the building edge
34
+ * @examplePrompt Set up a structural grid using guide lines
35
+ * @examplePrompt Turn this profile into reference lines
36
+ *
31
37
  * # Example
32
38
  * ```ts
33
39
  * const { vec3 } = snaptrude.core.math
34
40
  *
35
- * const l1 = snaptrude.core.geom.line.new(vec3.new(0, 0, 0), vec3.new(10, 0, 0))
36
- * const l2 = snaptrude.core.geom.line.new(vec3.new(10, 0, 0), vec3.new(10, 0, 10))
37
- * const profile = snaptrude.core.geom.profile.new([l1, l2])
41
+ * const start = await vec3.new(0, 0, 0)
42
+ * const mid = await vec3.new(10, 0, 0)
43
+ * const end = await vec3.new(10, 0, 10)
44
+ * const l1 = await snaptrude.core.geom.create.line(start, mid)
45
+ * const l2 = await snaptrude.core.geom.create.line(mid, end)
46
+ * const profile = await snaptrude.core.geom.create.profileFromCurves([l1, l2])
38
47
  *
39
- * const { referenceLineIds } = await snaptrude.entity.referenceLine.createMulti({
40
- * profile,
41
- * })
48
+ * const { referenceLineIds } = await snaptrude.entity.referenceLine.createMulti(profile)
42
49
  * ```
43
50
  */
44
- abstract createMulti(args: PluginReferenceLineCreateMultiArgs): PluginApiReturn<PluginReferenceLineCreateMultiResult>;
51
+ abstract createMulti(profile: ProfileHandle): PluginApiReturn<PluginReferenceLineCreateMultiResult>;
45
52
  /**
46
53
  * Get properties of a reference line by its ID.
47
54
  *
48
- * Only the properties listed in {@linkcode PluginReferenceLineGetArgs.properties
49
- * args.properties} are returned — unlisted properties will be `undefined`
50
- * in the result.
55
+ * Only the properties listed in `properties` are returned — unlisted
56
+ * properties will be `undefined` in the result.
51
57
  *
52
- * @param args - An object containing:
53
- * - {@linkcode PluginReferenceLineGetArgs.referenceLineId args.referenceLineId}
54
- * The unique reference line ID
55
- * - {@linkcode PluginReferenceLineGetArgs.properties args.properties} — Array of
56
- * property names to retrieve. See {@linkcode PluginReferenceLineGetProperty}.
58
+ * @param referenceLineId - The unique reference line ID
59
+ * @param properties - Array of property names to retrieve. See
60
+ * {@linkcode PluginReferenceLineGetProperty}.
57
61
  * @returns A partial {@linkcode PluginReferenceLineGetResult} containing only the
58
62
  * requested properties
59
63
  * @throws If the reference line does not exist
60
64
  *
65
+ * @examplePrompt Get the curve geometry of this reference line
66
+ * @examplePrompt Where does this grid line run?
67
+ * @examplePrompt Read the geometry of a guide line by its id
68
+ * @examplePrompt Look up the curve of the selected reference line
69
+ *
61
70
  * # Example
62
71
  * ```ts
63
- * const result = await snaptrude.entity.referenceLine.get({
64
- * referenceLineId: "some-ref-line-id",
65
- * properties: ["curve"],
66
- * })
67
- * console.log(result.curve) // PCurve
72
+ * const result = await snaptrude.entity.referenceLine.get("some-ref-line-id", ["curve"])
73
+ * // result.curve is an opaque CurveHandle; a dedicated curve read API for its
74
+ * // coordinates is exposed separately via `snaptrude.core.geom.curve`.
68
75
  * ```
69
76
  */
70
- abstract get(args: PluginReferenceLineGetArgs): PluginApiReturn<PluginReferenceLineGetResult>;
77
+ abstract get(referenceLineId: string, properties: z.infer<typeof PluginReferenceLineGetProperty>[]): PluginApiReturn<PluginReferenceLineGetResult>;
71
78
  /**
72
79
  * Get the IDs of all reference lines in the current project.
73
80
  *
@@ -78,6 +85,11 @@ export declare abstract class PluginReferenceLineApi {
78
85
  * @returns A {@linkcode PluginReferenceLineGetAllResult} with a
79
86
  * `referenceLineIds` array
80
87
  *
88
+ * @examplePrompt How many grid lines are in the project?
89
+ * @examplePrompt List all the reference lines in my model
90
+ * @examplePrompt Show every guide line in the file
91
+ * @examplePrompt Do I have any reference lines in this project?
92
+ *
81
93
  * # Example
82
94
  * ```ts
83
95
  * const { referenceLineIds } = await snaptrude.entity.referenceLine.getAll()
@@ -91,65 +103,30 @@ export declare abstract class PluginReferenceLineApi {
91
103
  * Permanently removes the reference line and its associated mesh from
92
104
  * the scene. This operation is undoable via Snaptrude's command system.
93
105
  *
94
- * @param args - An object containing:
95
- * - {@linkcode PluginReferenceLineDeleteArgs.referenceLineId args.referenceLineId} —
96
- * The unique reference line ID to delete
106
+ * @param referenceLineId - The unique reference line ID to delete
97
107
  * @throws If the reference line does not exist
98
108
  *
109
+ * @examplePrompt Delete this reference line
110
+ * @examplePrompt Remove the grid line I just drew
111
+ * @examplePrompt Get rid of the alignment guide on the left
112
+ * @examplePrompt Erase a reference line by its id
113
+ *
99
114
  * # Example
100
115
  * ```ts
101
- * await snaptrude.entity.referenceLine.delete({
102
- * referenceLineId: "some-ref-line-id",
103
- * })
116
+ * await snaptrude.entity.referenceLine.delete("some-ref-line-id")
104
117
  * ```
105
118
  */
106
- abstract delete(args: PluginReferenceLineDeleteArgs): PluginApiReturn<PluginReferenceLineDeleteResult>;
119
+ abstract delete(referenceLineId: string): PluginApiReturn<PluginReferenceLineDeleteResult>;
107
120
  }
108
121
  /**
109
122
  * Arguments for {@linkcode PluginReferenceLineApi.createMulti}.
110
123
  *
111
124
  * | Property | Type | Description |
112
125
  * |---|---|---|
113
- * | `profile` | {@linkcode PProfile} | Profile whose curves define reference lines |
126
+ * | `profile` | {@linkcode ProfileHandle} | Profile handle whose curves define reference lines |
114
127
  */
115
128
  export declare const PluginReferenceLineCreateMultiArgs: z.ZodObject<{
116
- profile: z.ZodObject<{
117
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
118
- curveType: z.ZodLiteral<"Line">;
119
- startPoint: z.ZodObject<{
120
- x: z.ZodNumber;
121
- y: z.ZodNumber;
122
- z: z.ZodNumber;
123
- }, z.core.$strip>;
124
- endPoint: z.ZodObject<{
125
- x: z.ZodNumber;
126
- y: z.ZodNumber;
127
- z: z.ZodNumber;
128
- }, z.core.$strip>;
129
- }, z.core.$strip>, z.ZodObject<{
130
- curveType: z.ZodLiteral<"Arc">;
131
- startPoint: z.ZodObject<{
132
- x: z.ZodNumber;
133
- y: z.ZodNumber;
134
- z: z.ZodNumber;
135
- }, z.core.$strip>;
136
- endPoint: z.ZodObject<{
137
- x: z.ZodNumber;
138
- y: z.ZodNumber;
139
- z: z.ZodNumber;
140
- }, z.core.$strip>;
141
- centrePoint: z.ZodObject<{
142
- x: z.ZodNumber;
143
- y: z.ZodNumber;
144
- z: z.ZodNumber;
145
- }, z.core.$strip>;
146
- axis: z.ZodObject<{
147
- x: z.ZodNumber;
148
- y: z.ZodNumber;
149
- z: z.ZodNumber;
150
- }, z.core.$strip>;
151
- }, z.core.$strip>], "curveType">>;
152
- }, z.core.$strip>;
129
+ profile: z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"profile">, string>>;
153
130
  }, z.core.$strip>;
154
131
  export type PluginReferenceLineCreateMultiArgs = z.infer<typeof PluginReferenceLineCreateMultiArgs>;
155
132
  /**
@@ -168,7 +145,7 @@ export type PluginReferenceLineCreateMultiResult = z.infer<typeof PluginReferenc
168
145
  *
169
146
  * | Value | Return Type | Description |
170
147
  * |---|---|---|
171
- * | `"curve"` | {@linkcode PCurve} | The curve geometry of the reference line |
148
+ * | `"curve"` | {@linkcode CurveHandle} | The curve geometry of the reference line, as an opaque handle |
172
149
  */
173
150
  export declare const PluginReferenceLineGetProperty: z.ZodEnum<{
174
151
  curve: "curve";
@@ -195,41 +172,7 @@ export type PluginReferenceLineGetArgs = z.infer<typeof PluginReferenceLineGetAr
195
172
  * {@linkcode PluginReferenceLineGetArgs.properties} will be present.
196
173
  */
197
174
  export declare const PluginReferenceLineGetResult: z.ZodObject<{
198
- curve: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
199
- curveType: z.ZodLiteral<"Line">;
200
- startPoint: z.ZodObject<{
201
- x: z.ZodNumber;
202
- y: z.ZodNumber;
203
- z: z.ZodNumber;
204
- }, z.core.$strip>;
205
- endPoint: z.ZodObject<{
206
- x: z.ZodNumber;
207
- y: z.ZodNumber;
208
- z: z.ZodNumber;
209
- }, z.core.$strip>;
210
- }, z.core.$strip>, z.ZodObject<{
211
- curveType: z.ZodLiteral<"Arc">;
212
- startPoint: z.ZodObject<{
213
- x: z.ZodNumber;
214
- y: z.ZodNumber;
215
- z: z.ZodNumber;
216
- }, z.core.$strip>;
217
- endPoint: z.ZodObject<{
218
- x: z.ZodNumber;
219
- y: z.ZodNumber;
220
- z: z.ZodNumber;
221
- }, z.core.$strip>;
222
- centrePoint: z.ZodObject<{
223
- x: z.ZodNumber;
224
- y: z.ZodNumber;
225
- z: z.ZodNumber;
226
- }, z.core.$strip>;
227
- axis: z.ZodObject<{
228
- x: z.ZodNumber;
229
- y: z.ZodNumber;
230
- z: z.ZodNumber;
231
- }, z.core.$strip>;
232
- }, z.core.$strip>], "curveType">>;
175
+ curve: z.ZodOptional<z.ZodUnion<readonly [z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"line">, string>>, z.ZodPipe<z.ZodString, z.ZodTransform<import("../..").Handle<"arc">, string>>]>>;
233
176
  }, z.core.$strip>;
234
177
  export type PluginReferenceLineGetResult = z.infer<typeof PluginReferenceLineGetResult>;
235
178
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"referenceLine.d.ts","sourceRoot":"","sources":["../../../src/api/entity/referenceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7C;;;;;;;;;;;GAWG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;aACa,WAAW,CACzB,IAAI,EAAE,kCAAkC,GACvC,eAAe,CAAC,oCAAoC,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,GAAG,CACjB,IAAI,EAAE,0BAA0B,GAC/B,eAAe,CAAC,4BAA4B,CAAC;IAEhD;;;;;;;;;;;;;;;OAeG;aACa,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC;IAE1E;;;;;;;;;;;;;;;;;OAiBG;aACa,MAAM,CACpB,IAAI,EAAE,6BAA6B,GAClC,eAAe,CAAC,+BAA+B,CAAC;CACpD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAE7C,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAEvG;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;EAEzC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAGrC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAI7B,CAAA;AAEZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;iBAE1C,CAAA;AAEF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,8FAA8F;AAC9F,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"referenceLine.d.ts","sourceRoot":"","sources":["../../../src/api/entity/referenceLine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAe,MAAM,eAAe,CAAA;AAE1D;;;;;;;;;;;GAWG;AACH,8BAAsB,sBAAsB;;IAG1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;aACa,WAAW,CACzB,OAAO,EAAE,aAAa,GACrB,eAAe,CAAC,oCAAoC,CAAC;IAExD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;aACa,GAAG,CACjB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,EAAE,GAC3D,eAAe,CAAC,4BAA4B,CAAC;IAEhD;;;;;;;;;;;;;;;;;;;;OAoBG;aACa,MAAM,IAAI,eAAe,CAAC,+BAA+B,CAAC;IAE1E;;;;;;;;;;;;;;;;;;OAkBG;aACa,MAAM,CACpB,eAAe,EAAE,MAAM,GACtB,eAAe,CAAC,+BAA+B,CAAC;CACpD;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC;;iBAE7C,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kCAAkC,CAAC,CAAA;AAEnG;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC;;iBAE/C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAA;AAEvG;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B;;EAEzC,CAAA;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B;;;;;iBAGrC,CAAA;AAEF,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AAEnF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B;;iBAI7B,CAAA;AAEZ,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAA;AAEvF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;iBAE1C,CAAA;AAEF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAA;AAE7F;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;iBAExC,CAAA;AAEF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAA;AAEzF,8FAA8F;AAC9F,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAAA"}