@snaptrude/plugin-core 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -31,21 +31,22 @@ checklist:
31
31
  Every abstract method in `plugin-core` has a concrete implementation in `plugin-client`.
32
32
  The file structure mirrors this package 1:1:
33
33
 
34
- | plugin-core source | plugin-client counterpart |
35
- | ------------------------------------- | ------------------------------------------ |
36
- | `src/api/core/math/vec3.ts` | `src/api/core/math/vec3.ts` |
37
- | `src/api/core/math/quat.ts` | `src/api/core/math/quat.ts` |
38
- | `src/api/core/geom/line.ts` | `src/api/core/geom/line.ts` |
39
- | `src/api/core/geom/arc.ts` | `src/api/core/geom/arc.ts` |
40
- | `src/api/core/geom/curve.ts` | `src/api/core/geom/curve.ts` |
41
- | `src/api/core/geom/profile.ts` | `src/api/core/geom/profile.ts` |
42
- | `src/api/entity/space.ts` | `src/api/entity/space.ts` |
43
- | `src/api/entity/story.ts` | `src/api/entity/story.ts` |
44
- | `src/api/entity/referenceLine.ts` | `src/api/entity/referenceLine.ts` |
45
- | `src/api/entity/department.ts` | `src/api/entity/department.ts` |
46
- | `src/api/tools/selection.ts` | `src/api/tools/selection.ts` |
47
- | `src/api/tools/transform.ts` | `src/api/tools/transform.ts` |
48
- | `src/api/units/index.ts` | `src/api/units/index.ts` |
34
+ | plugin-core source | plugin-client counterpart |
35
+ | ------------------------------------- | ------------------------------------- |
36
+ | `src/api/core/math/vec3.ts` | `src/api/core/math/vec3.ts` |
37
+ | `src/api/core/math/quat.ts` | `src/api/core/math/quat.ts` |
38
+ | `src/api/core/geom/line.ts` | `src/api/core/geom/line.ts` |
39
+ | `src/api/core/geom/arc.ts` | `src/api/core/geom/arc.ts` |
40
+ | `src/api/core/geom/curve.ts` | `src/api/core/geom/curve.ts` |
41
+ | `src/api/core/geom/profile.ts` | `src/api/core/geom/profile.ts` |
42
+ | `src/api/entity/space.ts` | `src/api/entity/space.ts` |
43
+ | `src/api/entity/story.ts` | `src/api/entity/story.ts` |
44
+ | `src/api/entity/referenceLine.ts` | `src/api/entity/referenceLine.ts` |
45
+ | `src/api/entity/department.ts` | `src/api/entity/department.ts` |
46
+ | `src/api/entity/buildableEnvelope.ts` | `src/api/entity/buildableEnvelope.ts` |
47
+ | `src/api/tools/selection.ts` | `src/api/tools/selection.ts` |
48
+ | `src/api/tools/transform.ts` | `src/api/tools/transform.ts` |
49
+ | `src/api/units/index.ts` | `src/api/units/index.ts` |
49
50
 
50
51
  - **New method**: Add the concrete implementation (pure math = direct impl; host API = `getHostApi().call(...)`)
51
52
  - **Removed method**: Delete from client
@@ -68,6 +69,7 @@ the actual Snaptrude-internal implementation.
68
69
  ### 3. JSDoc — keep it complete
69
70
 
70
71
  All public methods and types **must** have JSDoc with:
72
+
71
73
  - A brief description
72
74
  - `@param` for each parameter (with type and description)
73
75
  - `@returns` description
@@ -91,17 +93,18 @@ In summary:
91
93
 
92
94
  These are in-browser integration tests that exercise the plugin API end-to-end.
93
95
 
