@fps-games/editor 0.2.1-beta.1 → 0.2.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +43 -43
- 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 +310 -21
- 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-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-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-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +5 -2
- package/dist/playable-standard-project.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- 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-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/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/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/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/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/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/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 +5 -5
- 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 +22 -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
|
};
|