@fps-games/editor 0.1.1-beta.6 → 0.1.1-beta.7

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 (93) hide show
  1. package/dist/local-editor-harness.d.ts +14 -3
  2. package/dist/local-editor-harness.d.ts.map +1 -1
  3. package/dist/local-editor-harness.js +205 -35
  4. package/dist/local-editor-harness.js.map +1 -1
  5. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.d.ts +33 -0
  6. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.d.ts.map +1 -0
  7. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js +231 -0
  8. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -0
  9. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts +3 -0
  10. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts.map +1 -1
  11. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js +8 -0
  12. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  13. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -0
  14. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  15. package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -0
  16. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  17. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.d.ts +40 -0
  18. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.d.ts.map +1 -0
  19. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js +237 -0
  20. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -0
  21. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.d.ts +1 -1
  22. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.d.ts.map +1 -1
  23. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js +15 -50
  24. package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
  25. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +5 -0
  26. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  27. package/node_modules/@fps-games/editor-babylon/dist/projection.js +61 -8
  28. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  29. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +7 -0
  30. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
  31. package/node_modules/@fps-games/editor-babylon/package.json +4 -4
  32. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +97 -46
  33. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
  34. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +5 -0
  35. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +1 -1
  36. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +57 -7
  37. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  38. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  39. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +61 -5
  40. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  41. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -2
  42. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
  43. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  44. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +6 -2
  45. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  46. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
  47. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
  48. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +16 -0
  49. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
  50. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -1
  51. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  52. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +358 -53
  53. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  54. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts +5 -0
  55. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
  56. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +28 -8
  57. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  58. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  59. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +4 -1
  60. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  61. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.d.ts.map +1 -1
  62. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +14 -0
  63. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
  64. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts +11 -0
  65. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.d.ts.map +1 -0
  66. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +148 -0
  67. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -0
  68. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +42 -1
  69. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  70. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +5 -4
  71. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  72. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +606 -199
  73. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  74. package/node_modules/@fps-games/editor-browser/package.json +2 -2
  75. package/node_modules/@fps-games/editor-core/dist/index.d.ts +1 -0
  76. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
  77. package/node_modules/@fps-games/editor-core/dist/index.js +1 -0
  78. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  79. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +6 -1
  80. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
  81. package/node_modules/@fps-games/editor-core/dist/inspector.js +6 -1
  82. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
  83. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +7 -0
  84. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  85. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  86. package/node_modules/@fps-games/editor-core/dist/selection-strategy.d.ts +12 -0
  87. package/node_modules/@fps-games/editor-core/dist/selection-strategy.d.ts.map +1 -0
  88. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js +52 -0
  89. package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -0
  90. package/node_modules/@fps-games/editor-core/package.json +2 -2
  91. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  92. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  93. package/package.json +6 -6
@@ -1,6 +1,6 @@
1
- import { type AuthoringCommandResult, type AuthoringSourceDescriptor, type DocumentCommand, type EditorPlacementHit, type EditorTransformBatchCommit, type EditorTransformCanonicalConstraint, type EditorTransformSnapshot, type EditorTransformSpace, type EditorTransformTool, type SceneGraphCreateGroupIntent, 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 EditorTransformBatchCommit, type EditorTransformCanonicalConstraint, type EditorTransformSnapshot, type EditorTransformSpace, type EditorTransformTool, 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 LocalEditorBrowserUiAssetItem, type LocalEditorBrowserInspectorOptions, type LocalEditorBrowserUiHierarchyItem, type LocalEditorThemeController, type LocalEditorThemeName } from '@fps-games/editor-browser';
3
- import { type BabylonEditorProjectionImportContext, type BabylonEditorProjectionImportResult, type BabylonEditorProjectionNode, type BabylonSceneCameraPreviewRig, type BabylonRuntimeGlobal } from '@fps-games/editor-babylon';
3
+ import { type BabylonEditorProjectionImportContext, type BabylonEditorProjectionImportResult, type BabylonEditorProjectionNode, type BabylonSceneCameraPreviewRig, type BabylonEditorGridController, type BabylonEditorSkyOptions, type BabylonRuntimeGlobal } from '@fps-games/editor-babylon';
4
4
  export type LocalEditorHarnessMode = 'game' | 'editor';
