@fps-games/editor 0.1.4-beta.2 → 0.1.4-beta.4

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 (64) hide show
  1. package/dist/local-editor-harness.d.ts +46 -6
  2. package/dist/local-editor-harness.d.ts.map +1 -1
  3. package/dist/local-editor-harness.js +254 -23
  4. package/dist/local-editor-harness.js.map +1 -1
  5. package/dist/playable-babylon-facade.d.ts +1 -1
  6. package/dist/playable-babylon-facade.d.ts.map +1 -1
  7. package/dist/playable-babylon-facade.js.map +1 -1
  8. package/dist/playable-babylon-rendering.d.ts +57 -1
  9. package/dist/playable-babylon-rendering.d.ts.map +1 -1
  10. package/dist/playable-babylon-rendering.js +211 -9
  11. package/dist/playable-babylon-rendering.js.map +1 -1
  12. package/dist/playable-local-editor-host.d.ts +15 -1
  13. package/dist/playable-local-editor-host.d.ts.map +1 -1
  14. package/dist/playable-local-editor-host.js +5 -2
  15. package/dist/playable-local-editor-host.js.map +1 -1
  16. package/dist/playable-sdk.d.ts +5 -4
  17. package/dist/playable-sdk.d.ts.map +1 -1
  18. package/dist/playable-sdk.js +1 -1
  19. package/dist/playable-sdk.js.map +1 -1
  20. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js +2 -0
  21. package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
  22. package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
  23. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +25 -2
  24. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  25. package/node_modules/@fps-games/editor-babylon/dist/projection.js +89 -9
  26. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  27. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +2 -2
  28. package/node_modules/@fps-games/editor-babylon/package.json +5 -5
  29. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  30. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +36 -3
  31. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  32. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  33. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +148 -0
  34. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  35. package/node_modules/@fps-games/editor-browser/package.json +3 -3
  36. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +14 -0
  37. package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
  38. package/node_modules/@fps-games/editor-core/dist/editor-session.js +54 -0
  39. package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
  40. package/node_modules/@fps-games/editor-core/package.json +2 -2
  41. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +25 -0
  42. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +1 -1
  43. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +56 -9
  44. package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
  45. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  46. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
  47. package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
  48. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +33 -0
  49. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.map +1 -1
  50. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +8 -1
  51. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
  52. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +85 -0
  53. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
  54. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -2
  55. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
  56. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js +1 -1
  57. package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
  58. package/node_modules/@fps-games/editor-playable-sdk/package.json +3 -3
  59. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +2 -0
  60. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  61. package/node_modules/@fps-games/editor-protocol/dist/index.js +2 -0
  62. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  63. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  64. package/package.json +8 -8
@@ -1,8 +1,8 @@
1
- import { type AuthoringCommandResult, type AuthoringSourceDescriptor, type DocumentCommand, type EditorPlacementHit, type EditorTransformBatchCommit, type EditorTransformCanonicalConstraint, type EditorTransformDocumentCapabilities, type EditorTransformSnapshot, type EditorTransformSpace, type EditorTransformTool, type EditorViewportGroundMeasurement, type EditorViewportToolState, type SceneGraphCreateGroupIntent, type SceneGraphCreatePrimitiveIntent, type SceneGraphDeleteIntent, type SceneGraphDropIntent, type SceneGraphGroupSelectionIntent, type SceneGraphMoveIntent, type SceneGraphRenameIntent, type SceneGraphValidationResult, type SerializedMultiObject, type SerializedObject, type InspectorControlKind, type InspectorCommitMode, type InspectorComponentRegistration, type InspectorEditPayload, type InspectorObject, type InspectorPersistenceMode, type InspectorProperty, type InspectorRegistry, type InspectorRegistryConflictStrategy, type InspectorSection, type InspectorSelectionContext, type EditorHostServices, type ProjectAuthoringHost } from '@fps-games/editor-core';
1
+ import { type AuthoringCommandResult, type AuthoringSourceDescriptor, type DocumentCommand, type EditorPlacementHit, type EditorProjectionImpact, type EditorTransformBatchCommit, type EditorTransformCanonicalConstraint, type EditorTransformDocumentCapabilities, type EditorTransformSnapshot, type EditorTransformSpace, type EditorTransformTool, type EditorViewportGroundMeasurement, type EditorViewportToolState, type SceneGraphCreateGroupIntent, type SceneGraphCreatePrimitiveIntent, type SceneGraphDeleteIntent, type SceneGraphDropIntent, type SceneGraphGroupSelectionIntent, type SceneGraphMoveIntent, type SceneGraphRenameIntent, type SceneGraphValidationResult, type SerializedMultiObject, type SerializedObject, type InspectorControlKind, type InspectorCommitMode, type InspectorComponentRegistration, type InspectorEditPayload, type InspectorObject, type InspectorPersistenceMode, type InspectorProperty, type InspectorRegistry, type InspectorRegistryConflictStrategy, type InspectorSection, type InspectorSelectionContext, type EditorHostServices, type ProjectAuthoringHost } from '@fps-games/editor-core';
2
2
  import type { ArtistMaterialTextureRef } from '@fps-games/editor-protocol';
