@snaptrude/plugin-core 0.9.14 → 0.9.16-networks-20261008.1

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 (73) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/api/analysis/daylight.d.ts +5 -5
  3. package/dist/api/analysis/solar.d.ts +2 -2
  4. package/dist/api/core/camera/index.d.ts +418 -0
  5. package/dist/api/core/camera/index.d.ts.map +1 -1
  6. package/dist/api/core/index.d.ts +4 -4
  7. package/dist/api/core/index.d.ts.map +1 -1
  8. package/dist/api/core/layers.d.ts +377 -255
  9. package/dist/api/core/layers.d.ts.map +1 -1
  10. package/dist/api/core/proposals/index.d.ts +4 -3
  11. package/dist/api/core/proposals/index.d.ts.map +1 -1
  12. package/dist/api/core/storeys/index.d.ts +12 -0
  13. package/dist/api/core/storeys/index.d.ts.map +1 -1
  14. package/dist/api/core/storeys/layers.d.ts +408 -0
  15. package/dist/api/core/storeys/layers.d.ts.map +1 -0
  16. package/dist/api/core/tags.d.ts +3 -3
  17. package/dist/api/design/bim.d.ts +209 -0
  18. package/dist/api/design/bim.d.ts.map +1 -0
  19. package/dist/api/design/catalog.d.ts +242 -0
  20. package/dist/api/design/catalog.d.ts.map +1 -0
  21. package/dist/api/design/create/bulk-items.d.ts +55 -3
  22. package/dist/api/design/create/bulk-items.d.ts.map +1 -1
  23. package/dist/api/design/create/index.d.ts +77 -22
  24. package/dist/api/design/create/index.d.ts.map +1 -1
  25. package/dist/api/design/family.d.ts +576 -12
  26. package/dist/api/design/family.d.ts.map +1 -1
  27. package/dist/api/design/index.d.ts +16 -0
  28. package/dist/api/design/index.d.ts.map +1 -1
  29. package/dist/api/design/networks.d.ts +1703 -0
  30. package/dist/api/design/networks.d.ts.map +1 -0
  31. package/dist/api/design/query/index.d.ts +30 -30
  32. package/dist/api/design/selection/index.d.ts +12 -12
  33. package/dist/api/design/types/index.d.ts +40 -24
  34. package/dist/api/design/types/index.d.ts.map +1 -1
  35. package/dist/api/design/update/index.d.ts +113 -3
  36. package/dist/api/design/update/index.d.ts.map +1 -1
  37. package/dist/api/presentation/aiInspiration.d.ts +23 -23
  38. package/dist/api/presentation/camera.d.ts +265 -0
  39. package/dist/api/presentation/camera.d.ts.map +1 -0
  40. package/dist/api/presentation/index.d.ts +14 -0
  41. package/dist/api/presentation/index.d.ts.map +1 -1
  42. package/dist/api/presentation/placedViews.d.ts +1 -1
  43. package/dist/api/presentation/views.d.ts +3 -1
  44. package/dist/api/presentation/views.d.ts.map +1 -1
  45. package/dist/api/presentation/walkthroughs.d.ts +1350 -0
  46. package/dist/api/presentation/walkthroughs.d.ts.map +1 -0
  47. package/dist/index.cjs +3886 -2598
  48. package/dist/index.cjs.map +1 -1
  49. package/dist/index.js +3744 -2595
  50. package/dist/index.js.map +1 -1
  51. package/package.json +1 -1
  52. package/scripts/generate-manifest.mjs +5 -0
  53. package/scripts/generate-manifest.test.mjs +14 -3
  54. package/src/api/core/camera/index.ts +400 -1
  55. package/src/api/core/index.ts +4 -4
  56. package/src/api/core/layers.ts +380 -173
  57. package/src/api/core/proposals/index.ts +4 -3
  58. package/src/api/core/storeys/index.ts +14 -0
  59. package/src/api/core/storeys/layers.ts +339 -0
  60. package/src/api/design/bim.ts +121 -0
  61. package/src/api/design/catalog.ts +128 -0
  62. package/src/api/design/create/bulk-items.ts +74 -2
  63. package/src/api/design/create/index.ts +92 -36
  64. package/src/api/design/family.ts +448 -17
  65. package/src/api/design/index.ts +34 -4
  66. package/src/api/design/networks.ts +607 -0
  67. package/src/api/design/types/index.ts +31 -24
  68. package/src/api/design/update/index.ts +121 -4
  69. package/src/api/presentation/camera.ts +289 -0
  70. package/src/api/presentation/index.ts +14 -0
  71. package/src/api/presentation/views.ts +3 -1
  72. package/src/api/presentation/walkthroughs.ts +1201 -0
  73. package/api-manifest.json +0 -9117
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @snaptrude/plugin-core
2
2
 
