@fps-games/editor 0.2.0-beta.4 → 0.2.1-beta.1
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/editor-state.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js +12 -6
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/hierarchy.d.ts +4 -0
- package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/hierarchy.js +209 -0
- package/dist/agent-bridge/capabilities/hierarchy.js.map +1 -0
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js +208 -73
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +3 -4
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js +24 -23
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js +829 -66
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js +3 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js +22 -9
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
- package/dist/agent-bridge/capability-sources.js +2 -0
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/register.d.ts.map +1 -1
- package/dist/agent-bridge/register.js +194 -0
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.d.ts +231 -11
- package/dist/agent-bridge/shared.d.ts.map +1 -1
- package/dist/agent-bridge/shared.js +162 -20
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.d.ts +17 -1
- package/dist/agent-bridge/source-types.d.ts.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/build-info.json +57 -42
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/babylon-preview-engine.d.ts +3 -0
- package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
- package/dist/internal/babylon-preview-engine.js +11 -0
- package/dist/internal/babylon-preview-engine.js.map +1 -0
- package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
- package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
- package/dist/internal/product-local-editor-cleanup.js +20 -0
- package/dist/internal/product-local-editor-cleanup.js.map +1 -0
- package/dist/local-editor-agent-actions.d.ts +2 -4
- package/dist/local-editor-agent-actions.d.ts.map +1 -1
- package/dist/local-editor-agent-actions.js +56 -32
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-context.d.ts +5 -5
- package/dist/local-editor-agent-context.d.ts.map +1 -1
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +340 -35
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +3834 -1321
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.d.ts +15 -15
- package/dist/local-editor-marker-graph.d.ts.map +1 -1
- package/dist/local-editor-marker-graph.js +3 -0
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.d.ts +3 -2
- package/dist/local-editor-performance-stats.d.ts.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
- package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
- package/dist/local-editor-prefab-stage-transaction.js +45 -0
- package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
- package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
- package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-tools.d.ts +18 -0
- package/dist/local-editor-tools.d.ts.map +1 -0
- package/dist/local-editor-tools.js +53 -0
- package/dist/local-editor-tools.js.map +1 -0
- package/dist/playable-babylon-rendering.d.ts +9 -0
- package/dist/playable-babylon-rendering.d.ts.map +1 -1
- package/dist/playable-babylon-rendering.js +162 -6
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-entry.d.ts +68 -0
- package/dist/playable-local-editor-entry.d.ts.map +1 -0
- package/dist/playable-local-editor-entry.js +424 -0
- package/dist/playable-local-editor-entry.js.map +1 -0
- package/dist/playable-local-editor-host.d.ts +51 -29
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +23 -11
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.d.ts +10 -12
- package/dist/playable-product-local-editor.d.ts.map +1 -1
- package/dist/playable-product-local-editor.js +178 -85
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.d.ts +4 -1
- package/dist/playable-product-projection-preview.d.ts.map +1 -1
- package/dist/playable-product-projection-preview.js +122 -5
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.d.ts +12 -0
- package/dist/playable-product-rendering.d.ts.map +1 -1
- package/dist/playable-product-rendering.js +128 -6
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts +24 -7
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +172 -15
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-project-mode.d.ts +17 -0
- package/dist/playable-project-mode.d.ts.map +1 -0
- package/dist/playable-project-mode.js +2 -0
- package/dist/playable-project-mode.js.map +1 -0
- package/dist/playable-runtime-babylon.d.ts +3 -6
- package/dist/playable-runtime-babylon.d.ts.map +1 -1
- package/dist/playable-runtime-babylon.js +1 -5
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-sdk.d.ts +16 -9
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js +6 -4
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.d.ts +23 -14
- package/dist/playable-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +53 -19
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/vite-client.d.ts +4 -0
- package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
- package/node_modules/@babel/parser/lib/index.js +0 -1
- package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
- package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
- package/node_modules/@babel/types/lib/builders/productions.js +0 -1
- package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
- package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
- package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
- package/node_modules/@babel/types/lib/clone/clone.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
- package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
- package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
- package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/constants/index.js +0 -1
- package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
- package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
- package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
- package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
- package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
- package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
- package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
- package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
- package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
- package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
- package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
- package/node_modules/@babel/types/lib/definitions/core.js +0 -1
- package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
- package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
- package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
- package/node_modules/@babel/types/lib/definitions/index.js +0 -1
- package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
- package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
- package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
- package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
- package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
- package/node_modules/@babel/types/lib/index.js +0 -1
- package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
- package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
- package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
- package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
- package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
- package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
- package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
- package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
- package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
- package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
- package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/validators/is.js +0 -1
- package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
- package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
- package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
- package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
- package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
- package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
- package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
- package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
- package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
- package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
- package/node_modules/@babel/types/lib/validators/isType.js +0 -1
- package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
- package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
- package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
- package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
- package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
- package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
- package/node_modules/@babel/types/lib/validators/validate.js +0 -1
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
- package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
- package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
- package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
- package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
- package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
- package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
- package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
- package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
- package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
- package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
- package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
- package/node_modules/@babylonjs/loaders/index.js +7 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
- package/node_modules/@babylonjs/loaders/license.md +71 -0
- package/node_modules/@babylonjs/loaders/package.json +49 -0
- package/node_modules/@babylonjs/loaders/readme.md +23 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
- 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.d.ts +2 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
- 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/types.d.ts +4 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.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/shadows/dynamic-shadow-system.d.ts +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
- 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/shadow-generator-shaders.d.ts +14 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
- 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.d.ts +17 -5
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +300 -362
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts +46 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +85 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1600 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/package.json +6 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +8 -11
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +6 -9
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
- 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-ui-asset-kind.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +6 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
- 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-formal-surface-visibility.d.ts +19 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -6
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +829 -866
- 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.d.ts +8 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
- 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-view-adapter.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
- 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.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +5 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +3 -17
- 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.d.ts +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
- 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-panels.d.ts +10 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +591 -639
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts +8 -36
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +25 -103
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
- 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.d.ts +1 -3
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
- 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-status-diagnostics.d.ts +16 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +44 -39
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
- 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-theme.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
- 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.d.ts +52 -341
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +4 -14
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +33 -119
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +5 -10
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +595 -544
- 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.d.ts +2 -3
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/package.json +15 -4
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +94 -2
- 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 +24 -2
- 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 +70 -10
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +112 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js +613 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
- package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +14 -6
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
- 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.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +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 +14 -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 +49 -1
- 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-library/catalog.js +58 -2
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
- 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/document/helpers.d.ts +28 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
- 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.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
- 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/prefab-instance-identity.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.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/index.d.ts +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
- 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/local-harness/editor-entry-manifest.d.ts +41 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.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 +1 -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 +53 -17
- 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.d.ts +16 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
- 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 +5 -3
- 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 +2 -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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +134 -66
- 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/project-asset-commands.d.ts +11 -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 +21 -14
- 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/types.d.ts +17 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.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/mutation/field-patch.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
- 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/reducer.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
- 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 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts +7 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
- 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.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
- 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/derived-markers.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
- 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/projection.d.ts +36 -51
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
- 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/stage-inspector.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -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/product/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
- 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 +18 -7
- 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 +110 -18
- 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-source.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +6 -0
- 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-scene-assembly.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
- 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/panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts +16 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
- 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.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.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.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
- 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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
- 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/shadow-map-experiment-migration.d.ts +31 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.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.d.ts +17 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +1295 -3
- 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/client.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +14 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
- 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/protocol.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -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.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.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/serialized-property/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
- 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/session/hierarchy-facade.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -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/patches.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
- 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/reducer-core.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -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/types.d.ts +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.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/upgrade-doctor/inspectors.js +31 -3
- 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/vite/editor-scene-workflow.d.ts +5 -2
- 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 +40 -4
- 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/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
- 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 +2 -1
- 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 +1 -0
- 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 +17 -1
- 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 +50 -2
- 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.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +7 -5
- 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-scene-authoring.d.ts +5 -6
- 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 +31 -17
- 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/types.d.ts +6 -0
- 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 +6 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
- 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/editor-ui/dist/editor-ui-controls.d.ts +107 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +653 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
- package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
- package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/package.json +23 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +5 -5
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts +6 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts +8 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
- 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/node_modules/@playcanvas/observer/LICENSE +19 -0
- package/node_modules/@playcanvas/observer/README.md +72 -0
- package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
- package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
- package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
- package/node_modules/@playcanvas/observer/package.json +78 -0
- package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
- package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
- package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
- package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
- package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
- package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
- package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
- package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/LICENSE +19 -0
- package/node_modules/@playcanvas/pcui/README.md +164 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
- package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
- package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
- package/node_modules/@playcanvas/pcui/package.json +150 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
- package/node_modules/@playcanvas/pcui/react/package.json +18 -0
- package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
- package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
- package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
- package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
- package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
- package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
- package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
- package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
- package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
- package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
- package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
- package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
- package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
- package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
- package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
- package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
- package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
- package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
- package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
- package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
- package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
- package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
- package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
- package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
- package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
- package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
- package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
- package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
- package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
- package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
- package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
- package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
- package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
- package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
- package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
- package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
- package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
- package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
- package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
- package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
- package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
- package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
- package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
- package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
- package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
- package/node_modules/babylonjs-gltf2interface/license.md +71 -0
- package/node_modules/babylonjs-gltf2interface/package.json +26 -0
- package/package.json +31 -19
- package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
- package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
- package/dist/editor-plugin-hierarchy-command.js +0 -119
- package/dist/editor-plugin-hierarchy-command.js.map +0 -1
- package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
- package/node_modules/@babel/parser/lib/index.js.map +0 -1
- package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
- package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
- package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
- package/node_modules/@babel/types/lib/index.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
- package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +0 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +0 -186
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -98
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -301
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-presentation-controller.js","sourceRoot":"","sources":["../src/selection-presentation-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EditorSelectionState } from '@fps-games/editor-core';\nimport {\n BabylonSelectionIdentityPass,\n type BabylonSelectionIdentityGroup,\n} from './selection-identity-pass';\nimport type { BabylonRuntimeGlobal, RuntimeCamera, RuntimeScene } from './types';\n\nconst SELECTION_OCCUPANCY_MASK_SHADER_NAME = 'editorSelectionOccupancyMask';\nconst SELECTION_SILHOUETTE_SHADER_NAME = 'editorSelectionSilhouetteComposite';\nconst MAX_SELECTION_SOURCE_DENSITY = 2;\nconst TEXTURE_TYPE_UNSIGNED_BYTE = 0;\nconst TEXTURE_TYPE_FLOAT = 1;\nconst TEXTURE_TYPE_HALF_FLOAT = 2;\nconst TEXTURE_NEAREST_SAMPLING_MODE = 1;\nconst TEXTURE_BILINEAR_SAMPLING_MODE = 2;\nconst SELECTION_PRESENTATION_PADDING_PX = 6;\nconst SELECTION_PRESENTATION_COLOR = [1, 0.9, 0.22] as const;\n\nexport type BabylonEditorSelectionUvBounds = readonly [number, number, number, number];\nexport type BabylonEditorSelectionSceneDepthSourceKind = 'external' | 'prepass' | 'dedicated';\n\nexport interface BabylonEditorSelectionSceneDepthSourceLease {\n readonly kind: BabylonEditorSelectionSceneDepthSourceKind;\n readonly packed: boolean;\n readonly backgroundDepth: 0 | 1;\n getTexture(): any;\n activate(): void;\n deactivate(): void;\n resize(width: number, height: number): void;\n dispose(): void;\n}\n\nexport interface BabylonEditorSelectionSceneDepthSourceRequest {\n babylon: BabylonRuntimeGlobal & Record<string, any>;\n scene: RuntimeScene;\n camera: RuntimeCamera;\n consumerPostProcess: any;\n textureType: number;\n width: number;\n height: number;\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void;\n}\n\nexport interface BabylonEditorSelectionSceneDepthSourceProvider {\n acquire(request: BabylonEditorSelectionSceneDepthSourceRequest): BabylonEditorSelectionSceneDepthSourceLease;\n}\n\nconst SELECTION_OCCUPANCY_MASK_FRAGMENT_SHADER = `\nprecision highp float;\nvarying vec2 vUV;\nuniform sampler2D editorSelectedDepthSampler;\nuniform sampler2D editorSelectionIdentitySampler;\nuniform vec2 editorSelectedDepthTexelSize;\nuniform vec2 editorOutputTexelSize;\nuniform vec2 editorPresentationTexelSize;\nuniform vec4 editorSelectionUvBounds;\nuniform float editorSelectedPackedDepth;\nuniform float editorSelectionIdentityEnabled;\n\nfloat unpackEditorDepth(vec4 color) {\n const vec4 bitShift = vec4(\n 1.0 / (255.0 * 255.0 * 255.0),\n 1.0 / (255.0 * 255.0),\n 1.0 / 255.0,\n 1.0\n );\n return dot(color, bitShift);\n}\n\nfloat selectionOccupancyAt(vec2 uv) {\n vec2 sampleUv = clamp(uv, vec2(0.0), vec2(1.0));\n vec4 selectedDepthSample = texture2D(editorSelectedDepthSampler, sampleUv);\n float selectedDepth = mix(\n selectedDepthSample.r,\n unpackEditorDepth(selectedDepthSample),\n editorSelectedPackedDepth\n );\n return 1.0 - step(0.999999, selectedDepth);\n}\n\nfloat selectionIdentityValue(vec4 color) {\n vec3 bytes = floor(color.rgb * 255.0 + 0.5);\n return dot(bytes, vec3(65536.0, 256.0, 1.0));\n}\n\nfloat selectionIdentityBoundaryAgainst(\n vec2 neighborUv,\n float centerSelected,\n float centerValue\n) {\n vec4 neighborIdentity = texture2D(editorSelectionIdentitySampler, neighborUv);\n float neighborValue = selectionIdentityValue(neighborIdentity);\n float identitiesDiffer = step(0.5, abs(centerValue - neighborValue));\n // The object-ID target already depth-resolves the selected surface. Pick one\n // deterministic owner for each differing-ID edge to avoid double thickness.\n float stableIdentityOwner = step(0.5, centerValue - neighborValue);\n return centerSelected * identitiesDiffer * stableIdentityOwner;\n}\n\nfloat selectionIdentityBoundarySampleAt(vec2 uv, vec2 identityTexel) {\n vec4 centerIdentity = texture2D(editorSelectionIdentitySampler, uv);\n float centerSelected = step(0.001, centerIdentity.a);\n float centerValue = selectionIdentityValue(centerIdentity);\n float boundary = 0.0;\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(-identityTexel.x, 0.0), centerSelected, centerValue\n ));\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(identityTexel.x, 0.0), centerSelected, centerValue\n ));\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(0.0, -identityTexel.y), centerSelected, centerValue\n ));\n boundary = max(boundary, selectionIdentityBoundaryAgainst(\n uv + vec2(0.0, identityTexel.y), centerSelected, centerValue\n ));\n return boundary;\n}\n\nfloat selectionIdentityBoundaryCoverageAt(\n vec2 uv,\n vec2 outputTexel,\n vec2 boundaryStep\n) {\n vec2 ringWide = outputTexel * vec2(0.32476, 0.1875);\n vec2 ringTall = outputTexel * vec2(0.0, 0.375);\n float coverage = selectionIdentityBoundarySampleAt(uv - ringTall, boundaryStep);\n coverage += selectionIdentityBoundarySampleAt(\n uv + vec2(ringWide.x, -ringWide.y), boundaryStep\n );\n coverage += selectionIdentityBoundarySampleAt(uv + ringWide, boundaryStep);\n coverage += selectionIdentityBoundarySampleAt(uv + ringTall, boundaryStep);\n coverage += selectionIdentityBoundarySampleAt(\n uv + vec2(-ringWide.x, ringWide.y), boundaryStep\n );\n coverage += selectionIdentityBoundarySampleAt(uv - ringWide, boundaryStep);\n return coverage / 6.0;\n}\n\nvoid main(void) {\n if (\n vUV.x < editorSelectionUvBounds.x\n || vUV.y < editorSelectionUvBounds.y\n || vUV.x > editorSelectionUvBounds.z\n || vUV.y > editorSelectionUvBounds.w\n ) {\n gl_FragColor = vec4(0.0);\n return;\n }\n vec2 subpixelOffset = editorSelectedDepthTexelSize * 0.5;\n float coverage = 0.0;\n coverage += selectionOccupancyAt(vUV + vec2(-subpixelOffset.x, -subpixelOffset.y));\n coverage += selectionOccupancyAt(vUV + vec2(subpixelOffset.x, -subpixelOffset.y));\n coverage += selectionOccupancyAt(vUV + vec2(-subpixelOffset.x, subpixelOffset.y));\n coverage += selectionOccupancyAt(vUV + vec2(subpixelOffset.x, subpixelOffset.y));\n float identityBoundary = 0.0;\n if (editorSelectionIdentityEnabled > 0.5) {\n identityBoundary = selectionIdentityBoundaryCoverageAt(\n vUV,\n editorOutputTexelSize,\n editorPresentationTexelSize\n );\n }\n gl_FragColor = vec4(identityBoundary, 0.0, 0.0, coverage * 0.25);\n}\n`;\n\nconst SELECTION_SILHOUETTE_FRAGMENT_SHADER = `\nprecision highp float;\nvarying vec2 vUV;\nuniform sampler2D textureSampler;\nuniform sampler2D editorSceneColorSampler;\nuniform sampler2D editorSceneDepthSampler;\nuniform sampler2D editorSelectedDepthSampler;\nuniform vec2 editorOutputTexelSize;\nuniform vec2 editorPresentationTexelSize;\nuniform vec4 editorSelectionUvBounds;\nuniform vec3 editorSelectionColor;\nuniform float editorScenePackedDepth;\nuniform float editorSelectedPackedDepth;\nuniform float editorSelectionIdentityEnabled;\nuniform float editorSceneBackgroundDepth;\nuniform float editorDepthEpsilon;\n\nfloat unpackEditorDepth(vec4 color) {\n const vec4 bitShift = vec4(\n 1.0 / (255.0 * 255.0 * 255.0),\n 1.0 / (255.0 * 255.0),\n 1.0 / 255.0,\n 1.0\n );\n return dot(color, bitShift);\n}\n\nfloat readEditorDepth(sampler2D depthSampler, vec2 uv, float packedDepth) {\n vec4 sampleValue = texture2D(depthSampler, clamp(uv, vec2(0.0), vec2(1.0)));\n return mix(sampleValue.r, unpackEditorDepth(sampleValue), packedDepth);\n}\n\nfloat selectionCoverageAt(vec2 uv) {\n return texture2D(textureSampler, clamp(uv, vec2(0.0), vec2(1.0))).a;\n}\n\nfloat resolvedSelectionIdentityBoundaryAt(vec2 uv, vec2 outputTexel) {\n vec2 halfTexel = outputTexel * 0.5;\n float coverage = texture2D(\n textureSampler,\n uv + vec2(-halfTexel.x, -halfTexel.y)\n ).r;\n coverage += texture2D(\n textureSampler,\n uv + vec2(halfTexel.x, -halfTexel.y)\n ).r;\n coverage += texture2D(\n textureSampler,\n uv + vec2(-halfTexel.x, halfTexel.y)\n ).r;\n coverage += texture2D(\n textureSampler,\n uv + vec2(halfTexel.x, halfTexel.y)\n ).r;\n return coverage * 0.25;\n}\n\nvoid considerStrongestSelectionNeighbor(\n inout vec3 strongestSample,\n vec2 uv,\n vec2 texel,\n vec2 offset\n) {\n float coverage = selectionCoverageAt(uv + offset * texel);\n float isStronger = step(strongestSample.x, coverage);\n strongestSample = mix(\n strongestSample,\n vec3(coverage, offset),\n isStronger\n );\n}\n\nvec3 strongestSelectionNeighbor(vec2 uv, vec2 texel) {\n vec3 strongestSample = vec3(0.0, 0.0, 0.0);\n for (int y = -1; y <= 1; y++) {\n for (int x = -1; x <= 1; x++) {\n if (x != 0 || y != 0) {\n considerStrongestSelectionNeighbor(\n strongestSample,\n uv,\n texel,\n vec2(float(x), float(y))\n );\n }\n }\n }\n return strongestSample;\n}\n\nfloat selectionSubpixelVisibilityAt(vec2 uv) {\n float selectedDepth = readEditorDepth(\n editorSelectedDepthSampler,\n uv,\n editorSelectedPackedDepth\n );\n float sceneDepth = readEditorDepth(editorSceneDepthSampler, uv, editorScenePackedDepth);\n float sceneBackgroundIsZero = 1.0 - step(0.5, editorSceneBackgroundDepth);\n float emptyZeroDepth = sceneBackgroundIsZero * (1.0 - step(0.000001, sceneDepth));\n sceneDepth = mix(sceneDepth, 1.0, emptyZeroDepth);\n float hasSelection = 1.0 - step(0.999999, selectedDepth);\n float depthDelta = selectedDepth - sceneDepth;\n float isVisible = 1.0 - smoothstep(\n editorDepthEpsilon,\n editorDepthEpsilon * 4.0,\n depthDelta\n );\n return hasSelection * isVisible;\n}\n\nfloat selectionSurfaceVisibilityAt(vec2 uv, vec2 texel) {\n vec2 subpixelOffset = texel * 0.25;\n float visibility = 0.0;\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(-subpixelOffset.x, -subpixelOffset.y))\n );\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(subpixelOffset.x, -subpixelOffset.y))\n );\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(-subpixelOffset.x, subpixelOffset.y))\n );\n visibility = max(\n visibility,\n selectionSubpixelVisibilityAt(uv + vec2(subpixelOffset.x, subpixelOffset.y))\n );\n return visibility;\n}\n\nvoid main(void) {\n vec4 sceneColor = texture2D(editorSceneColorSampler, vUV);\n float center = texture2D(textureSampler, vUV).a;\n if (\n vUV.x < editorSelectionUvBounds.x\n || vUV.y < editorSelectionUvBounds.y\n || vUV.x > editorSelectionUvBounds.z\n || vUV.y > editorSelectionUvBounds.w\n ) {\n gl_FragColor = vec4(sceneColor.rgb, 1.0);\n return;\n }\n float identityAlpha = 0.0;\n if (editorSelectionIdentityEnabled > 0.5) {\n float identityBoundary = resolvedSelectionIdentityBoundaryAt(\n vUV,\n editorOutputTexelSize\n );\n float perceptualIdentityCoverage = pow(\n clamp(identityBoundary, 0.0, 1.0),\n 0.75\n );\n identityAlpha = perceptualIdentityCoverage * selectionSurfaceVisibilityAt(\n vUV,\n editorOutputTexelSize\n );\n }\n float unionAlpha = 0.0;\n if (editorSelectionIdentityEnabled < 0.5 && center < 0.999) {\n float outsideCoverage = 1.0 - clamp(center, 0.0, 1.0);\n vec3 strongestSample = strongestSelectionNeighbor(vUV, editorPresentationTexelSize);\n vec2 strongestSampleUv = vUV + strongestSample.yz * editorPresentationTexelSize;\n float boundaryVisibility = selectionSurfaceVisibilityAt(\n strongestSampleUv,\n editorOutputTexelSize\n );\n unionAlpha = smoothstep(\n 0.0,\n 1.0,\n strongestSample.x * outsideCoverage\n ) * boundaryVisibility;\n }\n float alpha = max(unionAlpha, identityAlpha);\n gl_FragColor = vec4(mix(sceneColor.rgb, editorSelectionColor, alpha), 1.0);\n}\n`;\n\nexport interface BabylonEditorSelectionPresentationProjectedNode {\n nodeId: string;\n outlineMeshes: readonly any[];\n selectionMeshes?: readonly any[];\n selectionPresentationTargets?: readonly BabylonEditorSelectionPresentationTarget[];\n}\n\nexport interface BabylonEditorSelectionPresentationTarget {\n selectionNodeId: string;\n renderMeshes: readonly any[];\n}\n\nexport type BabylonEditorSelectionPresentationDiagnosticCode =\n | 'backend-initialization-failed'\n | 'shader-not-ready'\n | 'camera-replacement-failed'\n | 'resource-dispose-failed';\n\nexport interface BabylonEditorSelectionPresentationDiagnostic {\n code: BabylonEditorSelectionPresentationDiagnosticCode;\n message: string;\n cause?: unknown;\n}\n\nexport interface BabylonEditorSelectionPresentationDiagnostics {\n status: 'idle' | 'active' | 'failed' | 'disposed';\n projectedNodeCount: number;\n selectedNodeCount: number;\n selectedMeshCount: number;\n backendResourceCount: number;\n sceneDepthSource: BabylonEditorSelectionSceneDepthSourceKind | null;\n cameraId: string | null;\n lastDiagnostic: BabylonEditorSelectionPresentationDiagnostic | null;\n}\n\nexport interface BabylonEditorSelectionPresentationBackend {\n setSelectedMeshes(\n meshes: readonly any[],\n groups?: readonly BabylonSelectionIdentityGroup[],\n ): void;\n setEnabled(enabled: boolean): void;\n prepareFrame(): void;\n getResourceCount(): number;\n getSceneDepthSourceKind?(): BabylonEditorSelectionSceneDepthSourceKind | null;\n getCameraId(): string | null;\n dispose(): void;\n}\n\nexport interface BabylonEditorSelectionPresentationControllerOptions {\n babylon: BabylonRuntimeGlobal & Record<string, any>;\n scene: RuntimeScene;\n logger?: Pick<Console, 'warn'>;\n onDiagnostic?: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void;\n sceneDepthSourceProvider?: BabylonEditorSelectionSceneDepthSourceProvider;\n createBackend?: (\n options: BabylonEditorSelectionPresentationControllerOptions,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n ) => BabylonEditorSelectionPresentationBackend;\n}\n\nexport interface BabylonEditorSelectionPresentationController {\n attachProjectedNode(node: BabylonEditorSelectionPresentationProjectedNode): void;\n updateProjectedNode(node: BabylonEditorSelectionPresentationProjectedNode): void;\n detachProjectedNode(nodeId: string): void;\n syncSelection(selection: EditorSelectionState): void;\n prepareFrame(): void;\n getDiagnostics(): BabylonEditorSelectionPresentationDiagnostics;\n dispose(): void;\n}\n\ntype SceneDepthLease = {\n camera: RuntimeCamera;\n renderer: any;\n depthMap: any;\n type: number;\n packed: boolean;\n refs: number;\n activeRefs: number;\n width: number;\n height: number;\n};\n\nconst sceneDepthLeases = new WeakMap<object, Map<object, SceneDepthLease>>();\n\ntype PrePassSceneDepthState = {\n prePassRenderer: any;\n configuration: {\n name: string;\n enabled: boolean;\n texturesRequired: number[];\n needsImageProcessing: boolean;\n };\n activeLeaseCount: number;\n};\n\nconst prePassSceneDepthStates = new WeakMap<object, PrePassSceneDepthState>();\nconst PREPASS_SELECTION_DEPTH_CONFIGURATION_NAME = 'fpsEditorSelectionSceneDepth';\n\ntype CameraSelectionPostProcessSlot = {\n index: number | null;\n postProcess: any;\n vacantTopology: readonly any[] | null;\n};\n\ntype CameraSelectionPostProcessSlotRegistry = {\n owners: Map<object, CameraSelectionPostProcessSlot>;\n releasedSlots: Map<number, readonly any[]>;\n};\n\nconst cameraSelectionPostProcessSlots = new WeakMap<object, CameraSelectionPostProcessSlotRegistry>();\n\nexport function createBabylonEditorSelectionPresentationController(\n options: BabylonEditorSelectionPresentationControllerOptions,\n): BabylonEditorSelectionPresentationController {\n const nodes = new Map<string, BabylonEditorSelectionPresentationProjectedNode>();\n const reportedDiagnosticCodes = new Set<BabylonEditorSelectionPresentationDiagnosticCode>();\n let selection: EditorSelectionState = { selectedIds: [], activeId: null };\n let backend: BabylonEditorSelectionPresentationBackend | null = null;\n let failed = false;\n let disposed = false;\n let selectedMeshCount = 0;\n let lastDiagnostic: BabylonEditorSelectionPresentationDiagnostic | null = null;\n\n const reportDiagnostic = (diagnostic: BabylonEditorSelectionPresentationDiagnostic): void => {\n lastDiagnostic = diagnostic;\n if (reportedDiagnosticCodes.has(diagnostic.code)) return;\n reportedDiagnosticCodes.add(diagnostic.code);\n options.logger?.warn(`[selection-presentation:${diagnostic.code}] ${diagnostic.message}`, diagnostic.cause);\n options.onDiagnostic?.(diagnostic);\n };\n\n const ensureBackend = (): BabylonEditorSelectionPresentationBackend | null => {\n if (disposed || failed) return null;\n if (backend) return backend;\n try {\n backend = (options.createBackend ?? createDepthAwareSelectionPresentationBackend)(options, reportDiagnostic);\n return backend;\n } catch (cause) {\n failed = true;\n reportDiagnostic({\n code: 'backend-initialization-failed',\n message: 'Selection silhouette resources could not be initialized; visual selection feedback is disabled.',\n cause,\n });\n return null;\n }\n };\n\n const syncBackendMembership = (): void => {\n if (disposed) return;\n const groups = selection.selectedIds\n .map(selectionId => ({\n selectionId,\n meshes: collectSelectedPresentationMeshes(nodes, {\n selectedIds: [selectionId],\n activeId: selectionId,\n }),\n }))\n .filter(group => group.meshes.length > 0);\n const meshes: any[] = [];\n const seenMeshes = new Set<any>();\n for (const group of groups) {\n for (const mesh of group.meshes) appendPresentationMesh(meshes, seenMeshes, mesh);\n }\n selectedMeshCount = meshes.length;\n if (meshes.length === 0) {\n backend?.setSelectedMeshes([], groups);\n backend?.setEnabled(false);\n return;\n }\n const nextBackend = ensureBackend();\n if (!nextBackend) return;\n try {\n nextBackend.setSelectedMeshes(meshes, groups);\n nextBackend.setEnabled(true);\n nextBackend.prepareFrame();\n } catch (cause) {\n failed = true;\n safelyDisposeBackend(nextBackend, reportDiagnostic);\n backend = null;\n reportDiagnostic({\n code: 'backend-initialization-failed',\n message: 'Selection silhouette synchronization failed; visual selection feedback is disabled.',\n cause,\n });\n }\n };\n\n return {\n attachProjectedNode(node) {\n if (disposed) return;\n nodes.set(node.nodeId, node);\n syncBackendMembership();\n },\n updateProjectedNode(node) {\n if (disposed) return;\n nodes.set(node.nodeId, node);\n syncBackendMembership();\n },\n detachProjectedNode(nodeId) {\n if (disposed) return;\n nodes.delete(nodeId);\n syncBackendMembership();\n },\n syncSelection(nextSelection) {\n if (disposed) return;\n selection = {\n selectedIds: [...new Set(nextSelection.selectedIds)],\n activeId: nextSelection.activeId,\n };\n syncBackendMembership();\n },\n prepareFrame() {\n if (disposed || failed || selectedMeshCount === 0) return;\n try {\n backend?.prepareFrame();\n } catch (cause) {\n failed = true;\n if (backend) safelyDisposeBackend(backend, reportDiagnostic);\n backend = null;\n reportDiagnostic({\n code: 'camera-replacement-failed',\n message: 'Selection silhouette camera resources could not be refreshed; visual selection feedback is disabled.',\n cause,\n });\n }\n },\n getDiagnostics() {\n return {\n status: disposed ? 'disposed' : failed ? 'failed' : selectedMeshCount > 0 ? 'active' : 'idle',\n projectedNodeCount: nodes.size,\n selectedNodeCount: selection.selectedIds.length,\n selectedMeshCount,\n backendResourceCount: backend?.getResourceCount() ?? 0,\n sceneDepthSource: backend?.getSceneDepthSourceKind?.() ?? null,\n cameraId: backend?.getCameraId() ?? null,\n lastDiagnostic,\n };\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n nodes.clear();\n selectedMeshCount = 0;\n if (backend) safelyDisposeBackend(backend, reportDiagnostic);\n backend = null;\n },\n };\n}\n\nexport function collectSelectedPresentationMeshes(\n nodes: ReadonlyMap<string, BabylonEditorSelectionPresentationProjectedNode>,\n selection: EditorSelectionState,\n): any[] {\n const selectedIds = new Set(selection.selectedIds);\n const meshes: any[] = [];\n const seen = new Set<any>();\n for (const [nodeId, node] of nodes) {\n const rootSelected = selectedIds.has(nodeId);\n const mappedSelectionNodeIds = new Set(\n (node.selectionPresentationTargets ?? []).map(target => target.selectionNodeId),\n );\n const proxyNodeIds = new Set(\n (node.selectionMeshes ?? [])\n .map(readPresentationMeshSelectionNodeId)\n .filter((id): id is string => !!id),\n );\n for (const mesh of node.outlineMeshes) {\n const meshNodeId = readPresentationMeshSelectionNodeId(mesh) ?? nodeId;\n if (!rootSelected && (proxyNodeIds.has(meshNodeId) || !selectedIds.has(meshNodeId))) continue;\n appendPresentationMesh(meshes, seen, mesh);\n }\n for (const target of node.selectionPresentationTargets ?? []) {\n if (!selectedIds.has(target.selectionNodeId)) continue;\n for (const mesh of target.renderMeshes) appendPresentationMesh(meshes, seen, mesh);\n }\n for (const mesh of node.selectionMeshes ?? []) {\n const meshNodeId = readPresentationMeshSelectionNodeId(mesh) ?? nodeId;\n if (mappedSelectionNodeIds.has(meshNodeId)) continue;\n if (!selectedIds.has(meshNodeId)) continue;\n appendPresentationMesh(meshes, seen, mesh);\n }\n }\n return meshes;\n}\n\nfunction appendPresentationMesh(meshes: any[], seen: Set<any>, mesh: any): void {\n if (!mesh || seen.has(mesh) || mesh.isDisposed?.()) return;\n seen.add(mesh);\n meshes.push(mesh);\n}\n\nfunction readPresentationMeshSelectionNodeId(mesh: any): string | null {\n const nodeId = mesh?.metadata?.editorProjection?.nodeId;\n return typeof nodeId === 'string' && nodeId.length > 0 ? nodeId : null;\n}\n\nfunction createDepthAwareSelectionPresentationBackend(\n options: BabylonEditorSelectionPresentationControllerOptions,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n): BabylonEditorSelectionPresentationBackend {\n const { babylon, scene } = options;\n const beforeRenderObservable = scene?.onBeforeRenderObservable;\n let beforeRenderObserver: unknown = null;\n let enabled = false;\n let disposed = false;\n let selectedMeshes: any[] = [];\n let selectionGroups: readonly BabylonSelectionIdentityGroup[] = [];\n let camera: RuntimeCamera | null = null;\n let sceneDepthLease: BabylonEditorSelectionSceneDepthSourceLease | null = null;\n let selectedDepthRenderer: any = null;\n let selectedDepthMap: any = null;\n let selectionIdentityPass: BabylonSelectionIdentityPass | null = null;\n const occupancyMaskPass = {\n resource: null as any,\n attached: false,\n insertIndex: null as number | null,\n slotOwner: {},\n };\n const compositePass = {\n resource: null as any,\n attached: false,\n insertIndex: null as number | null,\n slotOwner: {},\n };\n let width = 0;\n let height = 0;\n let selectionSourceRatio = MAX_SELECTION_SOURCE_DENSITY;\n let shaderNotReadyFrames = 0;\n let resourcesActive = false;\n let sceneDepthLeaseActive = false;\n let selectedDepthMapActive = false;\n let selectionUvBounds: BabylonEditorSelectionUvBounds = [0, 0, 1, 1];\n\n registerSelectionSilhouetteShader(babylon);\n\n const requiresSelectionIdentityPass = (): boolean => (\n selectionGroups.length > 1\n && !!babylon.ShaderMaterial\n && !!babylon.Effect?.ShadersStore\n );\n\n const detachPostProcessPass = (pass: typeof occupancyMaskPass): void => {\n if (!camera || !pass.resource || !pass.attached) return;\n const topologyBeforeDetach = Array.isArray(camera._postProcesses)\n ? camera._postProcesses.slice()\n : null;\n try {\n const attachedIndex = findCameraPostProcessIndex(camera, pass.resource);\n if (attachedIndex >= 0) pass.insertIndex = attachedIndex;\n camera.detachPostProcess?.(pass.resource);\n pass.attached = false;\n reserveOwnedCameraPostProcessSlot(\n camera,\n pass.slotOwner,\n pass.insertIndex,\n topologyBeforeDetach,\n );\n } catch (cause) {\n if (forceDetachCameraPostProcess(camera, pass.resource)) {\n pass.attached = false;\n reserveOwnedCameraPostProcessSlot(\n camera,\n pass.slotOwner,\n pass.insertIndex,\n topologyBeforeDetach,\n );\n }\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A selection silhouette post-process could not be detached cleanly.',\n cause,\n });\n }\n };\n\n const deactivateResources = (): void => {\n resourcesActive = false;\n selectionIdentityPass?.setEnabled(false);\n if (sceneDepthLease && sceneDepthLeaseActive) {\n try {\n sceneDepthLease.deactivate();\n sceneDepthLeaseActive = false;\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The shared scene depth lease could not be deactivated cleanly.',\n cause,\n });\n }\n }\n if (selectedDepthMap && selectedDepthMapActive) {\n try {\n removeCustomRenderTarget(scene, selectedDepthMap);\n selectedDepthMapActive = false;\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The selected depth target could not be detached cleanly.',\n cause,\n });\n }\n }\n detachPostProcessPass(compositePass);\n detachPostProcessPass(occupancyMaskPass);\n };\n\n const activateResources = (): void => {\n if (\n !enabled\n || !sceneDepthLease\n || !selectedDepthMap\n || !occupancyMaskPass.resource\n || !compositePass.resource\n || requiresSelectionIdentityPass() !== !!selectionIdentityPass\n || !camera\n ) return;\n if (resourcesActive) return;\n if (!occupancyMaskPass.attached) {\n occupancyMaskPass.insertIndex = attachOwnedCameraPostProcess(\n camera,\n occupancyMaskPass.slotOwner,\n occupancyMaskPass.resource,\n );\n occupancyMaskPass.attached = true;\n }\n if (!compositePass.attached) {\n compositePass.insertIndex = attachOwnedCameraPostProcess(\n camera,\n compositePass.slotOwner,\n compositePass.resource,\n );\n compositePass.attached = true;\n }\n if (!sceneDepthLeaseActive) {\n sceneDepthLease.activate();\n sceneDepthLeaseActive = true;\n }\n if (!selectedDepthMapActive) {\n selectedDepthMapActive = true;\n addCustomRenderTarget(scene, selectedDepthMap);\n }\n selectionIdentityPass?.setEnabled(true);\n resourcesActive = true;\n };\n\n const disposePostProcessPass = (pass: typeof occupancyMaskPass, ownedCamera: RuntimeCamera | null): void => {\n const resource = pass.resource;\n if (resource) {\n try {\n resource.dispose?.(ownedCamera ?? undefined);\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A selection silhouette post-process resource could not be disposed cleanly.',\n cause,\n });\n }\n releaseOwnedCameraPostProcessSlot(\n ownedCamera,\n pass.slotOwner,\n pass.insertIndex,\n resource,\n );\n }\n pass.resource = null;\n pass.attached = false;\n pass.insertIndex = null;\n };\n\n const disposeCameraResources = (): void => {\n deactivateResources();\n const ownedCamera = camera;\n disposePostProcessPass(compositePass, ownedCamera);\n disposePostProcessPass(occupancyMaskPass, ownedCamera);\n const ownedSelectedDepthMap = selectedDepthMap;\n if (selectedDepthRenderer) {\n try {\n selectedDepthRenderer.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A selection silhouette depth resource could not be disposed cleanly.',\n cause,\n });\n }\n }\n if (ownedSelectedDepthMap) {\n try {\n ownedSelectedDepthMap.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The owned selected depth target could not be disposed cleanly.',\n cause,\n });\n }\n }\n if (selectionIdentityPass) {\n try {\n selectionIdentityPass.dispose();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The selection identity pass could not be disposed cleanly.',\n cause,\n });\n }\n }\n selectedDepthRenderer = null;\n selectedDepthMap = null;\n selectedDepthMapActive = false;\n selectionIdentityPass = null;\n if (sceneDepthLease) {\n try {\n sceneDepthLease.dispose();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The leased scene depth source could not be disposed cleanly.',\n cause,\n });\n }\n }\n sceneDepthLease = null;\n sceneDepthLeaseActive = false;\n camera = null;\n width = 0;\n height = 0;\n selectionSourceRatio = MAX_SELECTION_SOURCE_DENSITY;\n shaderNotReadyFrames = 0;\n resourcesActive = false;\n };\n\n const createCameraResources = (nextCamera: RuntimeCamera): void => {\n const DepthRenderer = babylon.DepthRenderer;\n const RenderTargetTexture = babylon.RenderTargetTexture;\n const PostProcess = babylon.PostProcess;\n if (!DepthRenderer || !RenderTargetTexture || !PostProcess) {\n throw new Error('Babylon runtime is missing DepthRenderer, RenderTargetTexture, or PostProcess.');\n }\n const engine = scene.getEngine?.();\n if (!engine) throw new Error('Selection silhouette requires an active Babylon engine.');\n const nextWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? 1));\n const nextHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? 1));\n const nextSelectionSourceRatio = resolveSelectionSourceRatio(engine);\n const sceneDepthType = resolveDepthTextureType(engine);\n let nextLease: BabylonEditorSelectionSceneDepthSourceLease | null = null;\n let nextSelectedRenderer: any = null;\n let nextSelectedMap: any = null;\n let nextSelectionIdentityPass: BabylonSelectionIdentityPass | null = null;\n let nextOccupancyMaskPass: any = null;\n let nextCompositePass: any = null;\n let adopted = false;\n try {\n nextSelectedMap = new RenderTargetTexture(\n 'editorSelectionSelectedDepth',\n {\n width: Math.max(1, Math.ceil(nextWidth * nextSelectionSourceRatio)),\n height: Math.max(1, Math.ceil(nextHeight * nextSelectionSourceRatio)),\n },\n scene,\n {\n generateMipMaps: false,\n doNotChangeAspectRatio: true,\n type: sceneDepthType,\n samplingMode: TEXTURE_NEAREST_SAMPLING_MODE,\n generateDepthBuffer: true,\n generateStencilBuffer: false,\n },\n );\n nextSelectedRenderer = new DepthRenderer(\n scene,\n sceneDepthType,\n nextCamera,\n true,\n TEXTURE_NEAREST_SAMPLING_MODE,\n false,\n 'editorSelectionSelectedDepthRenderer',\n nextSelectedMap,\n );\n nextSelectedRenderer.forceDepthWriteTransparentMeshes = true;\n nextSelectedMap.renderList = selectedMeshes;\n if (requiresSelectionIdentityPass()) {\n nextSelectionIdentityPass = new BabylonSelectionIdentityPass({\n babylon,\n scene,\n camera: nextCamera,\n width: Math.max(1, Math.ceil(nextWidth * nextSelectionSourceRatio)),\n height: Math.max(1, Math.ceil(nextHeight * nextSelectionSourceRatio)),\n });\n nextSelectionIdentityPass.setSelection(selectionGroups);\n }\n nextOccupancyMaskPass = new PostProcess(\n 'editorSelectionOccupancyMask',\n SELECTION_OCCUPANCY_MASK_SHADER_NAME,\n [\n 'editorSelectedDepthTexelSize',\n 'editorOutputTexelSize',\n 'editorPresentationTexelSize',\n 'editorSelectionUvBounds',\n 'editorSelectedPackedDepth',\n 'editorSelectionIdentityEnabled',\n ],\n [\n 'editorSelectedDepthSampler',\n 'editorSelectionIdentitySampler',\n ],\n 1,\n null,\n TEXTURE_BILINEAR_SAMPLING_MODE,\n engine,\n false,\n );\n nextOccupancyMaskPass.onApply = (effect: any) => {\n const outputWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? width ?? nextWidth));\n const outputHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? height ?? nextHeight));\n const presentationSize = resolveSelectionPresentationSize(\n engine,\n outputWidth,\n outputHeight,\n );\n selectionUvBounds = computeSelectionPresentationUvBounds(\n babylon,\n scene,\n nextCamera,\n selectedMeshes,\n outputWidth,\n outputHeight,\n SELECTION_PRESENTATION_PADDING_PX,\n );\n effect.setTexture?.('editorSelectedDepthSampler', nextSelectedMap);\n const selectedSize = nextSelectedMap.getSize?.() ?? {\n width: nextWidth * nextSelectionSourceRatio,\n height: nextHeight * nextSelectionSourceRatio,\n };\n effect.setFloat2?.(\n 'editorSelectedDepthTexelSize',\n 1 / Math.max(1, Number(selectedSize.width)),\n 1 / Math.max(1, Number(selectedSize.height)),\n );\n effect.setFloat4?.('editorSelectionUvBounds', ...selectionUvBounds);\n effect.setFloat?.('editorSelectedPackedDepth', nextSelectedRenderer?.isPacked ? 1 : 0);\n effect.setTexture?.(\n 'editorSelectionIdentitySampler',\n nextSelectionIdentityPass?.texture ?? nextSelectedMap,\n );\n effect.setFloat2?.('editorOutputTexelSize', 1 / outputWidth, 1 / outputHeight);\n effect.setFloat2?.(\n 'editorPresentationTexelSize',\n 1 / presentationSize.width,\n 1 / presentationSize.height,\n );\n effect.setFloat?.(\n 'editorSelectionIdentityEnabled',\n nextSelectionIdentityPass ? 1 : 0,\n );\n };\n nextCompositePass = new PostProcess(\n 'editorSelectionSilhouetteComposite',\n SELECTION_SILHOUETTE_SHADER_NAME,\n [\n 'editorOutputTexelSize',\n 'editorPresentationTexelSize',\n 'editorSelectionUvBounds',\n 'editorSelectionColor',\n 'editorScenePackedDepth',\n 'editorSelectedPackedDepth',\n 'editorSelectionIdentityEnabled',\n 'editorSceneBackgroundDepth',\n 'editorDepthEpsilon',\n ],\n [\n 'editorSceneColorSampler',\n 'editorSceneDepthSampler',\n 'editorSelectedDepthSampler',\n ],\n 1,\n null,\n TEXTURE_BILINEAR_SAMPLING_MODE,\n engine,\n false,\n );\n nextLease = (options.sceneDepthSourceProvider ?? defaultSelectionSceneDepthSourceProvider).acquire({\n babylon,\n scene,\n camera: nextCamera,\n consumerPostProcess: nextCompositePass,\n textureType: sceneDepthType,\n width: nextWidth,\n height: nextHeight,\n reportDiagnostic,\n });\n nextCompositePass.onApply = (effect: any) => {\n const outputWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? width ?? nextWidth));\n const outputHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? height ?? nextHeight));\n const presentationSize = resolveSelectionPresentationSize(\n engine,\n outputWidth,\n outputHeight,\n );\n effect.setTextureFromPostProcess?.(\n 'editorSceneColorSampler',\n nextOccupancyMaskPass,\n );\n effect.setTexture?.('editorSceneDepthSampler', nextLease?.getTexture());\n effect.setTexture?.('editorSelectedDepthSampler', nextSelectedMap);\n effect.setFloat2?.('editorOutputTexelSize', 1 / outputWidth, 1 / outputHeight);\n effect.setFloat2?.(\n 'editorPresentationTexelSize',\n 1 / presentationSize.width,\n 1 / presentationSize.height,\n );\n effect.setFloat4?.('editorSelectionUvBounds', ...selectionUvBounds);\n effect.setFloat3?.('editorSelectionColor', ...SELECTION_PRESENTATION_COLOR);\n effect.setFloat?.('editorScenePackedDepth', nextLease?.packed ? 1 : 0);\n effect.setFloat?.('editorSceneBackgroundDepth', nextLease?.backgroundDepth ?? 1);\n effect.setFloat?.('editorSelectedPackedDepth', nextSelectedRenderer?.isPacked ? 1 : 0);\n effect.setFloat?.(\n 'editorSelectionIdentityEnabled',\n nextSelectionIdentityPass ? 1 : 0,\n );\n effect.setFloat?.('editorDepthEpsilon', 0.0015);\n };\n camera = nextCamera;\n sceneDepthLease = nextLease;\n selectedDepthRenderer = nextSelectedRenderer;\n selectedDepthMap = nextSelectedMap;\n selectionIdentityPass = nextSelectionIdentityPass;\n occupancyMaskPass.resource = nextOccupancyMaskPass;\n compositePass.resource = nextCompositePass;\n width = nextWidth;\n height = nextHeight;\n selectionSourceRatio = nextSelectionSourceRatio;\n adopted = true;\n activateResources();\n } catch (cause) {\n if (adopted) {\n disposeCameraResources();\n } else {\n try { nextCompositePass?.dispose?.(nextCamera); } catch {}\n try { nextOccupancyMaskPass?.dispose?.(nextCamera); } catch {}\n try { nextSelectedRenderer?.dispose?.(); } catch {}\n try { nextSelectedMap?.dispose?.(); } catch {}\n try { nextSelectionIdentityPass?.dispose(); } catch {}\n try { nextLease?.dispose(); } catch {}\n }\n throw cause;\n }\n };\n\n const prepareFrame = (): void => {\n if (disposed || !enabled) return;\n const nextCamera = scene.activeCamera ?? null;\n if (!nextCamera) return;\n if (\n camera !== nextCamera\n || !sceneDepthLease\n || !selectedDepthMap\n || !occupancyMaskPass.resource\n || !compositePass.resource\n || requiresSelectionIdentityPass() !== !!selectionIdentityPass\n ) {\n disposeCameraResources();\n createCameraResources(nextCamera);\n return;\n }\n const engine = scene.getEngine?.();\n const nextWidth = Math.max(1, Number(engine?.getRenderWidth?.() ?? width));\n const nextHeight = Math.max(1, Number(engine?.getRenderHeight?.() ?? height));\n const nextSelectionSourceRatio = resolveSelectionSourceRatio(engine);\n if (\n nextWidth !== width\n || nextHeight !== height\n || nextSelectionSourceRatio !== selectionSourceRatio\n ) {\n width = nextWidth;\n height = nextHeight;\n selectionSourceRatio = nextSelectionSourceRatio;\n sceneDepthLease.resize(nextWidth, nextHeight);\n selectedDepthMap.resize?.({\n width: Math.max(1, Math.ceil(nextWidth * selectionSourceRatio)),\n height: Math.max(1, Math.ceil(nextHeight * selectionSourceRatio)),\n });\n selectionIdentityPass?.resize(\n Math.max(1, Math.ceil(nextWidth * selectionSourceRatio)),\n Math.max(1, Math.ceil(nextHeight * selectionSourceRatio)),\n );\n }\n selectedDepthMap.renderList = selectedMeshes;\n activateResources();\n if (occupancyMaskPass.resource.isSupported === false || compositePass.resource.isSupported === false) {\n throw new Error('Selection silhouette post-process is not supported by the active engine.');\n }\n if (occupancyMaskPass.resource.isReady?.() && compositePass.resource.isReady?.()) {\n shaderNotReadyFrames = 0;\n } else {\n shaderNotReadyFrames += 1;\n if (shaderNotReadyFrames > 120) {\n reportDiagnostic({\n code: 'shader-not-ready',\n message: 'Selection silhouette shader did not become ready; visual selection feedback is disabled.',\n });\n throw new Error('Selection silhouette shader readiness timed out.');\n }\n }\n };\n\n if (beforeRenderObservable?.add) {\n beforeRenderObserver = beforeRenderObservable.add(prepareFrame);\n }\n\n return {\n setSelectedMeshes(meshes, groups) {\n const requiredBefore = requiresSelectionIdentityPass();\n selectedMeshes = [...meshes];\n selectionGroups = groups?.map(group => ({\n selectionId: group.selectionId,\n meshes: [...group.meshes],\n })) ?? [];\n if (selectedDepthMap) selectedDepthMap.renderList = selectedMeshes;\n const requiredAfter = requiresSelectionIdentityPass();\n if (camera && requiredBefore !== requiredAfter) {\n disposeCameraResources();\n if (enabled) prepareFrame();\n return;\n }\n selectionIdentityPass?.setSelection(selectionGroups);\n },\n setEnabled(nextEnabled) {\n if (disposed || enabled === nextEnabled) return;\n enabled = nextEnabled;\n if (enabled) prepareFrame();\n else deactivateResources();\n },\n prepareFrame,\n getResourceCount() {\n if (\n !sceneDepthLease\n && !selectedDepthRenderer\n && !selectionIdentityPass\n && !occupancyMaskPass.resource\n && !compositePass.resource\n ) return 0;\n return Number(!!sceneDepthLease)\n + Number(!!selectedDepthRenderer)\n + Number(!!selectionIdentityPass)\n + Number(!!occupancyMaskPass.resource)\n + Number(!!compositePass.resource);\n },\n getSceneDepthSourceKind() {\n return sceneDepthLease?.kind ?? null;\n },\n getCameraId() {\n const id = camera?.id;\n return typeof id === 'string' ? id : null;\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n if (beforeRenderObserver != null) beforeRenderObservable?.remove?.(beforeRenderObserver);\n beforeRenderObserver = null;\n disposeCameraResources();\n selectedMeshes = [];\n selectionGroups = [];\n },\n };\n}\n\nfunction registerSelectionSilhouetteShader(babylon: BabylonRuntimeGlobal & Record<string, any>): void {\n const shadersStore = babylon.Effect?.ShadersStore;\n if (!shadersStore) throw new Error('Babylon runtime is missing Effect.ShadersStore.');\n const maskShaderKey = `${SELECTION_OCCUPANCY_MASK_SHADER_NAME}PixelShader`;\n const compositeShaderKey = `${SELECTION_SILHOUETTE_SHADER_NAME}PixelShader`;\n if (!shadersStore[maskShaderKey]) shadersStore[maskShaderKey] = SELECTION_OCCUPANCY_MASK_FRAGMENT_SHADER;\n if (!shadersStore[compositeShaderKey]) {\n shadersStore[compositeShaderKey] = SELECTION_SILHOUETTE_FRAGMENT_SHADER;\n }\n}\n\nexport function computeSelectionPresentationUvBounds(\n babylon: BabylonRuntimeGlobal & Record<string, any>,\n scene: RuntimeScene,\n camera: RuntimeCamera,\n meshes: readonly any[],\n width: number,\n height: number,\n paddingPx = SELECTION_PRESENTATION_PADDING_PX,\n): BabylonEditorSelectionUvBounds {\n const Vector3 = babylon.Vector3 as any;\n const Matrix = babylon.Matrix;\n const transform = scene.getTransformMatrix?.();\n if (!Vector3?.Project || !Matrix?.Identity || !transform || width <= 0 || height <= 0) {\n return [0, 0, 1, 1];\n }\n const viewport = camera.viewport?.toGlobal?.(width, height)\n ?? { x: 0, y: 0, width, height };\n let minU = 1;\n let minV = 1;\n let maxU = 0;\n let maxV = 0;\n let projectedPointCount = 0;\n try {\n for (const mesh of meshes) {\n if (!mesh || mesh.isDisposed?.()) continue;\n if (hasRuntimeDeformedBounds(mesh)) return [0, 0, 1, 1];\n mesh.computeWorldMatrix?.(true);\n const vectors = mesh.getBoundingInfo?.()?.boundingBox?.vectorsWorld;\n if (!Array.isArray(vectors) || vectors.length === 0) return [0, 0, 1, 1];\n for (const point of vectors) {\n const projected = Vector3.Project(point, Matrix.Identity(), transform, viewport);\n if (\n !Number.isFinite(projected?.x)\n || !Number.isFinite(projected?.y)\n || !Number.isFinite(projected?.z)\n || projected.z < 0\n || projected.z > 1\n ) return [0, 0, 1, 1];\n const u = projected.x / width;\n const v = 1 - (projected.y / height);\n minU = Math.min(minU, u);\n minV = Math.min(minV, v);\n maxU = Math.max(maxU, u);\n maxV = Math.max(maxV, v);\n projectedPointCount += 1;\n }\n }\n } catch {\n return [0, 0, 1, 1];\n }\n if (projectedPointCount === 0) return [0, 0, 1, 1];\n const padU = Math.max(0, paddingPx) / width;\n const padV = Math.max(0, paddingPx) / height;\n return [\n clampUnit(minU - padU),\n clampUnit(minV - padV),\n clampUnit(maxU + padU),\n clampUnit(maxV + padV),\n ];\n}\n\nfunction hasRuntimeDeformedBounds(mesh: any): boolean {\n const sourceMesh = mesh?.sourceMesh;\n return !!(\n mesh?.skeleton\n || mesh?.morphTargetManager\n || mesh?.bakedVertexAnimationManager\n || sourceMesh?.skeleton\n || sourceMesh?.morphTargetManager\n || sourceMesh?.bakedVertexAnimationManager\n );\n}\n\nfunction clampUnit(value: number): number {\n return Math.min(1, Math.max(0, value));\n}\n\nfunction resolveSelectionSourceRatio(engine: any): number {\n const hardwareScalingLevel = Number(engine?.getHardwareScalingLevel?.() ?? 1);\n if (!Number.isFinite(hardwareScalingLevel) || hardwareScalingLevel <= 0) {\n return MAX_SELECTION_SOURCE_DENSITY;\n }\n return Math.min(\n MAX_SELECTION_SOURCE_DENSITY,\n Math.max(1, MAX_SELECTION_SOURCE_DENSITY * hardwareScalingLevel),\n );\n}\n\nfunction resolveSelectionPresentationSize(\n engine: any,\n outputWidth: number,\n outputHeight: number,\n): { width: number; height: number } {\n const canvas = engine?.getRenderingCanvas?.();\n const hardwareScalingLevel = Number(engine?.getHardwareScalingLevel?.() ?? 1);\n const fallbackScale = Number.isFinite(hardwareScalingLevel) && hardwareScalingLevel > 0\n ? hardwareScalingLevel\n : 1;\n return {\n width: Math.max(1, Number(canvas?.clientWidth) || outputWidth * fallbackScale),\n height: Math.max(1, Number(canvas?.clientHeight) || outputHeight * fallbackScale),\n };\n}\n\nexport const defaultSelectionSceneDepthSourceProvider: BabylonEditorSelectionSceneDepthSourceProvider = {\n acquire(request) {\n return createAdaptiveSelectionSceneDepthSourceLease(request);\n },\n};\n\nfunction createAdaptiveSelectionSceneDepthSourceLease(\n request: BabylonEditorSelectionSceneDepthSourceRequest,\n): BabylonEditorSelectionSceneDepthSourceLease {\n let width = request.width;\n let height = request.height;\n let delegate = canUsePrePassSceneDepth(request)\n ? createPrePassSelectionSceneDepthSourceLease(request)\n : createDedicatedSelectionSceneDepthSourceLease(request);\n let disposed = false;\n let activated = false;\n\n const replaceWithDedicatedSource = (): void => {\n try { delegate.dispose(); } catch {}\n delegate = createDedicatedSelectionSceneDepthSourceLease({ ...request, width, height });\n };\n\n return {\n get kind() { return delegate.kind; },\n get packed() { return delegate.packed; },\n get backgroundDepth() { return delegate.backgroundDepth; },\n getTexture() { return delegate.getTexture(); },\n activate() {\n if (disposed || activated) return;\n try {\n delegate.activate();\n } catch (cause) {\n if (delegate.kind !== 'prepass') throw cause;\n replaceWithDedicatedSource();\n delegate.activate();\n }\n activated = true;\n },\n deactivate() {\n if (!activated) return;\n delegate.deactivate();\n activated = false;\n },\n resize(nextWidth, nextHeight) {\n width = nextWidth;\n height = nextHeight;\n delegate.resize(nextWidth, nextHeight);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n delegate.dispose();\n activated = false;\n },\n };\n}\n\nfunction canUsePrePassSceneDepth(request: BabylonEditorSelectionSceneDepthSourceRequest): boolean {\n return !!(\n request.scene?.enablePrePassRenderer\n && request.consumerPostProcess\n && typeof request.consumerPostProcess.setPrePassRenderer === 'function'\n && Number.isInteger(request.babylon.Constants?.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE)\n );\n}\n\nfunction createPrePassSelectionSceneDepthSourceLease(\n request: BabylonEditorSelectionSceneDepthSourceRequest,\n): BabylonEditorSelectionSceneDepthSourceLease {\n const depthTextureType = request.babylon.Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE;\n const consumer = request.consumerPostProcess;\n const originalSetPrePassRenderer = consumer.setPrePassRenderer;\n let state: PrePassSceneDepthState | null = null;\n let active = false;\n let disposed = false;\n\n const restoreConsumer = (): void => {\n if (consumer.setPrePassRenderer === setPrePassRenderer) {\n consumer.setPrePassRenderer = originalSetPrePassRenderer;\n }\n };\n\n const setPrePassRenderer = function (prePassRenderer: any): boolean {\n const originalNeeded = originalSetPrePassRenderer.call(consumer, prePassRenderer);\n if (!state || state.prePassRenderer !== prePassRenderer) return originalNeeded;\n state.configuration = prePassRenderer.addEffectConfiguration(state.configuration);\n state.configuration.enabled = state.activeLeaseCount > 0;\n return originalNeeded || state.configuration.enabled;\n };\n\n const deactivate = (): void => {\n if (!active) return;\n active = false;\n restoreConsumer();\n if (state) {\n state.activeLeaseCount = Math.max(0, state.activeLeaseCount - 1);\n state.configuration.enabled = state.activeLeaseCount > 0;\n state.prePassRenderer.markAsDirty?.();\n state.prePassRenderer.update?.();\n }\n };\n\n const getTexture = (): any => {\n const index = state?.prePassRenderer?.getIndex?.(depthTextureType);\n const texture = Number.isInteger(index) && index >= 0\n ? state?.prePassRenderer?.defaultRT?.textures?.[index]\n : null;\n if (!texture) throw new Error('Babylon pre-pass did not expose a compatible screen-space depth texture.');\n return texture;\n };\n\n return {\n kind: 'prepass',\n packed: false,\n backgroundDepth: 0,\n getTexture,\n activate() {\n if (disposed || active) return;\n const prePassRenderer = request.scene.enablePrePassRenderer?.();\n if (!prePassRenderer?.isSupported) {\n throw new Error('Babylon pre-pass is unavailable on the active engine.');\n }\n state = prePassSceneDepthStates.get(request.scene as object) ?? {\n prePassRenderer,\n configuration: {\n name: PREPASS_SELECTION_DEPTH_CONFIGURATION_NAME,\n enabled: false,\n texturesRequired: [depthTextureType],\n needsImageProcessing: false,\n },\n activeLeaseCount: 0,\n };\n if (state.prePassRenderer !== prePassRenderer) {\n throw new Error('The scene pre-pass renderer changed while acquiring selection depth.');\n }\n prePassSceneDepthStates.set(request.scene as object, state);\n state.activeLeaseCount += 1;\n state.configuration.enabled = true;\n consumer.setPrePassRenderer = setPrePassRenderer;\n active = true;\n try {\n prePassRenderer.markAsDirty?.();\n prePassRenderer.update?.();\n if (!prePassRenderer.enabled) throw new Error('Babylon pre-pass did not activate.');\n getTexture();\n } catch (cause) {\n deactivate();\n throw cause;\n }\n },\n deactivate,\n resize() {\n // Babylon owns this target and resizes it with the main render surface.\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n deactivate();\n restoreConsumer();\n },\n };\n}\n\nfunction createDedicatedSelectionSceneDepthSourceLease(\n request: BabylonEditorSelectionSceneDepthSourceRequest,\n): BabylonEditorSelectionSceneDepthSourceLease {\n const lease = acquireSceneDepthLease(\n request.babylon,\n request.scene,\n request.camera,\n request.textureType,\n request.width,\n request.height,\n );\n let active = false;\n let disposed = false;\n return {\n kind: 'dedicated',\n packed: lease.packed,\n backgroundDepth: 1,\n getTexture: () => lease.depthMap,\n activate() {\n if (disposed || active) return;\n activateSceneDepthLease(request.scene, lease);\n active = true;\n },\n deactivate() {\n if (!active) return;\n deactivateSceneDepthLease(request.scene, lease);\n active = false;\n },\n resize(width, height) {\n resizeSceneDepthLease(lease, width, height);\n },\n dispose() {\n if (disposed) return;\n disposed = true;\n if (active) deactivateSceneDepthLease(request.scene, lease);\n active = false;\n releaseSceneDepthLease(request.scene, lease, request.reportDiagnostic);\n },\n };\n}\n\nfunction resolveDepthTextureType(engine: any): number {\n const caps = engine.getCaps?.() ?? {};\n if (caps.textureHalfFloatRender) return TEXTURE_TYPE_HALF_FLOAT;\n if (caps.textureFloatRender) return TEXTURE_TYPE_FLOAT;\n return TEXTURE_TYPE_UNSIGNED_BYTE;\n}\n\nfunction acquireSceneDepthLease(\n babylon: BabylonRuntimeGlobal & Record<string, any>,\n scene: RuntimeScene,\n camera: RuntimeCamera,\n type: number,\n width: number,\n height: number,\n): SceneDepthLease {\n let cameraLeases = sceneDepthLeases.get(scene);\n if (!cameraLeases) {\n cameraLeases = new Map();\n sceneDepthLeases.set(scene, cameraLeases);\n }\n const existing = cameraLeases.get(camera);\n if (existing && existing.type === type) {\n resizeSceneDepthLease(existing, width, height);\n existing.refs += 1;\n return existing;\n }\n const DepthRenderer = babylon.DepthRenderer;\n if (!DepthRenderer) throw new Error('Babylon runtime is missing DepthRenderer.');\n let renderer: any = null;\n let depthMap: any = null;\n try {\n renderer = new DepthRenderer(\n scene,\n type,\n camera,\n true,\n TEXTURE_NEAREST_SAMPLING_MODE,\n false,\n 'editorSelectionSceneDepthRenderer',\n );\n renderer.forceDepthWriteTransparentMeshes = true;\n depthMap = renderer.getDepthMap();\n depthMap.renderListPredicate = (mesh: any) => !mesh?.metadata?.editorProjectionSelectionProxy;\n depthMap.resize?.({ width, height });\n const lease: SceneDepthLease = {\n camera,\n renderer,\n depthMap,\n type,\n packed: !!renderer.isPacked,\n refs: 1,\n activeRefs: 0,\n width,\n height,\n };\n cameraLeases.set(camera, lease);\n return lease;\n } catch (cause) {\n try { renderer?.dispose?.(); } catch {}\n try { depthMap?.dispose?.(); } catch {}\n if (cameraLeases.size === 0) sceneDepthLeases.delete(scene);\n throw cause;\n }\n}\n\nfunction activateSceneDepthLease(scene: RuntimeScene, lease: SceneDepthLease): void {\n if (lease.activeRefs === 0) addCustomRenderTarget(scene, lease.depthMap);\n lease.activeRefs += 1;\n}\n\nfunction deactivateSceneDepthLease(scene: RuntimeScene, lease: SceneDepthLease): void {\n if (lease.activeRefs <= 0) return;\n if (lease.activeRefs === 1) removeCustomRenderTarget(scene, lease.depthMap);\n lease.activeRefs -= 1;\n}\n\nfunction resizeSceneDepthLease(lease: SceneDepthLease, width: number, height: number): void {\n if (lease.width === width && lease.height === height) return;\n lease.depthMap.resize?.({ width, height });\n lease.width = width;\n lease.height = height;\n}\n\nfunction releaseSceneDepthLease(\n scene: RuntimeScene,\n lease: SceneDepthLease,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n): void {\n lease.refs = Math.max(0, lease.refs - 1);\n if (lease.refs > 0) return;\n lease.activeRefs = 0;\n try {\n removeCustomRenderTarget(scene, lease.depthMap);\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The owned scene depth target could not be detached cleanly.',\n cause,\n });\n }\n const cameraLeases = sceneDepthLeases.get(scene);\n cameraLeases?.delete(lease.camera);\n if (cameraLeases?.size === 0) sceneDepthLeases.delete(scene);\n try {\n lease.renderer.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'A leased scene depth resource could not be disposed cleanly.',\n cause,\n });\n }\n try {\n lease.depthMap.dispose?.();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'The owned scene depth target could not be disposed cleanly.',\n cause,\n });\n }\n}\n\nfunction addCustomRenderTarget(scene: RuntimeScene, target: any): void {\n if (!target) return;\n scene.customRenderTargets = Array.isArray(scene.customRenderTargets) ? scene.customRenderTargets : [];\n if (!scene.customRenderTargets.includes(target)) scene.customRenderTargets.push(target);\n}\n\nfunction removeCustomRenderTarget(scene: RuntimeScene, target: any): void {\n if (!target || !Array.isArray(scene.customRenderTargets)) return;\n const index = scene.customRenderTargets.indexOf(target);\n if (index >= 0) scene.customRenderTargets.splice(index, 1);\n}\n\nfunction findCameraPostProcessIndex(camera: RuntimeCamera, postProcess: any): number {\n return Array.isArray(camera?._postProcesses)\n ? camera._postProcesses.indexOf(postProcess)\n : -1;\n}\n\nfunction getCameraSelectionPostProcessSlotRegistry(\n camera: RuntimeCamera,\n): CameraSelectionPostProcessSlotRegistry {\n let registry = cameraSelectionPostProcessSlots.get(camera);\n if (!registry) {\n registry = { owners: new Map(), releasedSlots: new Map() };\n cameraSelectionPostProcessSlots.set(camera, registry);\n }\n return registry;\n}\n\nfunction cameraPostProcessTopologyMatches(\n slots: readonly any[],\n topology: readonly any[] | null,\n): boolean {\n return topology != null\n && slots.length === topology.length\n && slots.every((slot, index) => slot === topology[index]);\n}\n\nfunction reserveOwnedCameraPostProcessSlot(\n camera: RuntimeCamera,\n owner: object,\n insertIndex: number | null,\n topologyBeforeDetach: readonly any[] | null,\n): void {\n const slots = camera?._postProcesses;\n const registry = cameraSelectionPostProcessSlots.get(camera);\n const ownedSlot = registry?.owners.get(owner);\n if (!Array.isArray(slots) || !registry || !ownedSlot) return;\n const reservedIndex = insertIndex ?? ownedSlot.index;\n if (reservedIndex != null && reservedIndex < slots.length && slots[reservedIndex] === null) {\n ownedSlot.index = reservedIndex;\n ownedSlot.vacantTopology = slots.slice();\n } else {\n ownedSlot.index = null;\n ownedSlot.vacantTopology = null;\n }\n refreshProvenVacantCameraPostProcessTopologies(\n registry,\n slots,\n topologyBeforeDetach,\n owner,\n );\n}\n\nfunction refreshProvenVacantCameraPostProcessTopologies(\n registry: CameraSelectionPostProcessSlotRegistry,\n slots: readonly any[],\n topologyBeforeMutation: readonly any[] | null,\n excludedOwner: object | null = null,\n): void {\n if (!topologyBeforeMutation) return;\n const nextTopology = slots.slice();\n for (const [owner, slot] of registry.owners) {\n if (\n owner !== excludedOwner\n && slot.index != null\n && slot.index < slots.length\n && slots[slot.index] === null\n && cameraPostProcessTopologyMatches(topologyBeforeMutation, slot.vacantTopology)\n ) {\n slot.vacantTopology = nextTopology;\n }\n }\n for (const [releasedIndex, topology] of registry.releasedSlots) {\n if (\n releasedIndex < slots.length\n && slots[releasedIndex] === null\n && cameraPostProcessTopologyMatches(topologyBeforeMutation, topology)\n ) {\n registry.releasedSlots.set(releasedIndex, nextTopology);\n }\n }\n}\n\nfunction attachOwnedCameraPostProcess(\n camera: RuntimeCamera,\n owner: object,\n postProcess: any,\n): number {\n const registry = getCameraSelectionPostProcessSlotRegistry(camera);\n const slots = camera?._postProcesses;\n const topologyBeforeAttach = Array.isArray(slots) ? slots.slice() : null;\n const ownedSlot = registry.owners.get(owner);\n let reusableIndex: number | null = null;\n if (\n Array.isArray(slots)\n && ownedSlot != null\n && ownedSlot.postProcess === postProcess\n && ownedSlot.index != null\n && ownedSlot.index < slots.length\n && slots[ownedSlot.index] === null\n && cameraPostProcessTopologyMatches(slots, ownedSlot.vacantTopology)\n ) {\n reusableIndex = ownedSlot.index;\n } else if (Array.isArray(slots)) {\n if (ownedSlot) {\n ownedSlot.index = null;\n ownedSlot.vacantTopology = null;\n }\n for (const [releasedIndex, topology] of [...registry.releasedSlots.entries()]\n .sort(([left], [right]) => left - right)) {\n if (\n releasedIndex >= slots.length\n || slots[releasedIndex] !== null\n || !cameraPostProcessTopologyMatches(slots, topology)\n ) {\n registry.releasedSlots.delete(releasedIndex);\n continue;\n }\n reusableIndex = releasedIndex;\n break;\n }\n }\n\n try {\n const attachedIndex = camera.attachPostProcess?.(postProcess, reusableIndex);\n const actualIndex = Number.isInteger(attachedIndex) && attachedIndex >= 0\n ? attachedIndex\n : findCameraPostProcessIndex(camera, postProcess);\n if (actualIndex < 0) {\n throw new Error('The selection silhouette post-process was not attached to the active camera.');\n }\n registry.owners.set(owner, { index: actualIndex, postProcess, vacantTopology: null });\n registry.releasedSlots.delete(actualIndex);\n if (Array.isArray(slots)) {\n refreshProvenVacantCameraPostProcessTopologies(\n registry,\n slots,\n topologyBeforeAttach,\n owner,\n );\n }\n return actualIndex;\n } catch (cause) {\n forceDetachCameraPostProcess(camera, postProcess);\n throw cause;\n }\n}\n\nfunction forceDetachCameraPostProcess(camera: RuntimeCamera, postProcess: any): boolean {\n const slots = camera?._postProcesses;\n if (!Array.isArray(slots)) return false;\n const liveIndex = slots.indexOf(postProcess);\n if (liveIndex >= 0) slots[liveIndex] = null;\n return slots.indexOf(postProcess) < 0;\n}\n\nfunction releaseOwnedCameraPostProcessSlot(\n camera: RuntimeCamera | null,\n owner: object,\n insertIndex: number | null,\n postProcess: any,\n): void {\n const slots = camera?._postProcesses;\n if (!camera || !Array.isArray(slots)) return;\n const registry = cameraSelectionPostProcessSlots.get(camera);\n const ownedSlot = registry?.owners.get(owner);\n const liveIndex = slots.indexOf(postProcess);\n let releasedIndex: number | null = null;\n if (liveIndex >= 0) {\n slots[liveIndex] = null;\n releasedIndex = liveIndex;\n } else if (insertIndex != null && slots[insertIndex] === postProcess) {\n slots[insertIndex] = null;\n releasedIndex = insertIndex;\n } else if (\n ownedSlot?.index != null\n && ownedSlot.index < slots.length\n && slots[ownedSlot.index] === null\n && cameraPostProcessTopologyMatches(slots, ownedSlot.vacantTopology)\n ) {\n releasedIndex = ownedSlot.index;\n }\n registry?.owners.delete(owner);\n const topologyBeforeTrim = slots.slice();\n\n // Babylon uses null placeholders for detached passes. A released selection-owned hole may\n // be reclaimed by a successor controller; only trailing placeholders are removed here so\n // live passes never shift. Reserved inactive owners trimmed from the tail append on reattach.\n while (slots.length > 0 && slots[slots.length - 1] == null) slots.pop();\n if (!registry) return;\n refreshProvenVacantCameraPostProcessTopologies(registry, slots, topologyBeforeTrim);\n for (const slot of registry.owners.values()) {\n if (slot.index != null && slot.index >= slots.length) {\n slot.index = null;\n slot.vacantTopology = null;\n }\n }\n for (const released of [...registry.releasedSlots.keys()]) {\n if (released >= slots.length) {\n registry.releasedSlots.delete(released);\n }\n }\n if (releasedIndex != null && releasedIndex < slots.length && slots[releasedIndex] === null) {\n registry.releasedSlots.set(releasedIndex, slots.slice());\n }\n if (registry.owners.size === 0 && registry.releasedSlots.size === 0) {\n cameraSelectionPostProcessSlots.delete(camera);\n }\n}\n\nfunction safelyDisposeBackend(\n backend: BabylonEditorSelectionPresentationBackend,\n reportDiagnostic: (diagnostic: BabylonEditorSelectionPresentationDiagnostic) => void,\n): void {\n try {\n backend.dispose();\n } catch (cause) {\n reportDiagnostic({\n code: 'resource-dispose-failed',\n message: 'Selection silhouette resources could not be disposed cleanly.',\n cause,\n });\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type StaticProjectedShadowArtifact, type StaticProjectedShadowArtifactOptions, type StaticProjectedShadowArtifactTextureReadyEvent, type StaticProjectedShadowOptions, type BlobShadowOptions, type PlanarShadowCasterDebugInfo, type PlanarShadowOptions } from '@fps-games/babylon-renderer';
|
|
1
|
+
import { createBabylonShadowMapExperimentSystem, type StaticProjectedShadowArtifact, type StaticProjectedShadowArtifactOptions, type StaticProjectedShadowArtifactTextureReadyEvent, type StaticProjectedShadowOptions, type BlobShadowOptions, type BabylonShadowMapExperimentEvidence, type PlanarShadowCasterDebugInfo, type PlanarShadowOptions } from '@fps-games/babylon-renderer';
|
|
2
2
|
import type { BabylonEditorProjection } from './projection';
|
|
3
3
|
import type { RuntimeScene } from './types';
|
|
4
4
|
export type BabylonEditorPlanarShadowPreviewOptions = Partial<PlanarShadowOptions> & {
|
|
@@ -19,15 +19,21 @@ export interface BabylonEditorShadowPreviewOptions {
|
|
|
19
19
|
blob?: BabylonEditorBlobShadowPreviewOptions | false | null;
|
|
20
20
|
staticProjected?: BabylonEditorStaticProjectedShadowPreviewOptions | false | null;
|
|
21
21
|
planar?: BabylonEditorPlanarShadowPreviewOptions | false | null;
|
|
22
|
+
shadowMapExperiment?: BabylonEditorShadowMapExperimentPlan | null;
|
|
22
23
|
}
|
|
24
|
+
export type BabylonEditorShadowMapExperimentPlan = Exclude<Parameters<typeof createBabylonShadowMapExperimentSystem>[1], null | undefined>;
|
|
23
25
|
export interface BabylonEditorShadowPreviewController {
|
|
24
|
-
setOptions(options?: BabylonEditorShadowPreviewOptions | null): void;
|
|
26
|
+
setOptions(options?: BabylonEditorShadowPreviewOptions | null, refreshOptions?: BabylonEditorShadowPreviewRefreshOptions): void;
|
|
25
27
|
invalidateStaticProjectedArtifact(): void;
|
|
28
|
+
getShadowMapExperimentPlan(): BabylonEditorShadowMapExperimentPlan | null;
|
|
26
29
|
getDebugInfo(): BabylonEditorShadowPreviewDebugInfo;
|
|
27
|
-
refresh(): void;
|
|
30
|
+
refresh(options?: BabylonEditorShadowPreviewRefreshOptions): void;
|
|
28
31
|
rebuild(): void;
|
|
29
32
|
dispose(): void;
|
|
30
33
|
}
|
|
34
|
+
export interface BabylonEditorShadowPreviewRefreshOptions {
|
|
35
|
+
staticProjectedMetadataChanged?: boolean;
|
|
36
|
+
}
|
|
31
37
|
export interface BabylonEditorPlanarShadowPreviewDebugInfo {
|
|
32
38
|
enabled: boolean;
|
|
33
39
|
casterCount: number;
|
|
@@ -38,11 +44,13 @@ export interface BabylonEditorPlanarShadowPreviewDebugInfo {
|
|
|
38
44
|
}
|
|
39
45
|
export interface BabylonEditorShadowPreviewDebugInfo {
|
|
40
46
|
planar?: BabylonEditorPlanarShadowPreviewDebugInfo;
|
|
47
|
+
shadowMapExperiment?: BabylonShadowMapExperimentEvidence;
|
|
41
48
|
}
|
|
42
49
|
export interface BabylonEditorShadowPreviewControllerOptions {
|
|
43
50
|
scene: RuntimeScene;
|
|
44
51
|
projection: BabylonEditorProjection;
|
|
45
52
|
options?: BabylonEditorShadowPreviewOptions | null;
|
|
53
|
+
requestSceneFrame?: (reason: string) => void;
|
|
46
54
|
onStaticProjectedShadowTextureReady?: (event: StaticProjectedShadowArtifactTextureReadyEvent) => void;
|
|
47
55
|
}
|
|
48
56
|
export declare function createBabylonEditorShadowPreviewController(options: BabylonEditorShadowPreviewControllerOptions): BabylonEditorShadowPreviewController;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadow-preview-controller.d.ts","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"shadow-preview-controller.d.ts","sourceRoot":"","sources":["../src/shadow-preview-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createBlobShadowSystem, createPlanarShadowSystem, collectStaticProjectedShadowBakeRoots, createStaticProjectedShadowArtifactSystem, createStaticProjectedShadowBakeHashes, } from '@fps-games/babylon-renderer';
|
|
1
|
+
import { createBabylonShadowMapExperimentSystem, createBlobShadowSystem, createPlanarShadowSystem, collectStaticProjectedShadowBakeRoots, createStaticProjectedShadowArtifactSystem, createStaticProjectedShadowBakeHashes, } from '@fps-games/babylon-renderer';
|
|
2
2
|
import { ShadowGenerator } from '@babylonjs/core/Lights/Shadows/shadowGenerator.js';
|
|
3
3
|
const PLANAR_PREVIEW_ROOT_BOUNDARY_PATTERNS = ['root', 'scene_builder_root'];
|
|
4
4
|
const SHADOW_DEBUG_STORAGE_KEY = 'fps.shadow.debug';
|
|
@@ -11,13 +11,21 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
11
11
|
let dynamicGenerator = null;
|
|
12
12
|
let dynamicLight = null;
|
|
13
13
|
let dynamicMapSize = 0;
|
|
14
|
+
const shadowMapExperimentSystem = createBabylonShadowMapExperimentSystem(options.scene, null, {
|
|
15
|
+
requestFrame: options.requestSceneFrame,
|
|
16
|
+
// Product Preview and Game Runtime intentionally execute the same authored
|
|
17
|
+
// plan; the Editor host must not replace its fixed coverage/backend.
|
|
18
|
+
coverageMode: 'fixed',
|
|
19
|
+
});
|
|
14
20
|
let disposed = false;
|
|
21
|
+
let staticProjectedArtifactNeedsSceneRevalidation = false;
|
|
15
22
|
let meshAddedObserver = null;
|
|
16
23
|
let routeSyncFrame = null;
|
|
17
24
|
let routeSyncQueued = false;
|
|
18
25
|
const blobCasters = new Set();
|
|
19
26
|
const planarCasters = new Set();
|
|
20
27
|
const dynamicCasters = new Set();
|
|
28
|
+
const dynamicReceiverMeshes = new Set();
|
|
21
29
|
const disposeBlob = () => {
|
|
22
30
|
blobSystem?.dispose();
|
|
23
31
|
blobSystem = null;
|
|
@@ -39,9 +47,24 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
39
47
|
dynamicLight = null;
|
|
40
48
|
dynamicMapSize = 0;
|
|
41
49
|
dynamicCasters.clear();
|
|
42
|
-
for (const mesh of
|
|
50
|
+
for (const mesh of dynamicReceiverMeshes) {
|
|
43
51
|
setPreviewMeshReceiveShadows(mesh, false);
|
|
44
52
|
}
|
|
53
|
+
dynamicReceiverMeshes.clear();
|
|
54
|
+
};
|
|
55
|
+
const syncDynamicReceivers = (next) => {
|
|
56
|
+
for (const mesh of [...dynamicReceiverMeshes]) {
|
|
57
|
+
if (dynamicGenerator && next.has(mesh))
|
|
58
|
+
continue;
|
|
59
|
+
setPreviewMeshReceiveShadows(mesh, false);
|
|
60
|
+
dynamicReceiverMeshes.delete(mesh);
|
|
61
|
+
}
|
|
62
|
+
if (!dynamicGenerator)
|
|
63
|
+
return;
|
|
64
|
+
for (const mesh of next) {
|
|
65
|
+
setPreviewMeshReceiveShadows(mesh, true);
|
|
66
|
+
dynamicReceiverMeshes.add(mesh);
|
|
67
|
+
}
|
|
45
68
|
};
|
|
46
69
|
const syncBlob = () => {
|
|
47
70
|
const blobOptions = currentOptions.blob;
|
|
@@ -84,18 +107,51 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
84
107
|
disposeStatic();
|
|
85
108
|
return;
|
|
86
109
|
}
|
|
87
|
-
|
|
110
|
+
let validationOptions = staticOptions;
|
|
111
|
+
if (staticProjectedArtifactNeedsSceneRevalidation) {
|
|
112
|
+
if (!canValidateStaticExpectedHashes(options.projection)) {
|
|
113
|
+
disposeStatic();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
validationOptions = {
|
|
117
|
+
...staticOptions,
|
|
118
|
+
expectedHashes: null,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
const expectedHashes = createStaticExpectedHashes(options.scene, options.projection, validationOptions);
|
|
122
|
+
if (staticProjectedArtifactNeedsSceneRevalidation && !expectedHashes) {
|
|
123
|
+
disposeStatic();
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
88
126
|
if (!staticSystem) {
|
|
89
|
-
staticSystem = createStaticProjectedShadowArtifactSystem(options.scene, staticOptions.artifact, toStaticArtifactOptions(
|
|
127
|
+
staticSystem = createStaticProjectedShadowArtifactSystem(options.scene, staticOptions.artifact, toStaticArtifactOptions(validationOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
|
|
90
128
|
staticSystem.initialize();
|
|
129
|
+
if (staticProjectedArtifactNeedsSceneRevalidation
|
|
130
|
+
&& staticSystem.getDiagnostics().status === 'loaded') {
|
|
131
|
+
staticProjectedArtifactNeedsSceneRevalidation = false;
|
|
132
|
+
}
|
|
91
133
|
return;
|
|
92
134
|
}
|
|
93
|
-
staticSystem.setOptions(toStaticArtifactOptions(
|
|
135
|
+
staticSystem.setOptions(toStaticArtifactOptions(validationOptions, expectedHashes, options.onStaticProjectedShadowTextureReady));
|
|
94
136
|
staticSystem.setArtifact(staticOptions.artifact);
|
|
137
|
+
if (staticProjectedArtifactNeedsSceneRevalidation
|
|
138
|
+
&& staticSystem.getDiagnostics().status === 'loaded') {
|
|
139
|
+
staticProjectedArtifactNeedsSceneRevalidation = false;
|
|
140
|
+
}
|
|
95
141
|
};
|
|
96
142
|
const syncRoutes = () => {
|
|
97
143
|
if (disposed)
|
|
98
144
|
return;
|
|
145
|
+
if (currentOptions.shadowMapExperiment?.enabled === true) {
|
|
146
|
+
disposeBlob();
|
|
147
|
+
disposeStatic();
|
|
148
|
+
disposePlanar();
|
|
149
|
+
disposeDynamic();
|
|
150
|
+
syncShadowMapExperiment();
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
if (!syncShadowMapExperiment())
|
|
154
|
+
return;
|
|
99
155
|
syncBlob();
|
|
100
156
|
syncStatic();
|
|
101
157
|
syncPlanar();
|
|
@@ -127,21 +183,32 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
127
183
|
dynamicCasters: [...nextDynamicCasters].map(readShadowPreviewMeshDebugName),
|
|
128
184
|
dynamicReceivers: [...nextDynamicReceivers].map(readShadowPreviewMeshDebugName),
|
|
129
185
|
});
|
|
186
|
+
if (planarSystem && hasRemovedShadowCaster(planarCasters, nextPlanarCasters)) {
|
|
187
|
+
disposePlanar();
|
|
188
|
+
syncPlanar();
|
|
189
|
+
}
|
|
130
190
|
syncDynamic(nextDynamicReceivers, [...nextDynamicCasters]);
|
|
131
191
|
syncDynamicShadowCasters(blobSystem, blobCasters, nextBlobCasters);
|
|
132
192
|
syncDynamicShadowCasters(planarSystem, planarCasters, nextPlanarCasters);
|
|
133
193
|
syncBabylonDynamicShadowCasters(dynamicGenerator, dynamicCasters, nextDynamicCasters);
|
|
134
|
-
|
|
135
|
-
setPreviewMeshReceiveShadows(mesh, false);
|
|
136
|
-
}
|
|
137
|
-
if (dynamicGenerator) {
|
|
138
|
-
for (const mesh of nextDynamicReceivers) {
|
|
139
|
-
setPreviewMeshReceiveShadows(mesh, true);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
194
|
+
syncDynamicReceivers(nextDynamicReceivers);
|
|
142
195
|
blobSystem?.refresh();
|
|
143
196
|
planarSystem?.refresh();
|
|
144
197
|
};
|
|
198
|
+
const syncShadowMapExperiment = () => {
|
|
199
|
+
try {
|
|
200
|
+
shadowMapExperimentSystem.setPlan(currentOptions.shadowMapExperiment ?? null);
|
|
201
|
+
return true;
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
// Directional lights are projected asynchronously. A later projection
|
|
205
|
+
// batch refresh retries the exact same plan once the light exists.
|
|
206
|
+
logShadowDebug('preview.shadow-map-experiment.pending', {
|
|
207
|
+
message: error instanceof Error ? error.message : String(error),
|
|
208
|
+
});
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
};
|
|
145
212
|
const cancelScheduledRouteSync = () => {
|
|
146
213
|
if (routeSyncFrame !== null && typeof globalThis.cancelAnimationFrame === 'function') {
|
|
147
214
|
globalThis.cancelAnimationFrame(routeSyncFrame);
|
|
@@ -210,7 +277,10 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
210
277
|
};
|
|
211
278
|
syncRoutes();
|
|
212
279
|
return {
|
|
213
|
-
setOptions(nextOptions) {
|
|
280
|
+
setOptions(nextOptions, refreshOptions) {
|
|
281
|
+
if (refreshOptions?.staticProjectedMetadataChanged) {
|
|
282
|
+
staticProjectedArtifactNeedsSceneRevalidation = true;
|
|
283
|
+
}
|
|
214
284
|
currentOptions = normalizeShadowPreviewOptions(nextOptions);
|
|
215
285
|
syncRoutes();
|
|
216
286
|
},
|
|
@@ -228,6 +298,9 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
228
298
|
}
|
|
229
299
|
disposeStatic();
|
|
230
300
|
},
|
|
301
|
+
getShadowMapExperimentPlan() {
|
|
302
|
+
return shadowMapExperimentSystem.getPlan();
|
|
303
|
+
},
|
|
231
304
|
getDebugInfo() {
|
|
232
305
|
return {
|
|
233
306
|
planar: {
|
|
@@ -238,10 +311,18 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
238
311
|
...readPlanarShadowSourceNodeInfo(info, options.scene),
|
|
239
312
|
})),
|
|
240
313
|
},
|
|
314
|
+
shadowMapExperiment: shadowMapExperimentSystem.getEvidence(),
|
|
241
315
|
};
|
|
242
316
|
},
|
|
243
|
-
refresh() {
|
|
317
|
+
refresh(refreshOptions) {
|
|
318
|
+
if (refreshOptions?.staticProjectedMetadataChanged) {
|
|
319
|
+
staticProjectedArtifactNeedsSceneRevalidation = true;
|
|
320
|
+
}
|
|
244
321
|
syncRoutes();
|
|
322
|
+
if (currentOptions.shadowMapExperiment?.enabled === true) {
|
|
323
|
+
shadowMapExperimentSystem.markDirty('static-depth-invalidated');
|
|
324
|
+
shadowMapExperimentSystem.markDirty('dynamic-depth-invalidated');
|
|
325
|
+
}
|
|
245
326
|
},
|
|
246
327
|
rebuild() {
|
|
247
328
|
disposeBlob();
|
|
@@ -261,6 +342,7 @@ export function createBabylonEditorShadowPreviewController(options) {
|
|
|
261
342
|
disposeStatic();
|
|
262
343
|
disposePlanar();
|
|
263
344
|
disposeDynamic();
|
|
345
|
+
shadowMapExperimentSystem.dispose();
|
|
264
346
|
},
|
|
265
347
|
};
|
|
266
348
|
}
|
|
@@ -270,6 +352,7 @@ function normalizeShadowPreviewOptions(options) {
|
|
|
270
352
|
blob: options?.blob ?? null,
|
|
271
353
|
staticProjected: options?.staticProjected ?? null,
|
|
272
354
|
planar: options?.planar ?? null,
|
|
355
|
+
shadowMapExperiment: options?.shadowMapExperiment ?? null,
|
|
273
356
|
};
|
|
274
357
|
}
|
|
275
358
|
function disableBlobAutoDetection(options) {
|
|
@@ -341,6 +424,13 @@ function canValidateStaticExpectedHashes(projection) {
|
|
|
341
424
|
return false;
|
|
342
425
|
}
|
|
343
426
|
}
|
|
427
|
+
function hasRemovedShadowCaster(current, next) {
|
|
428
|
+
for (const mesh of current) {
|
|
429
|
+
if (!next.has(mesh))
|
|
430
|
+
return true;
|
|
431
|
+
}
|
|
432
|
+
return false;
|
|
433
|
+
}
|
|
344
434
|
function syncDynamicShadowCasters(system, current, next) {
|
|
345
435
|
for (const mesh of [...current]) {
|
|
346
436
|
if (!next.has(mesh)) {
|