3
3
  import { type LocalEditorBrowserAssetActionInput, type LocalEditorBrowserUiAssetItem, type LocalEditorBrowserHierarchyContextActionContext, type LocalEditorBrowserHierarchyContextActionRegistration, type LocalEditorBrowserInspectorOptions, type LocalEditorBrowserRenderingPanelState, type LocalEditorBrowserRenderingActionInput, type LocalEditorBrowserRenderingPropertyChangeInput, type LocalEditorBrowserUiHierarchyItem, type LocalEditorBrowserUiState, type LocalEditorThemeController, type LocalEditorThemeName } from '@fps-games/editor-browser';
4
4
  import { type BabylonEnvironmentTextureProfile, type BabylonDefaultPostProcessProfile } from '@fps-games/babylon-renderer';
5
- import { type BabylonSceneViewMeasurementController, type BabylonEditorShadowPreviewOptions, type BabylonEditorProjectionImportContext, type BabylonEditorProjectionImportResult, type BabylonEditorProjectionNode, type BabylonSceneCameraPreviewRig, type BabylonEditorGridController, type BabylonEditorGridColorOptions, type BabylonEditorWorldAppearanceOptions, type BabylonEditorSkyOptions, type BabylonRuntimeGlobal } from '@fps-games/editor-babylon';
5
+ import { type BabylonEditorProjectionBatchStatus, type BabylonSceneViewMeasurementController, type BabylonEditorShadowPreviewOptions, type BabylonEditorProjectionImportContext, type BabylonEditorProjectionImportResult, type BabylonEditorProjectionNode, type BabylonSceneCameraPreviewRig, type BabylonEditorGridController, type BabylonEditorGridColorOptions, type BabylonEditorWorldAppearanceOptions, type BabylonEditorSkyOptions, type BabylonRuntimeGlobal } from '@fps-games/editor-babylon';
6
6
  export type LocalEditorHarnessMode = 'game' | 'editor';
7
7
  type LocalEditorMaybePromise<T> = T | Promise<T>;