94
- | plugin-core API module | Test file |
95
- | ----------------------------- | -------------------------- |
96
- | `core/math/*` | `tests/math.ts` |
97
- | `core/geom/*` | `tests/geom.ts` |
98
- | `entity/space.ts` | `tests/spaces.ts` |
99
- | `entity/story.ts` | `tests/story.ts` |
100
- | `entity/referenceLine.ts` | `tests/referenceLines.ts` |
101
- | `entity/department.ts` | `tests/departments.ts` |
102
- | `tools/selection.ts` | `tests/selection.ts` |
103
- | `tools/transform.ts` | `tests/transform.ts` |
104
- | `units/index.ts` | `tests/units.ts` |
96
+ | plugin-core API module | Test file |
97
+ | ----------------------------- | ----------------------------- |
98
+ | `core/math/*` | `tests/math.ts` |
99
+ | `core/geom/*` | `tests/geom.ts` |
100
+ | `entity/space.ts` | `tests/spaces.ts` |
101
+ | `entity/story.ts` | `tests/story.ts` |
102
+ | `entity/referenceLine.ts` | `tests/referenceLines.ts` |
103
+ | `entity/department.ts` | `tests/departments.ts` |
104
+ | `entity/buildableEnvelope.ts` | `tests/buildableEnvelopes.ts` |
105
+ | `tools/selection.ts` | `tests/selection.ts` |
106
+ | `tools/transform.ts` | `tests/transform.ts` |
107
+ | `units/index.ts` | `tests/units.ts` |
105
108
 
106
109
  - **New method**: Add test cases covering the new method
107
110
  - **Removed method**: Remove corresponding tests
@@ -111,6 +114,7 @@ These are in-browser integration tests that exercise the plugin API end-to-end.
111
114
  ### 6. Host-side Jest unit tests
112
115
 
113
116
  Some host implementations have co-located `.test.ts` files:
117
+
114
118
  - `api/core/math/vec3.test.ts`, `quat.test.ts`
115
119
  - `api/core/geom/line.test.ts`, `arc.test.ts`, `curve.test.ts`
116
120
  - `api/units/index.test.ts`
package/CHANGELOG.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # @snaptrude/plugin-core
2
2
 
3
+ ## 0.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 064777a: buildable envelope apis
8
+
3
9
  ## 0.2.1
4
10
 
5
11
  ### Patch Changes
6
12
 
7
- - 62c32ee: exposed space geometry and get profile api
13
+ - 3b37f4a: added buildable envelop api
8
14
 
9
15
  ## 0.2.0
10
16
 