3
+ ## 0.9.16
4
+
5
+ ### Patch Changes
6
+
7
+ - e8d4ec3: Add camera pose and navigation APIs to `core.camera` (`getPose`, `setPose`, `move`, `rotate`, `getNavigationSettings`, `updateNavigationSettings`) and a new `presentation.walkthroughs` namespace for camera paths: create from keyframes, floor points or camera-move presets; edit walkthroughs and their keyframes; `sample`, `listIssues` and `capture` them; play them with `start`/`stop`/`getState`; and `export` them as a video onto the Present canvas as a job (`getJob`, `cancelJob`, `listJobs`).
8
+
9
+ ## 0.9.15
10
+
11
+ ### Patch Changes
12
+
13
+ - 4bfe118: `core.layers`: the layers in the Layers panel in the left sidebar. `list()`, `get(layerId)` and `getActive()` read the active design option's layers (default first, with `objectCount`); `create(name)` adds a layer to the active option (undoable, not activated); `rename(layerId, name)` renames (not undoable, default layer refused); `update(layerId, { locked?, hidden? })` locks and hides per-user (undoable; other option keys are rejected); `setActive(layerId)` sets where new objects land; `delete(layerId, { deleteObjects: true } | { targetLayerId })` deletes with an explicit disposition (server-validated; refused for the default, last, locked or shared layer; treat as permanent); `assign(componentIds, layerId)` moves objects onto a layer (undoable, locked objects skipped). Layer ids are the ids `core.proposals` records list as `bucketIds` / `defaultBucketId` (the proposals docs now point there).
14
+
15
+ MOVED (compatible at runtime): the former `core.layers` (each storey's sketch surfaces and imported underlays, ids `ly_*`) is now `core.storeys.layers`, with the same methods (`list`, `get`, `getActive`, `setActive`, `update`) and signatures. Plugins that still call the old shape on `core.layers` (`list(storeyId)`, `getActive(storeyId)`, `get` / `setActive` / `update(layerId, hidden)` with a `ly_*` id) keep working: the host routes those calls to `core.storeys.layers`. They are deprecated; new code should call `snaptrude.core.storeys.layers.*` directly. Only the TypeScript names change: `PluginCoreLayersApi` -> `PluginCoreStoreysLayersApi`, `PluginCoreLayer` -> `PluginCoreStoreyLayer`, `PluginCoreLayerType` -> `PluginCoreStoreyLayerType`, and `PluginCoreLayers*Args` / `PluginCoreLayers*Result` -> `PluginCoreStoreysLayers*Args` / `PluginCoreStoreysLayers*Result`; the names `PluginCoreLayersApi`, `PluginCoreLayer` and `PluginCoreLayers*` now describe the Layers panel.
16
+
17
+ - 80c1a2b: `presentation.camera`: the Present-mode canvas camera. `capture()` screenshots what the Present canvas currently shows (the visible area at the current pan and zoom, as a base64 data URL with its pixel size); `get()` reads pan, zoom, the visible page rectangle and the sheet on screen; `set({ x?, y?, zoom? })` pans and zooms; `zoomToFit()` frames every sheet; `zoomTo(shapeId)` frames one sheet or placed shape. View-state only (not write-gated, not undoable); requires Present mode to be open.
18
+ - 0e3df96: Raked and gabled walls: `design.create.walls` takes a trailing `topProfiles` argument and `design.create.wallRuns` items a `topProfiles` field — one optional `PluginWallTopProfile` per centerline curve (`[{ along, height }, …]`, `along` 0→1, at least two points). The wall is built as a real Wall with the given top edge (two points = single slope, three = gable), mitred at run corners, in the same single undo entry; it is non-parametric (the parametric wall graph does not rebuild it), like a wall whose top edge was dragged by hand.
19
+ - d84ea44: `design.update.setObjectType(components, objectType)`: convert masses into real walls, roofs, slabs or floors (`objectType` uses the `design.query` `type` vocabulary: `"wall" | "roof" | "slab" | "floor"`) — the properties panel's Object Type dropdown, headless, keeping the geometry exactly as built (no flattening to a default thickness) and keeping the component's handle. Instance families convert together. One undoable operation.
20
+
3
21
  ## 0.9.14
4
22
 
5
23
  ### Patch Changes
@@ -90,6 +108,16 @@
90
108
  - `core.tags.listForComponents(componentIds?)` — every space's tags + colors in one round-trip.
91
109
  - `program.departments` — `targetCount` on the department record and `setTargetCount(departmentId, targetCount)`, the count twin of `setTargetArea` (the engine stores both on the department, like on labels).
92
110
 
111
+ ## 0.9.8
112
+
113
+ ### Patch Changes
114
+
115
+ - 7fd374e: Add `hinge` to `design.create.door` / `window` (in `options`), `doors[]` / `windows[]` items and `opening`: a world point near the jamb the leaf is hinged on; the placed item is reflected along the wall when the catalog item's authored hinge side would land on the other jamb — one undo entry, no extra command.
116
+
117
+ **BEHAVIOUR FIX — `facing`.** The host placed the swing on the side OPPOSITE the `facing` point (the interactive tool's cursor convention) while the contract said "the room it opens into". The host now matches the contract: the leaf swings open toward `facing`. Callers that passed a point on the room side get the documented result; nothing in the contract changed shape.
118
+
119
+ `design.doors.getSwingDirection` is now derived from the placed mesh's orientation (hand as seen standing on the swing side facing the door); it previously read a scaling sign that placement never sets and reported `"left"` for every door. `mirror` axis docs now say what each axis does to a door (`'x'` swing side, `'z'` hinged jamb, `'y'` upside down); behaviour unchanged.
120
+
93
121
  ## 0.9.7
94
122
 
95
123
  ### Patch Changes
@@ -149,8 +149,8 @@ export type PluginDaylightMetric = z.infer<typeof PluginDaylightMetric>;
149
149
  export declare const PluginDaylightRunStatus: z.ZodEnum<{
150
150
  complete: "complete";
151
151
  failed: "failed";
152
- running: "running";
153
152
  cancelled: "cancelled";
153
+ running: "running";
154
154
  }>;
155
155
  export type PluginDaylightRunStatus = z.infer<typeof PluginDaylightRunStatus>;
156
156
  /**
@@ -419,8 +419,8 @@ export type PluginDaylightSensorRecord = z.infer<typeof PluginDaylightSensorReco
419
419
  */
420
420
  export declare const PluginDaylightAggregateScope: z.ZodEnum<{
421
421
  storey: "storey";
422
- space: "space";
423
422
  project: "project";
423
+ space: "space";
424
424
  }>;
425
425
  export type PluginDaylightAggregateScope = z.infer<typeof PluginDaylightAggregateScope>;
426
426
  /**
@@ -438,8 +438,8 @@ export type PluginDaylightAggregateScope = z.infer<typeof PluginDaylightAggregat
438
438
  export declare const PluginDaylightAggregate: z.ZodObject<{
439
439
  scope: z.ZodEnum<{
440
440
  storey: "storey";
441
- space: "space";
442
441
  project: "project";
442
+ space: "space";
443
443
  }>;
444
444
  id: z.ZodNullable<z.ZodString>;
445
445
  analysisAreaM2: z.ZodNumber;
@@ -521,8 +521,8 @@ export declare const PluginDaylightResults: z.ZodObject<{
521
521
  status: z.ZodEnum<{
522
522
  complete: "complete";
523
523
  failed: "failed";
524
- running: "running";
525
524
  cancelled: "cancelled";
525
+ running: "running";
526
526
  }>;
527
527
  runId: z.ZodOptional<z.ZodString>;
528
528
  sensors: z.ZodArray<z.ZodObject<{
@@ -540,8 +540,8 @@ export declare const PluginDaylightResults: z.ZodObject<{
540
540
  aggregates: z.ZodArray<z.ZodObject<{
541
541
  scope: z.ZodEnum<{
542
542
  storey: "storey";
543
- space: "space";
544
543
  project: "project";
544
+ space: "space";
545
545
  }>;
546
546
  id: z.ZodNullable<z.ZodString>;
547
547
  analysisAreaM2: z.ZodNumber;
@@ -70,8 +70,8 @@ export declare abstract class PluginAnalysisSolarApi {
70
70
  export declare const PluginSolarRunStatus: z.ZodEnum<{
71
71
  complete: "complete";
72
72
  failed: "failed";
73
- running: "running";
74
73
  cancelled: "cancelled";
74
+ running: "running";
75
75
  }>;
76
76
  export type PluginSolarRunStatus = z.infer<typeof PluginSolarRunStatus>;
77
77
  /**
@@ -198,8 +198,8 @@ export declare const PluginSolarSampleGridResult: z.ZodObject<{
198
198
  status: z.ZodEnum<{
199
199
  complete: "complete";
200
200
  failed: "failed";
201
- running: "running";
202
201
  cancelled: "cancelled";
202
+ running: "running";
203
203
  }>;
204
204
  mode: z.ZodEnum<{
205
205
  range: "range";
@@ -9,6 +9,13 @@ import { Vec3Handle } from "../../../handles";
9
9
  * canvas view menu and the 2D/3D toggle. Like {@linkcode PluginZoomApi}, these
10
10
  * are transient VIEW-STATE changes: they are not model edits, so they are not
11
11
  * write-gated and are not undoable. Accessed via `snaptrude.core.camera`.
12
+ *
13
+ * Read and set the full camera pose (`getPose`/`setPose`), walk and turn it the
14
+ * way the arrow keys do (`move`/`rotate`), and read or change the arrow-key
15
+ * navigation settings (`getNavigationSettings`/`updateNavigationSettings`).
16
+ * Positions are world coordinates in internal `babylon` units (1 unit =
17
+ * 0.254 m, Y up); yaw is degrees clockwise from +z seen from above, pitch is
18
+ * degrees above level.
12
19
  */
13
20
  export declare abstract class PluginCameraApi {
14
21
  constructor();
@@ -168,6 +175,162 @@ export declare abstract class PluginCameraApi {
168
175
  * ```
169
176
  */
170
177
  abstract zoomSelection(): PluginApiReturn<boolean>;
178
+ /**
179
+ * Read where the camera is and where it looks: the eye and target positions
180
+ * (world coordinates, internal `babylon` units), the view direction as yaw
181
+ * and pitch, the vertical field of view, the projection and the 2D/3D mode.
182
+ * Paired with {@linkcode PluginCameraApi.setPose}.
183
+ *
184
+ * @returns The current {@linkcode PluginCameraPose}.
185
+ * @throws PRECONDITION_FAILED when there is no active camera.
186
+ *
187
+ * @examplePrompt Where is the camera right now?
188
+ * @examplePrompt Remember this viewpoint so we can come back to it
189
+ * @examplePrompt Which way is the camera facing?
190
+ * @examplePrompt How high above the ground is the camera?
191
+ *
192
+ * # Example
193
+ * ```ts
194
+ * const pose = await snaptrude.core.camera.getPose()
195
+ * console.log(pose.eye, pose.yawInDegrees, pose.pitchInDegrees)
196
+ * ```
197
+ */
198
+ abstract getPose(): PluginApiReturn<PluginCameraPose>;
199
+ /**
200
+ * Place the camera, optionally easing there over `options.durationInSeconds`,
201
+ * and resolve once the new view has been drawn, so a capture that follows sees
202
+ * it without a fixed wait. `pose` is one of:
203
+ *
204
+ * - `{ eye, target }`: stand at `eye` looking at `target`, as
205
+ * {@linkcode PluginCameraApi.lookFrom} does with handles;
206
+ * - `{ eye, yawInDegrees, pitchInDegrees }`: stand at `eye` looking along a
207
+ * direction;
208
+ * - `{ standAt, yawInDegrees? }`: stand on the floor, stair, terrain or
209
+ * ground at or below `standAt`, at the user's eye height above it (the `I`
210
+ * key), facing `yawInDegrees` (the current yaw when omitted).
211
+ *
212
+ * Stops a playing walkthrough and switches from 2D plan view to 3D first.
213
+ * View-state only: not write-gated, not undoable.
214
+ *
215
+ * @param pose - Where to put the camera ({@linkcode PluginCameraPoseInput})
216
+ * @param options - `durationInSeconds`: ease over this long (0 to 10, default 0 jumps)
217
+ * @returns The camera's {@linkcode PluginCameraPose} once it has arrived.
218
+ * @throws PRECONDITION_FAILED when there is no active camera, while a
219
+ * walkthrough export is recording, or when `standAt` lies below the ground
220
+ * with nothing under it. VALIDATION when `eye` and `target` coincide or a
221
+ * pitch is beyond ±89°.
222
+ *
223
+ * @examplePrompt Stand in the living room at eye level facing the window
224
+ * @examplePrompt Move the camera to (40, 12, 30) looking at the entrance
225
+ * @examplePrompt Fly the camera smoothly over to the courtyard
226
+ * @examplePrompt Put me back at the viewpoint we saved earlier
227
+ *
228
+ * # Example
229
+ * ```ts
230
+ * const { camera } = snaptrude.core
231
+ * await camera.setPose({ standAt: { x: 20, y: 0, z: 35 }, yawInDegrees: 90 })
232
+ * await camera.setPose(
233
+ * { eye: { x: 60, y: 25, z: 60 }, target: { x: 0, y: 5, z: 0 } },
234
+ * { durationInSeconds: 1.5 },
235
+ * )
236
+ * ```
237
+ */
238
+ abstract setPose(pose: PluginCameraPoseInput, options?: PluginCameraSetPoseOptions): PluginApiReturn<PluginCameraPose>;
239
+ /**
240
+ * Walk or fly the camera by a displacement in its own frame: `forward` along
241
+ * the level view direction, `right` to its side and `up` vertically, in
242
+ * internal `babylon` units. The view direction does not change. With
243
+ * `options.followsFloor` the camera keeps its height above the floor as it
244
+ * goes, climbing and descending stairs and ramps the way the arrow keys do.
245
+ * Stops a playing walkthrough and switches from 2D plan view to 3D first.
246
+ * View-state only: not write-gated, not undoable.
247
+ *
248
+ * @param displacement - {@linkcode PluginCameraMoveDisplacement}; omitted components are 0
249
+ * @param options - `followsFloor` (default `false`) and `durationInSeconds` (0 to 10, default 0)
250
+ * @returns The camera's {@linkcode PluginCameraPose} after the move.
251
+ * @throws PRECONDITION_FAILED when there is no active camera, or while a
252
+ * walkthrough export is recording.
253
+ *
254
+ * @examplePrompt Walk forward 3 metres
255
+ * @examplePrompt Step to the right a little
256
+ * @examplePrompt Walk up the stairs ahead
257
+ * @examplePrompt Raise the camera by 2 metres
258
+ *
259
+ * # Example
260
+ * ```ts
261
+ * const metre = 1 / 0.254
262
+ * await snaptrude.core.camera.move(
263
+ * { forward: 3 * metre },
264
+ * { followsFloor: true, durationInSeconds: 2 },
265
+ * )
266
+ * ```
267
+ */
268
+ abstract move(displacement: PluginCameraMoveDisplacement, options?: PluginCameraMoveOptions): PluginApiReturn<PluginCameraPose>;
269
+ /**
270
+ * Turn the camera in place by signed angles: `yawInDegrees` to the right
271
+ * (clockwise seen from above) and `pitchInDegrees` up. The eye does not move;
272
+ * the resulting pitch is kept within ±89°. Stops a playing walkthrough and
273
+ * switches from 2D plan view to 3D first. View-state only: not write-gated,
274
+ * not undoable.
275
+ *
276
+ * @param yawInDegrees - Turn to the right by this much (negative turns left)
277
+ * @param pitchInDegrees - Tilt up by this much (negative tilts down; default 0)
278
+ * @param options - `durationInSeconds` (0 to 10, default 0)
279
+ * @returns The camera's {@linkcode PluginCameraPose} after turning.
280
+ * @throws PRECONDITION_FAILED when there is no active camera, or while a
281
+ * walkthrough export is recording.
282
+ *
283
+ * @examplePrompt Turn around
284
+ * @examplePrompt Look 45 degrees to the left
285
+ * @examplePrompt Tilt the camera down a bit
286
+ *
287
+ * # Example
288
+ * ```ts
289
+ * await snaptrude.core.camera.rotate(180, 0, { durationInSeconds: 1 })
290
+ * ```
291
+ */
292
+ abstract rotate(yawInDegrees: number, pitchInDegrees?: number, options?: PluginCameraRotateOptions): PluginApiReturn<PluginCameraPose>;
293
+ /**
294
+ * Read the arrow-key navigation settings: whether the arrow keys walk the
295
+ * camera, the eye height used by `setPose`'s `standAt` and by walkthroughs
296
+ * that follow the floor, the walking speed, and whether walking stops at
297
+ * walls. Paired with {@linkcode PluginCameraApi.updateNavigationSettings}.
298
+ *
299
+ * @returns The current {@linkcode PluginCameraNavigationSettings}.
300
+ *
301
+ * @examplePrompt Is arrow-key navigation on?
302
+ * @examplePrompt What eye height does the camera use?
303
+ *
304
+ * # Example
305
+ * ```ts
306
+ * const { isKeyboardNavigationEnabled } =
307
+ * await snaptrude.core.camera.getNavigationSettings()
308
+ * ```
309
+ */
310
+ abstract getNavigationSettings(): PluginApiReturn<PluginCameraNavigationSettings>;
311
+ /**
312
+ * Change arrow-key navigation settings; only the fields given change.
313
+ * `isKeyboardNavigationEnabled` is the user's Project Settings switch and is
314
+ * saved on this device; the other settings last for the session.
315
+ * Write-gated: this changes the user's preferences, not just the view.
316
+ *
317
+ * @param patch - The settings to change ({@linkcode PluginCameraNavigationSettingsPatch})
318
+ * @returns The {@linkcode PluginCameraNavigationSettings} after the change.
319
+ * @throws METHOD_NOT_PERMITTED when plugin writes are disabled.
320
+ *
321
+ * @examplePrompt Turn off arrow-key navigation
322
+ * @examplePrompt Use a 1.6 m eye height
323
+ * @examplePrompt Make walking stop at walls
324
+ *
325
+ * # Example
326
+ * ```ts
327
+ * await snaptrude.core.camera.updateNavigationSettings({
328
+ * eyeHeight: 1.6 / 0.254,
329
+ * isCollisionEnabled: true,
330
+ * })
331
+ * ```
332
+ */
333
+ abstract updateNavigationSettings(patch: PluginCameraNavigationSettingsPatch): PluginApiReturn<PluginCameraNavigationSettings>;
171
334
  }
172
335
  /**
173
336
  * A standard camera view: the five orthographic elevations (`top`/`front`/
@@ -258,4 +421,259 @@ export declare const PluginCameraSetProjectionArgs: z.ZodObject<{
258
421
  }>;
259
422
  }, z.core.$strip>;
260
423
  export type PluginCameraSetProjectionArgs = z.infer<typeof PluginCameraSetProjectionArgs>;
424
+ /**
425
+ * The camera's pose — result of {@linkcode PluginCameraApi.getPose},
426
+ * {@linkcode PluginCameraApi.setPose}, {@linkcode PluginCameraApi.move} and
427
+ * {@linkcode PluginCameraApi.rotate}.
428
+ *
429
+ * | Property | Type | Description |
430
+ * |---|---|---|
431
+ * | `eye` | `{ x, y, z }` | Camera position (world, `babylon` units) |
432
+ * | `target` | `{ x, y, z }` | Point the camera looks at |
433
+ * | `yawInDegrees` | `number` | View direction, degrees clockwise from +z seen from above (-180 to 180) |
434
+ * | `pitchInDegrees` | `number` | View direction, degrees above level (negative looks down) |
435
+ * | `fieldOfViewInDegrees` | `number` | Vertical field of view |
436
+ * | `projection` | {@linkcode PluginCameraProjection} | `"perspective"` or `"orthographic"` |
437
+ * | `mode` | {@linkcode PluginCameraMode} | `"2d"` or `"3d"` |
438
+ */
439
+ export declare const PluginCameraPose: z.ZodObject<{
440
+ eye: z.ZodObject<{
441
+ x: z.ZodNumber;
442
+ y: z.ZodNumber;
443
+ z: z.ZodNumber;
444
+ }, z.core.$strip>;
445
+ target: z.ZodObject<{
446
+ x: z.ZodNumber;
447
+ y: z.ZodNumber;
448
+ z: z.ZodNumber;
449
+ }, z.core.$strip>;
450
+ yawInDegrees: z.ZodNumber;
451
+ pitchInDegrees: z.ZodNumber;
452
+ fieldOfViewInDegrees: z.ZodNumber;
453
+ projection: z.ZodEnum<{
454
+ perspective: "perspective";
455
+ orthographic: "orthographic";
456
+ }>;
457
+ mode: z.ZodEnum<{
458
+ "2d": "2d";
459
+ "3d": "3d";
460
+ }>;
461
+ }, z.core.$strip>;
462
+ export type PluginCameraPose = z.infer<typeof PluginCameraPose>;
463
+ /**
464
+ * Where {@linkcode PluginCameraApi.setPose} puts the camera — exactly one of:
465
+ *
466
+ * | Shape | Meaning |
467
+ * |---|---|
468
+ * | `{ eye, target }` | Stand at `eye` looking at `target` |
469
+ * | `{ eye, yawInDegrees, pitchInDegrees }` | Stand at `eye` looking along a direction (pitch within ±89°) |
470
+ * | `{ standAt, yawInDegrees? }` | Stand at eye height on the floor, stair, terrain or ground at or below `standAt`, facing `yawInDegrees` (default: current yaw) |
471
+ *
472
+ * Points are plain `{ x, y, z }` world coordinates in `babylon` units.
473
+ */
474
+ export declare const PluginCameraPoseInput: z.ZodUnion<readonly [z.ZodObject<{
475
+ eye: z.ZodObject<{
476
+ x: z.ZodNumber;
477
+ y: z.ZodNumber;
478
+ z: z.ZodNumber;
479
+ }, z.core.$strip>;
480
+ target: z.ZodObject<{
481
+ x: z.ZodNumber;
482
+ y: z.ZodNumber;
483
+ z: z.ZodNumber;
484
+ }, z.core.$strip>;
485
+ }, z.core.$strict>, z.ZodObject<{
486
+ eye: z.ZodObject<{
487
+ x: z.ZodNumber;
488
+ y: z.ZodNumber;
489
+ z: z.ZodNumber;
490
+ }, z.core.$strip>;
491
+ yawInDegrees: z.ZodNumber;
492
+ pitchInDegrees: z.ZodNumber;
493
+ }, z.core.$strict>, z.ZodObject<{
494
+ standAt: z.ZodObject<{
495
+ x: z.ZodNumber;
496
+ y: z.ZodNumber;
497
+ z: z.ZodNumber;
498
+ }, z.core.$strip>;
499
+ yawInDegrees: z.ZodOptional<z.ZodNumber>;
500
+ }, z.core.$strict>]>;
501
+ export type PluginCameraPoseInput = z.infer<typeof PluginCameraPoseInput>;
502
+ /**
503
+ * Options for {@linkcode PluginCameraApi.setPose}.
504
+ *
505
+ * | Property | Type | Description |
506
+ * |---|---|---|
507
+ * | `durationInSeconds` | `number \| undefined` | Ease to the pose over this long (0 to 10; default 0 jumps) |
508
+ */
509
+ export declare const PluginCameraSetPoseOptions: z.ZodObject<{
510
+ durationInSeconds: z.ZodOptional<z.ZodNumber>;
511
+ }, z.core.$strict>;
512
+ export type PluginCameraSetPoseOptions = z.infer<typeof PluginCameraSetPoseOptions>;
513
+ /**
514
+ * Arguments for {@linkcode PluginCameraApi.setPose}.
515
+ */
516
+ export declare const PluginCameraSetPoseArgs: z.ZodObject<{
517
+ pose: z.ZodUnion<readonly [z.ZodObject<{
518
+ eye: z.ZodObject<{
519
+ x: z.ZodNumber;
520
+ y: z.ZodNumber;
521
+ z: z.ZodNumber;
522
+ }, z.core.$strip>;
523
+ target: z.ZodObject<{
524
+ x: z.ZodNumber;
525
+ y: z.ZodNumber;
526
+ z: z.ZodNumber;
527
+ }, z.core.$strip>;
528
+ }, z.core.$strict>, z.ZodObject<{
529
+ eye: z.ZodObject<{
530
+ x: z.ZodNumber;
531
+ y: z.ZodNumber;
532
+ z: z.ZodNumber;
533
+ }, z.core.$strip>;
534
+ yawInDegrees: z.ZodNumber;
535
+ pitchInDegrees: z.ZodNumber;
536
+ }, z.core.$strict>, z.ZodObject<{
537
+ standAt: z.ZodObject<{
538
+ x: z.ZodNumber;
539
+ y: z.ZodNumber;
540
+ z: z.ZodNumber;
541
+ }, z.core.$strip>;
542
+ yawInDegrees: z.ZodOptional<z.ZodNumber>;
543
+ }, z.core.$strict>]>;
544
+ options: z.ZodOptional<z.ZodObject<{
545
+ durationInSeconds: z.ZodOptional<z.ZodNumber>;
546
+ }, z.core.$strict>>;
547
+ }, z.core.$strip>;
548
+ export type PluginCameraSetPoseArgs = z.infer<typeof PluginCameraSetPoseArgs>;
549
+ /**
550
+ * A displacement in the camera's own frame, for {@linkcode PluginCameraApi.move}
551
+ * (`babylon` units; omitted components are 0).
552
+ *
553
+ * | Property | Type | Description |
554
+ * |---|---|---|
555
+ * | `forward` | `number \| undefined` | Along the level view direction (negative walks back) |
556
+ * | `right` | `number \| undefined` | To the camera's right (negative steps left) |
557
+ * | `up` | `number \| undefined` | Vertically (negative descends) |
558
+ */
559
+ export declare const PluginCameraMoveDisplacement: z.ZodObject<{
560
+ forward: z.ZodOptional<z.ZodNumber>;
561
+ right: z.ZodOptional<z.ZodNumber>;
562
+ up: z.ZodOptional<z.ZodNumber>;
563
+ }, z.core.$strict>;
564
+ export type PluginCameraMoveDisplacement = z.infer<typeof PluginCameraMoveDisplacement>;
565
+ /**
566
+ * Options for {@linkcode PluginCameraApi.move}.
567
+ *
568
+ * | Property | Type | Description |
569
+ * |---|---|---|
570
+ * | `followsFloor` | `boolean \| undefined` | Keep the height above the floor, climbing stairs and ramps (default `false`) |
571
+ * | `durationInSeconds` | `number \| undefined` | Walk over this long (0 to 10; default 0 jumps) |
572
+ */
573
+ export declare const PluginCameraMoveOptions: z.ZodObject<{
574
+ followsFloor: z.ZodOptional<z.ZodBoolean>;
575
+ durationInSeconds: z.ZodOptional<z.ZodNumber>;
576
+ }, z.core.$strict>;
577
+ export type PluginCameraMoveOptions = z.infer<typeof PluginCameraMoveOptions>;
578
+ /**
579
+ * Arguments for {@linkcode PluginCameraApi.move}.
580
+ */
581
+ export declare const PluginCameraMoveArgs: z.ZodObject<{
582
+ displacement: z.ZodObject<{
583
+ forward: z.ZodOptional<z.ZodNumber>;
584
+ right: z.ZodOptional<z.ZodNumber>;
585
+ up: z.ZodOptional<z.ZodNumber>;
586
+ }, z.core.$strict>;
587
+ options: z.ZodOptional<z.ZodObject<{
588
+ followsFloor: z.ZodOptional<z.ZodBoolean>;
589
+ durationInSeconds: z.ZodOptional<z.ZodNumber>;
590
+ }, z.core.$strict>>;
591
+ }, z.core.$strip>;
592
+ export type PluginCameraMoveArgs = z.infer<typeof PluginCameraMoveArgs>;
593
+ /**
594
+ * Options for {@linkcode PluginCameraApi.rotate}.
595
+ *
596
+ * | Property | Type | Description |
597
+ * |---|---|---|
598
+ * | `durationInSeconds` | `number \| undefined` | Turn over this long (0 to 10; default 0 jumps) |
599
+ */
600
+ export declare const PluginCameraRotateOptions: z.ZodObject<{
601
+ durationInSeconds: z.ZodOptional<z.ZodNumber>;
602
+ }, z.core.$strict>;
603
+ export type PluginCameraRotateOptions = z.infer<typeof PluginCameraRotateOptions>;
604
+ /**
605
+ * Arguments for {@linkcode PluginCameraApi.rotate}.
606
+ */
607
+ export declare const PluginCameraRotateArgs: z.ZodObject<{
608
+ yawInDegrees: z.ZodNumber;
609
+ pitchInDegrees: z.ZodOptional<z.ZodNumber>;
610
+ options: z.ZodOptional<z.ZodObject<{
611
+ durationInSeconds: z.ZodOptional<z.ZodNumber>;
612
+ }, z.core.$strict>>;
613
+ }, z.core.$strip>;
614
+ export type PluginCameraRotateArgs = z.infer<typeof PluginCameraRotateArgs>;
615
+ /**
616
+ * How fast the arrow keys walk: the Slow / Normal / Fast navigation setting.
617
+ */
618
+ export declare const PluginCameraWalkSpeed: z.ZodEnum<{
619
+ normal: "normal";
620
+ slow: "slow";
621
+ fast: "fast";
622
+ }>;
623
+ export type PluginCameraWalkSpeed = z.infer<typeof PluginCameraWalkSpeed>;
624
+ /**
625
+ * The arrow-key navigation settings — result of
626
+ * {@linkcode PluginCameraApi.getNavigationSettings} and
627
+ * {@linkcode PluginCameraApi.updateNavigationSettings}.
628
+ *
629
+ * | Property | Type | Description |
630
+ * |---|---|---|
631
+ * | `isKeyboardNavigationEnabled` | `boolean` | Whether the arrow keys walk the camera (Project Settings) |
632
+ * | `eyeHeight` | `number` | Eye height above the floor, `babylon` units |
633
+ * | `walkSpeed` | {@linkcode PluginCameraWalkSpeed} | Arrow-key walking speed |
634
+ * | `isCollisionEnabled` | `boolean` | Whether walking stops at walls |
635
+ */
636
+ export declare const PluginCameraNavigationSettings: z.ZodObject<{
637
+ isKeyboardNavigationEnabled: z.ZodBoolean;
638
+ eyeHeight: z.ZodNumber;
639
+ walkSpeed: z.ZodEnum<{
640
+ normal: "normal";
641
+ slow: "slow";
642
+ fast: "fast";
643
+ }>;
644
+ isCollisionEnabled: z.ZodBoolean;
645
+ }, z.core.$strip>;
646
+ export type PluginCameraNavigationSettings = z.infer<typeof PluginCameraNavigationSettings>;
647
+ /**
648
+ * The settings to change in {@linkcode PluginCameraApi.updateNavigationSettings};
649
+ * omitted fields keep their value. `eyeHeight` is in `babylon` units, between
650
+ * 0.8 m and 2.5 m (3.15 to 9.84 units).
651
+ */
652
+ export declare const PluginCameraNavigationSettingsPatch: z.ZodObject<{
653
+ isKeyboardNavigationEnabled: z.ZodOptional<z.ZodBoolean>;
654
+ eyeHeight: z.ZodOptional<z.ZodNumber>;
655
+ walkSpeed: z.ZodOptional<z.ZodEnum<{
656
+ normal: "normal";
657
+ slow: "slow";
658
+ fast: "fast";
659
+ }>>;
660
+ isCollisionEnabled: z.ZodOptional<z.ZodBoolean>;
661
+ }, z.core.$strict>;
662
+ export type PluginCameraNavigationSettingsPatch = z.infer<typeof PluginCameraNavigationSettingsPatch>;
663
+ /**
664
+ * Arguments for {@linkcode PluginCameraApi.updateNavigationSettings}.
665
+ */
666
+ export declare const PluginCameraUpdateNavigationSettingsArgs: z.ZodObject<{
667
+ patch: z.ZodObject<{
668
+ isKeyboardNavigationEnabled: z.ZodOptional<z.ZodBoolean>;
669
+ eyeHeight: z.ZodOptional<z.ZodNumber>;
670
+ walkSpeed: z.ZodOptional<z.ZodEnum<{
671
+ normal: "normal";
672
+ slow: "slow";
673
+ fast: "fast";
674
+ }>>;
675
+ isCollisionEnabled: z.ZodOptional<z.ZodBoolean>;
676
+ }, z.core.$strict>;
677
+ }, z.core.$strip>;
678
+ export type PluginCameraUpdateNavigationSettingsArgs = z.infer<typeof PluginCameraUpdateNavigationSettingsArgs>;
261
679
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/camera/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAE7C;;;;;;;;GAQG;AACH,8BAAsB,eAAe;;IAGnC;;;;;;;;;;;;;;;;;;OAkBG;aACa,QAAQ,CACtB,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,UAAU,GACjB,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;OAmBG;aACa,eAAe,CAC7B,IAAI,EAAE,kBAAkB,GACvB,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;OAcG;aACa,OAAO,IAAI,eAAe,CAAC,gBAAgB,CAAC;IAE5D;;;;;;;;;;;;;;;;;OAiBG;aACa,OAAO,CAAC,IAAI,EAAE,gBAAgB,GAAG,eAAe,CAAC,OAAO,CAAC;IAEzE;;;;;;;;;;;;;;;;OAgBG;aACa,aAAa,IAAI,eAAe,CAAC,sBAAsB,CAAC;IAExE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;aACa,aAAa,CAC3B,UAAU,EAAE,sBAAsB,GACjC,eAAe,CAAC,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;OAgBG;aACa,WAAW,IAAI,eAAe,CAAC,OAAO,CAAC;IAEvD;;;;;;;;;;;;;;;;;OAiBG;aACa,aAAa,IAAI,eAAe,CAAC,OAAO,CAAC;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;EAO7B,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;EAAuB,CAAA;AACpD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAE/D;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;EAA0C,CAAA;AAC7E,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAE3E;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB;;;iBAGnC,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAE/E;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;iBAE1C,CAAA;AACF,MAAM,MAAM,+BAA+B,GAAG,CAAC,CAAC,KAAK,CACnD,OAAO,+BAA+B,CACvC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;;;;;iBAElC,CAAA;AACF,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B;;;;;iBAExC,CAAA;AACF,MAAM,MAAM,6BAA6B,GAAG,CAAC,CAAC,KAAK,CACjD,OAAO,6BAA6B,CACrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/core/camera/index.ts"],"names":[],"mappings":"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"}
@@ -30,8 +30,8 @@ import { PluginUserApi } from "./user";
30
30
  * - {@linkcode PluginCoreApi.comment} — Comments: create, edit, resolve, tag, list
31
31
  * - {@linkcode PluginCoreApi.groups} — Read & edit the group hierarchy
32
32
  * - {@linkcode PluginCoreApi.buildings} — Read & edit buildings and their storeys
33
- * - {@linkcode PluginCoreApi.storeys} — Create, read & edit storeys (floors)
34
- * - {@linkcode PluginCoreApi.layers} — Read & toggle storey drawing/reference layers
33
+ * - {@linkcode PluginCoreApi.storeys} — Create, read & edit storeys (floors); `storeys.layers` reads & toggles each storey's sketch surfaces and underlays
34
+ * - {@linkcode PluginCoreApi.layers} — The Layers panel in the left sidebar: list, create, rename, lock, hide, activate, delete, move objects between layers
35
35
  * - {@linkcode PluginCoreApi.tags} — Tag catalog + assignment
36
36
  * - {@linkcode PluginCoreApi.io} — Import files (image/pdf/cad/model/terrain), poll jobs, manage underlays
37
37
  * - {@linkcode PluginCoreApi.handles} — Handle lifecycle: release, releaseAll, scopes
@@ -60,11 +60,11 @@ export declare abstract class PluginCoreApi {
60
60
  abstract groups: PluginCoreGroupsApi;
61
61
  /** Buildings — read & edit buildings and their storeys. See {@linkcode PluginCoreBuildingsApi}. */
62
62
  abstract buildings: PluginCoreBuildingsApi;
63
- /** Storeys — create, read & edit storeys (floors). See {@linkcode PluginCoreStoreysApi}. */
63
+ /** Storeys — create, read & edit storeys (floors), plus each storey's sketch surfaces and underlays (`storeys.layers`). See {@linkcode PluginCoreStoreysApi}. */
64
64
  abstract storeys: PluginCoreStoreysApi;
65
65
  /** Application mode — read & switch the editor's top-bar mode. See {@linkcode PluginCoreModeApi}. */
66
66
  abstract mode: PluginCoreModeApi;
67
- /** Layers — read & toggle storey drawing/reference layers. See {@linkcode PluginCoreLayersApi}. */
67
+ /** Layers — the Layers panel's layers: list, create, rename, lock, hide, activate, delete, assign objects. See {@linkcode PluginCoreLayersApi}. */
68
68
  abstract layers: PluginCoreLayersApi;
69
69
  /** Tags — tag catalog + assignment. See {@linkcode PluginCoreTagsApi}. */
70
70
  abstract tags: PluginCoreTagsApi;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/core/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/api/core/index.ts"],"names":[],"mappings":"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"}