8
8
  export interface LocalEditorAuthoringFailureStatus {
@@ -166,16 +166,19 @@ export interface LocalEditorHarnessPatchResult<TPatch> {
166
166
  createdId?: string | null;
167
167
  changedIds?: string[];
168
168
  reprojectIds?: string[];
169
+ projectionImpact?: EditorProjectionImpact;
169
170
  }
170
171
  export interface LocalEditorHarnessSceneGraphRenamePatch<TPatch> {
171
172
  patch: TPatch;
172
173
  label?: string;
173
174
  changedId?: string;
175
+ projectionImpact?: EditorProjectionImpact;
174
176
  }
175
177
  export interface LocalEditorHarnessSceneGraphCreateGroupPatch<TPatch> {
176
178
  patch: TPatch;
177
179
  label?: string;
178
180
  createdId: string;
181
+ projectionImpact?: EditorProjectionImpact;
179
182
  }
180
183
  export interface LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> {
181
184
  patch: TPatch;
@@ -183,28 +186,33 @@ export interface LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> {
183
186
  createdId: string;
184
187
  changedIds?: string[];
185
188
  reprojectIds?: string[];
189
+ projectionImpact?: EditorProjectionImpact;
186
190
  }
187
191
  export interface LocalEditorHarnessSceneGraphDeletePatch<TPatch> {
188
192
  patch: TPatch;
189
193
  label?: string;
190
194
  deletedIds?: string[];
191
195
  fallbackSelectionId?: string | null;
196
+ projectionImpact?: EditorProjectionImpact;
192
197
  }
193
198
  export interface LocalEditorHarnessSceneGraphDropPatch<TPatch> {
194
199
  patch: TPatch;
195
200
  label?: string;
196
201
  changedIds?: string[];
202
+ projectionImpact?: EditorProjectionImpact;
197
203
  }
198
204
  export interface LocalEditorHarnessSceneGraphMovePatch<TPatch> {
199
205
  patch: TPatch;
200
206
  label?: string;
201
207
  changedIds?: string[];
208
+ projectionImpact?: EditorProjectionImpact;
202
209
  }
203
210
  export interface LocalEditorHarnessSceneGraphGroupSelectionPatch<TPatch> {
204
211
  patch: TPatch;
205
212
  label?: string;
206
213
  createdId: string;
207
214
  changedIds?: string[];
215
+ projectionImpact?: EditorProjectionImpact;
208
216
  }
209
217
  export interface LocalEditorHarnessDuplicateSelectionPatch<TPatch> {
210
218
  patch: TPatch;
@@ -213,6 +221,7 @@ export interface LocalEditorHarnessDuplicateSelectionPatch<TPatch> {
213
221
  activeId?: string | null;
214
222
  changedIds?: string[];
215
223
  reprojectIds?: string[];
224
+ projectionImpact?: EditorProjectionImpact;
216
225
  }
217
226
  export interface LocalEditorHarnessPlacedAssetPatch<TPatch> {
218
227
  patch: TPatch;
@@ -220,6 +229,7 @@ export interface LocalEditorHarnessPlacedAssetPatch<TPatch> {
220
229
  createdId?: string | null;
221
230
  changedIds?: string[];
222
231
  reprojectIds?: string[];
232
+ projectionImpact?: EditorProjectionImpact;
223
233
  }
224
234
  export interface LocalEditorHarnessAssetPatchInput<TDocument, TAsset = LocalEditorHarnessAssetItem> {
225
235
  document: TDocument;
@@ -244,6 +254,37 @@ export interface LocalEditorHarnessAssetCreationResult {
244
254
  export interface LocalEditorHarnessAssetCreationOptions {
245
255
  placement?: EditorTransformSnapshot;
246
256
  }
257
+ export type LocalEditorHarnessOperationOrigin = 'user' | 'agent' | 'system';
258
+ export type LocalEditorHarnessProjectionWaitPolicy = 'none' | 'settled';
259
+ export type LocalEditorHarnessHistoryOperation = 'undo' | 'redo';
260
+ export type LocalEditorHarnessProjectionImpact = EditorProjectionImpact;
261
+ export interface LocalEditorHarnessHistoryOperationOptions {
262
+ origin?: LocalEditorHarnessOperationOrigin;
263
+ waitForProjection?: LocalEditorHarnessProjectionWaitPolicy;
264
+ }
265
+ export interface LocalEditorHarnessHistoryProjectionResult {
266
+ waitPolicy: LocalEditorHarnessProjectionWaitPolicy;
267
+ idle: boolean;
268
+ activeBatchIds: number[];
269
+ lastBatch: BabylonEditorProjectionBatchStatus | null;
270
+ }
271
+ export interface LocalEditorHarnessHistoryStateResult {
272
+ canUndo: boolean;
273
+ canRedo: boolean;
274
+ }
275
+ export interface LocalEditorHarnessHistoryOperationResult<TDocument = unknown> {
276
+ ok: boolean;
277
+ operation: LocalEditorHarnessHistoryOperation;
278
+ origin: LocalEditorHarnessOperationOrigin;
279
+ waitForProjection: LocalEditorHarnessProjectionWaitPolicy;
280
+ documentChanged: boolean;
281
+ transactionLabel: string | null;
282
+ workingDocument: TDocument | null;
283
+ dirty: boolean;
284
+ history: LocalEditorHarnessHistoryStateResult;
285
+ status: string;
286
+ projection: LocalEditorHarnessHistoryProjectionResult;
287
+ }
247
288
  export interface LocalEditorHarnessAssetActionPatchInput<TDocument, TAsset = LocalEditorHarnessAssetItem> extends LocalEditorBrowserAssetActionInput {
248
289
  document: TDocument;
249
290
  asset: TAsset | null;
@@ -272,10 +313,7 @@ export interface LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset = L
272
313
  onRenderingPropertyChange?(input: LocalEditorHarnessRenderingPropertyInput<TDocument>): LocalEditorMaybePromise<boolean | void | LocalEditorHarnessRenderingPropertyChangeResult>;
273
314
  isSelectable?(document: TDocument, id: string): boolean;
274
315
  isLocked?(document: TDocument, id: string): boolean;
275
- createPatchFromAsset(asset: TAsset, input?: LocalEditorHarnessAssetPatchInput<TDocument, TAsset>): {
276
- patch: TPatch;
277
- label?: string;
278
- };
316
+ createPatchFromAsset(asset: TAsset, input?: LocalEditorHarnessAssetPatchInput<TDocument, TAsset>): LocalEditorHarnessPatchResult<TPatch>;
279
317
  createAssetActionPatch?(input: LocalEditorHarnessAssetActionPatchInput<TDocument, TAsset>): LocalEditorHarnessPatchResult<TPatch> | null;
280
318
  createPlacedAssetPatch?(input: LocalEditorHarnessPlacedAssetInput<TDocument, TAsset>): LocalEditorHarnessPlacedAssetPatch<TPatch> | null;
281
319
  findCreatedId?(beforeDocument: TDocument, afterDocument: TDocument): string | null;
@@ -392,6 +430,8 @@ export interface LocalEditorHarness<TDocument = unknown> {
392
430
  getWorkingDocument(): TDocument | null;
393
431
  reloadAssets(): Promise<LocalEditorHarnessAssetReloadResult>;
394
432
  createAssetFromAssetId(assetId: string, options?: LocalEditorHarnessAssetCreationOptions): LocalEditorHarnessAssetCreationResult;
433
+ undo(options?: LocalEditorHarnessHistoryOperationOptions): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>>;
434
+ redo(options?: LocalEditorHarnessHistoryOperationOptions): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>>;
395
435
  enterEditor(): Promise<void>;
396
436
  saveScene(): Promise<boolean>;
397
437
  saveAndRunGame(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"local-editor-harness.d.ts","sourceRoot":"","sources":["../src/local-editor-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-editor-harness.d.ts","sourceRoot":"","sources":["../src/local-editor-harness.ts"],"names":[],"mappings":"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"}
@@ -87,12 +87,10 @@ export function createLocalEditorHarness(options) {
87
87
  void runExclusive(state, harness.render, () => harness.discardAndRunGame());
88
88
  },
89
89
  onUndo: () => {
90
- if (undoSessionChange(state, options))
91
- harness.render();
90
+ void harness.undo({ origin: 'user', waitForProjection: 'none' });
92
91
  },
93
92
  onRedo: () => {
94
- if (redoSessionChange(state, options))
95
- harness.render();
93
+ void harness.redo({ origin: 'user', waitForProjection: 'none' });
96
94
  },
97
95
  onCreateFromAsset: (assetId) => {
98
96
  if (createAssetFromBrowserIntent(state, options, assetId))
@@ -370,6 +368,18 @@ export function createLocalEditorHarness(options) {
370
368
  harness.render();
371
369
  return result;
372
370
  },
371
+ async undo(historyOptions) {
372
+ const result = applyHistoryOperation(state, options, 'undo', historyOptions);
373
+ if (result.ok)
374
+ harness.render();
375
+ return waitForHistoryOperationProjection(state, result);
376
+ },
377
+ async redo(historyOptions) {
378
+ const result = applyHistoryOperation(state, options, 'redo', historyOptions);
379
+ if (result.ok)
380
+ harness.render();
381
+ return waitForHistoryOperationProjection(state, result);
382
+ },
373
383
  async enterEditor() {
374
384
  const loadedSource = options.persistenceAdapter.loadAuthoringSource
375
385
  ? await options.persistenceAdapter.loadAuthoringSource()
@@ -838,11 +848,10 @@ async function createEditorWorld(state, options, renderUi, renderPreviewUi, upda
838
848
  logger: console,
839
849
  onProjectionReady(event) {
840
850
  syncCurrentSelectionToSceneArtifacts(state, `projection-${event.nodeId}-ready-selection`);
851
+ scheduleProjectionShadowPreviewRebuild(state, `projection-${event.nodeId}-ready-shadow`);
841
852
  viewportRenderCoordinator.invalidateScene(`projection-${event.nodeId}-ready`);
842
853
  },
843
854
  onProjectionBatchSettled(event) {
844
- if (event.asyncNodeIds.length === 0)
845
- return;
846
855
  syncCurrentSelectionToSceneArtifacts(state, `projection-batch-${event.batchId}-settled-selection`);
847
856
  scheduleProjectionShadowPreviewRebuild(state, `projection-batch-${event.batchId}-settled`);
848
857
  },
@@ -1410,6 +1419,7 @@ function renameSceneGraphNode(state, options, intent) {
1410
1419
  label: patch.label ?? `Rename ${intent.id}`,
1411
1420
  patch: patch.patch,
1412
1421
  targetId: intent.id,
1422
+ ...withProjectionImpact(patch.projectionImpact),
1413
1423
  });
1414
1424
  if (!result.documentChanged) {
1415
1425
  state.status = `Rename unchanged: ${intent.id}`;
@@ -1435,6 +1445,7 @@ function createSceneGraphGroup(state, options, intent) {
1435
1445
  label: patch.label ?? 'Create Empty',
1436
1446
  patch: patch.patch,
1437
1447
  targetId: patch.createdId ?? undefined,
1448
+ ...withProjectionImpact(resolveProjectionImpact(patch, createCreatedNodeProjectionImpact([patch.createdId]))),
1438
1449
  });
1439
1450
  if (!result.documentChanged) {
1440
1451
  state.status = 'Create empty unchanged';
@@ -1470,6 +1481,10 @@ function createSceneGraphPrimitive(state, options, intent) {
1470
1481
  label: patch.label ?? `Create ${intent.shape}`,
1471
1482
  patch: patch.patch,
1472
1483
  targetId: patch.createdId ?? undefined,
1484
+ ...withProjectionImpact(resolveProjectionImpact(patch, createKnownCreatedReprojectProjectionImpact({
1485
+ createdNodeIds: [patch.createdId],
1486
+ reprojectIds: patch.reprojectIds,
1487
+ }))),
1473
1488
  });
1474
1489
  if (!result.documentChanged) {
1475
1490
  state.status = `Create ${intent.shape} unchanged`;
@@ -1510,6 +1525,9 @@ function deleteSceneGraphNodes(state, options, intent) {
1510
1525
  label: patch.label ?? `Delete ${intent.ids.length} node(s)`,
1511
1526
  patch: patch.patch,
1512
1527
  targetId: intent.activeId ?? undefined,
1528
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.deletedIds
1529
+ ? createDeletedNodeProjectionImpact(patch.deletedIds)
1530
+ : undefined)),
1513
1531
  });
1514
1532
  if (!result.documentChanged) {
1515
1533
  state.status = 'Delete unchanged';
@@ -1558,6 +1576,10 @@ function duplicateSceneGraphNodes(state, options, intent) {
1558
1576
  label: patch.label ?? `Duplicate ${targetIds.length} object(s)`,
1559
1577
  patch: patch.patch,
1560
1578
  targetId: patch.activeId ?? patch.createdIds[patch.createdIds.length - 1] ?? undefined,
1579
+ ...withProjectionImpact(resolveProjectionImpact(patch, createCreatedReprojectProjectionImpact({
1580
+ createdNodeIds: patch.createdIds,
1581
+ reprojectIds: patch.reprojectIds,
1582
+ }))),
1561
1583
  });
1562
1584
  if (!result.documentChanged) {
1563
1585
  state.status = 'Duplicate unchanged';
@@ -1614,6 +1636,7 @@ function dropSceneGraphNode(state, options, intent) {
1614
1636
  label: patch.label ?? `Reparent ${intent.draggedId}`,
1615
1637
  patch: patch.patch,
1616
1638
  targetId: intent.draggedId,
1639
+ ...withProjectionImpact(patch.projectionImpact),
1617
1640
  });
1618
1641
  if (!result.documentChanged) {
1619
1642
  state.status = `Reparent unchanged: ${intent.draggedId}`;
@@ -1658,6 +1681,7 @@ function moveSceneGraphNodes(state, options, intent) {
1658
1681
  label: patch.label ?? `Move ${intent.ids.length} node(s)`,
1659
1682
  patch: patch.patch,
1660
1683
  targetId: intent.ids[0] ?? undefined,
1684
+ ...withProjectionImpact(patch.projectionImpact),
1661
1685
  });
1662
1686
  if (!result.documentChanged) {
1663
1687
  state.status = 'Move unchanged';
@@ -1695,6 +1719,7 @@ function groupSceneGraphSelection(state, options, intent) {
1695
1719
  label: patch.label ?? 'Create Parent',
1696
1720
  patch: patch.patch,
1697
1721
  targetId: patch.createdId,
1722
+ ...withProjectionImpact(patch.projectionImpact),
1698
1723
  });
1699
1724
  if (!result.documentChanged) {
1700
1725
  state.status = 'Create Parent unchanged';
@@ -1915,6 +1940,9 @@ function executeTransformAction(state, options, action) {
1915
1940
  label: patch.label ?? formatTransformActionStatus(action, changedTargets.length),
1916
1941
  patch: patch.patch,
1917
1942
  targetId: selection.activeId ?? changedTargets[0]?.id,
1943
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
1944
+ ? createReprojectProjectionImpact(patch.reprojectIds)
1945
+ : createTransformProjectionImpact(changedTargets.map(target => target.id)))),
1918
1946
  });
1919
1947
  if (!result.documentChanged) {
1920
1948
  state.status = `Transform action unchanged: ${action}`;
@@ -2011,6 +2039,11 @@ function patchBrowserAssetAction(state, options, input) {
2011
2039
  type: 'document.patch',
2012
2040
  label: patch.label ?? `Asset action ${input.actionId}`,
2013
2041
  patch: patch.patch,
2042
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
2043
+ ? createReprojectProjectionImpact(patch.reprojectIds)
2044
+ : patch.changedIds?.length
2045
+ ? createReprojectProjectionImpact(patch.changedIds)
2046
+ : undefined)),
2014
2047
  });
2015
2048
  state.summary = summarizeDocument(options, result.workingDocument, session.getSource());
2016
2049
  state.status = patch.label ?? `Asset action ${input.actionId}`;
@@ -2092,6 +2125,10 @@ function commitArmedPlacement(state, options, event) {
2092
2125
  label: patch.label ?? `Place ${armed.assetId}`,
2093
2126
  patch: patch.patch,
2094
2127
  targetId: patch.createdId ?? undefined,
2128
+ ...withProjectionImpact(resolveProjectionImpact(patch, createKnownCreatedReprojectProjectionImpact({
2129
+ createdNodeIds: [patch.createdId],
2130
+ reprojectIds: patch.reprojectIds,
2131
+ }))),
2095
2132
  });
2096
2133
  if (!result.documentChanged) {
2097
2134
  state.status = 'Placement unchanged';
@@ -2155,8 +2192,14 @@ function addAssetToDocument(state, options, assetId, createOptions = {}) {
2155
2192
  type: 'document.patch',
2156
2193
  label: patch.label ?? 'Create Object From Asset',
2157
2194
  patch: patch.patch,
2195
+ ...withProjectionImpact(resolveProjectionImpact(patch, createKnownCreatedReprojectProjectionImpact({
2196
+ createdNodeIds: [patch.createdId],
2197
+ reprojectIds: patch.reprojectIds,
2198
+ }))),
2158
2199
  });
2159
- const createdId = options.documentAdapter.findCreatedId?.(beforeDocument, result.workingDocument);
2200
+ const createdId = patch.createdId
2201
+ ?? options.documentAdapter.findCreatedId?.(beforeDocument, result.workingDocument)
2202
+ ?? null;
2160
2203
  let selectionResult = null;
2161
2204
  if (createdId) {
2162
2205
  selectionResult = session.dispatch({
@@ -2218,15 +2261,22 @@ function patchSerializedProperty(state, options, input) {
2218
2261
  });
2219
2262
  if (!patch)
2220
2263
  return false;
2264
+ const changedIds = patch.changedIds ?? targetIds;
2221
2265
  const result = state.session.dispatch({
2222
2266
  type: 'document.patch',
2223
2267
  label: patch.label ?? `Patch ${payload.path} on ${targetIds.length} objects`,
2224
2268
  patch: patch.patch,
2225
2269
  targetId: state.session.getState().selection.activeId ?? undefined,
2270
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
2271
+ ? createReprojectProjectionImpact(patch.reprojectIds)
2272
+ : shouldReprojectInspectorEdit
2273
+ ? createReprojectProjectionImpact(changedIds)
2274
+ : isSerializedTransformPath(payload.path)
2275
+ ? createTransformProjectionImpact(targetIds)
2276
+ : undefined)),
2226
2277
  });
2227
2278
  if (!result.documentChanged)
2228
2279
  return false;
2229
- const changedIds = patch.changedIds ?? targetIds;
2230
2280
  const projectionSyncIds = isSerializedTransformPath(payload.path) ? targetIds : changedIds;
2231
2281
  const workingDocument = result.workingDocument;
2232
2282
  if (patch.reprojectIds?.length)
@@ -2257,6 +2307,13 @@ function patchSerializedProperty(state, options, input) {
2257
2307
  type: 'document.patch',
2258
2308
  label: patch.label ?? `Patch ${payload.path}`,
2259
2309
  patch: patch.patch,
2310
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
2311
+ ? createReprojectProjectionImpact(patch.reprojectIds)
2312
+ : shouldReprojectInspectorEdit
2313
+ ? createReprojectProjectionImpact(patch.changedIds ?? [patch.changedId ?? payload.targetId])
2314
+ : isSerializedTransformPath(payload.path)
2315
+ ? createTransformProjectionImpact([patch.changedId ?? payload.targetId])
2316
+ : undefined)),
2260
2317
  });
2261
2318
  if (patch.reprojectIds?.length)
2262
2319
  reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.reprojectIds);