@@ -0,0 +1,233 @@
1
+ import * as z from "zod";
2
+ import { PluginApiReturn } from "../../types";
3
+ /**
4
+ * Buildable Envelope management — create and update parametric zoning envelopes.
5
+ *
6
+ * A **buildable envelope** is the regulated volume inside which a building may
7
+ * be massed. The host owns envelope identity: {@linkcode PluginBuildableEnvelopeApi.create create}
8
+ * mints a `buildableEnvelopeId` and returns it; {@linkcode PluginBuildableEnvelopeApi.update update}
9
+ * requires that id to target the existing envelope.
10
+ *
11
+ * Accessed via `snaptrude.entity.buildableEnvelope`.
12
+ */
13
+ export declare abstract class PluginBuildableEnvelopeApi {
14
+ constructor();
15
+ /**
16
+ * Create a new parametric buildable envelope.
17
+ *
18
+ * @param args - A {@linkcode PluginBuildableEnvelopeCreateArgs} object.
19
+ * @returns A {@linkcode PluginBuildableEnvelopeCreateResult} with the
20
+ * `buildableEnvelopeId` of the created envelope.
21
+ * @throws If validation fails or generation produces no renderable geometry.
22
+ *
23
+ * # Example
24
+ * ```ts
25
+ * const { buildableEnvelopeId } = await snaptrude.entity.buildableEnvelope.create({
26
+ * sitePolygon: [
27
+ * { x: 0, z: 0 },
28
+ * { x: 100, z: 0 },
29
+ * { x: 100, z: 80 },
30
+ * { x: 0, z: 80 },
31
+ * ],
32
+ * lengthUnit: "ft",
33
+ * setbacks: [
34
+ * { aboveHeight: 0, front: 10, side: 5, rear: 10 },
35
+ * { aboveHeight: 100, front: 20, side: 10, rear: 20 },
36
+ * ],
37
+ * verticalCap: { kind: "max_height", maxHeight: 150 },
38
+ * floorToFloor: 12,
39
+ * })
40
+ * ```
41
+ */
42
+ abstract create(args: PluginBuildableEnvelopeCreateArgs): PluginApiReturn<PluginBuildableEnvelopeCreateResult>;
43
+ /**
44
+ * Update an existing parametric buildable envelope.
45
+ *
46
+ * @param args - A {@linkcode PluginBuildableEnvelopeUpdateArgs} object.
47
+ * `buildableEnvelopeId` is required and must match an existing envelope on
48
+ * the canvas.
49
+ * @returns A {@linkcode PluginBuildableEnvelopeUpdateResult} with the
50
+ * `buildableEnvelopeId` of the updated envelope.
51
+ * @throws If validation fails, the envelope does not exist, or generation
52
+ * produces no renderable geometry.
53
+ *
54
+ * # Example
55
+ * ```ts
56
+ * const { buildableEnvelopeId } = await snaptrude.entity.buildableEnvelope.update({
57
+ * buildableEnvelopeId: existingId,
58
+ * sitePolygon: [
59
+ * { x: 0, z: 0 },
60
+ * { x: 100, z: 0 },
61
+ * { x: 100, z: 80 },
62
+ * { x: 0, z: 80 },
63
+ * ],
64
+ * lengthUnit: "ft",
65
+ * setbacks: [{ aboveHeight: 0, front: 10, side: 5, rear: 10 }],
66
+ * verticalCap: { kind: "max_height", maxHeight: 175 },
67
+ * floorToFloor: 12,
68
+ * })
69
+ * ```
70
+ */
71
+ abstract update(args: PluginBuildableEnvelopeUpdateArgs): PluginApiReturn<PluginBuildableEnvelopeUpdateResult>;
72
+ }
73
+ /**
74
+ * Site polygon vertex in the request `lengthUnit`.
75
+ *
76
+ * Vertices may be passed as `{x, z}` objects or `[x, z]` tuples. Numeric
77
+ * values must be finite (no `NaN` or `±Infinity`).
78
+ */
79
+ export declare const PluginBuildableEnvelopePolygonVertex: z.ZodUnion<readonly [z.ZodObject<{
80
+ x: z.ZodNumber;
81
+ z: z.ZodNumber;
82
+ }, z.core.$strict>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
83
+ export type PluginBuildableEnvelopePolygonVertex = z.infer<typeof PluginBuildableEnvelopePolygonVertex>;
84
+ /**
85
+ * Vertical cap for a buildable envelope.
86
+ *
87
+ * Use exactly one shape:
88
+ * - `{ kind: "max_height", maxHeight }`
89
+ * - `{ kind: "max_floors", maxFloors }`
90
+ *
91
+ * Floor-to-floor height is not nested here; it is always supplied as the
92
+ * top-level `floorToFloor` argument.
93
+ */
94
+ export declare const PluginBuildableEnvelopeVerticalCap: z.ZodDiscriminatedUnion<[z.ZodObject<{
95
+ kind: z.ZodLiteral<"max_height">;
96
+ maxHeight: z.ZodNumber;
97
+ }, z.core.$strict>, z.ZodObject<{
98
+ kind: z.ZodLiteral<"max_floors">;
99
+ maxFloors: z.ZodNumber;
100
+ }, z.core.$strict>], "kind">;
101
+ export type PluginBuildableEnvelopeVerticalCap = z.infer<typeof PluginBuildableEnvelopeVerticalCap>;
102
+ /**
103
+ * One tier of a buildable envelope's setback profile.
104
+ *
105
+ * Tiers are ordered by `aboveHeight`. The first tier (index 0) must have
106
+ * `aboveHeight: 0` and describes the ground footprint; each subsequent tier
107
+ * describes the complete setback at a strictly greater height. Each tier
108
+ * carries its own `front`, `side`, and `rear` values — there is no
109
+ * inheritance from earlier tiers.
110
+ *
111
+ * All numeric values must be finite and nonnegative, in the request
112
+ * `lengthUnit`.
113
+ *
114
+ * | Property | Type | Description |
115
+ * |---|---|---|
116
+ * | `aboveHeight` | `number` | Height at or above which this tier applies; the ground tier uses `0` |
117
+ * | `front` | `number` | Front setback for this tier |
118
+ * | `side` | `number` | Side setback for this tier |
119
+ * | `rear` | `number` | Rear setback for this tier |
120
+ */
121
+ export declare const PluginBuildableEnvelopeSetbackTier: z.ZodObject<{
122
+ aboveHeight: z.ZodNumber;
123
+ front: z.ZodNumber;
124
+ side: z.ZodNumber;
125
+ rear: z.ZodNumber;
126
+ }, z.core.$strict>;
127
+ export type PluginBuildableEnvelopeSetbackTier = z.infer<typeof PluginBuildableEnvelopeSetbackTier>;
128
+ /**
129
+ * Arguments for {@linkcode PluginBuildableEnvelopeApi.create}.
130
+ *
131
+ * Strict schema. The host owns identity — no `buildableEnvelopeId` is accepted
132
+ * on create; the id is minted by the host and returned in
133
+ * {@linkcode PluginBuildableEnvelopeCreateResult}.
134
+ *
135
+ * | Property | Type | Description |
136
+ * |---|---|---|
137
+ * | `sitePolygon` | {@linkcode PluginBuildableEnvelopePolygonVertex}`[]` | Site polygon vertices in `lengthUnit`; minimum 3 vertices |
138
+ * | `lengthUnit` | `"ft" \| "m"` | Unit used by all length fields |
139
+ * | `setbacks` | {@linkcode PluginBuildableEnvelopeSetbackTier}`[]` | Setback profile, ground tier first; minimum 1 tier |
140
+ * | `verticalCap` | {@linkcode PluginBuildableEnvelopeVerticalCap} | Maximum height or floor count |
141
+ * | `floorToFloor` | `number` | Required floor-to-floor height in `lengthUnit` |
142
+ * | `farRatio` | `number?` | Optional FAR value, positive when provided |
143
+ * | `lotCoverageMaxPct` | `number?` | Optional lot coverage cap, `0..100` |
144
+ */
145
+ export declare const PluginBuildableEnvelopeCreateArgs: z.ZodObject<{
146
+ sitePolygon: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
147
+ x: z.ZodNumber;
148
+ z: z.ZodNumber;
149
+ }, z.core.$strict>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
150
+ lengthUnit: z.ZodUnion<readonly [z.ZodLiteral<"ft">, z.ZodLiteral<"m">]>;
151
+ setbacks: z.ZodArray<z.ZodObject<{
152
+ aboveHeight: z.ZodNumber;
153
+ front: z.ZodNumber;
154
+ side: z.ZodNumber;
155
+ rear: z.ZodNumber;
156
+ }, z.core.$strict>>;
157
+ verticalCap: z.ZodDiscriminatedUnion<[z.ZodObject<{
158
+ kind: z.ZodLiteral<"max_height">;
159
+ maxHeight: z.ZodNumber;
160
+ }, z.core.$strict>, z.ZodObject<{
161
+ kind: z.ZodLiteral<"max_floors">;
162
+ maxFloors: z.ZodNumber;
163
+ }, z.core.$strict>], "kind">;
164
+ floorToFloor: z.ZodNumber;
165
+ farRatio: z.ZodOptional<z.ZodNumber>;
166
+ lotCoverageMaxPct: z.ZodOptional<z.ZodNumber>;
167
+ }, z.core.$strict>;
168
+ export type PluginBuildableEnvelopeCreateArgs = z.infer<typeof PluginBuildableEnvelopeCreateArgs>;
169
+ /**
170
+ * Result of {@linkcode PluginBuildableEnvelopeApi.create}.
171
+ *
172
+ * | Property | Type | Description |
173
+ * |---|---|---|
174
+ * | `buildableEnvelopeId` | `string` | Non-empty unique ID of the created buildable envelope |
175
+ */
176
+ export declare const PluginBuildableEnvelopeCreateResult: z.ZodObject<{
177
+ buildableEnvelopeId: z.ZodString;
178
+ }, z.core.$strict>;
179
+ export type PluginBuildableEnvelopeCreateResult = z.infer<typeof PluginBuildableEnvelopeCreateResult>;
180
+ /**
181
+ * Arguments for {@linkcode PluginBuildableEnvelopeApi.update}.
182
+ *
183
+ * Strict schema. `buildableEnvelopeId` is required and identifies the prior
184
+ * envelope on the canvas to update.
185
+ *
186
+ * | Property | Type | Description |
187
+ * |---|---|---|
188
+ * | `buildableEnvelopeId` | `string` | Existing envelope ID to update; non-empty |
189
+ * | `sitePolygon` | {@linkcode PluginBuildableEnvelopePolygonVertex}`[]` | Site polygon vertices in `lengthUnit`; minimum 3 vertices |
190
+ * | `lengthUnit` | `"ft" \| "m"` | Unit used by all length fields |
191
+ * | `setbacks` | {@linkcode PluginBuildableEnvelopeSetbackTier}`[]` | Setback profile, ground tier first; minimum 1 tier |
192
+ * | `verticalCap` | {@linkcode PluginBuildableEnvelopeVerticalCap} | Maximum height or floor count |
193
+ * | `floorToFloor` | `number` | Required floor-to-floor height in `lengthUnit` |
194
+ * | `farRatio` | `number?` | Optional FAR value, positive when provided |
195
+ * | `lotCoverageMaxPct` | `number?` | Optional lot coverage cap, `0..100` |
196
+ */
197
+ export declare const PluginBuildableEnvelopeUpdateArgs: z.ZodObject<{
198
+ buildableEnvelopeId: z.ZodString;
199
+ sitePolygon: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
200
+ x: z.ZodNumber;
201
+ z: z.ZodNumber;
202
+ }, z.core.$strict>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
203
+ lengthUnit: z.ZodUnion<readonly [z.ZodLiteral<"ft">, z.ZodLiteral<"m">]>;
204
+ setbacks: z.ZodArray<z.ZodObject<{
205
+ aboveHeight: z.ZodNumber;
206
+ front: z.ZodNumber;
207
+ side: z.ZodNumber;
208
+ rear: z.ZodNumber;
209
+ }, z.core.$strict>>;
210
+ verticalCap: z.ZodDiscriminatedUnion<[z.ZodObject<{
211
+ kind: z.ZodLiteral<"max_height">;
212
+ maxHeight: z.ZodNumber;
213
+ }, z.core.$strict>, z.ZodObject<{
214
+ kind: z.ZodLiteral<"max_floors">;
215
+ maxFloors: z.ZodNumber;
216
+ }, z.core.$strict>], "kind">;
217
+ floorToFloor: z.ZodNumber;
218
+ farRatio: z.ZodOptional<z.ZodNumber>;
219
+ lotCoverageMaxPct: z.ZodOptional<z.ZodNumber>;
220
+ }, z.core.$strict>;
221
+ export type PluginBuildableEnvelopeUpdateArgs = z.infer<typeof PluginBuildableEnvelopeUpdateArgs>;
222
+ /**
223
+ * Result of {@linkcode PluginBuildableEnvelopeApi.update}.
224
+ *
225
+ * | Property | Type | Description |
226
+ * |---|---|---|
227
+ * | `buildableEnvelopeId` | `string` | Non-empty unique ID of the updated buildable envelope |
228
+ */
229
+ export declare const PluginBuildableEnvelopeUpdateResult: z.ZodObject<{
230
+ buildableEnvelopeId: z.ZodString;
231
+ }, z.core.$strict>;
232
+ export type PluginBuildableEnvelopeUpdateResult = z.infer<typeof PluginBuildableEnvelopeUpdateResult>;
233
+ //# sourceMappingURL=buildableEnvelope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildableEnvelope.d.ts","sourceRoot":"","sources":["../../../src/api/entity/buildableEnvelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C;;;;;;;;;GASG;AACH,8BAAsB,0BAA0B;;IAG9C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;aACa,MAAM,CACpB,IAAI,EAAE,iCAAiC,GACtC,eAAe,CAAC,mCAAmC,CAAC;IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;aACa,MAAM,CACpB,IAAI,EAAE,iCAAiC,GACtC,eAAe,CAAC,mCAAmC,CAAC;CACxD;AAED;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC;;;kEAG/C,CAAA;AAEF,MAAM,MAAM,oCAAoC,GAAG,CAAC,CAAC,KAAK,CACxD,OAAO,oCAAoC,CAC5C,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,kCAAkC;;;;;;4BAS7C,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,kCAAkC,CAC1C,CAAA;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,kCAAkC;;;;;kBAKpC,CAAA;AAEX,MAAM,MAAM,kCAAkC,GAAG,CAAC,CAAC,KAAK,CACtD,OAAO,kCAAkC,CAC1C,CAAA;AA+BD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;kBAWZ,CAAA;AAElC,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,iCAAiC,CACzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC;;kBAErC,CAAA;AAEX,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,mCAAmC,CAC3C,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;kBAYZ,CAAA;AAElC,MAAM,MAAM,iCAAiC,GAAG,CAAC,CAAC,KAAK,CACrD,OAAO,iCAAiC,CACzC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,mCAAmC;;kBAErC,CAAA;AAEX,MAAM,MAAM,mCAAmC,GAAG,CAAC,CAAC,KAAK,CACvD,OAAO,mCAAmC,CAC3C,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { PluginBuildableEnvelopeApi } from "./buildableEnvelope";
1
2
  import { PluginDepartmentApi } from "./department";