5
5
  type LocalEditorMaybePromise<T> = T | Promise<T>;
6
6
  export interface LocalEditorAuthoringFailureStatus {
@@ -98,6 +98,13 @@ export interface LocalEditorHarnessSceneGraphCreateGroupPatch<TPatch> {
98
98
  label?: string;
99
99
  createdId: string;
100
100
  }
101
+ export interface LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> {
102
+ patch: TPatch;
103
+ label?: string;
104
+ createdId: string;
105
+ changedIds?: string[];
106
+ reprojectIds?: string[];
107
+ }
101
108
  export interface LocalEditorHarnessSceneGraphDeletePatch<TPatch> {
102
109
  patch: TPatch;
103
110
  label?: string;
@@ -188,6 +195,7 @@ export interface LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset = L
188
195
  validateSceneGraphDrop?(document: TDocument, intent: SceneGraphDropIntent): SceneGraphValidationResult;
189
196
  createSceneGraphRenamePatch?(document: TDocument, intent: SceneGraphRenameIntent): LocalEditorHarnessSceneGraphRenamePatch<TPatch> | null;
190
197
  createSceneGraphCreateGroupPatch?(document: TDocument, intent: SceneGraphCreateGroupIntent): LocalEditorHarnessSceneGraphCreateGroupPatch<TPatch> | null;
198
+ createSceneGraphCreatePrimitivePatch?(document: TDocument, intent: SceneGraphCreatePrimitiveIntent): LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> | null;
191
199
  createSceneGraphDeletePatch?(document: TDocument, intent: SceneGraphDeleteIntent): LocalEditorHarnessSceneGraphDeletePatch<TPatch> | null;
192
200
  createSceneGraphDropPatch?(document: TDocument, intent: SceneGraphDropIntent): LocalEditorHarnessSceneGraphDropPatch<TPatch> | null;
193
201
  validateSceneGraphMove?(document: TDocument, intent: SceneGraphMoveIntent): SceneGraphValidationResult;
@@ -228,6 +236,7 @@ export interface LocalEditorHarnessWorldAdapter<TAsset = LocalEditorHarnessAsset
228
236
  toBrowserAssetItem?(asset: TAsset): LocalEditorBrowserUiAssetItem;
229
237
  resolveAssetId?(asset: TAsset): string;
230
238
  }
239
+ export type LocalEditorHarnessGridController = BabylonEditorGridController;
231
240
  export interface LocalEditorHarnessOptions<TDocument, TPatch, TAsset = LocalEditorHarnessAssetItem> {
232
241
  root?: HTMLElement;
233
242
  theme?: LocalEditorThemeName;
@@ -250,10 +259,12 @@ export interface LocalEditorHarnessOptions<TDocument, TPatch, TAsset = LocalEdit
250
259
  b: number;
251
260
  a: number;
252
261
  };
262
+ sky?: BabylonEditorSkyOptions | false;
253
263
  useRightHandedSystem?: boolean;
264
+ coordinateAxes?: boolean;
254
265
  };
255
266
  inspector?: LocalEditorHarnessInspectorOptions<TDocument>;
256
- createGrid?: (babylon: BabylonRuntimeGlobal & Record<string, any>, scene: unknown) => void;
267
+ createGrid?: (babylon: BabylonRuntimeGlobal & Record<string, any>, scene: unknown) => LocalEditorHarnessGridController | void;
257
268
  }