@@ -2481,6 +2538,10 @@ function beginDuplicateDrag(state, options, input) {
2481
2538
  label: patch.label ?? `Duplicate ${input.targetIds.length} object(s)`,
2482
2539
  patch: patch.patch,
2483
2540
  targetId: patch.activeId ?? patch.createdIds[patch.createdIds.length - 1] ?? undefined,
2541
+ ...withProjectionImpact(resolveProjectionImpact(patch, createCreatedReprojectProjectionImpact({
2542
+ createdNodeIds: patch.createdIds,
2543
+ reprojectIds: patch.reprojectIds,
2544
+ }))),
2484
2545
  });
2485
2546
  if (!result.documentChanged) {
2486
2547
  state.status = 'Duplicate drag unchanged';
@@ -2560,6 +2621,9 @@ function commitGizmoTransform(state, options, event) {
2560
2621
  label: patch.label ?? `${event.tool} ${event.targetIds.length} objects`,
2561
2622
  patch: patch.patch,
2562
2623
  targetId: event.activeId ?? undefined,
2624
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
2625
+ ? createReprojectProjectionImpact(patch.reprojectIds)
2626
+ : createTransformProjectionImpact(event.targetIds))),
2563
2627
  }, {
2564
2628
  mergeWithPrevious: event.targetIds.some(id => state.duplicateDrag?.createdIds.includes(id)) === true,
2565
2629
  });