2
3
  import { PluginReferenceLineApi } from "./referenceLine";
3
4
  import { PluginSpaceApi } from "./space";
@@ -9,6 +10,7 @@ import { PluginStoryApi } from "./story";
9
10
  * - {@linkcode PluginEntityApi.story} — Create, query, and update stories (floors)
10
11
  * - {@linkcode PluginEntityApi.referenceLine} — Create, query, and delete reference lines
11
12
  * - {@linkcode PluginEntityApi.department} — Create and query departments
13
+ * - {@linkcode PluginEntityApi.buildableEnvelope} — Create or update parametric buildable envelopes
12
14
  */
13
15
  export declare abstract class PluginEntityApi {
14
16
  /** Space (room/mass) operations. See {@linkcode PluginSpaceApi}. */
@@ -19,8 +21,11 @@ export declare abstract class PluginEntityApi {
19
21
  abstract referenceLine: PluginReferenceLineApi;
20
22
  /** Department operations. See {@linkcode PluginDepartmentApi}. */
21
23
  abstract department: PluginDepartmentApi;
24
+ /** Buildable Envelope operations. See {@linkcode PluginBuildableEnvelopeApi}. */
25
+ abstract buildableEnvelope: PluginBuildableEnvelopeApi;
22
26
  constructor();
23
27
  }
28
+ export * from "./buildableEnvelope";
24
29
  export * from "./department";
25
30
  export * from "./referenceLine";
26
31
  export * from "./space";
@@ -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,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;;;;;;;;GAQG;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;IAC/C,iFAAiF;IACjF,SAAgB,iBAAiB,EAAE,0BAA0B,CAAA;;CAG9D;AAED,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import * as z from "zod";
2
2
  import { PluginApiReturn } from "../../types";
3
3
  /**
4
- * Space (room/mass) management — create, query, update, and delete spaces.
4
+ * Space (room/mass) management — create, query, and delete spaces.
5
5
  *
6
6
  * A **space** is a 3D volume representing a room or mass in the
7
7
  * Snaptrude scene. Spaces live on a particular story and carry
@@ -85,56 +85,6 @@ export declare abstract class PluginSpaceApi {
85
85
  * ```
86
86
  */
87
87
  abstract createFromProfile({ profile, extrudeHeight, position, }: PluginSpaceCreateFromProfileArgs): PluginApiReturn<PluginSpaceCreateFromProfileResult>;
88
- /**
89
- * Update a space's BRep and mesh geometry by extruding a 2D profile.
90
- *
91
- * The {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.profile profile} is
92
- * extruded upward (along the Y axis) by
93
- * {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.extrudeHeight extrudeHeight}
94
- * and applied to the existing space. The space keeps the same `spaceId`,
95
- * metadata, department, and transform; only its geometry is replaced.
96
- *
97
- * Profile points are interpreted in scene coordinates. Profiles returned by
98
- * {@linkcode PluginSpaceApi.get} with `"profile"` can be passed back directly;
99
- * `"planPoints"` can be used to construct line-only profiles in the same X/Z
100
- * plan coordinate space.
101
- *
102
- * Use {@linkcode PluginProfileApi.fromLinePoints} to quickly build a profile
103
- * from a list of points.
104
- *
105
- * @param args - An object containing:
106
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.spaceId args.spaceId} —
107
- * The unique space ID to update
108
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.profile args.profile} —
109
- * A closed {@linkcode PProfile} defining the new floor shape
110
- * - {@linkcode PluginSpaceUpdateGeometryFromProfileArgs.extrudeHeight
111
- * args.extrudeHeight} — New extrusion height in Babylon units
112
- * @returns A {@linkcode PluginSpaceUpdateGeometryFromProfileResult} with the
113
- * `spaceId` of the updated space
114
- * @throws If the space does not exist, the component is not a space/mass, the
115
- * height is not positive, or the profile cannot create valid geometry
116
- *
117
- * # Example
118
- * ```ts
119
- * const { vec3 } = snaptrude.core.math
120
- *
121
- * const profile = await snaptrude.core.geom.profile.fromLinePoints({
122
- * points: [
123
- * vec3.new(0, 0, 0),
124
- * vec3.new(12, 0, 0),
125
- * vec3.new(12, 0, 6),
126
- * vec3.new(0, 0, 6),
127
- * ],
128
- * })
129
- *
130
- * const { spaceId } = await snaptrude.entity.space.updateGeometryFromProfile({
131
- * spaceId: "some-space-id",
132
- * profile,
133
- * extrudeHeight: 4,
134
- * })
135
- * ```
136
- */
137
- abstract updateGeometryFromProfile({ spaceId, profile, extrudeHeight, }: PluginSpaceUpdateGeometryFromProfileArgs): PluginApiReturn<PluginSpaceUpdateGeometryFromProfileResult>;
138
88
  /**
139
89
  * Get the IDs of all spaces in the current project.
140
90
  *
@@ -322,68 +272,6 @@ export declare const PluginSpaceCreateFromProfileResult: z.ZodObject<{
322
272
  spaceId: z.ZodString;
323
273
  }, z.core.$strip>;
324
274
  export type PluginSpaceCreateFromProfileResult = z.infer<typeof PluginSpaceCreateFromProfileResult>;
325
- /**
326
- * Arguments for {@linkcode PluginSpaceApi.updateGeometryFromProfile}.
327
- *
328
- * | Property | Type | Description |
329
- * |---|---|---|
330
- * | `spaceId` | `string` | Space to update |
331
- * | `profile` | {@linkcode PProfile} | Closed 2D profile defining the new floor shape |
332
- * | `extrudeHeight` | `number` | New extrusion height in Babylon units |
333
- */
334
- export declare const PluginSpaceUpdateGeometryFromProfileArgs: z.ZodObject<{
335
- spaceId: z.ZodString;
336
- profile: z.ZodObject<{
337
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
338
- curveType: z.ZodLiteral<"Line">;
339
- startPoint: z.ZodObject<{
340
- x: z.ZodNumber;
341
- y: z.ZodNumber;
342
- z: z.ZodNumber;
343
- }, z.core.$strip>;
344
- endPoint: z.ZodObject<{
345
- x: z.ZodNumber;
346
- y: z.ZodNumber;
347
- z: z.ZodNumber;
348
- }, z.core.$strip>;
349
- }, z.core.$strip>, z.ZodObject<{
350
- curveType: z.ZodLiteral<"Arc">;
351
- startPoint: z.ZodObject<{
352
- x: z.ZodNumber;
353
- y: z.ZodNumber;
354
- z: z.ZodNumber;
355
- }, z.core.$strip>;
356
- endPoint: z.ZodObject<{
357
- x: z.ZodNumber;
358
- y: z.ZodNumber;
359
- z: z.ZodNumber;
360
- }, z.core.$strip>;
361
- centrePoint: z.ZodObject<{
362
- x: z.ZodNumber;
363
- y: z.ZodNumber;
364
- z: z.ZodNumber;
365
- }, z.core.$strip>;
366
- axis: z.ZodObject<{
367
- x: z.ZodNumber;
368
- y: z.ZodNumber;
369
- z: z.ZodNumber;
370
- }, z.core.$strip>;
371
- }, z.core.$strip>], "curveType">>;
372
- }, z.core.$strip>;
373
- extrudeHeight: z.ZodNumber;
374
- }, z.core.$strip>;
375
- export type PluginSpaceUpdateGeometryFromProfileArgs = z.infer<typeof PluginSpaceUpdateGeometryFromProfileArgs>;
376
- /**
377
- * Result of {@linkcode PluginSpaceApi.updateGeometryFromProfile}.
378
- *
379
- * | Property | Type | Description |
380
- * |---|---|---|
381
- * | `spaceId` | `string` | Unique ID of the updated space |
382
- */
383
- export declare const PluginSpaceUpdateGeometryFromProfileResult: z.ZodObject<{
384
- spaceId: z.ZodString;
385
- }, z.core.$strip>;
386
- export type PluginSpaceUpdateGeometryFromProfileResult = z.infer<typeof PluginSpaceUpdateGeometryFromProfileResult>;
387
275
  /**
388
276
  * Available properties that can be queried on a space.
389
277
  *
@@ -421,17 +309,15 @@ export type PluginSpaceUpdateGeometryFromProfileResult = z.infer<typeof PluginSp
421
309
  * | Value | Return Type | Description |
422
310
  * |---|---|---|
423
311
  * | `"planPoints"` | {@linkcode PVec3}`[]` | Bottom outer profile points in world space with `y = 0` (2D plan). No closing duplicate point. |
424
- * | `"profile"` | {@linkcode PProfile} | Bottom outer profile in world space, preserving line/arc curve data. |
425
312
  */