258
269
  export interface LocalEditorHarness<TDocument = unknown> {
259
270
  render(): void;
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import { createEditorSession, createInspectorRegistry, DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS, createInspectorEditPayload, computeEditorTransformActionTargets, mergeInspectorSections, normalizeEditorTransformConstraint, serializedMultiObjectToInspectorObject, serializedObjectToInspectorObject, validateSceneGraphDelete, validateSceneGraphDrop, validateSceneGraphGroupSelection, validateSceneGraphMove, validateSceneGraphRename, } from '@fps-games/editor-core';
1
+ import { createEditorSession, createInspectorRegistry, DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS, createInspectorEditPayload, computeEditorTransformActionTargets, mergeInspectorSections, normalizeEditorTransformConstraint, resolveEditorSelectionCommand, serializedMultiObjectToInspectorObject, serializedObjectToInspectorObject, validateSceneGraphDelete, validateSceneGraphDrop, validateSceneGraphGroupSelection, validateSceneGraphMove, validateSceneGraphRename, } from '@fps-games/editor-core';
2
2
  import { createLocalEditorBrowserUi, } from '@fps-games/editor-browser';
3
3
  import { createBabylonEditorProjection, createBabylonEditorWorld, createBabylonProjectionSelectionController, createBabylonSceneCameraPreviewController, createBabylonSceneViewCameraController, createBabylonSceneViewInputController, createBabylonTransformGizmoController, focusEditorViewportSelection, } from '@fps-games/editor-babylon';
4
4
  export function createLocalEditorHarness(options) {
@@ -13,6 +13,8 @@ export function createLocalEditorHarness(options) {
13
13
  babylon: null,
14
14
  engine: null,
15
15
  world: null,
16
+ grid: null,
17
+ gridVisible: true,
16
18
  projection: null,
17
19
  gizmo: null,
18
20
  sceneCameraPreview: null,
@@ -69,6 +71,10 @@ export function createLocalEditorHarness(options) {
69
71
  if (selectItem(state, options, input))
70
72
  harness.render();
71
73
  },
74
+ onSelectionCommand: (command) => {
75
+ if (dispatchSelectionCommand(state, options, command))
76
+ harness.render();
77
+ },
72
78
  onSceneGraphRename: (intent) => {
73
79
  if (renameSceneGraphNode(state, options, intent))
74
80
  harness.render();
@@ -77,6 +83,12 @@ export function createLocalEditorHarness(options) {
77
83
  if (createSceneGraphGroup(state, options, intent))
78
84
  harness.render();
79
85
  },
86
+ onSceneGraphCreatePrimitive: options.documentAdapter.createSceneGraphCreatePrimitivePatch
87
+ ? (intent) => {
88
+ if (createSceneGraphPrimitive(state, options, intent))
89
+ harness.render();
90
+ }
91
+ : undefined,
80
92
  onSceneGraphDelete: (intent) => {
81
93
  if (deleteSceneGraphNodes(state, options, intent))
82
94
  harness.render();
@@ -178,10 +190,18 @@ export function createLocalEditorHarness(options) {
178
190
  if (setSceneCameraPreviewEnabled(state, options, enabled))
179
191
  harness.render();
180
192
  },
193
+ onGridVisibleChange: (visible) => {
194
+ if (setGridVisible(state, visible))
195
+ harness.render();
196
+ },
181
197
  onFocusSelection: () => {
182
198
  if (focusSelectedProjection(state))
183
199
  harness.render();
184
200
  },
201
+ onCancelEditorIntent: () => {
202
+ if (cancelEditorIntent(state, options))
203
+ harness.render();
204
+ },
185
205
  onCancelActiveOperation: () => {
186
206
  cancelActiveOperation(state);
187
207
  harness.render();
@@ -430,10 +450,12 @@ async function createEditorWorld(state, options, render) {
430
450
  cameraTarget: options.world?.cameraTarget,
431
451
  cameraRadius: options.world?.cameraRadius,
432
452
  clearColor: options.world?.clearColor,
453
+ sky: options.world?.sky,
433
454
  useRightHandedSystem: options.world?.useRightHandedSystem,
434
455
  enableDefaultCameraControls: false,
435
456
  });
436
- options.createGrid?.(babylon, world.scene);
457
+ const grid = options.createGrid?.(babylon, world.scene) ?? null;
458
+ grid?.setVisible(state.gridVisible);
437
459
  const projection = createBabylonEditorProjection({
438
460
  babylon,
439
461
  scene: world.scene,
@@ -606,6 +628,7 @@ async function createEditorWorld(state, options, render) {
606
628
  state.babylon = babylon;
607
629
  state.engine = engine;
608
630
  state.world = world;
631
+ state.grid = grid;
609
632
  state.projection = projection;
610
633
  state.gizmo = gizmo;
611
634
  state.sceneCameraPreview = sceneCameraPreview;
@@ -633,6 +656,8 @@ function disposeEditorWorld(state) {
633
656
  state.gizmo = null;
634
657
  state.projection?.dispose();
635
658
  state.projection = null;
659
+ state.grid?.dispose();
660
+ state.grid = null;
636
661
  state.engine?.stopRenderLoop?.();
637
662
  state.world?.dispose();
638
663
  state.engine?.dispose?.();
@@ -665,26 +690,16 @@ function selectItem(state, options, input) {
665
690
  return false;
666
691
  if (!isDocumentNodeSelectable(state, options, input.id))
667
692
  return false;
668
- const command = input.toggle
669
- ? {
670
- type: 'selection.toggle',
671
- selectedIds: [input.id],
672
- activeId: input.id,
673
- label: 'Toggle Selection',
674
- }
675
- : input.additive
676
- ? {
677
- type: 'selection.add',
678
- selectedIds: [input.id],
679
- activeId: input.id,
680
- label: 'Add Selection',
681
- }
682
- : {
683
- type: 'selection.replace',
684
- selectedIds: [input.id],
685
- activeId: input.id,
686
- label: 'Select Item',
687
- };
693
+ const selection = state.session?.getState().selection ?? { selectedIds: [], activeId: null };
694
+ const command = resolveEditorSelectionCommand({
695
+ selection,
696
+ targetIds: [input.id],
697
+ activeId: input.id,
698
+ gesture: 'click',
699
+ modifier: input.toggle ? 'toggle' : input.additive ? 'additive' : 'replace',
700
+ });
701
+ if (!command)
702
+ return false;
688
703
  return dispatchSelectionCommand(state, options, command);
689
704
  }
690
705
  function handleContextAction(state, options, action) {
@@ -708,7 +723,15 @@ function handleContextAction(state, options, action) {
708
723
  return createSceneGraphGroup(state, options, {
709
724
  parentId: action.parentId ?? null,
710
725
  activeId: action.activeId ?? null,
711
- name: 'Group',
726
+ name: 'Empty',
727
+ });
728
+ }
729
+ if (action.action === 'create-primitive') {
730
+ return createSceneGraphPrimitive(state, options, {
731
+ parentId: action.parentId ?? null,
732
+ activeId: action.activeId ?? null,
733
+ shape: action.shape,
734
+ name: action.name,
712
735
  });
713
736
  }
714
737
  if (action.action === 'delete') {
@@ -781,17 +804,52 @@ function createSceneGraphGroup(state, options, intent) {
781
804
  cancelActiveOperation(state);
782
805
  const patch = options.documentAdapter.createSceneGraphCreateGroupPatch?.(document, intent);
783
806
  if (!patch) {
784
- state.status = 'Create group rejected';
807
+ state.status = 'Create empty rejected';
808
+ return true;
809
+ }
810
+ const result = state.session.dispatch({
811
+ type: 'document.patch',
812
+ label: patch.label ?? 'Create Empty',
813
+ patch: patch.patch,
814
+ targetId: patch.createdId ?? undefined,
815
+ });
816
+ if (!result.documentChanged) {
817
+ state.status = 'Create empty unchanged';
818
+ return true;
819
+ }
820
+ const createdId = patch.createdId ?? null;
821
+ let selection = result.selection;
822
+ if (createdId && isNodeSelectableInDocument(options, result.workingDocument, createdId)) {
823
+ selection = state.session.dispatch({
824
+ type: 'selection.replace',
825
+ selectedIds: [createdId],
826
+ activeId: createdId,
827
+ label: 'Select Created Empty',
828
+ }).selection;
829
+ }
830
+ rebuildProjectionFromDocument(state, options, result.workingDocument, selection);
831
+ state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());
832
+ state.status = patch.label ?? (createdId ? `Created empty ${createdId}` : 'Created empty');
833
+ return true;
834
+ }
835
+ function createSceneGraphPrimitive(state, options, intent) {
836
+ const document = state.session?.getState().workingDocument;
837
+ if (state.mode !== 'editor' || !state.session || !document)
838
+ return false;
839
+ cancelActiveOperation(state);
840
+ const patch = options.documentAdapter.createSceneGraphCreatePrimitivePatch?.(document, intent);
841
+ if (!patch) {
842
+ state.status = `Create ${intent.shape} rejected`;
785
843
  return true;
786
844
  }
787
845
  const result = state.session.dispatch({
788
846
  type: 'document.patch',
789
- label: patch.label ?? 'Create Empty Group',
847
+ label: patch.label ?? `Create ${intent.shape}`,
790
848
  patch: patch.patch,
791
849
  targetId: patch.createdId ?? undefined,
792
850
  });
793
851
  if (!result.documentChanged) {
794
- state.status = 'Create group unchanged';
852
+ state.status = `Create ${intent.shape} unchanged`;
795
853
  return true;
796
854
  }
797
855
  const createdId = patch.createdId ?? null;
@@ -801,12 +859,12 @@ function createSceneGraphGroup(state, options, intent) {
801
859
  type: 'selection.replace',
802
860
  selectedIds: [createdId],
803
861
  activeId: createdId,
804
- label: 'Select Created Group',
862
+ label: 'Select Created Primitive',
805
863
  }).selection;
806
864
  }
807
865
  rebuildProjectionFromDocument(state, options, result.workingDocument, selection);
808
866
  state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());
809
- state.status = patch.label ?? (createdId ? `Created group ${createdId}` : 'Created group');
867
+ state.status = patch.label ?? (createdId ? `Created ${intent.shape} ${createdId}` : `Created ${intent.shape}`);
810
868
  return true;
811
869
  }
812
870
  function deleteSceneGraphNodes(state, options, intent) {
@@ -996,27 +1054,27 @@ function groupSceneGraphSelection(state, options, intent) {
996
1054
  const hierarchy = options.documentAdapter.getHierarchyItems(document);
997
1055
  const coreValidation = validateSceneGraphGroupSelection(hierarchy, intent);
998
1056
  if (!coreValidation.ok) {
999
- state.status = `Group selection rejected: ${coreValidation.reason ?? 'invalid scene graph group selection'}`;
1057
+ state.status = `Parent selection rejected: ${coreValidation.reason ?? 'invalid scene graph parent selection'}`;
1000
1058
  return true;
1001
1059
  }
1002
1060
  const projectValidation = options.documentAdapter.validateSceneGraphGroupSelection?.(document, intent);
1003
1061
  if (projectValidation && !projectValidation.ok) {
1004
- state.status = `Group selection rejected: ${projectValidation.reason ?? 'project validation failed'}`;
1062
+ state.status = `Parent selection rejected: ${projectValidation.reason ?? 'project validation failed'}`;
1005
1063
  return true;
1006
1064
  }
1007
1065
  const patch = options.documentAdapter.createSceneGraphGroupSelectionPatch?.(document, intent);
1008
1066
  if (!patch) {
1009
- state.status = 'Group selection rejected';
1067
+ state.status = 'Parent selection rejected';
1010
1068
  return true;
1011
1069
  }
1012
1070
  const result = state.session.dispatch({
1013
1071
  type: 'document.patch',
1014
- label: patch.label ?? 'Group Selection',
1072
+ label: patch.label ?? 'Parent Selection',
1015
1073
  patch: patch.patch,
1016
1074
  targetId: patch.createdId,
1017
1075
  });
1018
1076
  if (!result.documentChanged) {
1019
- state.status = 'Group selection unchanged';
1077
+ state.status = 'Parent selection unchanged';
1020
1078
  return true;
1021
1079
  }
1022
1080
  let selection = result.selection;
@@ -1025,7 +1083,7 @@ function groupSceneGraphSelection(state, options, intent) {
1025
1083
  type: 'selection.replace',
1026
1084
  selectedIds: [patch.createdId],
1027
1085
  activeId: patch.createdId,
1028
- label: 'Select Created Group',
1086
+ label: 'Select Created Parent',
1029
1087
  }).selection;
1030
1088
  }
1031
1089
  else {
@@ -1033,7 +1091,7 @@ function groupSceneGraphSelection(state, options, intent) {
1033
1091
  }
1034
1092
  rebuildProjectionFromDocument(state, options, result.workingDocument, selection);
1035
1093
  state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());
1036
- state.status = patch.label ?? `Grouped ${patch.changedIds?.length ?? intent.ids.length} node(s)`;
1094
+ state.status = patch.label ?? `Parented ${patch.changedIds?.length ?? intent.ids.length} node(s)`;
1037
1095
  return true;
1038
1096
  }
1039
1097
  function sanitizeSelection(state, options, document, selection) {
@@ -1593,6 +1651,16 @@ function cancelActiveOperation(state) {
1593
1651
  cancelActiveGizmoDrag(state);
1594
1652
  clearArmedPlacement(state);
1595
1653
  }
1654
+ function cancelEditorIntent(state, options) {
1655
+ if (state.mode !== 'editor')
1656
+ return false;
1657
+ const selection = state.session?.getSelection();
1658
+ if (selection && selection.selectedIds.length > 0) {
1659
+ return dispatchSelectionCommand(state, options, { type: 'selection.clear', label: 'Clear Selection' });
1660
+ }
1661
+ cancelActiveOperation(state);
1662
+ return true;
1663
+ }
1596
1664
  function focusSelectedProjection(state) {
1597
1665
  if (state.mode !== 'editor')
1598
1666
  return false;
@@ -1716,6 +1784,18 @@ function setSceneCameraPreviewEnabled(state, options, enabled) {
1716
1784
  state.status = 'Scene Camera preview enabled';
1717
1785
  return true;
1718
1786
  }
1787
+ function setGridVisible(state, visible) {
1788
+ const nextVisible = visible === true;
1789
+ if (state.gridVisible === nextVisible)
1790
+ return false;
1791
+ state.gridVisible = nextVisible;
1792
+ state.grid?.setVisible(nextVisible);
1793
+ state.status = nextVisible ? 'Grid visible' : 'Grid hidden';
1794
+ state.statusTone = 'default';
1795
+ state.statusToneStatus = state.status;
1796
+ state.statusDetails = '';
1797
+ return true;
1798
+ }
1719
1799
  function syncSceneCameraPreview(state, options) {
1720
1800
  const controller = state.sceneCameraPreview;
1721
1801
  if (!controller)
@@ -1784,6 +1864,9 @@ function createUiState(state, options) {
1784
1864
  inspectorObject,
1785
1865
  inspectorMultiObject,
1786
1866
  boxSelection: state.boxSelection,
1867
+ coordinateAxes: options.world?.coordinateAxes === false
1868
+ ? null
1869
+ : createSceneViewCoordinateAxesState(state),
1787
1870
  transformTool: {
1788
1871
  activeTool: state.gizmo?.getState().tool ?? state.transformTool,
1789
1872
  activeSpace: state.gizmo?.getState().space ?? state.transformSpace,
@@ -1802,6 +1885,10 @@ function createUiState(state, options) {
1802
1885
  enabled: state.sceneCameraPreviewEnabled,
1803
1886
  available: hasSceneCameraPreviewRig(state, options),
1804
1887
  },
1888
+ grid: {
1889
+ visible: state.gridVisible,
1890
+ available: !!state.grid,
1891
+ },
1805
1892
  session: sessionState
1806
1893
  ? {
1807
1894
  source: sessionState.source,
@@ -1813,6 +1900,89 @@ function createUiState(state, options) {
1813
1900
  : null,
1814
1901
  };
1815
1902
  }
1903
+ function createSceneViewCoordinateAxesState(state) {
1904
+ if (state.mode !== 'editor')
1905
+ return null;
1906
+ const scene = state.world?.scene ?? null;
1907
+ const camera = scene?.activeCamera ?? state.world?.camera ?? null;
1908
+ const Vector3 = state.babylon?.Vector3;
1909
+ if (!scene || !camera || !Vector3)
1910
+ return null;
1911
+ const right = readSceneViewCameraDirection(camera, Vector3, { x: 1, y: 0, z: 0 });
1912
+ const up = readSceneViewCameraDirection(camera, Vector3, { x: 0, y: 1, z: 0 });
1913
+ const forward = readSceneViewCameraForward(scene, camera, Vector3);
1914
+ if (!right || !up || !forward)
1915
+ return null;
1916
+ return {
1917
+ axes: [
1918
+ createSceneViewCoordinateAxis('x', 'X', '#ff4b70', { x: 1, y: 0, z: 0 }, right, up, forward),
1919
+ createSceneViewCoordinateAxis('y', 'Y', '#75ff42', { x: 0, y: 1, z: 0 }, right, up, forward),
1920
+ createSceneViewCoordinateAxis('z', 'Z', '#4f86ff', { x: 0, y: 0, z: 1 }, right, up, forward),
1921
+ ],
1922
+ };
1923
+ }
1924
+ function createSceneViewCoordinateAxis(id, label, color, worldAxis, cameraRight, cameraUp, cameraForward) {
1925
+ const screenX = dotSceneViewAxisVec3(worldAxis, cameraRight);
1926
+ const screenY = -dotSceneViewAxisVec3(worldAxis, cameraUp);
1927
+ const projectedLength = Math.hypot(screenX, screenY);
1928
+ const fallback = getSceneViewAxisFallbackDirection(id);
1929
+ const direction = projectedLength > 0.0001
1930
+ ? { x: screenX / projectedLength, y: screenY / projectedLength }
1931
+ : fallback;
1932
+ return {
1933
+ id,
1934
+ label,
1935
+ color,
1936
+ x: direction.x,
1937
+ y: direction.y,
1938
+ depth: dotSceneViewAxisVec3(worldAxis, cameraForward),
1939
+ scale: clampNumber(projectedLength, 0.36, 1),
1940
+ };
1941
+ }
1942
+ function readSceneViewCameraDirection(camera, Vector3, local) {
1943
+ if (!camera?.getDirection)
1944
+ return null;
1945
+ try {
1946
+ return normalizeSceneViewAxisVec3(camera.getDirection(new Vector3(local.x, local.y, local.z)));
1947
+ }
1948
+ catch {
1949
+ return null;
1950
+ }
1951
+ }
1952
+ function readSceneViewCameraForward(scene, camera, Vector3) {
1953
+ const rayDirection = normalizeSceneViewAxisVec3(camera?.getForwardRay?.()?.direction);
1954
+ if (rayDirection)
1955
+ return rayDirection;
1956
+ return readSceneViewCameraDirection(camera, Vector3, {
1957
+ x: 0,
1958
+ y: 0,
1959
+ z: scene?.useRightHandedSystem ? -1 : 1,
1960
+ });
1961
+ }
1962
+ function normalizeSceneViewAxisVec3(value) {
1963
+ const x = Number(value?.x) || 0;
1964
+ const y = Number(value?.y) || 0;
1965
+ const z = Number(value?.z) || 0;
1966
+ const length = Math.hypot(x, y, z);
1967
+ if (!Number.isFinite(length) || length <= 0.000001)
1968
+ return null;
1969
+ return { x: x / length, y: y / length, z: z / length };
1970
+ }
1971
+ function dotSceneViewAxisVec3(left, right) {
1972
+ return left.x * right.x + left.y * right.y + left.z * right.z;
1973
+ }
1974
+ function getSceneViewAxisFallbackDirection(id) {
1975
+ if (id === 'x')
1976
+ return { x: 1, y: 0 };
1977
+ if (id === 'y')
1978
+ return { x: 0, y: -1 };
1979
+ return { x: -1, y: 0 };
1980
+ }
1981
+ function clampNumber(value, min, max) {
1982
+ if (!Number.isFinite(value))
1983
+ return min;
1984
+ return Math.min(max, Math.max(min, value));
1985
+ }
1816
1986
  function withRuntimeInspectorSections(state, options, document, inspectorObject) {
1817
1987
  const baseInspectorObject = withInspectorComponentSections(state, options, document, inspectorObject);
1818
1988
  const activeId = inspectorObject.activeId;