@fps-games/editor 0.2.0-beta.2 → 0.2.0-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/assets.js.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/selection.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/transform.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/diagnostics.js.map +1 -1
- package/dist/agent-bridge/index.js.map +1 -1
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/authoring-apply.js.map +1 -1
- package/dist/build-info.json +48 -48
- package/dist/editor-plugin-agent-capabilities.js.map +1 -1
- package/dist/editor-plugin-hierarchy-command.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-bridge-transport.js.map +1 -1
- package/dist/local-editor-agent-bridge.js.map +1 -1
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +57 -1
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +129 -0
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-plugin-inspector.js.map +1 -1
- package/dist/local-editor-plugin-panel.js.map +1 -1
- package/dist/local-editor-scene-render-scheduler.js.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-outline-inspector.js.map +1 -1
- package/dist/playable-babylon-outline-runtime.js.map +1 -1
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +36 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +49 -2
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-runtime.js.map +1 -1
- package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
- package/dist/playable-sdk-vite.js.map +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/static-shadow-cpu-worker.js.map +1 -1
- package/dist/vite.js.map +1 -1
- 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/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
- 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-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.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 +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
- 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-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
- 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-input-router.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
- 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-plugin-panel.js.map +1 -1
- 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-primitives.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.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.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +4 -4
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +6 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +9 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -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/dist/agent-transport.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +58 -23
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
- 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/document.js.map +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/asset-library/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -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/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
- 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.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.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 +18 -1
- 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/package-resolution/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -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/product/standard-asset-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
- 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/route.js.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.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +13 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
- 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/scene-source/companion-configs.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
- 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/report.js.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/asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
- 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/module-invalidation.d.ts +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +2 -11
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
- 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 +84 -6
- 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/product-rendering-authoring.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- 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/portable-path.d.ts +2 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/tokens.js.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/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
- 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 +5 -5
- package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
- 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/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
- 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/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
- 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/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
- 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-shadows/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
- 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 +27 -19
package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-projected-shadow-baker.js","sourceRoot":"","sources":["../../src/shadows/static-projected-shadow-baker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"static-projected-shadow-baker.js","sourceRoot":"","sources":["../../src/shadows/static-projected-shadow-baker.ts"],"names":[],"mappings":"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","sourcesContent":["import { DirectionalLight } from '@babylonjs/core/Lights/directionalLight.js';\nimport { Matrix, Vector3 } from '@babylonjs/core/Maths/math.vector.js';\nimport { RenderTargetTexture } from '@babylonjs/core/Materials/Textures/renderTargetTexture.js';\nimport { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh.js';\nimport { InstancedMesh } from '@babylonjs/core/Meshes/instancedMesh.js';\nimport { Mesh } from '@babylonjs/core/Meshes/mesh.js';\nimport type { Scene } from '@babylonjs/core/scene.js';\nimport {\n buildStaticProjectedShadowBounds,\n collectStaticProjectedShadowNodeMeshes,\n createStaticProjectedShadowMaskTexture,\n type StaticProjectedShadowBakeBounds,\n} from './static-projected-shadow-bake.js';\nimport {\n copyStaticProjectedShadowSdfTileToAtlas,\n createStaticProjectedShadowAtlasPixels,\n createStaticProjectedShadowSdfTileFromMaskPixels,\n packStaticProjectedShadowAtlasTiles,\n} from './static-projected-shadow-atlas.js';\nimport { resolveStaticProjectedShadowOptions } from './static-projected-shadow-options.js';\nimport {\n DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS,\n type StaticProjectedShadowArtifact,\n type StaticProjectedShadowArtifactAtlasPage,\n type StaticProjectedShadowArtifactChunkV2,\n type StaticProjectedShadowArtifactHashInput,\n type StaticProjectedShadowOptions,\n} from './types.js';\n\ntype MaybePromise<T> = T | Promise<T>;\n\nexport interface StaticProjectedShadowBakerMaskPixelsInput {\n texture: RenderTargetTexture;\n chunkId: string;\n bounds: StaticProjectedShadowBakeBounds;\n width: number;\n height: number;\n}\n\nexport interface StaticProjectedShadowBakerMaskPixels {\n pixels: ArrayBufferView;\n width: number;\n height: number;\n}\n\nexport type StaticProjectedShadowBakerMaskPixelReader = (\n input: StaticProjectedShadowBakerMaskPixelsInput,\n) => MaybePromise<StaticProjectedShadowBakerMaskPixels | null | undefined>;\n\nexport interface StaticProjectedShadowBakerAtlasEncodeInput {\n pageId: string;\n pixels: Uint8ClampedArray;\n width: number;\n height: number;\n}\n\nexport type StaticProjectedShadowBakerAtlasEncoder = (\n input: StaticProjectedShadowBakerAtlasEncodeInput,\n) => MaybePromise<string | null | undefined>;\n\nexport interface StaticProjectedShadowBakerSdfTileInput {\n chunkId: string;\n pixels: ArrayBufferView;\n width: number;\n height: number;\n sdfRadiusPx: number;\n}\n\nexport interface StaticProjectedShadowBakerSdfTile {\n sdfAlpha: Uint8ClampedArray;\n width: number;\n height: number;\n hasCoverage: boolean;\n}\n\nexport type StaticProjectedShadowBakerSdfTileProcessor = (\n input: StaticProjectedShadowBakerSdfTileInput,\n) => MaybePromise<StaticProjectedShadowBakerSdfTile | null | undefined>;\n\nexport type StaticProjectedShadowBakeProgressPhase =\n | 'collect'\n | 'reuse'\n | 'chunk'\n | 'sdf'\n | 'pack'\n | 'encode'\n | 'complete';\n\nexport interface StaticProjectedShadowBakeProgress {\n phase: StaticProjectedShadowBakeProgressPhase;\n sourceRootCount: number;\n sourceMeshCount: number;\n completedChunkCount: number;\n totalChunkCount: number;\n encodedTextureCount: number;\n currentChunkId?: string;\n atlasPageCount?: number;\n effectiveTexelsPerMeter?: number;\n effectiveSpatialChunkSize?: number;\n bakedChunkCount?: number;\n reusedChunkCount?: number;\n}\n\nexport type StaticProjectedShadowBakeProgressCallback = (\n progress: StaticProjectedShadowBakeProgress,\n) => MaybePromise<void>;\n\nexport interface StaticProjectedShadowBakerOptions {\n scene: Scene;\n directionalLight?: DirectionalLight | null;\n options?: Partial<StaticProjectedShadowOptions>;\n roots?: readonly AbstractMesh[];\n previousArtifact?: StaticProjectedShadowArtifact | null;\n readMaskTexturePixels?: StaticProjectedShadowBakerMaskPixelReader;\n processSdfTile?: StaticProjectedShadowBakerSdfTileProcessor;\n encodeAtlasTexture?: StaticProjectedShadowBakerAtlasEncoder;\n yieldToMainThread?: StaticProjectedShadowBakeProgressCallback;\n onProgress?: StaticProjectedShadowBakeProgressCallback;\n now?: () => string;\n}\n\nexport interface StaticProjectedShadowBaker {\n bake(input?: {\n roots?: readonly AbstractMesh[];\n previousArtifact?: StaticProjectedShadowArtifact | null;\n }): Promise<StaticProjectedShadowArtifact>;\n}\n\nexport interface StaticProjectedShadowBakeHashOptions {\n scene: Scene;\n directionalLight?: DirectionalLight | null;\n options?: Partial<StaticProjectedShadowOptions>;\n roots?: readonly AbstractMesh[];\n}\n\ntype BakeRoot = {\n root: AbstractMesh;\n sourceNodeId: string;\n meshes: AbstractMesh[];\n bounds: StaticProjectedShadowBakeBounds;\n};\n\ntype BakeChunk = {\n id: string;\n gridX: number;\n gridZ: number;\n bounds: StaticProjectedShadowBakeBounds;\n roots: BakeRoot[];\n};\n\ntype BakeChunkWork = {\n chunk: BakeChunk;\n sourceNodeIds: string[];\n sourceHash: string;\n};\n\ntype BakeChunkPlan = {\n chunks: BakeChunk[];\n requestedChunkSize: number;\n effectiveChunkSize: number;\n};\n\nconst DEFAULT_SHADOW_DIRECTION = new Vector3(-0.3, -1, -0.2).normalize();\n\nexport function createStaticProjectedShadowBaker(\n options: StaticProjectedShadowBakerOptions,\n): StaticProjectedShadowBaker {\n return new BabylonStaticProjectedShadowBaker(options);\n}\n\nexport function collectStaticProjectedShadowBakeRoots(scene: Scene): AbstractMesh[] {\n const candidates = scene.meshes.filter(isExplicitStaticProjectedShadowRoot);\n const candidateSet = new Set(candidates);\n return candidates.filter(mesh => !hasSelectedAncestor(mesh, candidateSet));\n}\n\nexport function createStaticProjectedShadowBakeHashes(\n input: StaticProjectedShadowBakeHashOptions,\n): Required<StaticProjectedShadowArtifactHashInput> {\n const options = resolveStaticProjectedShadowOptions(input.options ?? {});\n const planeY = options.plane.height + options.plane.yOffset;\n const lightDir = resolveBakeLightDirection(input.directionalLight);\n const roots = createBakeRoots(\n input.roots ?? collectStaticProjectedShadowBakeRoots(input.scene),\n {\n lightDir,\n planeY,\n padding: options.bake.padding,\n },\n );\n return createBakeHashes({ roots, lightDir, planeY, options });\n}\n\nexport function createStaticProjectedShadowProfileHash(\n options: Partial<StaticProjectedShadowOptions> = {},\n): string {\n return createBakeProfileHash(resolveStaticProjectedShadowOptions(options));\n}\n\nclass BabylonStaticProjectedShadowBaker implements StaticProjectedShadowBaker {\n private readonly readMaskTexturePixels: StaticProjectedShadowBakerMaskPixelReader;\n private readonly processSdfTile: StaticProjectedShadowBakerSdfTileProcessor;\n private readonly encodeAtlasTexture: StaticProjectedShadowBakerAtlasEncoder;\n private readonly yieldToMainThread: StaticProjectedShadowBakeProgressCallback | undefined;\n private readonly now: () => string;\n\n constructor(private readonly config: StaticProjectedShadowBakerOptions) {\n this.readMaskTexturePixels = config.readMaskTexturePixels ?? defaultReadMaskTexturePixels;\n this.processSdfTile = config.processSdfTile ?? defaultProcessSdfTile;\n this.encodeAtlasTexture = config.encodeAtlasTexture ?? defaultEncodeAtlasTexture;\n this.yieldToMainThread = config.yieldToMainThread;\n this.now = config.now ?? (() => new Date().toISOString());\n }\n\n async bake(input: { roots?: readonly AbstractMesh[]; previousArtifact?: StaticProjectedShadowArtifact | null } = {}): Promise<StaticProjectedShadowArtifact> {\n const startedAt = nowMs();\n const options = resolveStaticProjectedShadowOptions(this.config.options ?? {});\n const planeY = options.plane.height + options.plane.yOffset;\n const lightDir = resolveBakeLightDirection(this.config.directionalLight);\n const roots = createBakeRoots(\n input.roots ?? this.config.roots ?? collectStaticProjectedShadowBakeRoots(this.config.scene),\n {\n lightDir,\n planeY,\n padding: options.bake.padding,\n },\n );\n const sourceMeshCount = roots.reduce((sum, root) => sum + root.meshes.length, 0);\n const { sourceHash, lightHash, profileHash } = createBakeHashes({ roots, lightDir, planeY, options });\n const chunkPlan = createBakeChunkPlan(roots, {\n chunkSize: options.bake.spatialChunkSize,\n targetChunkCount: options.bake.targetChunkCount,\n planeY,\n });\n const chunks = chunkPlan.chunks;\n const previousArtifact = input.previousArtifact ?? this.config.previousArtifact ?? null;\n let chunkWorks = chunks.map(createBakeChunkWork);\n let reusedChunks = collectReusableArtifactChunks(previousArtifact, chunkWorks, {\n lightHash,\n profileHash,\n planeHeight: options.plane.height,\n planeYOffset: options.plane.yOffset,\n });\n let dirtyChunkWorks = chunkWorks.filter(work => !reusedChunks.chunkIds.has(work.chunk.id));\n let packing = packDirtyChunkWorks(dirtyChunkWorks, options.bake, Math.max(1, options.bake.maxAtlasPages - reusedChunks.pages.length));\n if (\n dirtyChunkWorks.length > 0\n && reusedChunks.chunks.length > 0\n && reusedChunks.pages.length + packing.pages.length > options.bake.maxAtlasPages\n ) {\n reusedChunks = createEmptyReusableArtifactChunks();\n dirtyChunkWorks = chunkWorks;\n packing = packDirtyChunkWorks(dirtyChunkWorks, options.bake, options.bake.maxAtlasPages);\n }\n await this.reportProgress({\n phase: 'collect',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: reusedChunks.chunks.length,\n totalChunkCount: chunks.length,\n encodedTextureCount: 0,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: 0,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n await this.yieldProgress({\n phase: 'reuse',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: reusedChunks.chunks.length,\n totalChunkCount: chunks.length,\n encodedTextureCount: 0,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: 0,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n const atlasPixelsByPageId = new Map<string, Uint8ClampedArray>();\n const pageLayoutsById = new Map(packing.pages.map(page => [page.id, page] as const));\n const reusedPageIds = new Set(reusedChunks.pages.map(page => page.id));\n const bakedPageIds = createBakedPageIds(packing.pages.map(page => page.id), reusedPageIds);\n for (const page of packing.pages) {\n atlasPixelsByPageId.set(page.id, createStaticProjectedShadowAtlasPixels(page.width, page.height));\n }\n const pendingChunks: StaticProjectedShadowArtifactChunkV2[] = [];\n for (let index = 0; index < dirtyChunkWorks.length; index += 1) {\n const work = dirtyChunkWorks[index]!;\n const chunk = work.chunk;\n const layout = packing.layoutsByTileId.get(chunk.id);\n if (!layout) continue;\n const completedBefore = reusedChunks.chunks.length + index;\n await this.reportProgress({\n phase: 'chunk',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: completedBefore,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n currentChunkId: chunk.id,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n const mask = await createStaticProjectedShadowMaskTexture(\n chunk.roots.flatMap(root => root.meshes),\n {\n scene: this.config.scene,\n name: chunk.id,\n bounds: chunk.bounds,\n lightDir,\n planeY,\n resolution: {\n width: layout.width,\n height: layout.height,\n },\n },\n );\n if (!mask) {\n await this.reportProgress({\n phase: 'chunk',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: completedBefore + 1,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n currentChunkId: chunk.id,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n await this.yieldProgress({\n phase: 'chunk',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: completedBefore + 1,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n currentChunkId: chunk.id,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n continue;\n }\n try {\n await this.reportProgress({\n phase: 'sdf',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: completedBefore,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n currentChunkId: chunk.id,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n const maskPixels = await this.readMaskTexturePixels({\n texture: mask.texture,\n chunkId: chunk.id,\n bounds: chunk.bounds,\n width: layout.width,\n height: layout.height,\n });\n if (!maskPixels || maskPixels.width !== layout.width || maskPixels.height !== layout.height) continue;\n const sdfTile = await this.processSdfTile({\n chunkId: chunk.id,\n pixels: maskPixels.pixels,\n width: maskPixels.width,\n height: maskPixels.height,\n sdfRadiusPx: options.bake.sdfRadiusPx,\n });\n if (!sdfTile?.hasCoverage || sdfTile.width !== maskPixels.width || sdfTile.height !== maskPixels.height) continue;\n const atlasPixels = atlasPixelsByPageId.get(layout.pageId);\n const pageLayout = pageLayoutsById.get(layout.pageId);\n if (!atlasPixels) continue;\n if (!pageLayout) continue;\n copyStaticProjectedShadowSdfTileToAtlas(\n atlasPixels,\n pageLayout.width,\n sdfTile.sdfAlpha,\n maskPixels.width,\n maskPixels.height,\n layout.copyX,\n layout.copyY,\n );\n const pageId = bakedPageIds.get(layout.pageId) ?? layout.pageId;\n pendingChunks.push({\n id: chunk.id,\n bounds: {\n minX: roundNumber(chunk.bounds.minX),\n maxX: roundNumber(chunk.bounds.maxX),\n minZ: roundNumber(chunk.bounds.minZ),\n maxZ: roundNumber(chunk.bounds.maxZ),\n y: roundNumber(chunk.bounds.center.y),\n },\n plane: {\n height: roundNumber(options.plane.height),\n yOffset: roundNumber(options.plane.yOffset),\n },\n pageId,\n atlasRect: layout.atlasRect,\n atlasUv: layout.atlasUv,\n sourceNodeIds: work.sourceNodeIds,\n sourceHash: work.sourceHash,\n lightHash,\n profileHash,\n });\n } finally {\n mask.dispose();\n }\n await this.reportProgress({\n phase: 'chunk',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: completedBefore + 1,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n currentChunkId: chunk.id,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n await this.yieldProgress({\n phase: 'chunk',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: completedBefore + 1,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n currentChunkId: chunk.id,\n atlasPageCount: packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n }\n await this.reportProgress({\n phase: 'pack',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: chunks.length,\n totalChunkCount: chunks.length,\n encodedTextureCount: pendingChunks.length,\n atlasPageCount: reusedChunks.pages.length + packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n const usedPageIds = new Set(pendingChunks.map(chunk => chunk.pageId));\n const pages: StaticProjectedShadowArtifactAtlasPage[] = [...reusedChunks.pages];\n const encodedPageIds = new Set<string>();\n for (const page of packing.pages) {\n const pageId = bakedPageIds.get(page.id) ?? page.id;\n if (!usedPageIds.has(pageId)) continue;\n const pixels = atlasPixelsByPageId.get(page.id);\n if (!pixels) continue;\n await this.reportProgress({\n phase: 'encode',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: chunks.length,\n totalChunkCount: chunks.length,\n encodedTextureCount: pages.length,\n currentChunkId: pageId,\n atlasPageCount: reusedChunks.pages.length + packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n const sdfTextureDataUrl = await this.encodeAtlasTexture({\n pageId,\n pixels,\n width: page.width,\n height: page.height,\n });\n if (!isPngDataUrl(sdfTextureDataUrl)) continue;\n pages.push({\n id: pageId,\n width: page.width,\n height: page.height,\n sdfTextureDataUrl,\n });\n encodedPageIds.add(pageId);\n await this.yieldProgress({\n phase: 'encode',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: chunks.length,\n totalChunkCount: chunks.length,\n encodedTextureCount: pages.length,\n currentChunkId: pageId,\n atlasPageCount: reusedChunks.pages.length + packing.pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n }\n const artifactChunks = [...reusedChunks.chunks, ...pendingChunks.filter(chunk => encodedPageIds.has(chunk.pageId))]\n .sort((left, right) => left.id.localeCompare(right.id));\n const durationMs = Math.max(0, Math.round(nowMs() - startedAt));\n const atlasUsage = calculateArtifactAtlasUsage(pages, artifactChunks);\n await this.reportProgress({\n phase: 'complete',\n sourceRootCount: roots.length,\n sourceMeshCount,\n completedChunkCount: chunks.length,\n totalChunkCount: chunks.length,\n encodedTextureCount: pages.length,\n atlasPageCount: pages.length,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n });\n\n return {\n version: 2,\n format: 'sdf-atlas',\n pages,\n chunks: artifactChunks,\n sourceHash,\n lightHash,\n profileHash,\n generatedAt: this.now(),\n stats: {\n sourceRootCount: roots.length,\n sourceMeshCount,\n attemptedChunkCount: chunks.length,\n chunkCount: artifactChunks.length,\n textureCount: pages.length,\n pageCount: pages.length,\n skippedChunkCount: Math.max(0, chunks.length - artifactChunks.length),\n resolution: options.bake.resolution,\n chunkSize: chunkPlan.effectiveChunkSize,\n atlasSize: packing.atlasSize,\n atlasUsedPixels: atlasUsage.usedPixels,\n atlasAllocatedPixels: atlasUsage.allocatedPixels,\n atlasOccupancy: atlasUsage.occupancy,\n texelsPerMeter: options.bake.texelsPerMeter,\n effectiveTexelsPerMeter: packing.effectiveTexelsPerMeter,\n maxAtlasPages: options.bake.maxAtlasPages,\n sdfRadiusPx: options.bake.sdfRadiusPx,\n spatialChunkSize: options.bake.spatialChunkSize,\n effectiveSpatialChunkSize: chunkPlan.effectiveChunkSize,\n targetChunkCount: options.bake.targetChunkCount,\n bakedChunkCount: pendingChunks.length,\n reusedChunkCount: reusedChunks.chunks.length,\n durationMs,\n },\n };\n }\n\n private async reportProgress(progress: StaticProjectedShadowBakeProgress): Promise<void> {\n await this.config.onProgress?.(progress);\n }\n\n private async yieldProgress(progress: StaticProjectedShadowBakeProgress): Promise<void> {\n await this.yieldToMainThread?.(progress);\n }\n}\n\nfunction calculateArtifactAtlasUsage(\n pages: readonly StaticProjectedShadowArtifactAtlasPage[],\n chunks: readonly StaticProjectedShadowArtifactChunkV2[],\n): {\n usedPixels: number;\n allocatedPixels: number;\n occupancy: number;\n} {\n const pageIds = new Set(pages.map(page => page.id));\n const usedPixels = chunks.reduce((sum, chunk) => (\n pageIds.has(chunk.pageId)\n ? sum + Math.max(0, chunk.atlasRect.width) * Math.max(0, chunk.atlasRect.height)\n : sum\n ), 0);\n const allocatedPixels = pages.reduce((sum, page) => (\n sum + Math.max(0, page.width) * Math.max(0, page.height)\n ), 0);\n return {\n usedPixels,\n allocatedPixels,\n occupancy: roundNumber(allocatedPixels > 0 ? usedPixels / allocatedPixels : 0),\n };\n}\n\nfunction createBakeHashes(input: {\n roots: readonly BakeRoot[];\n lightDir: Vector3;\n planeY: number;\n options: ReturnType<typeof resolveStaticProjectedShadowOptions>;\n}): Required<StaticProjectedShadowArtifactHashInput> {\n return {\n sourceHash: createBakeSourceHash(input.roots),\n lightHash: createBakeLightHash(input.lightDir, input.planeY),\n profileHash: createBakeProfileHash(input.options),\n };\n}\n\nfunction createBakeChunkWork(chunk: BakeChunk): BakeChunkWork {\n const sourceNodeIds = uniqueStrings(chunk.roots.map(root => root.sourceNodeId));\n return {\n chunk,\n sourceNodeIds,\n sourceHash: createBakeHash(sourceNodeIds),\n };\n}\n\nfunction packDirtyChunkWorks(\n works: readonly BakeChunkWork[],\n bakeOptions: ReturnType<typeof resolveStaticProjectedShadowOptions>['bake'],\n maxAtlasPages: number,\n) {\n return packStaticProjectedShadowAtlasTiles(works.map(work => ({\n id: work.chunk.id,\n width: Math.max(1e-6, work.chunk.bounds.width),\n height: Math.max(1e-6, work.chunk.bounds.depth),\n })), {\n texelsPerMeter: bakeOptions.texelsPerMeter,\n atlasSize: bakeOptions.atlasSize,\n maxAtlasPages: Math.max(1, maxAtlasPages),\n paddingPx: Math.min(2, Math.max(0, Math.round(bakeOptions.sdfRadiusPx))),\n });\n}\n\nfunction createEmptyReusableArtifactChunks(): {\n chunks: StaticProjectedShadowArtifactChunkV2[];\n pages: StaticProjectedShadowArtifactAtlasPage[];\n chunkIds: Set<string>;\n} {\n return {\n chunks: [],\n pages: [],\n chunkIds: new Set<string>(),\n };\n}\n\nfunction collectReusableArtifactChunks(\n artifact: StaticProjectedShadowArtifact | null | undefined,\n works: readonly BakeChunkWork[],\n hashes: {\n lightHash: string;\n profileHash: string;\n planeHeight: number;\n planeYOffset: number;\n },\n): ReturnType<typeof createEmptyReusableArtifactChunks> {\n if (!artifact || artifact.version !== 2) return createEmptyReusableArtifactChunks();\n const pagesById = new Map(\n artifact.pages\n .filter(page => isPngDataUrl(page.sdfTextureDataUrl))\n .map(page => [page.id, page] as const),\n );\n if (pagesById.size === 0) return createEmptyReusableArtifactChunks();\n const worksById = new Map(works.map(work => [work.chunk.id, work] as const));\n const reusableChunks: StaticProjectedShadowArtifactChunkV2[] = [];\n const reusablePages = new Map<string, StaticProjectedShadowArtifactAtlasPage>();\n const reusableChunkIds = new Set<string>();\n for (const previousChunk of artifact.chunks) {\n const work = worksById.get(previousChunk.id);\n const page = pagesById.get(previousChunk.pageId);\n if (!work || !page) continue;\n if (previousChunk.sourceHash !== work.sourceHash) continue;\n if (previousChunk.lightHash !== hashes.lightHash || previousChunk.profileHash !== hashes.profileHash) continue;\n if (!matchesChunkBounds(previousChunk, work.chunk.bounds)) continue;\n if (!matchesChunkPlane(previousChunk, hashes.planeHeight, hashes.planeYOffset)) continue;\n reusableChunks.push({ ...previousChunk, sourceNodeIds: [...previousChunk.sourceNodeIds] });\n reusablePages.set(page.id, { ...page });\n reusableChunkIds.add(previousChunk.id);\n }\n return {\n chunks: reusableChunks,\n pages: [...reusablePages.values()],\n chunkIds: reusableChunkIds,\n };\n}\n\nfunction matchesChunkBounds(\n chunk: StaticProjectedShadowArtifactChunkV2,\n bounds: StaticProjectedShadowBakeBounds,\n): boolean {\n return chunk.bounds.minX === roundNumber(bounds.minX)\n && chunk.bounds.maxX === roundNumber(bounds.maxX)\n && chunk.bounds.minZ === roundNumber(bounds.minZ)\n && chunk.bounds.maxZ === roundNumber(bounds.maxZ)\n && chunk.bounds.y === roundNumber(bounds.center.y);\n}\n\nfunction matchesChunkPlane(\n chunk: StaticProjectedShadowArtifactChunkV2,\n height: number,\n yOffset: number,\n): boolean {\n return chunk.plane.height === roundNumber(height)\n && chunk.plane.yOffset === roundNumber(yOffset);\n}\n\nfunction createBakedPageIds(pageIds: readonly string[], existingPageIds: ReadonlySet<string>): Map<string, string> {\n const used = new Set(existingPageIds);\n const result = new Map<string, string>();\n for (const pageId of pageIds) {\n let next = pageId;\n if (used.has(next)) {\n let suffix = 0;\n do {\n next = `bake_${suffix}_${pageId}`;\n suffix += 1;\n } while (used.has(next));\n }\n used.add(next);\n result.set(pageId, next);\n }\n return result;\n}\n\nfunction createBakeSourceHash(roots: readonly BakeRoot[]): string {\n return createBakeHash(roots.map(root => ({\n id: root.sourceNodeId,\n name: root.root.name,\n matrix: serializeMatrix(root.root.getWorldMatrix()),\n bounds: serializeBounds(root.bounds),\n })));\n}\n\nfunction createBakeLightHash(lightDir: Vector3, planeY: number): string {\n return createBakeHash({\n direction: serializeVector(lightDir),\n planeY: roundNumber(planeY),\n });\n}\n\nfunction createBakeProfileHash(options: ReturnType<typeof resolveStaticProjectedShadowOptions>): string {\n return createBakeHash({\n plane: {\n height: roundNumber(options.plane.height),\n yOffset: roundNumber(options.plane.yOffset),\n },\n bake: {\n padding: roundNumber(options.bake.padding),\n texelsPerMeter: roundNumber(options.bake.texelsPerMeter),\n atlasSize: roundNumber(options.bake.atlasSize),\n maxAtlasPages: roundNumber(options.bake.maxAtlasPages),\n sdfRadiusPx: roundNumber(options.bake.sdfRadiusPx),\n spatialChunkSize: roundNumber(options.bake.spatialChunkSize),\n },\n });\n}\n\nfunction createBakeRoots(\n roots: readonly AbstractMesh[],\n options: {\n lightDir: Vector3;\n planeY: number;\n padding: number;\n },\n): BakeRoot[] {\n const result: BakeRoot[] = [];\n for (const root of roots) {\n if (root.isDisposed() || !root.isEnabled(false) || isStaticProjectedShadowInternal(root)) continue;\n const meshes = collectStaticProjectedShadowNodeMeshes(root).filter(isBakeMesh);\n if (meshes.length === 0) continue;\n const bounds = buildStaticProjectedShadowBounds(meshes, {\n lightDir: options.lightDir,\n planeY: options.planeY,\n padding: options.padding,\n });\n if (!bounds) continue;\n result.push({\n root,\n sourceNodeId: readEditorProjectionNodeId(root) ?? root.id ?? root.name,\n meshes,\n bounds,\n });\n }\n return result;\n}\n\nfunction createBakeChunkPlan(\n roots: readonly BakeRoot[],\n options: {\n chunkSize: number;\n targetChunkCount: number;\n planeY: number;\n },\n): BakeChunkPlan {\n const requestedChunkSize = Math.max(options.chunkSize || DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS.bake.spatialChunkSize, 1);\n const targetChunkCount = Math.max(1, Math.floor(options.targetChunkCount || DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS.bake.targetChunkCount));\n let effectiveChunkSize = requestedChunkSize;\n let chunks = createBakeChunksAtSize(roots, {\n chunkSize: effectiveChunkSize,\n planeY: options.planeY,\n });\n for (let attempt = 0; attempt < 6 && chunks.length > targetChunkCount; attempt += 1) {\n const scale = Math.sqrt(chunks.length / targetChunkCount) * 1.05;\n effectiveChunkSize = Math.max(effectiveChunkSize + 1e-6, effectiveChunkSize * scale);\n chunks = createBakeChunksAtSize(roots, {\n chunkSize: effectiveChunkSize,\n planeY: options.planeY,\n });\n }\n return {\n chunks,\n requestedChunkSize: roundNumber(requestedChunkSize),\n effectiveChunkSize: roundNumber(effectiveChunkSize),\n };\n}\n\nfunction createBakeChunksAtSize(\n roots: readonly BakeRoot[],\n options: {\n chunkSize: number;\n planeY: number;\n },\n): BakeChunk[] {\n const chunkSize = Math.max(options.chunkSize || DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS.bake.spatialChunkSize, 1);\n const chunks = new Map<string, BakeChunk>();\n for (const root of roots) {\n const minGridX = Math.floor(root.bounds.minX / chunkSize);\n const maxGridX = Math.floor((root.bounds.maxX - 1e-6) / chunkSize);\n const minGridZ = Math.floor(root.bounds.minZ / chunkSize);\n const maxGridZ = Math.floor((root.bounds.maxZ - 1e-6) / chunkSize);\n for (let gridX = minGridX; gridX <= maxGridX; gridX += 1) {\n for (let gridZ = minGridZ; gridZ <= maxGridZ; gridZ += 1) {\n const id = `chunk_${gridX}_${gridZ}`;\n let chunk = chunks.get(id);\n if (!chunk) {\n chunk = {\n id,\n gridX,\n gridZ,\n bounds: createChunkBounds(gridX, gridZ, chunkSize, options.planeY),\n roots: [],\n };\n chunks.set(id, chunk);\n }\n chunk.roots.push(root);\n }\n }\n }\n for (const chunk of chunks.values()) {\n chunk.bounds = createTightChunkBounds(chunk.roots, chunk.bounds);\n }\n return [...chunks.values()].sort((left, right) => left.gridX - right.gridX || left.gridZ - right.gridZ);\n}\n\nfunction createChunkBounds(\n gridX: number,\n gridZ: number,\n chunkSize: number,\n planeY: number,\n): StaticProjectedShadowBakeBounds {\n const minX = gridX * chunkSize;\n const maxX = minX + chunkSize;\n const minZ = gridZ * chunkSize;\n const maxZ = minZ + chunkSize;\n return {\n center: new Vector3((minX + maxX) * 0.5, planeY, (minZ + maxZ) * 0.5),\n width: chunkSize,\n depth: chunkSize,\n minX,\n maxX,\n minZ,\n maxZ,\n };\n}\n\nfunction createTightChunkBounds(\n roots: readonly BakeRoot[],\n gridBounds: StaticProjectedShadowBakeBounds,\n): StaticProjectedShadowBakeBounds {\n let minX = Infinity;\n let maxX = -Infinity;\n let minZ = Infinity;\n let maxZ = -Infinity;\n for (const root of roots) {\n const clippedMinX = Math.max(root.bounds.minX, gridBounds.minX);\n const clippedMaxX = Math.min(root.bounds.maxX, gridBounds.maxX);\n const clippedMinZ = Math.max(root.bounds.minZ, gridBounds.minZ);\n const clippedMaxZ = Math.min(root.bounds.maxZ, gridBounds.maxZ);\n if (clippedMaxX <= clippedMinX || clippedMaxZ <= clippedMinZ) continue;\n minX = Math.min(minX, clippedMinX);\n maxX = Math.max(maxX, clippedMaxX);\n minZ = Math.min(minZ, clippedMinZ);\n maxZ = Math.max(maxZ, clippedMaxZ);\n }\n if (![minX, maxX, minZ, maxZ].every(Number.isFinite)) return gridBounds;\n return {\n center: new Vector3((minX + maxX) * 0.5, gridBounds.center.y, (minZ + maxZ) * 0.5),\n width: maxX - minX,\n depth: maxZ - minZ,\n minX,\n maxX,\n minZ,\n maxZ,\n };\n}\n\nfunction isBakeMesh(mesh: AbstractMesh): boolean {\n if (mesh.isDisposed() || !mesh.isEnabled(false)) return false;\n if (!(mesh instanceof Mesh) && !(mesh instanceof InstancedMesh)) return false;\n const geometrySource = mesh instanceof InstancedMesh ? mesh.sourceMesh : mesh;\n if (!(geometrySource instanceof Mesh) || !geometrySource.geometry) return false;\n return mesh.isVisible && !isStaticProjectedShadowInternal(mesh);\n}\n\nfunction isExplicitStaticProjectedShadowRoot(mesh: AbstractMesh): boolean {\n if (mesh.isDisposed() || !mesh.isEnabled(false) || isStaticProjectedShadowInternal(mesh)) return false;\n const projection = readEditorProjectionMetadata(mesh);\n if (projection?.runtimeKind === 'camera' || projection?.runtimeKind === 'light') return false;\n return isStaticShadowSettingsMetadata(projection?.shadow)\n || isStaticShadowPlanMetadata(projection?.shadowPlan);\n}\n\nfunction hasSelectedAncestor(mesh: AbstractMesh, selected: ReadonlySet<AbstractMesh>): boolean {\n let cursor = mesh.parent;\n while (cursor) {\n if (cursor instanceof AbstractMesh && selected.has(cursor)) return true;\n cursor = cursor.parent;\n }\n return false;\n}\n\nfunction isStaticProjectedShadowInternal(mesh: AbstractMesh): boolean {\n const metadata = mesh.metadata;\n return !!metadata\n && typeof metadata === 'object'\n && ((metadata as { disableStaticProjectedShadow?: unknown }).disableStaticProjectedShadow === true\n || (metadata as { staticProjectedShadowInternal?: unknown }).staticProjectedShadowInternal === true\n || (metadata as { disableBlobShadow?: unknown }).disableBlobShadow === true\n || (metadata as { blobShadowInternal?: unknown }).blobShadowInternal === true\n || (metadata as { disablePlanarShadow?: unknown }).disablePlanarShadow === true\n || (metadata as { planarShadowInternal?: unknown }).planarShadowInternal === true);\n}\n\nfunction readEditorProjectionNodeId(mesh: AbstractMesh): string | null {\n const nodeId = readEditorProjectionMetadata(mesh)?.nodeId;\n return typeof nodeId === 'string' && nodeId.trim() ? nodeId.trim() : null;\n}\n\nfunction readEditorProjectionMetadata(mesh: AbstractMesh): Record<string, unknown> | null {\n const metadata = mesh.metadata;\n if (!metadata || typeof metadata !== 'object') return null;\n const editorProjection = (metadata as { editorProjection?: unknown }).editorProjection;\n return editorProjection && typeof editorProjection === 'object' && !Array.isArray(editorProjection)\n ? editorProjection as Record<string, unknown>\n : null;\n}\n\nfunction isStaticShadowPlanMetadata(value: unknown): boolean {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n const record = value as { backend?: unknown; mode?: unknown };\n return record.backend === 'static-baked' || record.mode === 'static';\n}\n\nfunction isStaticShadowSettingsMetadata(value: unknown): boolean {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return false;\n return (value as { mode?: unknown }).mode === 'static';\n}\n\nfunction resolveBakeLightDirection(light: DirectionalLight | null | undefined): Vector3 {\n const direction = light?.direction;\n return direction?.lengthSquared?.() && direction.lengthSquared() > 1e-6\n ? direction.clone().normalize()\n : DEFAULT_SHADOW_DIRECTION.clone();\n}\n\nasync function defaultReadMaskTexturePixels(\n input: StaticProjectedShadowBakerMaskPixelsInput,\n): Promise<StaticProjectedShadowBakerMaskPixels | null> {\n const pixels = await input.texture.readPixels();\n if (!pixels) return null;\n const size = input.texture.getSize();\n return {\n pixels,\n width: Math.max(1, Math.round(size.width || input.width)),\n height: Math.max(1, Math.round(size.height || input.height)),\n };\n}\n\nasync function defaultEncodeAtlasTexture(input: StaticProjectedShadowBakerAtlasEncodeInput): Promise<string | null> {\n return encodeRgbaPixelsAsPngDataUrl(input.pixels, input.width, input.height);\n}\n\nfunction defaultProcessSdfTile(input: StaticProjectedShadowBakerSdfTileInput): StaticProjectedShadowBakerSdfTile {\n return createStaticProjectedShadowSdfTileFromMaskPixels(\n input.pixels,\n input.width,\n input.height,\n input.sdfRadiusPx,\n );\n}\n\nfunction encodeRgbaPixelsAsPngDataUrl(\n pixels: ArrayBufferView,\n width: number,\n height: number,\n): string | null {\n const canvas = createCanvas(width, height);\n const context = canvas?.getContext('2d');\n if (!canvas || !context) return null;\n const imageData = context.createImageData(width, height);\n const source = pixels instanceof Uint8Array || pixels instanceof Uint8ClampedArray\n ? pixels\n : new Uint8Array(pixels.buffer, pixels.byteOffset, pixels.byteLength);\n const target = imageData.data;\n const length = Math.min(source.length, target.length);\n for (let index = 0; index < length; index += 4) {\n const alpha = source[index + 3] ?? 0;\n target[index] = alpha > 0 ? 255 : 0;\n target[index + 1] = alpha > 0 ? 255 : 0;\n target[index + 2] = alpha > 0 ? 255 : 0;\n target[index + 3] = alpha;\n }\n context.putImageData(imageData, 0, 0);\n return typeof canvas.toDataURL === 'function' ? canvas.toDataURL('image/png') : null;\n}\n\nfunction createCanvas(width: number, height: number): HTMLCanvasElement | null {\n const documentRef = typeof document === 'undefined' ? null : document;\n if (!documentRef?.createElement) return null;\n const canvas = documentRef.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createBakeHash(value: unknown): string {\n const text = stableStringify(value);\n let hash = 0x811c9dc5;\n for (let index = 0; index < text.length; index += 1) {\n hash ^= text.charCodeAt(index);\n hash = Math.imul(hash, 0x01000193);\n }\n return `fnv1a:${(hash >>> 0).toString(16).padStart(8, '0')}`;\n}\n\nfunction stableStringify(value: unknown): string {\n if (value == null || typeof value !== 'object') return JSON.stringify(value);\n if (Array.isArray(value)) return `[${value.map(stableStringify).join(',')}]`;\n const entries = Object.entries(value as Record<string, unknown>)\n .sort(([left], [right]) => left.localeCompare(right));\n return `{${entries.map(([key, entry]) => `${JSON.stringify(key)}:${stableStringify(entry)}`).join(',')}}`;\n}\n\nfunction serializeMatrix(matrix: Matrix): number[] {\n return matrix.asArray().map(roundNumber);\n}\n\nfunction serializeVector(vector: Vector3): { x: number; y: number; z: number } {\n return {\n x: roundNumber(vector.x),\n y: roundNumber(vector.y),\n z: roundNumber(vector.z),\n };\n}\n\nfunction serializeBounds(bounds: StaticProjectedShadowBakeBounds): Record<string, number> {\n return {\n minX: roundNumber(bounds.minX),\n maxX: roundNumber(bounds.maxX),\n minZ: roundNumber(bounds.minZ),\n maxZ: roundNumber(bounds.maxZ),\n y: roundNumber(bounds.center.y),\n };\n}\n\nfunction roundNumber(value: number): number {\n return Math.round(value * 1000000) / 1000000;\n}\n\nfunction nowMs(): number {\n return typeof performance !== 'undefined' && typeof performance.now === 'function'\n ? performance.now()\n : Date.now();\n}\n\nfunction uniqueStrings(values: readonly string[]): string[] {\n return [...new Set(values.map(value => value.trim()).filter(Boolean))];\n}\n\nfunction isPngDataUrl(value: unknown): value is string {\n return typeof value === 'string' && /^data:image\\/png[;,]/i.test(value);\n}\n"]}
|
package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-projected-shadow-options.js","sourceRoot":"","sources":["../../src/shadows/static-projected-shadow-options.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"static-projected-shadow-options.js","sourceRoot":"","sources":["../../src/shadows/static-projected-shadow-options.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS,\n type ResolvedStaticProjectedShadowOptions,\n type StaticProjectedShadowOptions,\n} from './types.js';\n\nexport function resolveStaticProjectedShadowOptions(\n options: Partial<StaticProjectedShadowOptions> = {},\n fallback: ResolvedStaticProjectedShadowOptions = DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS,\n): ResolvedStaticProjectedShadowOptions {\n const spatialChunkSize = readPositiveNumber(\n options.bake?.spatialChunkSize,\n fallback.bake.spatialChunkSize,\n );\n return {\n enabled: readBoolean(options.enabled, fallback.enabled),\n plane: {\n height: readFiniteNumber(options.plane?.height, fallback.plane.height),\n yOffset: readFiniteNumber(options.plane?.yOffset, fallback.plane.yOffset),\n },\n appearance: {\n color: {\n r: readClampedNumber(options.appearance?.color?.r, fallback.appearance.color.r, 0, 1),\n g: readClampedNumber(options.appearance?.color?.g, fallback.appearance.color.g, 0, 1),\n b: readClampedNumber(options.appearance?.color?.b, fallback.appearance.color.b, 0, 1),\n a: readClampedNumber(options.appearance?.color?.a, fallback.appearance.color.a, 0, 1),\n },\n },\n direction: { mode: 'follow-light' },\n bake: {\n resolution: readPositiveNumber(options.bake?.resolution, fallback.bake.resolution),\n padding: readNonNegativeNumber(options.bake?.padding, fallback.bake.padding),\n blur: readNonNegativeNumber(options.bake?.blur, fallback.bake.blur),\n texelsPerMeter: readPositiveNumber(options.bake?.texelsPerMeter, fallback.bake.texelsPerMeter),\n atlasSize: readPositiveNumber(options.bake?.atlasSize, fallback.bake.atlasSize),\n maxAtlasPages: readPositiveNumber(options.bake?.maxAtlasPages, fallback.bake.maxAtlasPages),\n sdfRadiusPx: readNonNegativeNumber(options.bake?.sdfRadiusPx, fallback.bake.sdfRadiusPx),\n spatialChunkSize,\n targetChunkCount: readPositiveNumber(options.bake?.targetChunkCount, fallback.bake.targetChunkCount),\n },\n casters: {\n autoDetectAll: false,\n includePatterns: [],\n excludePatterns: normalizeStringList(options.casters?.excludePatterns ?? fallback.casters.excludePatterns),\n rootBoundaryPatterns: [],\n minVolume: readNonNegativeNumber(options.casters?.minVolume, fallback.casters.minVolume),\n },\n debug: readBoolean(options.debug, fallback.debug),\n };\n}\n\nfunction normalizeStringList(value: readonly string[] | undefined): string[] {\n return [...new Set((value ?? []).map(item => item.trim()).filter(Boolean))];\n}\n\nfunction readBoolean(value: unknown, fallback: boolean): boolean {\n return typeof value === 'boolean' ? value : fallback;\n}\n\nfunction readFiniteNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction readNonNegativeNumber(value: unknown, fallback: number): number {\n const next = readFiniteNumber(value, fallback);\n return next >= 0 ? next : fallback;\n}\n\nfunction readPositiveNumber(value: unknown, fallback: number): number {\n const next = readFiniteNumber(value, fallback);\n return next > 0 ? next : fallback;\n}\n\nfunction readClampedNumber(value: unknown, fallback: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, readFiniteNumber(value, fallback)));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-projected-shadow-rendering.js","sourceRoot":"","sources":["../../src/shadows/static-projected-shadow-rendering.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"static-projected-shadow-rendering.js","sourceRoot":"","sources":["../../src/shadows/static-projected-shadow-rendering.ts"],"names":[],"mappings":"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","sourcesContent":["import { Constants } from '@babylonjs/core/Engines/constants.js';\nimport { Color4 } from '@babylonjs/core/Maths/math.color.js';\nimport { Vector2, Vector3 } from '@babylonjs/core/Maths/math.vector.js';\nimport { Effect } from '@babylonjs/core/Materials/effect.js';\nimport { Material } from '@babylonjs/core/Materials/material.js';\nimport { ShaderMaterial } from '@babylonjs/core/Materials/shaderMaterial.js';\nimport type { BaseTexture } from '@babylonjs/core/Materials/Textures/baseTexture.js';\nimport { Mesh } from '@babylonjs/core/Meshes/mesh.js';\nimport { VertexData } from '@babylonjs/core/Meshes/mesh.vertexData.js';\nimport type { Scene } from '@babylonjs/core/scene.js';\nimport type { StaticProjectedShadowColorRGBA } from './types.js';\n\nexport const STATIC_PROJECTED_SHADOW_ALPHA_INDEX = 2;\nexport const STATIC_PROJECTED_SHADOW_SHADER_NAME = 'fpsStaticProjectedShadow';\nexport const STATIC_PROJECTED_SHADOW_SDF_SHADER_NAME = 'fpsStaticProjectedShadowSdf';\nconst DEFAULT_STATIC_PROJECTED_SHADOW_TEXTURE_SIZE = 256;\n\nexport interface StaticProjectedShadowQuadBounds {\n center: Vector3;\n minX: number;\n maxX: number;\n minZ: number;\n maxZ: number;\n}\n\nexport interface StaticProjectedShadowMaterialOptions {\n color: StaticProjectedShadowColorRGBA;\n blur: number;\n sdfRadiusPx?: number;\n}\n\nexport function createStaticProjectedShadowMaterial(\n name: string,\n scene: Scene,\n texture: BaseTexture,\n options: StaticProjectedShadowMaterialOptions,\n): ShaderMaterial {\n registerStaticProjectedShadowShaders();\n const material = new ShaderMaterial(\n `${name}_staticProjectedShadowMaterial`,\n scene,\n { vertex: STATIC_PROJECTED_SHADOW_SHADER_NAME, fragment: STATIC_PROJECTED_SHADOW_SHADER_NAME },\n {\n needAlphaBlending: true,\n needAlphaTesting: false,\n attributes: ['position', 'uv'],\n uniforms: ['worldViewProjection', 'u_shadowColor', 'u_texelSize', 'u_blurRadius'],\n samplers: ['shadowSampler'],\n },\n );\n const color = options.color;\n material.backFaceCulling = false;\n material.disableDepthWrite = true;\n material.depthFunction = Constants.LEQUAL;\n material.transparencyMode = Material.MATERIAL_ALPHABLEND;\n material.alphaMode = Constants.ALPHA_COMBINE;\n material.needAlphaBlending = () => true;\n material.setTexture('shadowSampler', texture);\n material.setColor4('u_shadowColor', new Color4(\n clamp01(color.r),\n clamp01(color.g),\n clamp01(color.b),\n clamp01(color.a),\n ));\n setStaticProjectedShadowTexelSize(material, texture);\n observeTextureLoaded(texture, () => setStaticProjectedShadowTexelSize(material, texture));\n material.setFloat('u_blurRadius', clamp(options.blur, 0, 32));\n return material;\n}\n\nexport function createStaticProjectedShadowSdfMaterial(\n name: string,\n scene: Scene,\n texture: BaseTexture,\n options: StaticProjectedShadowMaterialOptions,\n): ShaderMaterial {\n registerStaticProjectedShadowShaders();\n const material = new ShaderMaterial(\n `${name}_staticProjectedShadowSdfMaterial`,\n scene,\n { vertex: STATIC_PROJECTED_SHADOW_SDF_SHADER_NAME, fragment: STATIC_PROJECTED_SHADOW_SDF_SHADER_NAME },\n {\n needAlphaBlending: true,\n needAlphaTesting: false,\n attributes: ['position', 'uv'],\n uniforms: ['worldViewProjection', 'u_shadowColor', 'u_texelSize', 'u_edgeWidth', 'u_sdfRadiusPx'],\n samplers: ['shadowSampler'],\n },\n );\n const color = options.color;\n material.backFaceCulling = false;\n material.disableDepthWrite = true;\n material.depthFunction = Constants.LEQUAL;\n material.transparencyMode = Material.MATERIAL_ALPHABLEND;\n material.alphaMode = Constants.ALPHA_COMBINE;\n material.needAlphaBlending = () => true;\n material.setTexture('shadowSampler', texture);\n material.setColor4('u_shadowColor', new Color4(\n clamp01(color.r),\n clamp01(color.g),\n clamp01(color.b),\n clamp01(color.a),\n ));\n setStaticProjectedShadowTexelSize(material, texture);\n observeTextureLoaded(texture, () => setStaticProjectedShadowTexelSize(material, texture));\n material.setFloat('u_edgeWidth', clamp(options.blur, 0, 32));\n material.setFloat('u_sdfRadiusPx', clamp(options.sdfRadiusPx ?? 8, 1, 128));\n return material;\n}\n\nexport function createStaticProjectedShadowRoot(\n name: string,\n scene: Scene,\n bounds: StaticProjectedShadowQuadBounds,\n): Mesh {\n const shadow = new Mesh(`${name}_staticProjectedShadow`, scene);\n const vertexData = new VertexData();\n vertexData.positions = [bounds.center.x, bounds.center.y, bounds.center.z];\n vertexData.indices = [];\n vertexData.applyToMesh(shadow);\n shadow.isPickable = false;\n shadow.receiveShadows = false;\n shadow.alphaIndex = STATIC_PROJECTED_SHADOW_ALPHA_INDEX;\n shadow.renderOutline = false;\n shadow.renderOverlay = false;\n markStaticProjectedShadowInternal(shadow);\n return shadow;\n}\n\nexport function createStaticProjectedShadowQuad(\n name: string,\n scene: Scene,\n bounds: StaticProjectedShadowQuadBounds,\n): Mesh {\n const mesh = new Mesh(name, scene);\n const vertexData = new VertexData();\n vertexData.positions = [\n bounds.minX, bounds.center.y, bounds.minZ,\n bounds.maxX, bounds.center.y, bounds.minZ,\n bounds.maxX, bounds.center.y, bounds.maxZ,\n bounds.minX, bounds.center.y, bounds.maxZ,\n ];\n vertexData.indices = [0, 1, 2, 0, 2, 3];\n vertexData.normals = [\n 0, 1, 0,\n 0, 1, 0,\n 0, 1, 0,\n 0, 1, 0,\n ];\n vertexData.uvs = [\n 0, 0,\n 1, 0,\n 1, 1,\n 0, 1,\n ];\n vertexData.applyToMesh(mesh);\n mesh.isPickable = false;\n mesh.alphaIndex = STATIC_PROJECTED_SHADOW_ALPHA_INDEX;\n markStaticProjectedShadowInternal(mesh);\n return mesh;\n}\n\nexport function markStaticProjectedShadowInternal(mesh: Mesh): void {\n mesh.metadata = {\n ...(mesh.metadata && typeof mesh.metadata === 'object' ? mesh.metadata : {}),\n disableStaticProjectedShadow: true,\n staticProjectedShadowInternal: true,\n };\n}\n\nfunction registerStaticProjectedShadowShaders(): void {\n const vertexKey = `${STATIC_PROJECTED_SHADOW_SHADER_NAME}VertexShader`;\n if (Effect.ShadersStore[vertexKey]) return;\n\n Effect.ShadersStore[vertexKey] = `\nprecision highp float;\n\nattribute vec3 position;\nattribute vec2 uv;\n\nuniform mat4 worldViewProjection;\n\nvarying vec2 v_uv;\n\nvoid main() {\n v_uv = uv;\n gl_Position = worldViewProjection * vec4(position, 1.0);\n}\n`;\n\n Effect.ShadersStore[`${STATIC_PROJECTED_SHADOW_SHADER_NAME}FragmentShader`] = `\nprecision highp float;\n\nuniform sampler2D shadowSampler;\nuniform vec4 u_shadowColor;\nuniform vec2 u_texelSize;\nuniform float u_blurRadius;\n\nvarying vec2 v_uv;\n\nfloat sampleMask(vec2 uv) {\n vec4 mask = texture2D(shadowSampler, clamp(uv, vec2(0.0), vec2(1.0)));\n return mask.a;\n}\n\nvoid main() {\n float radius = clamp(u_blurRadius, 0.0, 32.0);\n float centerAlpha = sampleMask(v_uv);\n float alpha = centerAlpha;\n if (radius >= 0.5) {\n vec2 stepSize = u_texelSize * radius;\n vec2 halfStepSize = stepSize * 0.5;\n float blurredAlpha = 0.0;\n blurredAlpha += centerAlpha * 0.20;\n blurredAlpha += sampleMask(v_uv + vec2(halfStepSize.x, 0.0)) * 0.10;\n blurredAlpha += sampleMask(v_uv - vec2(halfStepSize.x, 0.0)) * 0.10;\n blurredAlpha += sampleMask(v_uv + vec2(0.0, halfStepSize.y)) * 0.10;\n blurredAlpha += sampleMask(v_uv - vec2(0.0, halfStepSize.y)) * 0.10;\n blurredAlpha += sampleMask(v_uv + vec2(stepSize.x, 0.0)) * 0.07;\n blurredAlpha += sampleMask(v_uv - vec2(stepSize.x, 0.0)) * 0.07;\n blurredAlpha += sampleMask(v_uv + vec2(0.0, stepSize.y)) * 0.07;\n blurredAlpha += sampleMask(v_uv - vec2(0.0, stepSize.y)) * 0.07;\n blurredAlpha += sampleMask(v_uv + stepSize) * 0.03;\n blurredAlpha += sampleMask(v_uv - stepSize) * 0.03;\n blurredAlpha += sampleMask(v_uv + vec2(stepSize.x, -stepSize.y)) * 0.03;\n blurredAlpha += sampleMask(v_uv + vec2(-stepSize.x, stepSize.y)) * 0.03;\n alpha = max(centerAlpha, clamp(blurredAlpha * (1.0 + min(radius, 4.0) * 1.25), 0.0, 1.0));\n }\n alpha *= u_shadowColor.a;\n if (alpha <= 0.001) discard;\n gl_FragColor = vec4(u_shadowColor.rgb, alpha);\n}\n`;\n\n Effect.ShadersStore[`${STATIC_PROJECTED_SHADOW_SDF_SHADER_NAME}VertexShader`] = Effect.ShadersStore[vertexKey];\n Effect.ShadersStore[`${STATIC_PROJECTED_SHADOW_SDF_SHADER_NAME}FragmentShader`] = `\n#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\n\nprecision highp float;\n\nuniform sampler2D shadowSampler;\nuniform vec4 u_shadowColor;\nuniform vec2 u_texelSize;\nuniform float u_edgeWidth;\nuniform float u_sdfRadiusPx;\n\nvarying vec2 v_uv;\n\nvoid main() {\n float distanceAlpha = texture2D(shadowSampler, clamp(v_uv, vec2(0.0), vec2(1.0))).a;\n float sdfRadiusPx = max(1.0, u_sdfRadiusPx);\n float encodedTexelWidth = 0.5 / sdfRadiusPx;\n float authoredWidth = max(1.0, u_edgeWidth) * encodedTexelWidth;\n float screenWidth = max(fwidth(distanceAlpha) * 1.25, 1.0 / 255.0);\n float width = min(0.25, max(authoredWidth, screenWidth));\n float alpha = smoothstep(0.5 - width, 0.5 + width, distanceAlpha) * u_shadowColor.a;\n if (alpha <= 0.001) discard;\n gl_FragColor = vec4(u_shadowColor.rgb, alpha);\n}\n`;\n}\n\nfunction clamp01(value: number): number {\n return clamp(value, 0, 1);\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction setStaticProjectedShadowTexelSize(material: ShaderMaterial, texture: BaseTexture): void {\n const size = texture.getSize();\n const width = Number.isFinite(size.width) && size.width > 0\n ? size.width\n : DEFAULT_STATIC_PROJECTED_SHADOW_TEXTURE_SIZE;\n const height = Number.isFinite(size.height) && size.height > 0\n ? size.height\n : DEFAULT_STATIC_PROJECTED_SHADOW_TEXTURE_SIZE;\n material.setVector2('u_texelSize', new Vector2(\n 1 / width,\n 1 / height,\n ));\n}\n\nfunction observeTextureLoaded(texture: BaseTexture, callback: () => void): void {\n const observable = (texture as {\n onLoadObservable?: {\n addOnce?: (handler: () => void) => unknown;\n };\n }).onLoadObservable;\n observable?.addOnce?.(callback);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shadows/types.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh.js';\n\nexport interface PlanarShadowVec3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface PlanarShadowColorRGBA {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport interface BlobShadowColorRGBA {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport interface StaticProjectedShadowColorRGBA {\n r: number;\n g: number;\n b: number;\n a: number;\n}\n\nexport type PlanarShadowPlaneHeightMode = 'fixed' | 'receiver';\n\nexport interface PlanarShadowPlaneOptions {\n normal: PlanarShadowVec3;\n height: number;\n heightMode?: PlanarShadowPlaneHeightMode;\n bias: number;\n}\n\nexport interface PlanarShadowAppearanceOptions {\n color: PlanarShadowColorRGBA;\n}\n\nexport interface PlanarShadowDirectionOptions {\n mode: 'follow-light';\n}\n\nexport type PlanarShadowProjectionStrategy = 'auto' | 'projected-mesh' | 'convex-hull';\n\nexport interface PlanarShadowProjectionOptions {\n footprintScale?: number;\n /**\n * Internal renderer strategy. Editor/product UI must keep exposing the\n * higher-level shadow policy instead of this low-level implementation detail.\n */\n strategy?: PlanarShadowProjectionStrategy;\n}\n\nexport interface PlanarShadowStencilOptions {\n enabled: boolean;\n receiverRenderingGroup?: number;\n shadowRenderingGroup?: number;\n}\n\nexport interface PlanarShadowCasterOptions {\n autoDetectAll?: boolean;\n includePatterns?: string[];\n excludePatterns?: string[];\n rootBoundaryPatterns?: string[];\n minVolume?: number;\n}\n\nexport interface PlanarShadowReceiverOptions {\n patterns?: string[];\n}\n\nexport interface PlanarShadowOptions {\n enabled: boolean;\n plane: PlanarShadowPlaneOptions;\n appearance: PlanarShadowAppearanceOptions;\n direction?: PlanarShadowDirectionOptions;\n projection?: PlanarShadowProjectionOptions;\n stencil?: PlanarShadowStencilOptions;\n casters?: PlanarShadowCasterOptions;\n receivers?: PlanarShadowReceiverOptions;\n debug?: boolean;\n}\n\nexport interface ResolvedPlanarShadowOptions {\n enabled: boolean;\n plane: PlanarShadowPlaneOptions;\n appearance: PlanarShadowAppearanceOptions;\n direction: PlanarShadowDirectionOptions;\n projection: Required<PlanarShadowProjectionOptions>;\n stencil: Required<PlanarShadowStencilOptions>;\n casters: Required<Pick<PlanarShadowCasterOptions, 'autoDetectAll' | 'includePatterns' | 'excludePatterns' | 'rootBoundaryPatterns' | 'minVolume'>>;\n receivers: Required<PlanarShadowReceiverOptions>;\n debug: boolean;\n}\n\nexport interface PlanarShadowCasterInfo {\n source: AbstractMesh;\n shadow: AbstractMesh;\n sourceMeshNames: string[];\n sourceMeshUniqueIds: number[];\n hasSkeleton: boolean;\n strategy: PlanarShadowProjectionStrategy;\n projectedMeshCount: number;\n convexHullMeshCount: number;\n alphaCutoutMeshCount: number;\n instancedCasterCount: number;\n batchMeshCount: number;\n instancedBatchIds: string[];\n instancedBatchNames: string[];\n independentProjectedMeshCount: number;\n visibleInstanceCount: number;\n alphaCutoutChannels: Array<'alpha' | 'luminance' | 'red'>;\n alphaCutoutUvSets: Array<0 | 1 | 2 | 3 | 4 | 5>;\n alphaCutoutLevels: number[];\n alphaCutoutLuminanceWeights: PlanarShadowVec3[];\n fallbackReasons: string[];\n instancingFallbackReasons: string[];\n}\n\nexport interface PlanarShadowCasterDebugInfo {\n sourceName: string;\n sourceMeshNames: string[];\n sourceMeshUniqueIds: number[];\n shadowName: string;\n strategy: PlanarShadowProjectionStrategy;\n hasSkeleton: boolean;\n projectedMeshCount: number;\n convexHullMeshCount: number;\n alphaCutoutMeshCount: number;\n instancedCasterCount: number;\n batchMeshCount: number;\n instancedBatchIds: string[];\n instancedBatchNames: string[];\n independentProjectedMeshCount: number;\n visibleInstanceCount: number;\n alphaCutoutChannels: Array<'alpha' | 'luminance' | 'red'>;\n alphaCutoutUvSets: Array<0 | 1 | 2 | 3 | 4 | 5>;\n alphaCutoutLevels: number[];\n alphaCutoutLuminanceWeights: PlanarShadowVec3[];\n fallbackReasons: string[];\n instancingFallbackReasons: string[];\n}\n\nexport interface PlanarShadowReceiverInfo {\n mesh: AbstractMesh;\n originalRenderingGroup: number;\n material: { stencil?: { enabled: boolean } } | null;\n manual: boolean;\n}\n\nexport interface PlanarShadowSystem {\n initialize(): void;\n addCaster(mesh: AbstractMesh): boolean;\n removeCaster(mesh: AbstractMesh): void;\n addReceiver(mesh: AbstractMesh): void;\n removeReceiver(mesh: AbstractMesh): void;\n enableCasterAutoDetection(patterns: string[]): void;\n enableAutoDetectionForAll(): void;\n refresh(): void;\n setOptions(options: Partial<PlanarShadowOptions>): void;\n getOptions(): ResolvedPlanarShadowOptions;\n getCasterCount(): number;\n getReceiverCount(): number;\n getCasterDebugInfo(): PlanarShadowCasterDebugInfo[];\n dispose(): void;\n}\n\nexport interface BlobShadowPlaneOptions {\n height: number;\n yOffset: number;\n}\n\nexport interface BlobShadowAppearanceOptions {\n color: BlobShadowColorRGBA;\n edgeSoftness?: number;\n}\n\nexport interface BlobShadowSizeOptions {\n sizeMultiplier?: number;\n minSize?: number;\n maxSize?: number;\n}\n\nexport interface BlobShadowCasterOptions {\n autoDetectAll?: boolean;\n includePatterns?: string[];\n excludePatterns?: string[];\n rootBoundaryPatterns?: string[];\n minVolume?: number;\n}\n\nexport interface BlobShadowOptions {\n enabled: boolean;\n plane: BlobShadowPlaneOptions;\n appearance: BlobShadowAppearanceOptions;\n size?: BlobShadowSizeOptions;\n casters?: BlobShadowCasterOptions;\n debug?: boolean;\n}\n\nexport interface ResolvedBlobShadowOptions {\n enabled: boolean;\n plane: BlobShadowPlaneOptions;\n appearance: Required<BlobShadowAppearanceOptions>;\n size: Required<BlobShadowSizeOptions>;\n casters: Required<Pick<BlobShadowCasterOptions, 'autoDetectAll' | 'includePatterns' | 'excludePatterns' | 'rootBoundaryPatterns' | 'minVolume'>>;\n debug: boolean;\n}\n\nexport interface BlobShadowCasterInfo {\n source: AbstractMesh;\n shadow: AbstractMesh;\n}\n\nexport interface BlobShadowCasterOverride {\n sizeMultiplier?: number;\n minSize?: number;\n maxSize?: number;\n yOffset?: number;\n}\n\nexport interface BlobShadowSystem {\n initialize(): void;\n addCaster(mesh: AbstractMesh, override?: BlobShadowCasterOverride): boolean;\n removeCaster(mesh: AbstractMesh): void;\n enableCasterAutoDetection(patterns: string[]): void;\n enableAutoDetectionForAll(): void;\n refresh(): void;\n setOptions(options: Partial<BlobShadowOptions>): void;\n getOptions(): ResolvedBlobShadowOptions;\n getCasterCount(): number;\n dispose(): void;\n}\n\nexport interface StaticProjectedShadowPlaneOptions {\n height: number;\n yOffset: number;\n}\n\nexport interface StaticProjectedShadowAppearanceOptions {\n color: StaticProjectedShadowColorRGBA;\n}\n\nexport interface StaticProjectedShadowBakeOptions {\n /** Intermediate mask resolution used while producing the SDF atlas. */\n resolution?: number;\n padding?: number;\n blur?: number;\n texelsPerMeter?: number;\n atlasSize?: number;\n maxAtlasPages?: number;\n sdfRadiusPx?: number;\n spatialChunkSize?: number;\n targetChunkCount?: number;\n}\n\nexport interface StaticProjectedShadowDirectionOptions {\n mode: 'follow-light';\n}\n\nexport interface StaticProjectedShadowCasterOptions {\n autoDetectAll?: boolean;\n includePatterns?: string[];\n excludePatterns?: string[];\n rootBoundaryPatterns?: string[];\n minVolume?: number;\n}\n\nexport interface StaticProjectedShadowOptions {\n enabled: boolean;\n plane: StaticProjectedShadowPlaneOptions;\n appearance: StaticProjectedShadowAppearanceOptions;\n direction?: StaticProjectedShadowDirectionOptions;\n bake?: StaticProjectedShadowBakeOptions;\n casters?: StaticProjectedShadowCasterOptions;\n debug?: boolean;\n}\n\nexport interface ResolvedStaticProjectedShadowOptions {\n enabled: boolean;\n plane: StaticProjectedShadowPlaneOptions;\n appearance: StaticProjectedShadowAppearanceOptions;\n direction: StaticProjectedShadowDirectionOptions;\n bake: Required<StaticProjectedShadowBakeOptions>;\n casters: Required<Pick<StaticProjectedShadowCasterOptions, 'autoDetectAll' | 'includePatterns' | 'excludePatterns' | 'rootBoundaryPatterns' | 'minVolume'>>;\n debug: boolean;\n}\n\nexport interface StaticProjectedShadowArtifactBounds {\n minX: number;\n maxX: number;\n minZ: number;\n maxZ: number;\n y: number;\n}\n\nexport interface StaticProjectedShadowArtifactPlane {\n height: number;\n yOffset: number;\n}\n\nexport interface StaticProjectedShadowArtifactAtlasPage {\n id: string;\n width: number;\n height: number;\n sdfTextureDataUrl: string;\n}\n\nexport interface StaticProjectedShadowArtifactAtlasRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface StaticProjectedShadowArtifactAtlasUv {\n u0: number;\n v0: number;\n u1: number;\n v1: number;\n}\n\nexport interface StaticProjectedShadowArtifactChunkV2 {\n id: string;\n bounds: StaticProjectedShadowArtifactBounds;\n plane: StaticProjectedShadowArtifactPlane;\n pageId: string;\n atlasRect: StaticProjectedShadowArtifactAtlasRect;\n atlasUv: StaticProjectedShadowArtifactAtlasUv;\n sourceNodeIds: string[];\n sourceHash: string;\n lightHash: string;\n profileHash: string;\n binding?: StaticProjectedShadowArtifactBinding;\n}\n\nexport interface StaticProjectedShadowArtifactBinding {\n id: string;\n ownerCasterId: string;\n receiverId: string;\n lightId?: string;\n textureAssetId?: string;\n projectionNodeId?: string;\n visibleWhenOwnerVisible: true;\n staleWhenOwnerTransformChanges: true;\n staleWhenLightChanges: true;\n generatedAt: string;\n sourceHash: string;\n}\n\nexport type StaticProjectedShadowArtifactChunk = StaticProjectedShadowArtifactChunkV2;\n\nexport interface StaticProjectedShadowArtifactStats {\n sourceRootCount: number;\n sourceMeshCount: number;\n attemptedChunkCount: number;\n chunkCount: number;\n textureCount: number;\n skippedChunkCount?: number;\n pageCount?: number;\n resolution?: number;\n chunkSize?: number;\n atlasSize?: number;\n atlasUsedPixels?: number;\n atlasAllocatedPixels?: number;\n atlasOccupancy?: number;\n texelsPerMeter?: number;\n effectiveTexelsPerMeter?: number;\n maxAtlasPages?: number;\n sdfRadiusPx?: number;\n spatialChunkSize?: number;\n effectiveSpatialChunkSize?: number;\n targetChunkCount?: number;\n bakedChunkCount?: number;\n reusedChunkCount?: number;\n durationMs?: number;\n}\n\nexport interface StaticProjectedShadowArtifactV2 {\n version: 2;\n format: 'sdf-atlas';\n pages: StaticProjectedShadowArtifactAtlasPage[];\n chunks: StaticProjectedShadowArtifactChunkV2[];\n sourceHash: string;\n lightHash: string;\n profileHash: string;\n generatedAt?: string;\n stats?: StaticProjectedShadowArtifactStats;\n}\n\nexport type StaticProjectedShadowArtifact = StaticProjectedShadowArtifactV2;\n\nexport interface StaticProjectedShadowArtifactHashInput {\n sourceHash?: string;\n lightHash?: string;\n profileHash?: string;\n}\n\nexport interface StaticProjectedShadowArtifactTextureReadyEvent {\n chunkId: string;\n textureName: string;\n loadedTextureCount: number;\n totalTextureCount: number;\n}\n\nexport interface StaticProjectedShadowArtifactOptions {\n enabled: boolean;\n appearance: StaticProjectedShadowAppearanceOptions;\n bake?: Pick<StaticProjectedShadowBakeOptions, 'blur'>;\n expectedHashes?: StaticProjectedShadowArtifactHashInput | null;\n onTextureReady?: (event: StaticProjectedShadowArtifactTextureReadyEvent) => void;\n debug?: boolean;\n}\n\nexport type StaticProjectedShadowArtifactDiagnosticStatus =\n | 'disabled'\n | 'missing'\n | 'invalid'\n | 'out-of-date'\n | 'loaded';\n\nexport interface StaticProjectedShadowArtifactDiagnostic {\n status: StaticProjectedShadowArtifactDiagnosticStatus;\n reason: string | null;\n chunkCount: number;\n textureCount: number;\n sourceRootCount?: number | null;\n sourceMeshCount?: number | null;\n attemptedChunkCount?: number | null;\n skippedChunkCount?: number | null;\n pageCount?: number | null;\n resolution?: number | null;\n chunkSize?: number | null;\n atlasSize?: number | null;\n atlasUsedPixels?: number | null;\n atlasAllocatedPixels?: number | null;\n atlasOccupancy?: number | null;\n texelsPerMeter?: number | null;\n effectiveTexelsPerMeter?: number | null;\n maxAtlasPages?: number | null;\n sdfRadiusPx?: number | null;\n spatialChunkSize?: number | null;\n effectiveSpatialChunkSize?: number | null;\n targetChunkCount?: number | null;\n bakedChunkCount?: number | null;\n reusedChunkCount?: number | null;\n durationMs?: number | null;\n stats?: StaticProjectedShadowArtifactStats | null;\n sourceHash?: string | null;\n lightHash?: string | null;\n profileHash?: string | null;\n expectedSourceHash?: string | null;\n expectedLightHash?: string | null;\n expectedProfileHash?: string | null;\n}\n\nexport interface StaticProjectedShadowArtifactSystem {\n initialize(): void;\n setArtifact(artifact: StaticProjectedShadowArtifact | null | undefined): void;\n setOptions(options: Partial<StaticProjectedShadowArtifactOptions>): void;\n refreshBindings(): void;\n getArtifact(): StaticProjectedShadowArtifact | null;\n getDiagnostics(): StaticProjectedShadowArtifactDiagnostic;\n getChunkCount(): number;\n dispose(): void;\n}\n\nexport const DEFAULT_PLANAR_SHADOW_OPTIONS: ResolvedPlanarShadowOptions = {\n enabled: true,\n plane: {\n normal: { x: 0, y: 1, z: 0 },\n height: 0,\n heightMode: 'receiver',\n bias: 0.4,\n },\n appearance: {\n color: { r: 0, g: 0, b: 0, a: 0.35 },\n },\n direction: { mode: 'follow-light' },\n projection: {\n footprintScale: 1,\n strategy: 'auto',\n },\n stencil: {\n enabled: false,\n receiverRenderingGroup: 0,\n shadowRenderingGroup: 1,\n },\n casters: {\n autoDetectAll: false,\n includePatterns: [],\n excludePatterns: [\n '_planarshadow',\n '_shadow',\n 'placeholder',\n 'collision',\n 'trigger',\n 'helper',\n 'camera',\n 'light',\n 'gizmo',\n 'grid',\n 'ui',\n ],\n rootBoundaryPatterns: [],\n minVolume: 0.001,\n },\n receivers: {\n patterns: [],\n },\n debug: false,\n};\n\nexport const DEFAULT_BLOB_SHADOW_OPTIONS: ResolvedBlobShadowOptions = {\n enabled: true,\n plane: {\n height: 0,\n yOffset: 0.08,\n },\n appearance: {\n color: { r: 0, g: 0, b: 0, a: 0.35 },\n edgeSoftness: 0.55,\n },\n size: {\n sizeMultiplier: 1.25,\n minSize: 0.25,\n maxSize: 20,\n },\n casters: {\n autoDetectAll: false,\n includePatterns: [],\n excludePatterns: [\n '_blobshadow',\n '_planarshadow',\n '_shadow',\n 'placeholder',\n 'collision',\n 'trigger',\n 'helper',\n 'camera',\n 'light',\n 'gizmo',\n 'grid',\n 'ui',\n ],\n rootBoundaryPatterns: [],\n minVolume: 0.001,\n },\n debug: false,\n};\n\nexport const DEFAULT_STATIC_PROJECTED_SHADOW_OPTIONS: ResolvedStaticProjectedShadowOptions = {\n enabled: true,\n plane: {\n height: 0,\n yOffset: 0.08,\n },\n appearance: {\n color: { r: 0, g: 0, b: 0, a: 0.35 },\n },\n direction: { mode: 'follow-light' },\n bake: {\n resolution: 2048,\n padding: 0.15,\n blur: 0,\n texelsPerMeter: 256,\n atlasSize: 4096,\n maxAtlasPages: 8,\n sdfRadiusPx: 8,\n spatialChunkSize: 16,\n targetChunkCount: 64,\n },\n casters: {\n autoDetectAll: false,\n includePatterns: [],\n excludePatterns: [\n '_staticprojectedshadow',\n '_blobshadow',\n '_planarshadow',\n '_shadow',\n 'placeholder',\n 'collision',\n 'trigger',\n 'helper',\n 'camera',\n 'light',\n 'gizmo',\n 'grid',\n 'ui',\n ],\n rootBoundaryPatterns: [],\n minVolume: 0.001,\n },\n debug: false,\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fps-games/babylon-renderer",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.3",
|
|
4
4
|
"private": true,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Babylon-backed renderer capabilities for fps-game-editor.",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"fpsGamePlugin": {
|
|
26
26
|
"id": "fps.renderer.babylon",
|
|
27
|
-
"version": "0.2.0-beta.
|
|
27
|
+
"version": "0.2.0-beta.3",
|
|
28
28
|
"apiVersion": 1,
|
|
29
29
|
"requires": {},
|
|
30
30
|
"provides": {
|
|
@@ -55,11 +55,11 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@fps-games/playable-contracts": "0.2.0-beta.
|
|
59
|
-
"@fps-games/playable-rendering": "0.2.0-beta.
|
|
60
|
-
"@fps-games/playable-runtime-data": "0.2.0-beta.
|
|
61
|
-
"@fps-games/plugin-api": "0.2.0-beta.
|
|
62
|
-
"@fps-games/plugin-host": "0.2.0-beta.
|
|
58
|
+
"@fps-games/playable-contracts": "0.2.0-beta.3",
|
|
59
|
+
"@fps-games/playable-rendering": "0.2.0-beta.3",
|
|
60
|
+
"@fps-games/playable-runtime-data": "0.2.0-beta.3",
|
|
61
|
+
"@fps-games/plugin-api": "0.2.0-beta.3",
|
|
62
|
+
"@fps-games/plugin-host": "0.2.0-beta.3"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"@babylonjs/core": "^8.0.0"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera-controller.js","sourceRoot":"","sources":["../src/camera-controller.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,6BAA6B,GAAG,CAAC,CAAC;AACxC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AACrC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAkBtC,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW;IACnC,MAAM,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;IAC1C,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM;QAAE,OAAO;IACjD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAU,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,SAAS;QAC3C,IAAI,CAAC;YAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAW,EAAE,KAAsC,EAAE,WAAgB;IAC7F,IAAI,CAAC,MAAM,EAAE,YAAY,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,QAAQ,GAAG,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,OAAO,MAAM,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,yBAAyB,CAAC,MAAW,EAAE,QAAkC;IAChF,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,QAAQ;QAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;IAClG,OAAO,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC;AAChD,CAAC;AAKD,SAAS,sBAAsB,CAAC,IAAS;IACvC,MAAM,GAAG,GAAG,IAAI,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC;IACvF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAW;IACxC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnF,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACrB,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAS;IACxC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,EAAE,2BAA2B,EAAE,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACzB,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACzB,IAAI,EAAE,GAAG,CAAC,oBAAoB,IAAI,EAAE,GAAG,CAAC,oBAAoB,IAAI,EAAE,GAAG,CAAC,oBAAoB;QAAE,OAAO,IAAI,CAAC;IACxG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,oBAAoB;QAAE,OAAO,IAAI,CAAC;IAC5E,MAAM,MAAM,GAAG;QACb,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACtB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;KACvB,CAAC;IACF,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAS;IACzC,IAAI,CAAC;QACH,IAAI,EAAE,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,IAAI,gBAAgB,GAAQ,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,gBAAgB,GAAG,IAAI,EAAE,mBAAmB,EAAE,EAAE,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,qBAAqB,CAAC,gBAAgB,CAAC;WACzC,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,CAAC;WAC7C,qBAAqB,CAAC,IAAI,EAAE,cAAc,CAAC;WAC3C,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAS;IACxC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC;IAClC,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,MAAM,KAAK,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,MAAM,CAAC;QAC/B,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAS;IACxC,MAAM,aAAa,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,aAAa;QAAE,OAAO,aAAa,CAAC;IACxC,MAAM,WAAW,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IACpC,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACpD,OAAO;QACL,MAAM;QACN,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,aAAa,IAAI,CAAC,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,KAAmB,EACnB,YAAkC,EAClC,UAAuC,EAAE;IAEzC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IACjC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE9C,MAAM,MAAM,GAAG,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,IAAI,IAAI,CAAC;IACpE,MAAM,GAAG,GAAG,YAAmB,CAAC;IAChC,MAAM,QAAQ,GAAG,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE;WAC1C,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;WACxB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,WAAW,GAAG,GAAG,EAAE,SAAS,EAAE,EAAE;WACjC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;WACtB,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,UAAU,IAAI,sBAAsB,EAAE,QAAQ,EAAE,KAAK,CAAwB,CAAC;IACzH,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;IACpC,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;IACvC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IACnB,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,GAAG,6BAA6B,CAAC;IAE7C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAClD,IAAI,OAAO;QAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACzB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC;IAClD,IAAI,UAAU;QAAE,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;IAEzC,MAAM,GAAG,GAA4B;QACnC,MAAM;QACN,MAAM;QACN,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,IAAI;QACnB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,6BAA6B;QACpC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;KAC7B,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,aAAa,GAAG,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC/D,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAE,EAAE;YACpC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAChE,IAAI,CAAC,WAAW;gBAAE,OAAO;YACzB,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,EAAE,8BAA8B,EAAE,IAAI,IAAI,CAAC;YACzE,IAAI,YAAY,KAAK,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5C,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,EAAE,yBAAyB,EAAE,yBAAyB,CAAC,CAAC;gBAC5F,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;gBACzB,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAAE,OAAO;YACzC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAAC;YAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAAC;YAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,gBAAgB,GAAG,SAAS,CAAC;QAChE,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,GAAG,CAAC,aAAa,GAAG,aAAa,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,KAAmB,EACnB,GAA4B,EAC5B,UAAuC,EAAE;IAEzC,IAAI,GAAG,CAAC,SAAS;QAAE,OAAO,GAAG,CAAC,SAAS,CAAC;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAa,CAAC;IACjC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC;IACzC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE/C,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE;QACtD,MAAM,YAAY,GAAG,KAAK,CAAC,8BAA8B,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,KAAK,CAAC,2BAA2B,EAAE,CAAC;QACzD,IAAI,YAAY,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC;YACtE,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC1H,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC1H,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC5H,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,2BAA2B,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO;QACjE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,EAAE,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,GAAG,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC;iBACpB,IAAI,GAAG,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC;iBACzB,IAAI,GAAG,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC;iBACzB,IAAI,GAAG,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC;iBACzB,IAAI,GAAG,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC;iBACzB,IAAI,GAAG,KAAK,GAAG;gBAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;YAAE,OAAO;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACxD,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;QACrB,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;QACrB,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;QACrB,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ;YAAE,OAAO;QACrC,MAAM,GAAG,GAAG,yBAAyB,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACrG,MAAM,KAAK,GAAG,yBAAyB,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC/C,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC,SAAS,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,KAAmB,EAAE,GAAmC;IAClG,IAAI,CAAC,GAAG;QAAE,OAAO;IACjB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IACD,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC;IACzB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC;QAAE,GAAG,CAAC,MAAc,EAAE,aAAa,EAAE,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACxD,IAAI,CAAC;QAAE,GAAG,CAAC,MAAc,EAAE,OAAO,EAAE,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAA4B,EAC5B,IAAwB,EACxB,UAAwD,EAAE;IAE1D,MAAM,YAAY,GAAG,MAAa,CAAC;IACnC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAW,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACjC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QAEvC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,KAAK,GAAI,YAAY,CAAC,QAAQ,EAAE,EAA+B,IAAM,IAAY,CAAC,QAAQ,EAAE,EAA+B,CAAC;QAClI,MAAM,iBAAiB,GAAG,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,YAAY,CAAC;QAC/E,IAAI,OAAO,YAAY,CAAC,SAAS,KAAK,UAAU,IAAI,OAAO,EAAE,CAAC;YAC5D,YAAY,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,iBAAiB;gBAAE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;YAClD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5E,IAAI,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YACjC,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5C,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAC9C,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,EAAE,cAAc;YAAE,YAAY,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;aACnF,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YAC7B,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3B,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;YAC3B,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,iBAAiB;YAAE,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"camera-controller.js","sourceRoot":"","sources":["../src/camera-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n BabylonRuntimeGlobal,\n EditorInputControllerApi,\n RuntimeCamera,\n RuntimeNode,\n RuntimeScene,\n} from './types';\nimport { getBabylonRuntime } from './runtime-globals';\n\nconst DEFAULT_VIEWPORT_CAMERA_SPEED = 4;\nconst MIN_VIEWPORT_CAMERA_SPEED = 0.5;\nconst MAX_VIEWPORT_CAMERA_SPEED = 32;\nconst WHEEL_DOLLY_STEP = 1.2;\nconst MMB_PAN_SENSITIVITY = 0.01;\nconst MIN_FOCUS_POINT_RADIUS = 1;\nconst FOCUS_BOUNDS_EPSILON = 0.000001;\n\nexport interface EditorViewportCameraOptions {\n babylon?: BabylonRuntimeGlobal | null;\n input?: EditorInputControllerApi | null;\n cameraName?: string;\n}\n\nexport interface EditorViewportCameraCtx {\n camera: RuntimeCamera;\n canvas: HTMLCanvasElement | null;\n renderObs: unknown;\n onContextMenu: ((event: Event) => void) | null;\n onWheel: ((event: WheelEvent) => void) | null;\n speed: number;\n input: EditorInputControllerApi | null;\n}\n\nfunction clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\nfunction removeWheelInput(camera: any): void {\n const attached = camera?.inputs?.attached;\n if (!attached || !camera?.inputs?.remove) return;\n for (const input of Object.values(attached) as any[]) {\n const name = input?.getClassName?.() || input?.constructor?.name || '';\n if (!/wheel/i.test(String(name))) continue;\n try { camera.inputs.remove(input); } catch {}\n }\n}\n\nfunction getCameraForward(camera: any, scene: RuntimeScene | null | undefined, Vector3Ctor: any): any | null {\n if (!camera?.getDirection || !Vector3Ctor) return null;\n const forwardZ = scene?.useRightHandedSystem ? -1 : 1;\n return camera.getDirection(new Vector3Ctor(0, 0, forwardZ));\n}\n\nfunction normalizeHorizontalVector(vector: any, fallback: { x: number; z: number }): { x: number; y: 0; z: number } {\n const x = Number(vector?.x);\n const z = Number(vector?.z);\n const length = Math.sqrt(x * x + z * z);\n if (!Number.isFinite(length) || length <= 0.000001) return { x: fallback.x, y: 0, z: fallback.z };\n return { x: x / length, y: 0, z: z / length };\n}\n\ntype FocusVector = { x: number; y: number; z: number };\ntype FocusFrame = { center: FocusVector; radius: number };\n\nfunction readExplicitFocusFrame(node: any): FocusFrame | null {\n const raw = node?.metadata?.editorFocusFrame;\n const center = readFiniteFocusVector(raw?.center);\n const radius = Number(raw?.radius);\n if (!center || !Number.isFinite(radius) || radius <= FOCUS_BOUNDS_EPSILON) return null;\n return { center, radius };\n}\n\nfunction readFiniteFocusVector(vector: any): FocusVector | null {\n const x = Number(vector?.x);\n const y = Number(vector?.y);\n const z = Number(vector?.z);\n if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z)) return null;\n return { x, y, z };\n}\n\nfunction readHierarchyFocusFrame(node: any): FocusFrame | null {\n let hbv: any;\n try {\n hbv = node?.getHierarchyBoundingVectors?.();\n } catch {\n return null;\n }\n const min = readFiniteFocusVector(hbv?.min);\n const max = readFiniteFocusVector(hbv?.max);\n if (!min || !max) return null;\n const dx = max.x - min.x;\n const dy = max.y - min.y;\n const dz = max.z - min.z;\n if (dx < -FOCUS_BOUNDS_EPSILON || dy < -FOCUS_BOUNDS_EPSILON || dz < -FOCUS_BOUNDS_EPSILON) return null;\n const width = Math.max(0, dx);\n const height = Math.max(0, dy);\n const depth = Math.max(0, dz);\n const radius = Math.sqrt(width * width + height * height + depth * depth) / 2;\n if (!Number.isFinite(radius) || radius <= FOCUS_BOUNDS_EPSILON) return null;\n const center = {\n x: (min.x + max.x) / 2,\n y: (min.y + max.y) / 2,\n z: (min.z + max.z) / 2,\n };\n return readFiniteFocusVector(center) ? { center, radius } : null;\n}\n\nfunction readNodeWorldFocusCenter(node: any): FocusVector | null {\n try {\n node?.computeWorldMatrix?.(true);\n } catch {}\n let absolutePosition: any = null;\n try {\n absolutePosition = node?.getAbsolutePosition?.();\n } catch {}\n return readFiniteFocusVector(absolutePosition)\n ?? readFiniteFocusVector(node?.absolutePosition)\n ?? readFiniteFocusVector(node?.globalPosition)\n ?? readFiniteFocusVector(node?.position);\n}\n\nfunction readAncestorFocusRadius(node: any): number | null {\n const seen = new Set<any>([node]);\n let parent = node?.parent ?? null;\n while (parent && !seen.has(parent)) {\n seen.add(parent);\n const frame = readHierarchyFocusFrame(parent);\n if (frame) return frame.radius;\n parent = parent.parent ?? null;\n }\n return null;\n}\n\nfunction readSelectionFocusFrame(node: any): FocusFrame | null {\n const explicitFrame = readExplicitFocusFrame(node);\n if (explicitFrame) return explicitFrame;\n const boundsFrame = readHierarchyFocusFrame(node);\n if (boundsFrame) return boundsFrame;\n const center = readNodeWorldFocusCenter(node);\n if (!center) return null;\n const contextRadius = readAncestorFocusRadius(node);\n return {\n center,\n radius: Math.max(MIN_FOCUS_POINT_RADIUS, contextRadius ?? 0),\n };\n}\n\nexport async function createEditorViewportCamera(\n scene: RuntimeScene,\n sourceCamera: RuntimeCamera | null,\n options: EditorViewportCameraOptions = {},\n): Promise<EditorViewportCameraCtx | null> {\n const runtime = getBabylonRuntime(options.babylon);\n const UniversalCamera = runtime?.UniversalCamera;\n const Vector3 = runtime?.Vector3;\n if (!UniversalCamera || !Vector3) return null;\n\n const canvas = scene?.getEngine?.()?.getRenderingCanvas?.() ?? null;\n const src = sourceCamera as any;\n const startPos = src?.globalPosition?.clone?.()\n || src?.position?.clone?.()\n || new Vector3(0, 5, -10);\n const startTarget = src?.getTarget?.()\n || src?.target?.clone?.()\n || new Vector3(0, 0, 0);\n\n const camera = new UniversalCamera(options.cameraName ?? 'EditorViewportCamera', startPos, scene) as RuntimeCamera & any;\n camera.setTarget(startTarget);\n camera.fov = src?.fov ?? camera.fov;\n camera.minZ = src?.minZ ?? camera.minZ;\n camera.maxZ = src?.maxZ ?? camera.maxZ;\n camera.inertia = 0;\n camera.angularSensibility = 1000;\n camera.speed = DEFAULT_VIEWPORT_CAMERA_SPEED;\n\n const kbInput = camera.inputs?.attached?.keyboard;\n if (kbInput) camera.inputs.remove(kbInput);\n removeWheelInput(camera);\n const mouseInput = camera.inputs?.attached?.mouse;\n if (mouseInput) mouseInput.buttons = [2];\n\n const ctx: EditorViewportCameraCtx = {\n camera,\n canvas,\n renderObs: null,\n onContextMenu: null,\n onWheel: null,\n speed: DEFAULT_VIEWPORT_CAMERA_SPEED,\n input: options.input ?? null,\n };\n\n if (canvas) {\n camera.attachControl(canvas, true);\n const onContextMenu = (event: Event) => event.preventDefault();\n const onWheel = (event: WheelEvent) => {\n event.preventDefault();\n const Vector3Ctor = getBabylonRuntime(options.babylon)?.Vector3;\n if (!Vector3Ctor) return;\n const activeButton = ctx.input?.activeViewportNavigationButton() ?? null;\n if (activeButton === 'right') {\n const factor = event.deltaY < 0 ? 1.1 : 0.9;\n ctx.speed = clamp(ctx.speed * factor, MIN_VIEWPORT_CAMERA_SPEED, MAX_VIEWPORT_CAMERA_SPEED);\n camera.speed = ctx.speed;\n return;\n }\n const forward = getCameraForward(camera, scene, Vector3Ctor);\n if (!forward || !camera.position) return;\n const direction = event.deltaY < 0 ? 1 : -1;\n camera.position.x += forward.x * WHEEL_DOLLY_STEP * direction;\n camera.position.y += forward.y * WHEEL_DOLLY_STEP * direction;\n camera.position.z += forward.z * WHEEL_DOLLY_STEP * direction;\n };\n canvas.addEventListener('contextmenu', onContextMenu);\n canvas.addEventListener('wheel', onWheel, { passive: false });\n ctx.onContextMenu = onContextMenu;\n ctx.onWheel = onWheel;\n }\n\n return ctx;\n}\n\nexport function attachEditorViewportMovement(\n scene: RuntimeScene,\n ctx: EditorViewportCameraCtx,\n options: EditorViewportCameraOptions = {},\n): unknown {\n if (ctx.renderObs) return ctx.renderObs;\n const camera = ctx.camera as any;\n const Vector3 = getBabylonRuntime(options.babylon)?.Vector3;\n const input = options.input ?? ctx.input;\n if (!camera || !Vector3 || !input) return null;\n\n ctx.renderObs = scene.onBeforeRenderObservable.add(() => {\n const activeButton = input.activeViewportNavigationButton();\n const pointerDelta = input.consumeViewportPointerDelta();\n if (activeButton === 'middle' && (pointerDelta.dx || pointerDelta.dy)) {\n const right = camera.getDirection?.(new Vector3(1, 0, 0));\n const up = camera.getDirection?.(new Vector3(0, 1, 0));\n if (right && up) {\n camera.position.x += (-pointerDelta.dx * MMB_PAN_SENSITIVITY) * right.x + (-pointerDelta.dy * MMB_PAN_SENSITIVITY) * up.x;\n camera.position.y += (-pointerDelta.dx * MMB_PAN_SENSITIVITY) * right.y + (-pointerDelta.dy * MMB_PAN_SENSITIVITY) * up.y;\n camera.position.z += (-pointerDelta.dx * MMB_PAN_SENSITIVITY) * right.z + (-pointerDelta.dy * MMB_PAN_SENSITIVITY) * up.z;\n }\n }\n\n const pressed = input.pressedViewportMovementKeys();\n if (!input.isViewportNavigationActive() || !pressed.size) return;\n const dt = scene.getEngine().getDeltaTime() / 1000;\n const step = ctx.speed * dt;\n let lx = 0;\n let ly = 0;\n let lz = 0;\n for (const key of pressed) {\n if (key === 'w') lz += 1;\n else if (key === 's') lz -= 1;\n else if (key === 'a') lx -= 1;\n else if (key === 'd') lx += 1;\n else if (key === 'q') ly -= 1;\n else if (key === 'e') ly += 1;\n }\n if (!lx && !ly && !lz) return;\n const len = Math.sqrt(lx * lx + ly * ly + lz * lz) || 1;\n lx = lx / len * step;\n ly = ly / len * step;\n lz = lz / len * step;\n const rawForward = getCameraForward(camera, scene, Vector3);\n const rawRight = camera.getDirection?.(new Vector3(1, 0, 0));\n if (!rawForward || !rawRight) return;\n const fwd = normalizeHorizontalVector(rawForward, { x: 0, z: scene?.useRightHandedSystem ? -1 : 1 });\n const right = normalizeHorizontalVector(rawRight, { x: 1, z: 0 });\n camera.position.x += right.x * lx + fwd.x * lz;\n camera.position.y += ly;\n camera.position.z += right.z * lx + fwd.z * lz;\n });\n return ctx.renderObs;\n}\n\nexport function disposeEditorViewportCamera(scene: RuntimeScene, ctx: EditorViewportCameraCtx | null): void {\n if (!ctx) return;\n if (ctx.renderObs) {\n scene.onBeforeRenderObservable.remove(ctx.renderObs);\n ctx.renderObs = null;\n }\n if (ctx.canvas && ctx.onContextMenu) {\n ctx.canvas.removeEventListener('contextmenu', ctx.onContextMenu);\n }\n if (ctx.canvas && ctx.onWheel) {\n ctx.canvas.removeEventListener('wheel', ctx.onWheel);\n }\n ctx.onContextMenu = null;\n ctx.onWheel = null;\n try { (ctx.camera as any)?.detachControl?.(); } catch {}\n try { (ctx.camera as any)?.dispose?.(); } catch {}\n}\n\nexport function focusEditorViewportSelection(\n camera: RuntimeCamera | null,\n node: RuntimeNode | null,\n options: Pick<EditorViewportCameraOptions, 'babylon'> = {},\n): boolean {\n const editorCamera = camera as any;\n if (!editorCamera || !node) return false;\n try {\n const frame = readSelectionFocusFrame(node as any);\n if (!frame) return false;\n const { center, radius } = frame;\n const { x: cx, y: cy, z: cz } = center;\n\n const Vector3 = getBabylonRuntime(options.babylon)?.Vector3;\n const dist = Math.max(radius * 2.5, 2);\n const scene = (editorCamera.getScene?.() as RuntimeScene | undefined) ?? ((node as any).getScene?.() as RuntimeScene | undefined);\n const isArcRotateCamera = 'radius' in editorCamera && 'target' in editorCamera;\n if (typeof editorCamera.setTarget === 'function' && Vector3) {\n editorCamera.setTarget(new Vector3(cx, cy, cz));\n if (isArcRotateCamera) editorCamera.radius = dist;\n return true;\n }\n const dir = Vector3 ? getCameraForward(editorCamera, scene, Vector3) : null;\n if (dir && editorCamera.position) {\n editorCamera.position.x = cx - dir.x * dist;\n editorCamera.position.y = cy - dir.y * dist;\n editorCamera.position.z = cz - dir.z * dist;\n }\n if (editorCamera.target?.copyFromFloats) editorCamera.target.copyFromFloats(cx, cy, cz);\n else if (editorCamera.target) {\n editorCamera.target.x = cx;\n editorCamera.target.y = cy;\n editorCamera.target.z = cz;\n }\n if (isArcRotateCamera) editorCamera.radius = dist;\n return true;\n } catch {}\n return false;\n}\n"]}
|