426
313
  export declare const PluginSpaceGetProperty: z.ZodEnum<{
314
+ type: "type";
427
315
  name: "name";
428
316
  departmentId: "departmentId";
429
317
  id: "id";
430
- profile: "profile";
431
318
  position: "position";
432
319
  height: "height";
433
320
  depth: "depth";
434
- type: "type";
435
321
  room_type: "room_type";
436
322
  area: "area";
437
323
  breadth: "breadth";
@@ -456,14 +342,13 @@ export declare const PluginSpaceGetProperty: z.ZodEnum<{
456
342
  export declare const PluginSpaceGetArgs: z.ZodObject<{
457
343
  spaceId: z.ZodString;
458
344
  properties: z.ZodArray<z.ZodEnum<{
345
+ type: "type";
459
346
  name: "name";
460
347
  departmentId: "departmentId";
461
348
  id: "id";
462
- profile: "profile";
463
349
  position: "position";
464
350
  height: "height";
465
351
  depth: "depth";
466
- type: "type";
467
352
  room_type: "room_type";
468
353
  area: "area";
469
354
  breadth: "breadth";
@@ -567,43 +452,6 @@ export declare const PluginSpaceGetResult: z.ZodObject<{
567
452
  y: z.ZodNumber;
568
453
  z: z.ZodNumber;
569
454
  }, z.core.$strip>>>;
570
- profile: z.ZodOptional<z.ZodObject<{
571
- curves: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
572
- curveType: z.ZodLiteral<"Line">;
573
- startPoint: z.ZodObject<{
574
- x: z.ZodNumber;
575
- y: z.ZodNumber;
576
- z: z.ZodNumber;
577
- }, z.core.$strip>;
578
- endPoint: z.ZodObject<{
579
- x: z.ZodNumber;
580
- y: z.ZodNumber;
581
- z: z.ZodNumber;
582
- }, z.core.$strip>;
583
- }, z.core.$strip>, z.ZodObject<{
584
- curveType: z.ZodLiteral<"Arc">;
585
- startPoint: z.ZodObject<{
586
- x: z.ZodNumber;
587
- y: z.ZodNumber;
588
- z: z.ZodNumber;
589
- }, z.core.$strip>;
590
- endPoint: z.ZodObject<{
591
- x: z.ZodNumber;
592
- y: z.ZodNumber;
593
- z: z.ZodNumber;
594
- }, z.core.$strip>;
595
- centrePoint: z.ZodObject<{
596
- x: z.ZodNumber;
597
- y: z.ZodNumber;
598
- z: z.ZodNumber;
599
- }, z.core.$strip>;
600
- axis: z.ZodObject<{
601
- x: z.ZodNumber;
602
- y: z.ZodNumber;
603
- z: z.ZodNumber;
604
- }, z.core.$strip>;
605
- }, z.core.$strip>], "curveType">>;
606
- }, z.core.$strip>>;
607
455
  }, z.core.$strip>;
608
456
  export type PluginSpaceGetResult = z.infer<typeof PluginSpaceGetResult>;
609
457
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/api/entity/space.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"space.d.ts","sourceRoot":"","sources":["../../../src/api/entity/space.ts"],"names":[],"mappings":"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"}
@@ -121,10 +121,10 @@ export declare abstract class PluginStoryApi {
121
121
  * | `"totalArea"` | `number` | Total floor area of this story |
122
122
  */
123
123
  export declare const PluginStoryGetProperty: z.ZodEnum<{
124
+ value: "value";
124
125
  name: "name";
125
126
  id: "id";
126
127
  height: "height";
127
- value: "value";
128
128
  base: "base";
129
129
  hidden: "hidden";
130
130
  spacesCount: "spacesCount";
@@ -141,10 +141,10 @@ export declare const PluginStoryGetProperty: z.ZodEnum<{
141
141
  export declare const PluginStoryGetArgs: z.ZodObject<{
142
142
  storyValue: z.ZodNumber;
143
143
  properties: z.ZodArray<z.ZodEnum<{
144
+ value: "value";
144
145
  name: "name";
145
146
  id: "id";
146
147
  height: "height";
147
- value: "value";
148
148
  base: "base";
149
149
  hidden: "hidden";
150
150
  spacesCount: "spacesCount";