@fps-games/editor 0.2.1-beta.1 → 0.2.1-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js +16 -0
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/build-info.json +46 -46
- package/dist/internal/material-preview.d.ts +22 -0
- package/dist/internal/material-preview.d.ts.map +1 -0
- package/dist/internal/material-preview.js +186 -0
- package/dist/internal/material-preview.js.map +1 -0
- package/dist/internal/project-model-preview.d.ts +4 -0
- package/dist/internal/project-model-preview.d.ts.map +1 -0
- package/dist/internal/project-model-preview.js +359 -0
- package/dist/internal/project-model-preview.js.map +1 -0
- package/dist/local-editor-agent-context.d.ts +12 -1
- package/dist/local-editor-agent-context.d.ts.map +1 -1
- package/dist/local-editor-agent-context.js +47 -0
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +15 -2
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +326 -28
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-tools.d.ts +1 -0
- package/dist/local-editor-tools.d.ts.map +1 -1
- package/dist/local-editor-tools.js +3 -0
- package/dist/local-editor-tools.js.map +1 -1
- package/dist/playable-babylon-rendering.d.ts +8 -7
- package/dist/playable-babylon-rendering.d.ts.map +1 -1
- package/dist/playable-babylon-rendering.js +77 -32
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +4 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +27 -0
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-projection-preview.d.ts +2 -0
- package/dist/playable-product-projection-preview.d.ts.map +1 -1
- package/dist/playable-product-projection-preview.js +7 -4
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +9 -3
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-sdk.d.ts +1 -1
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.d.ts +0 -1
- package/dist/playable-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +17 -5
- package/dist/playable-standard-project.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.d.ts +4 -2
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js +301 -121
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js +5 -4
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.d.ts +4 -4
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +2 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +12 -1
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +6 -3
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +100 -39
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.d.ts +1 -3
- package/node_modules/@fps-games/babylon-renderer/dist/reference.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +11 -8
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js +24 -0
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +10 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +96 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js +85 -22
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +150 -4
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +249 -15
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +6 -6
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +5 -0
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +3 -0
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts +35 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js +136 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts +46 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js +283 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts +12 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js +67 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts +6 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js +20 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js +219 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js +42 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts +27 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js +288 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +29 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +20 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +321 -60
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +2 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +4 -2
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +63 -3
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +88 -16
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +2 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +1463 -356
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts +13 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js +15 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/package.json +7 -7
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js +3 -1
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts +11 -2
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js +12 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +6 -6
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js +10 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js +15 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts +6 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +10 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js +86 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts +9 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js +76 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts +34 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +4 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js +1 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +40 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js +53 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +94 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts +14 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js +101 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts +23 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js +180 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/package.json +6 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +23 -3
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +103 -10
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-ui/package.json +1 -1
- package/node_modules/@fps-games/playable-assets/dist/identity.d.ts +1 -0
- package/node_modules/@fps-games/playable-assets/dist/identity.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/identity.js +1 -1
- package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/resource-resolver.d.ts +46 -0
- package/node_modules/@fps-games/playable-assets/dist/resource-resolver.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-assets/dist/resource-resolver.js +109 -0
- package/node_modules/@fps-games/playable-assets/dist/resource-resolver.js.map +1 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/runtime.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js +5 -0
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/types.d.ts +2 -0
- package/node_modules/@fps-games/playable-runtime/dist/types.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.d.ts.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.js +11 -4
- package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/renderer.d.ts +8 -0
- package/node_modules/@fps-games/plugin-assets/dist/renderer.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-assets/dist/renderer.js +13 -0
- package/node_modules/@fps-games/plugin-assets/dist/renderer.js.map +1 -0
- package/node_modules/@fps-games/plugin-assets/dist/resources.d.ts +12 -0
- package/node_modules/@fps-games/plugin-assets/dist/resources.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-assets/dist/resources.js +8 -0
- package/node_modules/@fps-games/plugin-assets/dist/resources.js.map +1 -0
- package/node_modules/@fps-games/plugin-assets/dist/runtime.d.ts +2 -1
- package/node_modules/@fps-games/plugin-assets/dist/runtime.d.ts.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/runtime.js +3 -0
- package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +32 -8
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/package.json +24 -22
|
@@ -19,6 +19,24 @@ export function resolveBabylonTransformHandleConstraint(tool, handleKey) {
|
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
21
|
const LARGE_SELECTION_GIZMO_LIMIT = 200;
|
|
22
|
+
const EDITOR_TRANSFORM_GIZMO_SCALE_RATIO = 0.9;
|
|
23
|
+
const FREE_MOVE_HANDLE_DIAMETER = 0.018;
|
|
24
|
+
const TRANSFORM_GIZMO_DIAGNOSTIC_PREFIX = '[fps-editor:gizmo]';
|
|
25
|
+
function isTransformGizmoDiagnosticEnabled() {
|
|
26
|
+
const scope = globalThis;
|
|
27
|
+
if (scope.__FPS_EDITOR_DEBUG_TRANSFORM_GIZMO === true)
|
|
28
|
+
return true;
|
|
29
|
+
const search = scope.location?.search;
|
|
30
|
+
return typeof search === 'string' && /(?:^|[?&])debugGizmo=(?:1|true)(?:&|$)/.test(search);
|
|
31
|
+
}
|
|
32
|
+
function logTransformGizmoDiagnostic(event, details = {}) {
|
|
33
|
+
if (!isTransformGizmoDiagnosticEnabled())
|
|
34
|
+
return;
|
|
35
|
+
const timestamp = typeof performance !== 'undefined' && typeof performance.now === 'function'
|
|
36
|
+
? Number(performance.now().toFixed(2))
|
|
37
|
+
: Date.now();
|
|
38
|
+
console.info(TRANSFORM_GIZMO_DIAGNOSTIC_PREFIX, event, { timestamp, ...details });
|
|
39
|
+
}
|
|
22
40
|
export function createBabylonTransformGizmoController(options) {
|
|
23
41
|
const GizmoManagerCtor = options.babylon.GizmoManager;
|
|
24
42
|
if (!GizmoManagerCtor)
|
|
@@ -40,15 +58,44 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
40
58
|
let placementMarker = null;
|
|
41
59
|
let placementMarkerMaterial = null;
|
|
42
60
|
let manager = null;
|
|
61
|
+
let utilityLayer = null;
|
|
62
|
+
let keepDepthUtilityLayer = null;
|
|
43
63
|
let managerPrewarmed = false;
|
|
64
|
+
let materialPrewarmPromise = null;
|
|
65
|
+
let attachmentDiagnosticSequence = 0;
|
|
44
66
|
const canvas = options.scene.getEngine?.().getRenderingCanvas?.();
|
|
45
67
|
function ensureGizmoManager() {
|
|
46
|
-
if (manager)
|
|
68
|
+
if (manager) {
|
|
69
|
+
logTransformGizmoDiagnostic('manager.reuse', {
|
|
70
|
+
tool,
|
|
71
|
+
selectedNodeId,
|
|
72
|
+
selectedNodeIds: [...selectedNodeIds],
|
|
73
|
+
});
|
|
47
74
|
return manager;
|
|
48
|
-
|
|
75
|
+
}
|
|
76
|
+
const startedAt = typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
77
|
+
const UtilityLayerRendererCtor = options.babylon.UtilityLayerRenderer;
|
|
78
|
+
if (UtilityLayerRendererCtor) {
|
|
79
|
+
utilityLayer = new UtilityLayerRendererCtor(options.scene);
|
|
80
|
+
keepDepthUtilityLayer = new UtilityLayerRendererCtor(options.scene);
|
|
81
|
+
try {
|
|
82
|
+
keepDepthUtilityLayer.utilityLayerScene.autoClearDepthAndStencil = false;
|
|
83
|
+
}
|
|
84
|
+
catch { }
|
|
85
|
+
manager = new GizmoManagerCtor(options.scene, 1, utilityLayer, keepDepthUtilityLayer);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
manager = new GizmoManagerCtor(options.scene);
|
|
89
|
+
}
|
|
49
90
|
manager.usePointerToAttachGizmos = false;
|
|
50
91
|
manager.clearGizmoOnEmptyPointerEvent = false;
|
|
51
92
|
manager.boundingBoxGizmoEnabled = false;
|
|
93
|
+
applyGizmoPresentation(manager);
|
|
94
|
+
logTransformGizmoDiagnostic('manager.created', {
|
|
95
|
+
durationMs: Number(((typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt).toFixed(2)),
|
|
96
|
+
editorOwnedUtilityLayers: !!UtilityLayerRendererCtor,
|
|
97
|
+
sceneActiveCamera: options.scene.activeCamera?.name ?? null,
|
|
98
|
+
});
|
|
52
99
|
return manager;
|
|
53
100
|
}
|
|
54
101
|
function activeTransformTool() {
|
|
@@ -213,7 +260,30 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
213
260
|
catch { }
|
|
214
261
|
}
|
|
215
262
|
}
|
|
263
|
+
function applyGizmoPresentation(activeManager) {
|
|
264
|
+
try {
|
|
265
|
+
activeManager.scaleRatio = EDITOR_TRANSFORM_GIZMO_SCALE_RATIO;
|
|
266
|
+
}
|
|
267
|
+
catch { }
|
|
268
|
+
for (const gizmo of [
|
|
269
|
+
activeManager.gizmos?.positionGizmo,
|
|
270
|
+
activeManager.gizmos?.rotationGizmo,
|
|
271
|
+
activeManager.gizmos?.scaleGizmo,
|
|
272
|
+
]) {
|
|
273
|
+
if (!gizmo)
|
|
274
|
+
continue;
|
|
275
|
+
try {
|
|
276
|
+
gizmo.scaleRatio = EDITOR_TRANSFORM_GIZMO_SCALE_RATIO;
|
|
277
|
+
}
|
|
278
|
+
catch { }
|
|
279
|
+
try {
|
|
280
|
+
gizmo.updateScale = true;
|
|
281
|
+
}
|
|
282
|
+
catch { }
|
|
283
|
+
}
|
|
284
|
+
}
|
|
216
285
|
function attachCurrentSelection() {
|
|
286
|
+
const startedAt = typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
217
287
|
clearDragObservers();
|
|
218
288
|
const activeTool = activeTransformTool();
|
|
219
289
|
if (!activeTool) {
|
|
@@ -227,6 +297,12 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
227
297
|
catch { }
|
|
228
298
|
}
|
|
229
299
|
updateFreeMoveHandle();
|
|
300
|
+
logTransformGizmoDiagnostic('attachment.skipped', {
|
|
301
|
+
reason: 'select-tool',
|
|
302
|
+
tool,
|
|
303
|
+
selectedNodeId,
|
|
304
|
+
selectedNodeIds: [...selectedNodeIds],
|
|
305
|
+
});
|
|
230
306
|
return;
|
|
231
307
|
}
|
|
232
308
|
const activeManager = ensureGizmoManager();
|
|
@@ -238,27 +314,95 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
238
314
|
activeManager.positionGizmoEnabled = activeTool === 'move';
|
|
239
315
|
activeManager.rotationGizmoEnabled = activeTool === 'rotate';
|
|
240
316
|
activeManager.scaleGizmoEnabled = activeTool === 'scale';
|
|
317
|
+
applyGizmoPresentation(activeManager);
|
|
241
318
|
applyHandlePreference();
|
|
242
319
|
applySpacePreference();
|
|
243
320
|
registerDragObservers();
|
|
244
321
|
let target = null;
|
|
245
|
-
|
|
322
|
+
const requestedTargetIds = getCurrentTransformTargetIds();
|
|
323
|
+
const attachableTargetIds = requestedTargetIds.filter(nodeId => !!options.projection.getAttachableRoot(nodeId));
|
|
324
|
+
target = attachNativeTransformProxy(requestedTargetIds, activeTool, constraint);
|
|
325
|
+
let attachError = null;
|
|
246
326
|
try {
|
|
247
327
|
activeManager.attachToNode?.(target ?? null);
|
|
248
328
|
}
|
|
249
329
|
catch (error) {
|
|
330
|
+
attachError = error;
|
|
250
331
|
options.logger?.warn?.('[BabylonTransformGizmoController] failed to attach gizmo', error);
|
|
251
332
|
}
|
|
252
333
|
updateFreeMoveHandle();
|
|
334
|
+
const activeGizmo = activeTool === 'move'
|
|
335
|
+
? activeManager.gizmos?.positionGizmo
|
|
336
|
+
: activeTool === 'rotate'
|
|
337
|
+
? activeManager.gizmos?.rotationGizmo
|
|
338
|
+
: activeManager.gizmos?.scaleGizmo;
|
|
339
|
+
const diagnosticSequence = ++attachmentDiagnosticSequence;
|
|
340
|
+
const collectRenderDetails = () => {
|
|
341
|
+
const rootMesh = activeGizmo?._rootMesh ?? activeGizmo?.rootMesh ?? null;
|
|
342
|
+
const absolutePosition = rootMesh?.getAbsolutePosition?.() ?? rootMesh?.absolutePosition ?? rootMesh?.position ?? null;
|
|
343
|
+
const scaling = rootMesh?.scaling ?? null;
|
|
344
|
+
return {
|
|
345
|
+
diagnosticSequence,
|
|
346
|
+
gizmoRootEnabled: rootMesh?.isEnabled?.() ?? null,
|
|
347
|
+
gizmoRootVisible: rootMesh?.isVisible ?? null,
|
|
348
|
+
gizmoRootVisibility: rootMesh?.visibility ?? null,
|
|
349
|
+
gizmoRootChildCount: rootMesh?.getChildMeshes?.(false)?.length ?? null,
|
|
350
|
+
gizmoRootPosition: absolutePosition
|
|
351
|
+
? { x: absolutePosition.x, y: absolutePosition.y, z: absolutePosition.z }
|
|
352
|
+
: null,
|
|
353
|
+
gizmoRootScaling: scaling ? { x: scaling.x, y: scaling.y, z: scaling.z } : null,
|
|
354
|
+
gizmoScaleRatio: activeGizmo?.scaleRatio ?? null,
|
|
355
|
+
utilityLayerMeshCount: utilityLayer?.utilityLayerScene?.meshes?.length ?? null,
|
|
356
|
+
utilityLayerActiveMeshCount: utilityLayer?.utilityLayerScene?.getActiveMeshes?.()?.length ?? null,
|
|
357
|
+
utilityLayerRenderId: utilityLayer?.utilityLayerScene?.getRenderId?.() ?? null,
|
|
358
|
+
sceneRenderId: options.scene.getRenderId?.() ?? null,
|
|
359
|
+
};
|
|
360
|
+
};
|
|
361
|
+
logTransformGizmoDiagnostic('attachment.result', {
|
|
362
|
+
durationMs: Number(((typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt).toFixed(2)),
|
|
363
|
+
tool,
|
|
364
|
+
space,
|
|
365
|
+
constraint,
|
|
366
|
+
selectedNodeId,
|
|
367
|
+
selectedNodeIds: [...selectedNodeIds],
|
|
368
|
+
requestedTargetIds,
|
|
369
|
+
attachableTargetIds,
|
|
370
|
+
targetCreated: !!target,
|
|
371
|
+
targetName: target?.name ?? null,
|
|
372
|
+
managerAttachedNode: activeManager.attachedNode?.name ?? activeManager._attachedNode?.name ?? null,
|
|
373
|
+
gizmoAttachedNode: activeGizmo?.attachedNode?.name ?? null,
|
|
374
|
+
gizmoAttachedMesh: activeGizmo?.attachedMesh?.name ?? null,
|
|
375
|
+
positionEnabled: activeManager.positionGizmoEnabled === true,
|
|
376
|
+
rotationEnabled: activeManager.rotationGizmoEnabled === true,
|
|
377
|
+
scaleEnabled: activeManager.scaleGizmoEnabled === true,
|
|
378
|
+
sceneActiveCamera: options.scene.activeCamera?.name ?? null,
|
|
379
|
+
utilityLayerActiveCamera: utilityLayer?.utilityLayerScene?.activeCamera?.name ?? null,
|
|
380
|
+
utilityLayerShouldRender: utilityLayer?.shouldRender ?? null,
|
|
381
|
+
attachError: attachError instanceof Error ? attachError.message : attachError ? String(attachError) : null,
|
|
382
|
+
...collectRenderDetails(),
|
|
383
|
+
});
|
|
384
|
+
if (isTransformGizmoDiagnosticEnabled()) {
|
|
385
|
+
utilityLayer?.utilityLayerScene?.onAfterRenderObservable?.addOnce?.(() => {
|
|
386
|
+
logTransformGizmoDiagnostic('utility-layer.rendered', {
|
|
387
|
+
tool,
|
|
388
|
+
selectedNodeId,
|
|
389
|
+
...collectRenderDetails(),
|
|
390
|
+
});
|
|
391
|
+
});
|
|
392
|
+
}
|
|
253
393
|
}
|
|
254
394
|
function prewarmGizmoManager(activeManager) {
|
|
255
|
-
if (managerPrewarmed)
|
|
395
|
+
if (managerPrewarmed) {
|
|
396
|
+
logTransformGizmoDiagnostic('manager.prewarm.reuse', { tool });
|
|
256
397
|
return;
|
|
398
|
+
}
|
|
399
|
+
const startedAt = typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
257
400
|
managerPrewarmed = true;
|
|
258
401
|
try {
|
|
259
402
|
activeManager.positionGizmoEnabled = true;
|
|
260
403
|
activeManager.rotationGizmoEnabled = true;
|
|
261
404
|
activeManager.scaleGizmoEnabled = true;
|
|
405
|
+
applyGizmoPresentation(activeManager);
|
|
262
406
|
activeManager.attachToNode?.(null);
|
|
263
407
|
activeManager.positionGizmoEnabled = false;
|
|
264
408
|
activeManager.rotationGizmoEnabled = false;
|
|
@@ -267,6 +411,38 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
267
411
|
catch (error) {
|
|
268
412
|
options.logger?.warn?.('[BabylonTransformGizmoController] failed to prewarm gizmo manager', error);
|
|
269
413
|
}
|
|
414
|
+
logTransformGizmoDiagnostic('manager.prewarm.complete', {
|
|
415
|
+
durationMs: Number(((typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt).toFixed(2)),
|
|
416
|
+
hasPositionGizmo: !!activeManager.gizmos?.positionGizmo,
|
|
417
|
+
hasRotationGizmo: !!activeManager.gizmos?.rotationGizmo,
|
|
418
|
+
hasScaleGizmo: !!activeManager.gizmos?.scaleGizmo,
|
|
419
|
+
});
|
|
420
|
+
}
|
|
421
|
+
function prewarmGizmoMaterials() {
|
|
422
|
+
if (materialPrewarmPromise)
|
|
423
|
+
return materialPrewarmPromise;
|
|
424
|
+
const startedAt = typeof performance !== 'undefined' ? performance.now() : Date.now();
|
|
425
|
+
const targets = new Map();
|
|
426
|
+
for (const layer of [utilityLayer, keepDepthUtilityLayer]) {
|
|
427
|
+
for (const mesh of layer?.utilityLayerScene?.meshes ?? []) {
|
|
428
|
+
const material = mesh?.material;
|
|
429
|
+
if (!material || typeof material.forceCompilationAsync !== 'function' || targets.has(material))
|
|
430
|
+
continue;
|
|
431
|
+
targets.set(material, mesh);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
logTransformGizmoDiagnostic('material-prewarm.started', {
|
|
435
|
+
targetCount: targets.size,
|
|
436
|
+
});
|
|
437
|
+
materialPrewarmPromise = Promise.allSettled([...targets].map(([material, mesh]) => material.forceCompilationAsync(mesh))).then((results) => {
|
|
438
|
+
const failureCount = results.filter(result => result.status === 'rejected').length;
|
|
439
|
+
logTransformGizmoDiagnostic('material-prewarm.completed', {
|
|
440
|
+
durationMs: Number(((typeof performance !== 'undefined' ? performance.now() : Date.now()) - startedAt).toFixed(2)),
|
|
441
|
+
targetCount: targets.size,
|
|
442
|
+
failureCount,
|
|
443
|
+
});
|
|
444
|
+
});
|
|
445
|
+
return materialPrewarmPromise;
|
|
270
446
|
}
|
|
271
447
|
function beginDrag(activeConstraint = constraint, handleKey) {
|
|
272
448
|
if (activeDrag)
|
|
@@ -332,8 +508,9 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
332
508
|
const validTargetIds = targetIds.filter(nodeId => !!options.projection.getAttachableRoot(nodeId));
|
|
333
509
|
if (validTargetIds.length === 0)
|
|
334
510
|
return null;
|
|
335
|
-
const pivot = validTargetIds.length > 1
|
|
511
|
+
const pivot = (activeTool === 'move' || validTargetIds.length > 1)
|
|
336
512
|
? options.projection.getSelectionPivot(validTargetIds)
|
|
513
|
+
?? createSingleTargetPivot(validTargetIds[0])
|
|
337
514
|
: createSingleTargetPivot(validTargetIds[0]);
|
|
338
515
|
if (!pivot)
|
|
339
516
|
return null;
|
|
@@ -402,8 +579,11 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
402
579
|
duplicate,
|
|
403
580
|
});
|
|
404
581
|
}
|
|
405
|
-
const pivot = validTargetIds.length > 1
|
|
406
|
-
? options.projection.getSelectionPivot(validTargetIds)
|
|
582
|
+
const pivot = (activeTool === 'move' || validTargetIds.length > 1)
|
|
583
|
+
? options.projection.getSelectionPivot(validTargetIds) ?? {
|
|
584
|
+
mode: 'selection-center',
|
|
585
|
+
position: readEditorTransformPosition(beforeTransforms[validTargetIds[0]]),
|
|
586
|
+
}
|
|
407
587
|
: {
|
|
408
588
|
mode: 'selection-center',
|
|
409
589
|
position: readEditorTransformPosition(beforeTransforms[validTargetIds[0]]),
|
|
@@ -994,7 +1174,7 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
994
1174
|
const utilityScene = activeManager?.utilityLayer?.utilityLayerScene;
|
|
995
1175
|
if (!MeshBuilder?.CreateSphere || !utilityScene)
|
|
996
1176
|
return null;
|
|
997
|
-
freeMoveHandle = MeshBuilder.CreateSphere('editor.transform.freeMoveHandle', { diameter:
|
|
1177
|
+
freeMoveHandle = MeshBuilder.CreateSphere('editor.transform.freeMoveHandle', { diameter: FREE_MOVE_HANDLE_DIAMETER, segments: 16 }, utilityScene);
|
|
998
1178
|
freeMoveHandle.metadata = {
|
|
999
1179
|
...(freeMoveHandle.metadata ?? {}),
|
|
1000
1180
|
editorProjectionHelper: true,
|
|
@@ -1003,9 +1183,10 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1003
1183
|
freeMoveHandle.isPickable = true;
|
|
1004
1184
|
if (StandardMaterial && Color3) {
|
|
1005
1185
|
freeMoveHandleMaterial = new StandardMaterial('editor.transform.freeMoveHandle.material', utilityScene);
|
|
1006
|
-
freeMoveHandleMaterial.diffuseColor = new Color3(
|
|
1007
|
-
freeMoveHandleMaterial.emissiveColor = new Color3(
|
|
1008
|
-
freeMoveHandleMaterial.specularColor = new Color3(0.
|
|
1186
|
+
freeMoveHandleMaterial.diffuseColor = new Color3(0.94, 0.96, 0.98);
|
|
1187
|
+
freeMoveHandleMaterial.emissiveColor = new Color3(0.88, 0.91, 0.95);
|
|
1188
|
+
freeMoveHandleMaterial.specularColor = new Color3(0.08, 0.1, 0.12);
|
|
1189
|
+
freeMoveHandleMaterial.disableLighting = true;
|
|
1009
1190
|
freeMoveHandle.material = freeMoveHandleMaterial;
|
|
1010
1191
|
}
|
|
1011
1192
|
setFreeMoveHandleVisible(false);
|
|
@@ -1025,7 +1206,17 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1025
1206
|
const Vector3 = options.babylon.Vector3;
|
|
1026
1207
|
if (!handle || !Vector3)
|
|
1027
1208
|
return;
|
|
1028
|
-
|
|
1209
|
+
const gizmoRoot = manager?.gizmos?.positionGizmo?.xGizmo?._rootMesh
|
|
1210
|
+
?? manager?.gizmos?.positionGizmo?.xGizmo?.rootMesh
|
|
1211
|
+
?? null;
|
|
1212
|
+
if (gizmoRoot) {
|
|
1213
|
+
handle.parent = gizmoRoot;
|
|
1214
|
+
handle.position = new Vector3(0, 0, 0);
|
|
1215
|
+
}
|
|
1216
|
+
else {
|
|
1217
|
+
handle.parent = null;
|
|
1218
|
+
handle.position = new Vector3(position.x, position.y, position.z);
|
|
1219
|
+
}
|
|
1029
1220
|
setFreeMoveHandleVisible(true);
|
|
1030
1221
|
}
|
|
1031
1222
|
function updateFreeMoveHandle() {
|
|
@@ -1038,9 +1229,7 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1038
1229
|
setFreeMoveHandleVisible(false);
|
|
1039
1230
|
return;
|
|
1040
1231
|
}
|
|
1041
|
-
const pivot = targetIds
|
|
1042
|
-
? options.projection.getSelectionPivot(targetIds)
|
|
1043
|
-
: null;
|
|
1232
|
+
const pivot = options.projection.getSelectionPivot(targetIds);
|
|
1044
1233
|
const position = pivot?.position
|
|
1045
1234
|
?? (targetIds[0] ? createTransformPivot(options.projection.readNodeTransform(targetIds[0]))?.position : null);
|
|
1046
1235
|
if (!position) {
|
|
@@ -1118,9 +1307,31 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1118
1307
|
constraint,
|
|
1119
1308
|
};
|
|
1120
1309
|
},
|
|
1310
|
+
async prepare() {
|
|
1311
|
+
if (disposed)
|
|
1312
|
+
return;
|
|
1313
|
+
logTransformGizmoDiagnostic('prepare.requested', {
|
|
1314
|
+
tool,
|
|
1315
|
+
selectedNodeId,
|
|
1316
|
+
selectedNodeIds: [...selectedNodeIds],
|
|
1317
|
+
});
|
|
1318
|
+
const activeManager = ensureGizmoManager();
|
|
1319
|
+
if (!activeManager)
|
|
1320
|
+
return;
|
|
1321
|
+
prewarmGizmoManager(activeManager);
|
|
1322
|
+
attachCurrentSelection();
|
|
1323
|
+
await prewarmGizmoMaterials();
|
|
1324
|
+
},
|
|
1121
1325
|
setTool(nextTool) {
|
|
1122
1326
|
if (disposed)
|
|
1123
1327
|
return;
|
|
1328
|
+
logTransformGizmoDiagnostic('tool.requested', {
|
|
1329
|
+
previousTool: tool,
|
|
1330
|
+
nextTool,
|
|
1331
|
+
repeated: tool === nextTool,
|
|
1332
|
+
selectedNodeId,
|
|
1333
|
+
selectedNodeIds: [...selectedNodeIds],
|
|
1334
|
+
});
|
|
1124
1335
|
if (tool === nextTool) {
|
|
1125
1336
|
if (!activeDrag)
|
|
1126
1337
|
attachCurrentSelection();
|
|
@@ -1186,6 +1397,13 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1186
1397
|
? [selection.activeId].filter((id) => !!id)
|
|
1187
1398
|
: [...selection.selectedIds];
|
|
1188
1399
|
const nextActiveId = selection.activeId;
|
|
1400
|
+
logTransformGizmoDiagnostic('selection.requested', {
|
|
1401
|
+
previousActiveId: selectedNodeId,
|
|
1402
|
+
previousSelectedIds: [...selectedNodeIds],
|
|
1403
|
+
nextActiveId,
|
|
1404
|
+
nextSelectedIds: [...nextNodeIds],
|
|
1405
|
+
tool,
|
|
1406
|
+
});
|
|
1189
1407
|
if (selectedNodeId === nextActiveId
|
|
1190
1408
|
&& selectedNodeIds.length === nextNodeIds.length
|
|
1191
1409
|
&& selectedNodeIds.every((id, index) => id === nextNodeIds[index])) {
|
|
@@ -1201,6 +1419,11 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1201
1419
|
return;
|
|
1202
1420
|
if (activeDrag)
|
|
1203
1421
|
return;
|
|
1422
|
+
logTransformGizmoDiagnostic('selection.refresh', {
|
|
1423
|
+
selectedNodeId,
|
|
1424
|
+
selectedNodeIds: [...selectedNodeIds],
|
|
1425
|
+
tool,
|
|
1426
|
+
});
|
|
1204
1427
|
attachCurrentSelection();
|
|
1205
1428
|
},
|
|
1206
1429
|
isGizmoDragCandidate,
|
|
@@ -1237,6 +1460,14 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1237
1460
|
manager?.dispose?.();
|
|
1238
1461
|
}
|
|
1239
1462
|
catch { }
|
|
1463
|
+
try {
|
|
1464
|
+
utilityLayer?.dispose?.();
|
|
1465
|
+
}
|
|
1466
|
+
catch { }
|
|
1467
|
+
try {
|
|
1468
|
+
keepDepthUtilityLayer?.dispose?.();
|
|
1469
|
+
}
|
|
1470
|
+
catch { }
|
|
1240
1471
|
try {
|
|
1241
1472
|
pivotProxy?.dispose?.();
|
|
1242
1473
|
}
|
|
@@ -1263,7 +1494,10 @@ export function createBabylonTransformGizmoController(options) {
|
|
|
1263
1494
|
placementMarker = null;
|
|
1264
1495
|
placementMarkerMaterial = null;
|
|
1265
1496
|
manager = null;
|
|
1497
|
+
utilityLayer = null;
|
|
1498
|
+
keepDepthUtilityLayer = null;
|
|
1266
1499
|
managerPrewarmed = false;
|
|
1500
|
+
materialPrewarmPromise = null;
|
|
1267
1501
|
disposed = true;
|
|
1268
1502
|
},
|
|
1269
1503
|
};
|