@@ -2595,6 +2659,9 @@ function commitGizmoTransform(state, options, event) {
2595
2659
  label: patch.label ?? `${event.tool} ${targetId}`,
2596
2660
  patch: patch.patch,
2597
2661
  targetId,
2662
+ ...withProjectionImpact(resolveProjectionImpact(patch, patch.reprojectIds?.length
2663
+ ? createReprojectProjectionImpact(patch.reprojectIds)
2664
+ : createTransformProjectionImpact([patch.changedId ?? targetId]))),
2598
2665
  }, {
2599
2666
  mergeWithPrevious: state.duplicateDrag?.createdIds.includes(targetId) === true,
2600
2667
  });
@@ -2700,29 +2767,193 @@ function formatAssetLabel(asset, fallback) {
2700
2767
  const label = record?.label ?? record?.displayName ?? record?.name;
2701
2768
  return typeof label === 'string' && label.trim() ? label : fallback;
2702
2769
  }
2703
- function undoSessionChange(state, options) {
2704
- cancelActiveOperation(state);
2705
- const result = state.session?.undo();
2706
- if (!result)
2707
- return false;
2708
- rebuildProjection(state, options, result);
2709
- state.summary = summarizeDocument(options, result.workingDocument, state.session?.getSource());
2710
- state.status = `Undo ${result.transaction.label}`;
2711
- return true;
2770
+ function withProjectionImpact(impact) {
2771
+ return impact ? { projectionImpact: impact } : {};
2712
2772
  }
2713
- function redoSessionChange(state, options) {
2773
+ function resolveProjectionImpact(source, fallback) {
2774
+ return source.projectionImpact ?? fallback;
2775
+ }
2776
+ function createTransformProjectionImpact(ids) {
2777
+ return createIncrementalProjectionImpact({ syncTransformIds: ids });
2778
+ }
2779
+ function createReprojectProjectionImpact(ids) {
2780
+ return createIncrementalProjectionImpact({ reprojectIds: ids });
2781
+ }
2782
+ function createCreatedNodeProjectionImpact(ids) {
2783
+ return createIncrementalProjectionImpact({ createdNodeIds: ids });
2784
+ }
2785
+ function createDeletedNodeProjectionImpact(ids) {
2786
+ return createIncrementalProjectionImpact({ deletedNodeIds: ids });
2787
+ }
2788
+ function createCreatedReprojectProjectionImpact(input) {
2789
+ return createIncrementalProjectionImpact({
2790
+ createdNodeIds: input.createdNodeIds,
2791
+ reprojectIds: input.reprojectIds,
2792
+ });
2793
+ }
2794
+ function createKnownCreatedReprojectProjectionImpact(input) {
2795
+ const createdNodeIds = uniqueProjectionIds(input.createdNodeIds);
2796
+ if (createdNodeIds.length === 0)
2797
+ return undefined;
2798
+ return createCreatedReprojectProjectionImpact({
2799
+ createdNodeIds,
2800
+ reprojectIds: input.reprojectIds,
2801
+ });
2802
+ }
2803
+ function createIncrementalProjectionImpact(input) {
2804
+ const syncTransformIds = uniqueProjectionIds(input.syncTransformIds);
2805
+ const reprojectIds = uniqueProjectionIds(input.reprojectIds);
2806
+ const createdNodeIds = uniqueProjectionIds(input.createdNodeIds);
2807
+ const deletedNodeIds = uniqueProjectionIds(input.deletedNodeIds);
2808
+ if (syncTransformIds.length === 0
2809
+ && reprojectIds.length === 0
2810
+ && createdNodeIds.length === 0
2811
+ && deletedNodeIds.length === 0) {
2812
+ return undefined;
2813
+ }
2814
+ return {
2815
+ type: 'incremental',
2816
+ ...(syncTransformIds.length ? { syncTransformIds } : {}),
2817
+ ...(reprojectIds.length ? { reprojectIds } : {}),
2818
+ ...(createdNodeIds.length ? { createdNodeIds } : {}),
2819
+ ...(deletedNodeIds.length ? { deletedNodeIds } : {}),
2820
+ };
2821
+ }
2822
+ function uniqueProjectionIds(ids) {
2823
+ const result = [];
2824
+ const seen = new Set();
2825
+ for (const id of ids ?? []) {
2826
+ if (!id || seen.has(id))
2827
+ continue;
2828
+ seen.add(id);
2829
+ result.push(id);
2830
+ }
2831
+ return result;
2832
+ }
2833
+ function applyHistoryOperation(state, options, operation, input = {}) {
2834
+ const origin = input.origin ?? 'user';
2835
+ const waitForProjection = input.waitForProjection ?? 'none';
2714
2836
  cancelActiveOperation(state);
2715
- const result = state.session?.redo();
2837
+ const result = operation === 'undo'
2838
+ ? state.session?.undo()
2839
+ : state.session?.redo();
2716
2840
  if (!result)
2717
- return false;
2718
- rebuildProjection(state, options, result);
2841
+ return createHistoryOperationResult(state, {
2842
+ operation,
2843
+ origin,
2844
+ waitForProjection,
2845
+ result: null,
2846
+ status: operation === 'undo' ? 'Undo unavailable' : 'Redo unavailable',
2847
+ });
2848
+ applyHistoryProjectionImpact(state, options, result, operation);
2719
2849
  state.summary = summarizeDocument(options, result.workingDocument, state.session?.getSource());
2720
- state.status = `Redo ${result.transaction.label}`;
2721
- return true;
2850
+ state.status = `${operation === 'undo' ? 'Undo' : 'Redo'} ${result.transaction.label}`;
2851
+ return createHistoryOperationResult(state, {
2852
+ operation,
2853
+ origin,
2854
+ waitForProjection,
2855
+ result,
2856
+ status: state.status,
2857
+ });
2858
+ }
2859
+ async function waitForHistoryOperationProjection(state, result) {
2860
+ if (!result.ok || result.waitForProjection !== 'settled')
2861
+ return result;
2862
+ const idleState = await state.projection?.waitForIdle() ?? null;
2863
+ return {
2864
+ ...result,
2865
+ projection: createHistoryProjectionResult(result.waitForProjection, idleState, state),
2866
+ };
2867
+ }
2868
+ function createHistoryOperationResult(state, input) {
2869
+ const sessionState = state.session?.getState() ?? null;
2870
+ return {
2871
+ ok: !!input.result,
2872
+ operation: input.operation,
2873
+ origin: input.origin,
2874
+ waitForProjection: input.waitForProjection,
2875
+ documentChanged: input.result?.documentChanged ?? false,
2876
+ transactionLabel: input.result?.transaction.label ?? null,
2877
+ workingDocument: input.result?.workingDocument ?? sessionState?.workingDocument ?? null,
2878
+ dirty: input.result?.dirty ?? sessionState?.dirty ?? false,
2879
+ history: {
2880
+ canUndo: sessionState?.canUndo ?? false,
2881
+ canRedo: sessionState?.canRedo ?? false,
2882
+ },
2883
+ status: input.status,
2884
+ projection: createHistoryProjectionResult(input.waitForProjection, null, state),
2885
+ };
2886
+ }
2887
+ function createHistoryProjectionResult(waitPolicy, idleState, state) {
2888
+ const resolved = idleState ?? state.projection?.getIdleState() ?? null;
2889
+ return {
2890
+ waitPolicy,
2891
+ idle: resolved?.idle ?? true,
2892
+ activeBatchIds: resolved?.activeBatchIds ?? [],
2893
+ lastBatch: resolved?.lastBatch ?? null,
2894
+ };
2895
+ }
2896
+ function applyHistoryProjectionImpact(state, options, result, operation) {
2897
+ const impact = result.transaction.projectionImpact;
2898
+ if (!impact || impact.type === 'rebuild') {
2899
+ rebuildProjection(state, options, result);
2900
+ return;
2901
+ }
2902
+ const applied = applyIncrementalHistoryProjectionImpact(state, options, result, operation, impact);
2903
+ if (!applied)
2904
+ rebuildProjection(state, options, result);
2722
2905
  }
2723
2906
  function rebuildProjection(state, options, result) {
2724
2907
  rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);
2725
2908
  }
2909
+ function applyIncrementalHistoryProjectionImpact(state, options, result, operation, impact) {
2910
+ if (!state.projection)
2911
+ return false;
2912
+ const syncTransformIds = uniqueProjectionIds(impact.syncTransformIds);
2913
+ const reprojectIds = uniqueProjectionIds(impact.reprojectIds);
2914
+ const projectNodeIds = operation === 'redo'
2915
+ ? uniqueProjectionIds(impact.createdNodeIds)
2916
+ : uniqueProjectionIds(impact.deletedNodeIds);
2917
+ const removeNodeIds = operation === 'redo'
2918
+ ? uniqueProjectionIds(impact.deletedNodeIds)
2919
+ : uniqueProjectionIds(impact.createdNodeIds);
2920
+ const touched = syncTransformIds.length > 0
2921
+ || reprojectIds.length > 0
2922
+ || projectNodeIds.length > 0
2923
+ || removeNodeIds.length > 0;
2924
+ if (!touched)
2925
+ return false;
2926
+ for (const nodeId of removeNodeIds) {
2927
+ state.projection.removeNode(nodeId);
2928
+ }
2929
+ for (const nodeId of projectNodeIds) {
2930
+ const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, nodeId);
2931
+ if (!projectedNode)
2932
+ return false;
2933
+ state.projection.projectNode(projectedNode);
2934
+ }
2935
+ for (const nodeId of reprojectIds) {
2936
+ const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, nodeId);
2937
+ if (!projectedNode)
2938
+ return false;
2939
+ state.projection.projectNode(projectedNode);
2940
+ }
2941
+ for (const nodeId of syncTransformIds) {
2942
+ const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, nodeId);
2943
+ if (!projectedNode)
2944
+ return false;
2945
+ state.projection.syncNodeTransform(projectedNode);
2946
+ }
2947
+ syncProjectionAfterHistoryIncrementalImpact(state, options, result.workingDocument, result.selection);
2948
+ return true;
2949
+ }
2950
+ function syncProjectionAfterHistoryIncrementalImpact(state, options, document, selection) {
2951
+ const sanitized = sanitizeSelection(state, options, document, selection);
2952
+ syncSelectionToProjection(state, sanitized ?? selection);
2953
+ syncEditorWorldAppearanceFromDocument(state, options, document, 'world-appearance-history-impact');
2954
+ syncEditorWorldRenderingFromDocument(state, options, document, 'world-rendering-history-impact', true);
2955
+ invalidateEditorScene(state, 'projection-history-impact', options);
2956
+ }
2726
2957
  function rebuildProjectionFromDocument(state, options, document, selection) {
2727
2958
  state.projection?.rebuild(options.documentAdapter.getProjectionNodes(document));
2728
2959
  const sanitized = sanitizeSelection(state, options, document, selection);