@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,1600 @@
|
|
|
1
|
+
import { BabylonSelectionIdentityPass, } from './selection-identity-pass.js';
|
|
2
|
+
const SELECTION_OCCUPANCY_MASK_SHADER_NAME = 'editorSelectionOccupancyMask';
|
|
3
|
+
const SELECTION_SILHOUETTE_SHADER_NAME = 'editorSelectionSilhouetteComposite';
|
|
4
|
+
const MAX_SELECTION_SOURCE_DENSITY = 2;
|
|
5
|
+
const TEXTURE_TYPE_UNSIGNED_BYTE = 0;
|
|
6
|
+
const TEXTURE_TYPE_FLOAT = 1;
|
|
7
|
+
const TEXTURE_TYPE_HALF_FLOAT = 2;
|
|
8
|
+
const TEXTURE_NEAREST_SAMPLING_MODE = 1;
|
|
9
|
+
const TEXTURE_BILINEAR_SAMPLING_MODE = 2;
|
|
10
|
+
const SELECTION_PRESENTATION_PADDING_PX = 6;
|
|
11
|
+
const SELECTION_PRESENTATION_COLOR = [1, 0.9, 0.22];
|
|
12
|
+
const SELECTION_OCCUPANCY_MASK_FRAGMENT_SHADER = `
|
|
13
|
+
precision highp float;
|
|
14
|
+
varying vec2 vUV;
|
|
15
|
+
uniform sampler2D editorSelectedDepthSampler;
|
|
16
|
+
uniform sampler2D editorSelectionIdentitySampler;
|
|
17
|
+
uniform vec2 editorSelectedDepthTexelSize;
|
|
18
|
+
uniform vec2 editorOutputTexelSize;
|
|
19
|
+
uniform vec2 editorPresentationTexelSize;
|
|
20
|
+
uniform vec4 editorSelectionUvBounds;
|
|
21
|
+
uniform float editorSelectedPackedDepth;
|
|
22
|
+
uniform float editorSelectionIdentityEnabled;
|
|
23
|
+
|
|
24
|
+
float unpackEditorDepth(vec4 color) {
|
|
25
|
+
const vec4 bitShift = vec4(
|
|
26
|
+
1.0 / (255.0 * 255.0 * 255.0),
|
|
27
|
+
1.0 / (255.0 * 255.0),
|
|
28
|
+
1.0 / 255.0,
|
|
29
|
+
1.0
|
|
30
|
+
);
|
|
31
|
+
return dot(color, bitShift);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
float selectionOccupancyAt(vec2 uv) {
|
|
35
|
+
vec2 sampleUv = clamp(uv, vec2(0.0), vec2(1.0));
|
|
36
|
+
vec4 selectedDepthSample = texture2D(editorSelectedDepthSampler, sampleUv);
|
|
37
|
+
float selectedDepth = mix(
|
|
38
|
+
selectedDepthSample.r,
|
|
39
|
+
unpackEditorDepth(selectedDepthSample),
|
|
40
|
+
editorSelectedPackedDepth
|
|
41
|
+
);
|
|
42
|
+
return 1.0 - step(0.999999, selectedDepth);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
float selectionIdentityValue(vec4 color) {
|
|
46
|
+
vec3 bytes = floor(color.rgb * 255.0 + 0.5);
|
|
47
|
+
return dot(bytes, vec3(65536.0, 256.0, 1.0));
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
float selectionIdentityBoundaryAgainst(
|
|
51
|
+
vec2 neighborUv,
|
|
52
|
+
float centerSelected,
|
|
53
|
+
float centerValue
|
|
54
|
+
) {
|
|
55
|
+
vec4 neighborIdentity = texture2D(editorSelectionIdentitySampler, neighborUv);
|
|
56
|
+
float neighborValue = selectionIdentityValue(neighborIdentity);
|
|
57
|
+
float identitiesDiffer = step(0.5, abs(centerValue - neighborValue));
|
|
58
|
+
// The object-ID target already depth-resolves the selected surface. Pick one
|
|
59
|
+
// deterministic owner for each differing-ID edge to avoid double thickness.
|
|
60
|
+
float stableIdentityOwner = step(0.5, centerValue - neighborValue);
|
|
61
|
+
return centerSelected * identitiesDiffer * stableIdentityOwner;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
float selectionIdentityBoundarySampleAt(vec2 uv, vec2 identityTexel) {
|
|
65
|
+
vec4 centerIdentity = texture2D(editorSelectionIdentitySampler, uv);
|
|
66
|
+
float centerSelected = step(0.001, centerIdentity.a);
|
|
67
|
+
float centerValue = selectionIdentityValue(centerIdentity);
|
|
68
|
+
float boundary = 0.0;
|
|
69
|
+
boundary = max(boundary, selectionIdentityBoundaryAgainst(
|
|
70
|
+
uv + vec2(-identityTexel.x, 0.0), centerSelected, centerValue
|
|
71
|
+
));
|
|
72
|
+
boundary = max(boundary, selectionIdentityBoundaryAgainst(
|
|
73
|
+
uv + vec2(identityTexel.x, 0.0), centerSelected, centerValue
|
|
74
|
+
));
|
|
75
|
+
boundary = max(boundary, selectionIdentityBoundaryAgainst(
|
|
76
|
+
uv + vec2(0.0, -identityTexel.y), centerSelected, centerValue
|
|
77
|
+
));
|
|
78
|
+
boundary = max(boundary, selectionIdentityBoundaryAgainst(
|
|
79
|
+
uv + vec2(0.0, identityTexel.y), centerSelected, centerValue
|
|
80
|
+
));
|
|
81
|
+
return boundary;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
float selectionIdentityBoundaryCoverageAt(
|
|
85
|
+
vec2 uv,
|
|
86
|
+
vec2 outputTexel,
|
|
87
|
+
vec2 boundaryStep
|
|
88
|
+
) {
|
|
89
|
+
vec2 ringWide = outputTexel * vec2(0.32476, 0.1875);
|
|
90
|
+
vec2 ringTall = outputTexel * vec2(0.0, 0.375);
|
|
91
|
+
float coverage = selectionIdentityBoundarySampleAt(uv - ringTall, boundaryStep);
|
|
92
|
+
coverage += selectionIdentityBoundarySampleAt(
|
|
93
|
+
uv + vec2(ringWide.x, -ringWide.y), boundaryStep
|
|
94
|
+
);
|
|
95
|
+
coverage += selectionIdentityBoundarySampleAt(uv + ringWide, boundaryStep);
|
|
96
|
+
coverage += selectionIdentityBoundarySampleAt(uv + ringTall, boundaryStep);
|
|
97
|
+
coverage += selectionIdentityBoundarySampleAt(
|
|
98
|
+
uv + vec2(-ringWide.x, ringWide.y), boundaryStep
|
|
99
|
+
);
|
|
100
|
+
coverage += selectionIdentityBoundarySampleAt(uv - ringWide, boundaryStep);
|
|
101
|
+
return coverage / 6.0;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
void main(void) {
|
|
105
|
+
if (
|
|
106
|
+
vUV.x < editorSelectionUvBounds.x
|
|
107
|
+
|| vUV.y < editorSelectionUvBounds.y
|
|
108
|
+
|| vUV.x > editorSelectionUvBounds.z
|
|
109
|
+
|| vUV.y > editorSelectionUvBounds.w
|
|
110
|
+
) {
|
|
111
|
+
gl_FragColor = vec4(0.0);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
vec2 subpixelOffset = editorSelectedDepthTexelSize * 0.5;
|
|
115
|
+
float coverage = 0.0;
|
|
116
|
+
coverage += selectionOccupancyAt(vUV + vec2(-subpixelOffset.x, -subpixelOffset.y));
|
|
117
|
+
coverage += selectionOccupancyAt(vUV + vec2(subpixelOffset.x, -subpixelOffset.y));
|
|
118
|
+
coverage += selectionOccupancyAt(vUV + vec2(-subpixelOffset.x, subpixelOffset.y));
|
|
119
|
+
coverage += selectionOccupancyAt(vUV + vec2(subpixelOffset.x, subpixelOffset.y));
|
|
120
|
+
float identityBoundary = 0.0;
|
|
121
|
+
if (editorSelectionIdentityEnabled > 0.5) {
|
|
122
|
+
identityBoundary = selectionIdentityBoundaryCoverageAt(
|
|
123
|
+
vUV,
|
|
124
|
+
editorOutputTexelSize,
|
|
125
|
+
editorPresentationTexelSize
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
gl_FragColor = vec4(identityBoundary, 0.0, 0.0, coverage * 0.25);
|
|
129
|
+
}
|
|
130
|
+
`;
|
|
131
|
+
const SELECTION_SILHOUETTE_FRAGMENT_SHADER = `
|
|
132
|
+
precision highp float;
|
|
133
|
+
varying vec2 vUV;
|
|
134
|
+
uniform sampler2D textureSampler;
|
|
135
|
+
uniform sampler2D editorSceneColorSampler;
|
|
136
|
+
uniform sampler2D editorSceneDepthSampler;
|
|
137
|
+
uniform sampler2D editorSelectedDepthSampler;
|
|
138
|
+
uniform vec2 editorOutputTexelSize;
|
|
139
|
+
uniform vec2 editorPresentationTexelSize;
|
|
140
|
+
uniform vec4 editorSelectionUvBounds;
|
|
141
|
+
uniform vec3 editorSelectionColor;
|
|
142
|
+
uniform float editorScenePackedDepth;
|
|
143
|
+
uniform float editorSelectedPackedDepth;
|
|
144
|
+
uniform float editorSelectionIdentityEnabled;
|
|
145
|
+
uniform float editorSceneBackgroundDepth;
|
|
146
|
+
uniform float editorDepthEpsilon;
|
|
147
|
+
|
|
148
|
+
float unpackEditorDepth(vec4 color) {
|
|
149
|
+
const vec4 bitShift = vec4(
|
|
150
|
+
1.0 / (255.0 * 255.0 * 255.0),
|
|
151
|
+
1.0 / (255.0 * 255.0),
|
|
152
|
+
1.0 / 255.0,
|
|
153
|
+
1.0
|
|
154
|
+
);
|
|
155
|
+
return dot(color, bitShift);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
float readEditorDepth(sampler2D depthSampler, vec2 uv, float packedDepth) {
|
|
159
|
+
vec4 sampleValue = texture2D(depthSampler, clamp(uv, vec2(0.0), vec2(1.0)));
|
|
160
|
+
return mix(sampleValue.r, unpackEditorDepth(sampleValue), packedDepth);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
float selectionCoverageAt(vec2 uv) {
|
|
164
|
+
return texture2D(textureSampler, clamp(uv, vec2(0.0), vec2(1.0))).a;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
float resolvedSelectionIdentityBoundaryAt(vec2 uv, vec2 outputTexel) {
|
|
168
|
+
vec2 halfTexel = outputTexel * 0.5;
|
|
169
|
+
float coverage = texture2D(
|
|
170
|
+
textureSampler,
|
|
171
|
+
uv + vec2(-halfTexel.x, -halfTexel.y)
|
|
172
|
+
).r;
|
|
173
|
+
coverage += texture2D(
|
|
174
|
+
textureSampler,
|
|
175
|
+
uv + vec2(halfTexel.x, -halfTexel.y)
|
|
176
|
+
).r;
|
|
177
|
+
coverage += texture2D(
|
|
178
|
+
textureSampler,
|
|
179
|
+
uv + vec2(-halfTexel.x, halfTexel.y)
|
|
180
|
+
).r;
|
|
181
|
+
coverage += texture2D(
|
|
182
|
+
textureSampler,
|
|
183
|
+
uv + vec2(halfTexel.x, halfTexel.y)
|
|
184
|
+
).r;
|
|
185
|
+
return coverage * 0.25;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
void considerStrongestSelectionNeighbor(
|
|
189
|
+
inout vec3 strongestSample,
|
|
190
|
+
vec2 uv,
|
|
191
|
+
vec2 texel,
|
|
192
|
+
vec2 offset
|
|
193
|
+
) {
|
|
194
|
+
float coverage = selectionCoverageAt(uv + offset * texel);
|
|
195
|
+
float isStronger = step(strongestSample.x, coverage);
|
|
196
|
+
strongestSample = mix(
|
|
197
|
+
strongestSample,
|
|
198
|
+
vec3(coverage, offset),
|
|
199
|
+
isStronger
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
vec3 strongestSelectionNeighbor(vec2 uv, vec2 texel) {
|
|
204
|
+
vec3 strongestSample = vec3(0.0, 0.0, 0.0);
|
|
205
|
+
for (int y = -1; y <= 1; y++) {
|
|
206
|
+
for (int x = -1; x <= 1; x++) {
|
|
207
|
+
if (x != 0 || y != 0) {
|
|
208
|
+
considerStrongestSelectionNeighbor(
|
|
209
|
+
strongestSample,
|
|
210
|
+
uv,
|
|
211
|
+
texel,
|
|
212
|
+
vec2(float(x), float(y))
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
return strongestSample;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
float selectionSubpixelVisibilityAt(vec2 uv) {
|
|
221
|
+
float selectedDepth = readEditorDepth(
|
|
222
|
+
editorSelectedDepthSampler,
|
|
223
|
+
uv,
|
|
224
|
+
editorSelectedPackedDepth
|
|
225
|
+
);
|
|
226
|
+
float sceneDepth = readEditorDepth(editorSceneDepthSampler, uv, editorScenePackedDepth);
|
|
227
|
+
float sceneBackgroundIsZero = 1.0 - step(0.5, editorSceneBackgroundDepth);
|
|
228
|
+
float emptyZeroDepth = sceneBackgroundIsZero * (1.0 - step(0.000001, sceneDepth));
|
|
229
|
+
sceneDepth = mix(sceneDepth, 1.0, emptyZeroDepth);
|
|
230
|
+
float hasSelection = 1.0 - step(0.999999, selectedDepth);
|
|
231
|
+
float depthDelta = selectedDepth - sceneDepth;
|
|
232
|
+
float isVisible = 1.0 - smoothstep(
|
|
233
|
+
editorDepthEpsilon,
|
|
234
|
+
editorDepthEpsilon * 4.0,
|
|
235
|
+
depthDelta
|
|
236
|
+
);
|
|
237
|
+
return hasSelection * isVisible;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
float selectionSurfaceVisibilityAt(vec2 uv, vec2 texel) {
|
|
241
|
+
vec2 subpixelOffset = texel * 0.25;
|
|
242
|
+
float visibility = 0.0;
|
|
243
|
+
visibility = max(
|
|
244
|
+
visibility,
|
|
245
|
+
selectionSubpixelVisibilityAt(uv + vec2(-subpixelOffset.x, -subpixelOffset.y))
|
|
246
|
+
);
|
|
247
|
+
visibility = max(
|
|
248
|
+
visibility,
|
|
249
|
+
selectionSubpixelVisibilityAt(uv + vec2(subpixelOffset.x, -subpixelOffset.y))
|
|
250
|
+
);
|
|
251
|
+
visibility = max(
|
|
252
|
+
visibility,
|
|
253
|
+
selectionSubpixelVisibilityAt(uv + vec2(-subpixelOffset.x, subpixelOffset.y))
|
|
254
|
+
);
|
|
255
|
+
visibility = max(
|
|
256
|
+
visibility,
|
|
257
|
+
selectionSubpixelVisibilityAt(uv + vec2(subpixelOffset.x, subpixelOffset.y))
|
|
258
|
+
);
|
|
259
|
+
return visibility;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
void main(void) {
|
|
263
|
+
vec4 sceneColor = texture2D(editorSceneColorSampler, vUV);
|
|
264
|
+
float center = texture2D(textureSampler, vUV).a;
|
|
265
|
+
if (
|
|
266
|
+
vUV.x < editorSelectionUvBounds.x
|
|
267
|
+
|| vUV.y < editorSelectionUvBounds.y
|
|
268
|
+
|| vUV.x > editorSelectionUvBounds.z
|
|
269
|
+
|| vUV.y > editorSelectionUvBounds.w
|
|
270
|
+
) {
|
|
271
|
+
gl_FragColor = vec4(sceneColor.rgb, 1.0);
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
float identityAlpha = 0.0;
|
|
275
|
+
if (editorSelectionIdentityEnabled > 0.5) {
|
|
276
|
+
float identityBoundary = resolvedSelectionIdentityBoundaryAt(
|
|
277
|
+
vUV,
|
|
278
|
+
editorOutputTexelSize
|
|
279
|
+
);
|
|
280
|
+
float perceptualIdentityCoverage = pow(
|
|
281
|
+
clamp(identityBoundary, 0.0, 1.0),
|
|
282
|
+
0.75
|
|
283
|
+
);
|
|
284
|
+
identityAlpha = perceptualIdentityCoverage * selectionSurfaceVisibilityAt(
|
|
285
|
+
vUV,
|
|
286
|
+
editorOutputTexelSize
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
float unionAlpha = 0.0;
|
|
290
|
+
if (editorSelectionIdentityEnabled < 0.5 && center < 0.999) {
|
|
291
|
+
float outsideCoverage = 1.0 - clamp(center, 0.0, 1.0);
|
|
292
|
+
vec3 strongestSample = strongestSelectionNeighbor(vUV, editorPresentationTexelSize);
|
|
293
|
+
vec2 strongestSampleUv = vUV + strongestSample.yz * editorPresentationTexelSize;
|
|
294
|
+
float boundaryVisibility = selectionSurfaceVisibilityAt(
|
|
295
|
+
strongestSampleUv,
|
|
296
|
+
editorOutputTexelSize
|
|
297
|
+
);
|
|
298
|
+
unionAlpha = smoothstep(
|
|
299
|
+
0.0,
|
|
300
|
+
1.0,
|
|
301
|
+
strongestSample.x * outsideCoverage
|
|
302
|
+
) * boundaryVisibility;
|
|
303
|
+
}
|
|
304
|
+
float alpha = max(unionAlpha, identityAlpha);
|
|
305
|
+
gl_FragColor = vec4(mix(sceneColor.rgb, editorSelectionColor, alpha), 1.0);
|
|
306
|
+
}
|
|
307
|
+
`;
|
|
308
|
+
const sceneDepthLeases = new WeakMap();
|
|
309
|
+
const prePassSceneDepthStates = new WeakMap();
|
|
310
|
+
const PREPASS_SELECTION_DEPTH_CONFIGURATION_NAME = 'fpsEditorSelectionSceneDepth';
|
|
311
|
+
const cameraSelectionPostProcessSlots = new WeakMap();
|
|
312
|
+
export function createBabylonEditorSelectionPresentationController(options) {
|
|
313
|
+
const nodes = new Map();
|
|
314
|
+
const reportedDiagnosticCodes = new Set();
|
|
315
|
+
let selection = { selectedIds: [], activeId: null };
|
|
316
|
+
let backend = null;
|
|
317
|
+
let failed = false;
|
|
318
|
+
let disposed = false;
|
|
319
|
+
let selectedMeshCount = 0;
|
|
320
|
+
let lastDiagnostic = null;
|
|
321
|
+
const reportDiagnostic = (diagnostic) => {
|
|
322
|
+
lastDiagnostic = diagnostic;
|
|
323
|
+
if (reportedDiagnosticCodes.has(diagnostic.code))
|
|
324
|
+
return;
|
|
325
|
+
reportedDiagnosticCodes.add(diagnostic.code);
|
|
326
|
+
options.logger?.warn(`[selection-presentation:${diagnostic.code}] ${diagnostic.message}`, diagnostic.cause);
|
|
327
|
+
options.onDiagnostic?.(diagnostic);
|
|
328
|
+
};
|
|
329
|
+
const ensureBackend = () => {
|
|
330
|
+
if (disposed || failed)
|
|
331
|
+
return null;
|
|
332
|
+
if (backend)
|
|
333
|
+
return backend;
|
|
334
|
+
try {
|
|
335
|
+
backend = (options.createBackend ?? createDepthAwareSelectionPresentationBackend)(options, reportDiagnostic);
|
|
336
|
+
return backend;
|
|
337
|
+
}
|
|
338
|
+
catch (cause) {
|
|
339
|
+
failed = true;
|
|
340
|
+
reportDiagnostic({
|
|
341
|
+
code: 'backend-initialization-failed',
|
|
342
|
+
message: 'Selection silhouette resources could not be initialized; visual selection feedback is disabled.',
|
|
343
|
+
cause,
|
|
344
|
+
});
|
|
345
|
+
return null;
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
const syncBackendMembership = () => {
|
|
349
|
+
if (disposed)
|
|
350
|
+
return;
|
|
351
|
+
const groups = selection.selectedIds
|
|
352
|
+
.map(selectionId => ({
|
|
353
|
+
selectionId,
|
|
354
|
+
meshes: collectSelectedPresentationMeshes(nodes, {
|
|
355
|
+
selectedIds: [selectionId],
|
|
356
|
+
activeId: selectionId,
|
|
357
|
+
}),
|
|
358
|
+
}))
|
|
359
|
+
.filter(group => group.meshes.length > 0);
|
|
360
|
+
const meshes = [];
|
|
361
|
+
const seenMeshes = new Set();
|
|
362
|
+
for (const group of groups) {
|
|
363
|
+
for (const mesh of group.meshes)
|
|
364
|
+
appendPresentationMesh(meshes, seenMeshes, mesh);
|
|
365
|
+
}
|
|
366
|
+
selectedMeshCount = meshes.length;
|
|
367
|
+
if (meshes.length === 0) {
|
|
368
|
+
backend?.setSelectedMeshes([], groups);
|
|
369
|
+
backend?.setEnabled(false);
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
const nextBackend = ensureBackend();
|
|
373
|
+
if (!nextBackend)
|
|
374
|
+
return;
|
|
375
|
+
try {
|
|
376
|
+
nextBackend.setSelectedMeshes(meshes, groups);
|
|
377
|
+
nextBackend.setEnabled(true);
|
|
378
|
+
nextBackend.prepareFrame();
|
|
379
|
+
}
|
|
380
|
+
catch (cause) {
|
|
381
|
+
failed = true;
|
|
382
|
+
safelyDisposeBackend(nextBackend, reportDiagnostic);
|
|
383
|
+
backend = null;
|
|
384
|
+
reportDiagnostic({
|
|
385
|
+
code: 'backend-initialization-failed',
|
|
386
|
+
message: 'Selection silhouette synchronization failed; visual selection feedback is disabled.',
|
|
387
|
+
cause,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
};
|
|
391
|
+
return {
|
|
392
|
+
attachProjectedNode(node) {
|
|
393
|
+
if (disposed)
|
|
394
|
+
return;
|
|
395
|
+
nodes.set(node.nodeId, node);
|
|
396
|
+
syncBackendMembership();
|
|
397
|
+
},
|
|
398
|
+
updateProjectedNode(node) {
|
|
399
|
+
if (disposed)
|
|
400
|
+
return;
|
|
401
|
+
nodes.set(node.nodeId, node);
|
|
402
|
+
syncBackendMembership();
|
|
403
|
+
},
|
|
404
|
+
detachProjectedNode(nodeId) {
|
|
405
|
+
if (disposed)
|
|
406
|
+
return;
|
|
407
|
+
nodes.delete(nodeId);
|
|
408
|
+
syncBackendMembership();
|
|
409
|
+
},
|
|
410
|
+
syncSelection(nextSelection) {
|
|
411
|
+
if (disposed)
|
|
412
|
+
return;
|
|
413
|
+
selection = {
|
|
414
|
+
selectedIds: [...new Set(nextSelection.selectedIds)],
|
|
415
|
+
activeId: nextSelection.activeId,
|
|
416
|
+
};
|
|
417
|
+
syncBackendMembership();
|
|
418
|
+
},
|
|
419
|
+
prepareFrame() {
|
|
420
|
+
if (disposed || failed || selectedMeshCount === 0)
|
|
421
|
+
return;
|
|
422
|
+
try {
|
|
423
|
+
backend?.prepareFrame();
|
|
424
|
+
}
|
|
425
|
+
catch (cause) {
|
|
426
|
+
failed = true;
|
|
427
|
+
if (backend)
|
|
428
|
+
safelyDisposeBackend(backend, reportDiagnostic);
|
|
429
|
+
backend = null;
|
|
430
|
+
reportDiagnostic({
|
|
431
|
+
code: 'camera-replacement-failed',
|
|
432
|
+
message: 'Selection silhouette camera resources could not be refreshed; visual selection feedback is disabled.',
|
|
433
|
+
cause,
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
getDiagnostics() {
|
|
438
|
+
return {
|
|
439
|
+
status: disposed ? 'disposed' : failed ? 'failed' : selectedMeshCount > 0 ? 'active' : 'idle',
|
|
440
|
+
projectedNodeCount: nodes.size,
|
|
441
|
+
selectedNodeCount: selection.selectedIds.length,
|
|
442
|
+
selectedMeshCount,
|
|
443
|
+
backendResourceCount: backend?.getResourceCount() ?? 0,
|
|
444
|
+
sceneDepthSource: backend?.getSceneDepthSourceKind?.() ?? null,
|
|
445
|
+
cameraId: backend?.getCameraId() ?? null,
|
|
446
|
+
lastDiagnostic,
|
|
447
|
+
};
|
|
448
|
+
},
|
|
449
|
+
dispose() {
|
|
450
|
+
if (disposed)
|
|
451
|
+
return;
|
|
452
|
+
disposed = true;
|
|
453
|
+
nodes.clear();
|
|
454
|
+
selectedMeshCount = 0;
|
|
455
|
+
if (backend)
|
|
456
|
+
safelyDisposeBackend(backend, reportDiagnostic);
|
|
457
|
+
backend = null;
|
|
458
|
+
},
|
|
459
|
+
};
|
|
460
|
+
}
|
|
461
|
+
export function collectSelectedPresentationMeshes(nodes, selection) {
|
|
462
|
+
const selectedIds = new Set(selection.selectedIds);
|
|
463
|
+
const meshes = [];
|
|
464
|
+
const seen = new Set();
|
|
465
|
+
for (const [nodeId, node] of nodes) {
|
|
466
|
+
const rootSelected = selectedIds.has(nodeId);
|
|
467
|
+
const mappedSelectionNodeIds = new Set((node.selectionPresentationTargets ?? []).map(target => target.selectionNodeId));
|
|
468
|
+
const proxyNodeIds = new Set((node.selectionMeshes ?? [])
|
|
469
|
+
.map(readPresentationMeshSelectionNodeId)
|
|
470
|
+
.filter((id) => !!id));
|
|
471
|
+
for (const mesh of node.outlineMeshes) {
|
|
472
|
+
const meshNodeId = readPresentationMeshSelectionNodeId(mesh) ?? nodeId;
|
|
473
|
+
if (!rootSelected && (proxyNodeIds.has(meshNodeId) || !selectedIds.has(meshNodeId)))
|
|
474
|
+
continue;
|
|
475
|
+
appendPresentationMesh(meshes, seen, mesh);
|
|
476
|
+
}
|
|
477
|
+
for (const target of node.selectionPresentationTargets ?? []) {
|
|
478
|
+
if (!selectedIds.has(target.selectionNodeId))
|
|
479
|
+
continue;
|
|
480
|
+
for (const mesh of target.renderMeshes)
|
|
481
|
+
appendPresentationMesh(meshes, seen, mesh);
|
|
482
|
+
}
|
|
483
|
+
for (const mesh of node.selectionMeshes ?? []) {
|
|
484
|
+
const meshNodeId = readPresentationMeshSelectionNodeId(mesh) ?? nodeId;
|
|
485
|
+
if (mappedSelectionNodeIds.has(meshNodeId))
|
|
486
|
+
continue;
|
|
487
|
+
if (!selectedIds.has(meshNodeId))
|
|
488
|
+
continue;
|
|
489
|
+
appendPresentationMesh(meshes, seen, mesh);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
return meshes;
|
|
493
|
+
}
|
|
494
|
+
function appendPresentationMesh(meshes, seen, mesh) {
|
|
495
|
+
if (!mesh || seen.has(mesh) || mesh.isDisposed?.())
|
|
496
|
+
return;
|
|
497
|
+
seen.add(mesh);
|
|
498
|
+
meshes.push(mesh);
|
|
499
|
+
}
|
|
500
|
+
function readPresentationMeshSelectionNodeId(mesh) {
|
|
501
|
+
const nodeId = mesh?.metadata?.editorProjection?.nodeId;
|
|
502
|
+
return typeof nodeId === 'string' && nodeId.length > 0 ? nodeId : null;
|
|
503
|
+
}
|
|
504
|
+
function createDepthAwareSelectionPresentationBackend(options, reportDiagnostic) {
|
|
505
|
+
const { babylon, scene } = options;
|
|
506
|
+
const beforeRenderObservable = scene?.onBeforeRenderObservable;
|
|
507
|
+
let beforeRenderObserver = null;
|
|
508
|
+
let enabled = false;
|
|
509
|
+
let disposed = false;
|
|
510
|
+
let selectedMeshes = [];
|
|
511
|
+
let selectionGroups = [];
|
|
512
|
+
let camera = null;
|
|
513
|
+
let sceneDepthLease = null;
|
|
514
|
+
let selectedDepthRenderer = null;
|
|
515
|
+
let selectedDepthMap = null;
|
|
516
|
+
let selectionIdentityPass = null;
|
|
517
|
+
const occupancyMaskPass = {
|
|
518
|
+
resource: null,
|
|
519
|
+
attached: false,
|
|
520
|
+
insertIndex: null,
|
|
521
|
+
slotOwner: {},
|
|
522
|
+
};
|
|
523
|
+
const compositePass = {
|
|
524
|
+
resource: null,
|
|
525
|
+
attached: false,
|
|
526
|
+
insertIndex: null,
|
|
527
|
+
slotOwner: {},
|
|
528
|
+
};
|
|
529
|
+
let width = 0;
|
|
530
|
+
let height = 0;
|
|
531
|
+
let selectionSourceRatio = MAX_SELECTION_SOURCE_DENSITY;
|
|
532
|
+
let shaderNotReadyFrames = 0;
|
|
533
|
+
let resourcesActive = false;
|
|
534
|
+
let sceneDepthLeaseActive = false;
|
|
535
|
+
let selectedDepthMapActive = false;
|
|
536
|
+
let selectionUvBounds = [0, 0, 1, 1];
|
|
537
|
+
registerSelectionSilhouetteShader(babylon);
|
|
538
|
+
const requiresSelectionIdentityPass = () => (selectionGroups.length > 1
|
|
539
|
+
&& !!babylon.ShaderMaterial
|
|
540
|
+
&& !!babylon.Effect?.ShadersStore);
|
|
541
|
+
const detachPostProcessPass = (pass) => {
|
|
542
|
+
if (!camera || !pass.resource || !pass.attached)
|
|
543
|
+
return;
|
|
544
|
+
const topologyBeforeDetach = Array.isArray(camera._postProcesses)
|
|
545
|
+
? camera._postProcesses.slice()
|
|
546
|
+
: null;
|
|
547
|
+
try {
|
|
548
|
+
const attachedIndex = findCameraPostProcessIndex(camera, pass.resource);
|
|
549
|
+
if (attachedIndex >= 0)
|
|
550
|
+
pass.insertIndex = attachedIndex;
|
|
551
|
+
camera.detachPostProcess?.(pass.resource);
|
|
552
|
+
pass.attached = false;
|
|
553
|
+
reserveOwnedCameraPostProcessSlot(camera, pass.slotOwner, pass.insertIndex, topologyBeforeDetach);
|
|
554
|
+
}
|
|
555
|
+
catch (cause) {
|
|
556
|
+
if (forceDetachCameraPostProcess(camera, pass.resource)) {
|
|
557
|
+
pass.attached = false;
|
|
558
|
+
reserveOwnedCameraPostProcessSlot(camera, pass.slotOwner, pass.insertIndex, topologyBeforeDetach);
|
|
559
|
+
}
|
|
560
|
+
reportDiagnostic({
|
|
561
|
+
code: 'resource-dispose-failed',
|
|
562
|
+
message: 'A selection silhouette post-process could not be detached cleanly.',
|
|
563
|
+
cause,
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
};
|
|
567
|
+
const deactivateResources = () => {
|
|
568
|
+
resourcesActive = false;
|
|
569
|
+
selectionIdentityPass?.setEnabled(false);
|
|
570
|
+
if (sceneDepthLease && sceneDepthLeaseActive) {
|
|
571
|
+
try {
|
|
572
|
+
sceneDepthLease.deactivate();
|
|
573
|
+
sceneDepthLeaseActive = false;
|
|
574
|
+
}
|
|
575
|
+
catch (cause) {
|
|
576
|
+
reportDiagnostic({
|
|
577
|
+
code: 'resource-dispose-failed',
|
|
578
|
+
message: 'The shared scene depth lease could not be deactivated cleanly.',
|
|
579
|
+
cause,
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
if (selectedDepthMap && selectedDepthMapActive) {
|
|
584
|
+
try {
|
|
585
|
+
removeCustomRenderTarget(scene, selectedDepthMap);
|
|
586
|
+
selectedDepthMapActive = false;
|
|
587
|
+
}
|
|
588
|
+
catch (cause) {
|
|
589
|
+
reportDiagnostic({
|
|
590
|
+
code: 'resource-dispose-failed',
|
|
591
|
+
message: 'The selected depth target could not be detached cleanly.',
|
|
592
|
+
cause,
|
|
593
|
+
});
|
|
594
|
+
}
|
|
595
|
+
}
|
|
596
|
+
detachPostProcessPass(compositePass);
|
|
597
|
+
detachPostProcessPass(occupancyMaskPass);
|
|
598
|
+
};
|
|
599
|
+
const activateResources = () => {
|
|
600
|
+
if (!enabled
|
|
601
|
+
|| !sceneDepthLease
|
|
602
|
+
|| !selectedDepthMap
|
|
603
|
+
|| !occupancyMaskPass.resource
|
|
604
|
+
|| !compositePass.resource
|
|
605
|
+
|| requiresSelectionIdentityPass() !== !!selectionIdentityPass
|
|
606
|
+
|| !camera)
|
|
607
|
+
return;
|
|
608
|
+
if (resourcesActive)
|
|
609
|
+
return;
|
|
610
|
+
if (!occupancyMaskPass.attached) {
|
|
611
|
+
occupancyMaskPass.insertIndex = attachOwnedCameraPostProcess(camera, occupancyMaskPass.slotOwner, occupancyMaskPass.resource);
|
|
612
|
+
occupancyMaskPass.attached = true;
|
|
613
|
+
}
|
|
614
|
+
if (!compositePass.attached) {
|
|
615
|
+
compositePass.insertIndex = attachOwnedCameraPostProcess(camera, compositePass.slotOwner, compositePass.resource);
|
|
616
|
+
compositePass.attached = true;
|
|
617
|
+
}
|
|
618
|
+
if (!sceneDepthLeaseActive) {
|
|
619
|
+
sceneDepthLease.activate();
|
|
620
|
+
sceneDepthLeaseActive = true;
|
|
621
|
+
}
|
|
622
|
+
if (!selectedDepthMapActive) {
|
|
623
|
+
selectedDepthMapActive = true;
|
|
624
|
+
addCustomRenderTarget(scene, selectedDepthMap);
|
|
625
|
+
}
|
|
626
|
+
selectionIdentityPass?.setEnabled(true);
|
|
627
|
+
resourcesActive = true;
|
|
628
|
+
};
|
|
629
|
+
const disposePostProcessPass = (pass, ownedCamera) => {
|
|
630
|
+
const resource = pass.resource;
|
|
631
|
+
if (resource) {
|
|
632
|
+
try {
|
|
633
|
+
resource.dispose?.(ownedCamera ?? undefined);
|
|
634
|
+
}
|
|
635
|
+
catch (cause) {
|
|
636
|
+
reportDiagnostic({
|
|
637
|
+
code: 'resource-dispose-failed',
|
|
638
|
+
message: 'A selection silhouette post-process resource could not be disposed cleanly.',
|
|
639
|
+
cause,
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
releaseOwnedCameraPostProcessSlot(ownedCamera, pass.slotOwner, pass.insertIndex, resource);
|
|
643
|
+
}
|
|
644
|
+
pass.resource = null;
|
|
645
|
+
pass.attached = false;
|
|
646
|
+
pass.insertIndex = null;
|
|
647
|
+
};
|
|
648
|
+
const disposeCameraResources = () => {
|
|
649
|
+
deactivateResources();
|
|
650
|
+
const ownedCamera = camera;
|
|
651
|
+
disposePostProcessPass(compositePass, ownedCamera);
|
|
652
|
+
disposePostProcessPass(occupancyMaskPass, ownedCamera);
|
|
653
|
+
const ownedSelectedDepthMap = selectedDepthMap;
|
|
654
|
+
if (selectedDepthRenderer) {
|
|
655
|
+
try {
|
|
656
|
+
selectedDepthRenderer.dispose?.();
|
|
657
|
+
}
|
|
658
|
+
catch (cause) {
|
|
659
|
+
reportDiagnostic({
|
|
660
|
+
code: 'resource-dispose-failed',
|
|
661
|
+
message: 'A selection silhouette depth resource could not be disposed cleanly.',
|
|
662
|
+
cause,
|
|
663
|
+
});
|
|
664
|
+
}
|
|
665
|
+
}
|
|
666
|
+
if (ownedSelectedDepthMap) {
|
|
667
|
+
try {
|
|
668
|
+
ownedSelectedDepthMap.dispose?.();
|
|
669
|
+
}
|
|
670
|
+
catch (cause) {
|
|
671
|
+
reportDiagnostic({
|
|
672
|
+
code: 'resource-dispose-failed',
|
|
673
|
+
message: 'The owned selected depth target could not be disposed cleanly.',
|
|
674
|
+
cause,
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
if (selectionIdentityPass) {
|
|
679
|
+
try {
|
|
680
|
+
selectionIdentityPass.dispose();
|
|
681
|
+
}
|
|
682
|
+
catch (cause) {
|
|
683
|
+
reportDiagnostic({
|
|
684
|
+
code: 'resource-dispose-failed',
|
|
685
|
+
message: 'The selection identity pass could not be disposed cleanly.',
|
|
686
|
+
cause,
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
selectedDepthRenderer = null;
|
|
691
|
+
selectedDepthMap = null;
|
|
692
|
+
selectedDepthMapActive = false;
|
|
693
|
+
selectionIdentityPass = null;
|
|
694
|
+
if (sceneDepthLease) {
|
|
695
|
+
try {
|
|
696
|
+
sceneDepthLease.dispose();
|
|
697
|
+
}
|
|
698
|
+
catch (cause) {
|
|
699
|
+
reportDiagnostic({
|
|
700
|
+
code: 'resource-dispose-failed',
|
|
701
|
+
message: 'The leased scene depth source could not be disposed cleanly.',
|
|
702
|
+
cause,
|
|
703
|
+
});
|
|
704
|
+
}
|
|
705
|
+
}
|
|
706
|
+
sceneDepthLease = null;
|
|
707
|
+
sceneDepthLeaseActive = false;
|
|
708
|
+
camera = null;
|
|
709
|
+
width = 0;
|
|
710
|
+
height = 0;
|
|
711
|
+
selectionSourceRatio = MAX_SELECTION_SOURCE_DENSITY;
|
|
712
|
+
shaderNotReadyFrames = 0;
|
|
713
|
+
resourcesActive = false;
|
|
714
|
+
};
|
|
715
|
+
const createCameraResources = (nextCamera) => {
|
|
716
|
+
const DepthRenderer = babylon.DepthRenderer;
|
|
717
|
+
const RenderTargetTexture = babylon.RenderTargetTexture;
|
|
718
|
+
const PostProcess = babylon.PostProcess;
|
|
719
|
+
if (!DepthRenderer || !RenderTargetTexture || !PostProcess) {
|
|
720
|
+
throw new Error('Babylon runtime is missing DepthRenderer, RenderTargetTexture, or PostProcess.');
|
|
721
|
+
}
|
|
722
|
+
const engine = scene.getEngine?.();
|
|
723
|
+
if (!engine)
|
|
724
|
+
throw new Error('Selection silhouette requires an active Babylon engine.');
|
|
725
|
+
const nextWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? 1));
|
|
726
|
+
const nextHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? 1));
|
|
727
|
+
const nextSelectionSourceRatio = resolveSelectionSourceRatio(engine);
|
|
728
|
+
const sceneDepthType = resolveDepthTextureType(engine);
|
|
729
|
+
let nextLease = null;
|
|
730
|
+
let nextSelectedRenderer = null;
|
|
731
|
+
let nextSelectedMap = null;
|
|
732
|
+
let nextSelectionIdentityPass = null;
|
|
733
|
+
let nextOccupancyMaskPass = null;
|
|
734
|
+
let nextCompositePass = null;
|
|
735
|
+
let adopted = false;
|
|
736
|
+
try {
|
|
737
|
+
nextSelectedMap = new RenderTargetTexture('editorSelectionSelectedDepth', {
|
|
738
|
+
width: Math.max(1, Math.ceil(nextWidth * nextSelectionSourceRatio)),
|
|
739
|
+
height: Math.max(1, Math.ceil(nextHeight * nextSelectionSourceRatio)),
|
|
740
|
+
}, scene, {
|
|
741
|
+
generateMipMaps: false,
|
|
742
|
+
doNotChangeAspectRatio: true,
|
|
743
|
+
type: sceneDepthType,
|
|
744
|
+
samplingMode: TEXTURE_NEAREST_SAMPLING_MODE,
|
|
745
|
+
generateDepthBuffer: true,
|
|
746
|
+
generateStencilBuffer: false,
|
|
747
|
+
});
|
|
748
|
+
nextSelectedRenderer = new DepthRenderer(scene, sceneDepthType, nextCamera, true, TEXTURE_NEAREST_SAMPLING_MODE, false, 'editorSelectionSelectedDepthRenderer', nextSelectedMap);
|
|
749
|
+
nextSelectedRenderer.forceDepthWriteTransparentMeshes = true;
|
|
750
|
+
nextSelectedMap.renderList = selectedMeshes;
|
|
751
|
+
if (requiresSelectionIdentityPass()) {
|
|
752
|
+
nextSelectionIdentityPass = new BabylonSelectionIdentityPass({
|
|
753
|
+
babylon,
|
|
754
|
+
scene,
|
|
755
|
+
camera: nextCamera,
|
|
756
|
+
width: Math.max(1, Math.ceil(nextWidth * nextSelectionSourceRatio)),
|
|
757
|
+
height: Math.max(1, Math.ceil(nextHeight * nextSelectionSourceRatio)),
|
|
758
|
+
});
|
|
759
|
+
nextSelectionIdentityPass.setSelection(selectionGroups);
|
|
760
|
+
}
|
|
761
|
+
nextOccupancyMaskPass = new PostProcess('editorSelectionOccupancyMask', SELECTION_OCCUPANCY_MASK_SHADER_NAME, [
|
|
762
|
+
'editorSelectedDepthTexelSize',
|
|
763
|
+
'editorOutputTexelSize',
|
|
764
|
+
'editorPresentationTexelSize',
|
|
765
|
+
'editorSelectionUvBounds',
|
|
766
|
+
'editorSelectedPackedDepth',
|
|
767
|
+
'editorSelectionIdentityEnabled',
|
|
768
|
+
], [
|
|
769
|
+
'editorSelectedDepthSampler',
|
|
770
|
+
'editorSelectionIdentitySampler',
|
|
771
|
+
], 1, null, TEXTURE_BILINEAR_SAMPLING_MODE, engine, false);
|
|
772
|
+
nextOccupancyMaskPass.onApply = (effect) => {
|
|
773
|
+
const outputWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? width ?? nextWidth));
|
|
774
|
+
const outputHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? height ?? nextHeight));
|
|
775
|
+
const presentationSize = resolveSelectionPresentationSize(engine, outputWidth, outputHeight);
|
|
776
|
+
selectionUvBounds = computeSelectionPresentationUvBounds(babylon, scene, nextCamera, selectedMeshes, outputWidth, outputHeight, SELECTION_PRESENTATION_PADDING_PX);
|
|
777
|
+
effect.setTexture?.('editorSelectedDepthSampler', nextSelectedMap);
|
|
778
|
+
const selectedSize = nextSelectedMap.getSize?.() ?? {
|
|
779
|
+
width: nextWidth * nextSelectionSourceRatio,
|
|
780
|
+
height: nextHeight * nextSelectionSourceRatio,
|
|
781
|
+
};
|
|
782
|
+
effect.setFloat2?.('editorSelectedDepthTexelSize', 1 / Math.max(1, Number(selectedSize.width)), 1 / Math.max(1, Number(selectedSize.height)));
|
|
783
|
+
effect.setFloat4?.('editorSelectionUvBounds', ...selectionUvBounds);
|
|
784
|
+
effect.setFloat?.('editorSelectedPackedDepth', nextSelectedRenderer?.isPacked ? 1 : 0);
|
|
785
|
+
effect.setTexture?.('editorSelectionIdentitySampler', nextSelectionIdentityPass?.texture ?? nextSelectedMap);
|
|
786
|
+
effect.setFloat2?.('editorOutputTexelSize', 1 / outputWidth, 1 / outputHeight);
|
|
787
|
+
effect.setFloat2?.('editorPresentationTexelSize', 1 / presentationSize.width, 1 / presentationSize.height);
|
|
788
|
+
effect.setFloat?.('editorSelectionIdentityEnabled', nextSelectionIdentityPass ? 1 : 0);
|
|
789
|
+
};
|
|
790
|
+
nextCompositePass = new PostProcess('editorSelectionSilhouetteComposite', SELECTION_SILHOUETTE_SHADER_NAME, [
|
|
791
|
+
'editorOutputTexelSize',
|
|
792
|
+
'editorPresentationTexelSize',
|
|
793
|
+
'editorSelectionUvBounds',
|
|
794
|
+
'editorSelectionColor',
|
|
795
|
+
'editorScenePackedDepth',
|
|
796
|
+
'editorSelectedPackedDepth',
|
|
797
|
+
'editorSelectionIdentityEnabled',
|
|
798
|
+
'editorSceneBackgroundDepth',
|
|
799
|
+
'editorDepthEpsilon',
|
|
800
|
+
], [
|
|
801
|
+
'editorSceneColorSampler',
|
|
802
|
+
'editorSceneDepthSampler',
|
|
803
|
+
'editorSelectedDepthSampler',
|
|
804
|
+
], 1, null, TEXTURE_BILINEAR_SAMPLING_MODE, engine, false);
|
|
805
|
+
nextLease = (options.sceneDepthSourceProvider ?? defaultSelectionSceneDepthSourceProvider).acquire({
|
|
806
|
+
babylon,
|
|
807
|
+
scene,
|
|
808
|
+
camera: nextCamera,
|
|
809
|
+
consumerPostProcess: nextCompositePass,
|
|
810
|
+
textureType: sceneDepthType,
|
|
811
|
+
width: nextWidth,
|
|
812
|
+
height: nextHeight,
|
|
813
|
+
reportDiagnostic,
|
|
814
|
+
});
|
|
815
|
+
nextCompositePass.onApply = (effect) => {
|
|
816
|
+
const outputWidth = Math.max(1, Number(engine.getRenderWidth?.() ?? width ?? nextWidth));
|
|
817
|
+
const outputHeight = Math.max(1, Number(engine.getRenderHeight?.() ?? height ?? nextHeight));
|
|
818
|
+
const presentationSize = resolveSelectionPresentationSize(engine, outputWidth, outputHeight);
|
|
819
|
+
effect.setTextureFromPostProcess?.('editorSceneColorSampler', nextOccupancyMaskPass);
|
|
820
|
+
effect.setTexture?.('editorSceneDepthSampler', nextLease?.getTexture());
|
|
821
|
+
effect.setTexture?.('editorSelectedDepthSampler', nextSelectedMap);
|
|
822
|
+
effect.setFloat2?.('editorOutputTexelSize', 1 / outputWidth, 1 / outputHeight);
|
|
823
|
+
effect.setFloat2?.('editorPresentationTexelSize', 1 / presentationSize.width, 1 / presentationSize.height);
|
|
824
|
+
effect.setFloat4?.('editorSelectionUvBounds', ...selectionUvBounds);
|
|
825
|
+
effect.setFloat3?.('editorSelectionColor', ...SELECTION_PRESENTATION_COLOR);
|
|
826
|
+
effect.setFloat?.('editorScenePackedDepth', nextLease?.packed ? 1 : 0);
|
|
827
|
+
effect.setFloat?.('editorSceneBackgroundDepth', nextLease?.backgroundDepth ?? 1);
|
|
828
|
+
effect.setFloat?.('editorSelectedPackedDepth', nextSelectedRenderer?.isPacked ? 1 : 0);
|
|
829
|
+
effect.setFloat?.('editorSelectionIdentityEnabled', nextSelectionIdentityPass ? 1 : 0);
|
|
830
|
+
effect.setFloat?.('editorDepthEpsilon', 0.0015);
|
|
831
|
+
};
|
|
832
|
+
camera = nextCamera;
|
|
833
|
+
sceneDepthLease = nextLease;
|
|
834
|
+
selectedDepthRenderer = nextSelectedRenderer;
|
|
835
|
+
selectedDepthMap = nextSelectedMap;
|
|
836
|
+
selectionIdentityPass = nextSelectionIdentityPass;
|
|
837
|
+
occupancyMaskPass.resource = nextOccupancyMaskPass;
|
|
838
|
+
compositePass.resource = nextCompositePass;
|
|
839
|
+
width = nextWidth;
|
|
840
|
+
height = nextHeight;
|
|
841
|
+
selectionSourceRatio = nextSelectionSourceRatio;
|
|
842
|
+
adopted = true;
|
|
843
|
+
activateResources();
|
|
844
|
+
}
|
|
845
|
+
catch (cause) {
|
|
846
|
+
if (adopted) {
|
|
847
|
+
disposeCameraResources();
|
|
848
|
+
}
|
|
849
|
+
else {
|
|
850
|
+
try {
|
|
851
|
+
nextCompositePass?.dispose?.(nextCamera);
|
|
852
|
+
}
|
|
853
|
+
catch { }
|
|
854
|
+
try {
|
|
855
|
+
nextOccupancyMaskPass?.dispose?.(nextCamera);
|
|
856
|
+
}
|
|
857
|
+
catch { }
|
|
858
|
+
try {
|
|
859
|
+
nextSelectedRenderer?.dispose?.();
|
|
860
|
+
}
|
|
861
|
+
catch { }
|
|
862
|
+
try {
|
|
863
|
+
nextSelectedMap?.dispose?.();
|
|
864
|
+
}
|
|
865
|
+
catch { }
|
|
866
|
+
try {
|
|
867
|
+
nextSelectionIdentityPass?.dispose();
|
|
868
|
+
}
|
|
869
|
+
catch { }
|
|
870
|
+
try {
|
|
871
|
+
nextLease?.dispose();
|
|
872
|
+
}
|
|
873
|
+
catch { }
|
|
874
|
+
}
|
|
875
|
+
throw cause;
|
|
876
|
+
}
|
|
877
|
+
};
|
|
878
|
+
const prepareFrame = () => {
|
|
879
|
+
if (disposed || !enabled)
|
|
880
|
+
return;
|
|
881
|
+
const nextCamera = scene.activeCamera ?? null;
|
|
882
|
+
if (!nextCamera)
|
|
883
|
+
return;
|
|
884
|
+
if (camera !== nextCamera
|
|
885
|
+
|| !sceneDepthLease
|
|
886
|
+
|| !selectedDepthMap
|
|
887
|
+
|| !occupancyMaskPass.resource
|
|
888
|
+
|| !compositePass.resource
|
|
889
|
+
|| requiresSelectionIdentityPass() !== !!selectionIdentityPass) {
|
|
890
|
+
disposeCameraResources();
|
|
891
|
+
createCameraResources(nextCamera);
|
|
892
|
+
return;
|
|
893
|
+
}
|
|
894
|
+
const engine = scene.getEngine?.();
|
|
895
|
+
const nextWidth = Math.max(1, Number(engine?.getRenderWidth?.() ?? width));
|
|
896
|
+
const nextHeight = Math.max(1, Number(engine?.getRenderHeight?.() ?? height));
|
|
897
|
+
const nextSelectionSourceRatio = resolveSelectionSourceRatio(engine);
|
|
898
|
+
if (nextWidth !== width
|
|
899
|
+
|| nextHeight !== height
|
|
900
|
+
|| nextSelectionSourceRatio !== selectionSourceRatio) {
|
|
901
|
+
width = nextWidth;
|
|
902
|
+
height = nextHeight;
|
|
903
|
+
selectionSourceRatio = nextSelectionSourceRatio;
|
|
904
|
+
sceneDepthLease.resize(nextWidth, nextHeight);
|
|
905
|
+
selectedDepthMap.resize?.({
|
|
906
|
+
width: Math.max(1, Math.ceil(nextWidth * selectionSourceRatio)),
|
|
907
|
+
height: Math.max(1, Math.ceil(nextHeight * selectionSourceRatio)),
|
|
908
|
+
});
|
|
909
|
+
selectionIdentityPass?.resize(Math.max(1, Math.ceil(nextWidth * selectionSourceRatio)), Math.max(1, Math.ceil(nextHeight * selectionSourceRatio)));
|
|
910
|
+
}
|
|
911
|
+
selectedDepthMap.renderList = selectedMeshes;
|
|
912
|
+
activateResources();
|
|
913
|
+
if (occupancyMaskPass.resource.isSupported === false || compositePass.resource.isSupported === false) {
|
|
914
|
+
throw new Error('Selection silhouette post-process is not supported by the active engine.');
|
|
915
|
+
}
|
|
916
|
+
if (occupancyMaskPass.resource.isReady?.() && compositePass.resource.isReady?.()) {
|
|
917
|
+
shaderNotReadyFrames = 0;
|
|
918
|
+
}
|
|
919
|
+
else {
|
|
920
|
+
shaderNotReadyFrames += 1;
|
|
921
|
+
if (shaderNotReadyFrames > 120) {
|
|
922
|
+
reportDiagnostic({
|
|
923
|
+
code: 'shader-not-ready',
|
|
924
|
+
message: 'Selection silhouette shader did not become ready; visual selection feedback is disabled.',
|
|
925
|
+
});
|
|
926
|
+
throw new Error('Selection silhouette shader readiness timed out.');
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
};
|
|
930
|
+
if (beforeRenderObservable?.add) {
|
|
931
|
+
beforeRenderObserver = beforeRenderObservable.add(prepareFrame);
|
|
932
|
+
}
|
|
933
|
+
return {
|
|
934
|
+
setSelectedMeshes(meshes, groups) {
|
|
935
|
+
const requiredBefore = requiresSelectionIdentityPass();
|
|
936
|
+
selectedMeshes = [...meshes];
|
|
937
|
+
selectionGroups = groups?.map(group => ({
|
|
938
|
+
selectionId: group.selectionId,
|
|
939
|
+
meshes: [...group.meshes],
|
|
940
|
+
})) ?? [];
|
|
941
|
+
if (selectedDepthMap)
|
|
942
|
+
selectedDepthMap.renderList = selectedMeshes;
|
|
943
|
+
const requiredAfter = requiresSelectionIdentityPass();
|
|
944
|
+
if (camera && requiredBefore !== requiredAfter) {
|
|
945
|
+
disposeCameraResources();
|
|
946
|
+
if (enabled)
|
|
947
|
+
prepareFrame();
|
|
948
|
+
return;
|
|
949
|
+
}
|
|
950
|
+
selectionIdentityPass?.setSelection(selectionGroups);
|
|
951
|
+
},
|
|
952
|
+
setEnabled(nextEnabled) {
|
|
953
|
+
if (disposed || enabled === nextEnabled)
|
|
954
|
+
return;
|
|
955
|
+
enabled = nextEnabled;
|
|
956
|
+
if (enabled)
|
|
957
|
+
prepareFrame();
|
|
958
|
+
else
|
|
959
|
+
deactivateResources();
|
|
960
|
+
},
|
|
961
|
+
prepareFrame,
|
|
962
|
+
getResourceCount() {
|
|
963
|
+
if (!sceneDepthLease
|
|
964
|
+
&& !selectedDepthRenderer
|
|
965
|
+
&& !selectionIdentityPass
|
|
966
|
+
&& !occupancyMaskPass.resource
|
|
967
|
+
&& !compositePass.resource)
|
|
968
|
+
return 0;
|
|
969
|
+
return Number(!!sceneDepthLease)
|
|
970
|
+
+ Number(!!selectedDepthRenderer)
|
|
971
|
+
+ Number(!!selectionIdentityPass)
|
|
972
|
+
+ Number(!!occupancyMaskPass.resource)
|
|
973
|
+
+ Number(!!compositePass.resource);
|
|
974
|
+
},
|
|
975
|
+
getSceneDepthSourceKind() {
|
|
976
|
+
return sceneDepthLease?.kind ?? null;
|
|
977
|
+
},
|
|
978
|
+
getCameraId() {
|
|
979
|
+
const id = camera?.id;
|
|
980
|
+
return typeof id === 'string' ? id : null;
|
|
981
|
+
},
|
|
982
|
+
dispose() {
|
|
983
|
+
if (disposed)
|
|
984
|
+
return;
|
|
985
|
+
disposed = true;
|
|
986
|
+
if (beforeRenderObserver != null)
|
|
987
|
+
beforeRenderObservable?.remove?.(beforeRenderObserver);
|
|
988
|
+
beforeRenderObserver = null;
|
|
989
|
+
disposeCameraResources();
|
|
990
|
+
selectedMeshes = [];
|
|
991
|
+
selectionGroups = [];
|
|
992
|
+
},
|
|
993
|
+
};
|
|
994
|
+
}
|
|
995
|
+
function registerSelectionSilhouetteShader(babylon) {
|
|
996
|
+
const shadersStore = babylon.Effect?.ShadersStore;
|
|
997
|
+
if (!shadersStore)
|
|
998
|
+
throw new Error('Babylon runtime is missing Effect.ShadersStore.');
|
|
999
|
+
const maskShaderKey = `${SELECTION_OCCUPANCY_MASK_SHADER_NAME}PixelShader`;
|
|
1000
|
+
const compositeShaderKey = `${SELECTION_SILHOUETTE_SHADER_NAME}PixelShader`;
|
|
1001
|
+
if (!shadersStore[maskShaderKey])
|
|
1002
|
+
shadersStore[maskShaderKey] = SELECTION_OCCUPANCY_MASK_FRAGMENT_SHADER;
|
|
1003
|
+
if (!shadersStore[compositeShaderKey]) {
|
|
1004
|
+
shadersStore[compositeShaderKey] = SELECTION_SILHOUETTE_FRAGMENT_SHADER;
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
export function computeSelectionPresentationUvBounds(babylon, scene, camera, meshes, width, height, paddingPx = SELECTION_PRESENTATION_PADDING_PX) {
|
|
1008
|
+
const Vector3 = babylon.Vector3;
|
|
1009
|
+
const Matrix = babylon.Matrix;
|
|
1010
|
+
const transform = scene.getTransformMatrix?.();
|
|
1011
|
+
if (!Vector3?.Project || !Matrix?.Identity || !transform || width <= 0 || height <= 0) {
|
|
1012
|
+
return [0, 0, 1, 1];
|
|
1013
|
+
}
|
|
1014
|
+
const viewport = camera.viewport?.toGlobal?.(width, height)
|
|
1015
|
+
?? { x: 0, y: 0, width, height };
|
|
1016
|
+
let minU = 1;
|
|
1017
|
+
let minV = 1;
|
|
1018
|
+
let maxU = 0;
|
|
1019
|
+
let maxV = 0;
|
|
1020
|
+
let projectedPointCount = 0;
|
|
1021
|
+
try {
|
|
1022
|
+
for (const mesh of meshes) {
|
|
1023
|
+
if (!mesh || mesh.isDisposed?.())
|
|
1024
|
+
continue;
|
|
1025
|
+
if (hasRuntimeDeformedBounds(mesh))
|
|
1026
|
+
return [0, 0, 1, 1];
|
|
1027
|
+
mesh.computeWorldMatrix?.(true);
|
|
1028
|
+
const vectors = mesh.getBoundingInfo?.()?.boundingBox?.vectorsWorld;
|
|
1029
|
+
if (!Array.isArray(vectors) || vectors.length === 0)
|
|
1030
|
+
return [0, 0, 1, 1];
|
|
1031
|
+
for (const point of vectors) {
|
|
1032
|
+
const projected = Vector3.Project(point, Matrix.Identity(), transform, viewport);
|
|
1033
|
+
if (!Number.isFinite(projected?.x)
|
|
1034
|
+
|| !Number.isFinite(projected?.y)
|
|
1035
|
+
|| !Number.isFinite(projected?.z)
|
|
1036
|
+
|| projected.z < 0
|
|
1037
|
+
|| projected.z > 1)
|
|
1038
|
+
return [0, 0, 1, 1];
|
|
1039
|
+
const u = projected.x / width;
|
|
1040
|
+
const v = 1 - (projected.y / height);
|
|
1041
|
+
minU = Math.min(minU, u);
|
|
1042
|
+
minV = Math.min(minV, v);
|
|
1043
|
+
maxU = Math.max(maxU, u);
|
|
1044
|
+
maxV = Math.max(maxV, v);
|
|
1045
|
+
projectedPointCount += 1;
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
catch {
|
|
1050
|
+
return [0, 0, 1, 1];
|
|
1051
|
+
}
|
|
1052
|
+
if (projectedPointCount === 0)
|
|
1053
|
+
return [0, 0, 1, 1];
|
|
1054
|
+
const padU = Math.max(0, paddingPx) / width;
|
|
1055
|
+
const padV = Math.max(0, paddingPx) / height;
|
|
1056
|
+
return [
|
|
1057
|
+
clampUnit(minU - padU),
|
|
1058
|
+
clampUnit(minV - padV),
|
|
1059
|
+
clampUnit(maxU + padU),
|
|
1060
|
+
clampUnit(maxV + padV),
|
|
1061
|
+
];
|
|
1062
|
+
}
|
|
1063
|
+
function hasRuntimeDeformedBounds(mesh) {
|
|
1064
|
+
const sourceMesh = mesh?.sourceMesh;
|
|
1065
|
+
return !!(mesh?.skeleton
|
|
1066
|
+
|| mesh?.morphTargetManager
|
|
1067
|
+
|| mesh?.bakedVertexAnimationManager
|
|
1068
|
+
|| sourceMesh?.skeleton
|
|
1069
|
+
|| sourceMesh?.morphTargetManager
|
|
1070
|
+
|| sourceMesh?.bakedVertexAnimationManager);
|
|
1071
|
+
}
|
|
1072
|
+
function clampUnit(value) {
|
|
1073
|
+
return Math.min(1, Math.max(0, value));
|
|
1074
|
+
}
|
|
1075
|
+
function resolveSelectionSourceRatio(engine) {
|
|
1076
|
+
const hardwareScalingLevel = Number(engine?.getHardwareScalingLevel?.() ?? 1);
|
|
1077
|
+
if (!Number.isFinite(hardwareScalingLevel) || hardwareScalingLevel <= 0) {
|
|
1078
|
+
return MAX_SELECTION_SOURCE_DENSITY;
|
|
1079
|
+
}
|
|
1080
|
+
return Math.min(MAX_SELECTION_SOURCE_DENSITY, Math.max(1, MAX_SELECTION_SOURCE_DENSITY * hardwareScalingLevel));
|
|
1081
|
+
}
|
|
1082
|
+
function resolveSelectionPresentationSize(engine, outputWidth, outputHeight) {
|
|
1083
|
+
const canvas = engine?.getRenderingCanvas?.();
|
|
1084
|
+
const hardwareScalingLevel = Number(engine?.getHardwareScalingLevel?.() ?? 1);
|
|
1085
|
+
const fallbackScale = Number.isFinite(hardwareScalingLevel) && hardwareScalingLevel > 0
|
|
1086
|
+
? hardwareScalingLevel
|
|
1087
|
+
: 1;
|
|
1088
|
+
return {
|
|
1089
|
+
width: Math.max(1, Number(canvas?.clientWidth) || outputWidth * fallbackScale),
|
|
1090
|
+
height: Math.max(1, Number(canvas?.clientHeight) || outputHeight * fallbackScale),
|
|
1091
|
+
};
|
|
1092
|
+
}
|
|
1093
|
+
export const defaultSelectionSceneDepthSourceProvider = {
|
|
1094
|
+
acquire(request) {
|
|
1095
|
+
return createAdaptiveSelectionSceneDepthSourceLease(request);
|
|
1096
|
+
},
|
|
1097
|
+
};
|
|
1098
|
+
function createAdaptiveSelectionSceneDepthSourceLease(request) {
|
|
1099
|
+
let width = request.width;
|
|
1100
|
+
let height = request.height;
|
|
1101
|
+
let delegate = canUsePrePassSceneDepth(request)
|
|
1102
|
+
? createPrePassSelectionSceneDepthSourceLease(request)
|
|
1103
|
+
: createDedicatedSelectionSceneDepthSourceLease(request);
|
|
1104
|
+
let disposed = false;
|
|
1105
|
+
let activated = false;
|
|
1106
|
+
const replaceWithDedicatedSource = () => {
|
|
1107
|
+
try {
|
|
1108
|
+
delegate.dispose();
|
|
1109
|
+
}
|
|
1110
|
+
catch { }
|
|
1111
|
+
delegate = createDedicatedSelectionSceneDepthSourceLease({ ...request, width, height });
|
|
1112
|
+
};
|
|
1113
|
+
return {
|
|
1114
|
+
get kind() { return delegate.kind; },
|
|
1115
|
+
get packed() { return delegate.packed; },
|
|
1116
|
+
get backgroundDepth() { return delegate.backgroundDepth; },
|
|
1117
|
+
getTexture() { return delegate.getTexture(); },
|
|
1118
|
+
activate() {
|
|
1119
|
+
if (disposed || activated)
|
|
1120
|
+
return;
|
|
1121
|
+
try {
|
|
1122
|
+
delegate.activate();
|
|
1123
|
+
}
|
|
1124
|
+
catch (cause) {
|
|
1125
|
+
if (delegate.kind !== 'prepass')
|
|
1126
|
+
throw cause;
|
|
1127
|
+
replaceWithDedicatedSource();
|
|
1128
|
+
delegate.activate();
|
|
1129
|
+
}
|
|
1130
|
+
activated = true;
|
|
1131
|
+
},
|
|
1132
|
+
deactivate() {
|
|
1133
|
+
if (!activated)
|
|
1134
|
+
return;
|
|
1135
|
+
delegate.deactivate();
|
|
1136
|
+
activated = false;
|
|
1137
|
+
},
|
|
1138
|
+
resize(nextWidth, nextHeight) {
|
|
1139
|
+
width = nextWidth;
|
|
1140
|
+
height = nextHeight;
|
|
1141
|
+
delegate.resize(nextWidth, nextHeight);
|
|
1142
|
+
},
|
|
1143
|
+
dispose() {
|
|
1144
|
+
if (disposed)
|
|
1145
|
+
return;
|
|
1146
|
+
disposed = true;
|
|
1147
|
+
delegate.dispose();
|
|
1148
|
+
activated = false;
|
|
1149
|
+
},
|
|
1150
|
+
};
|
|
1151
|
+
}
|
|
1152
|
+
function canUsePrePassSceneDepth(request) {
|
|
1153
|
+
return !!(request.scene?.enablePrePassRenderer
|
|
1154
|
+
&& request.consumerPostProcess
|
|
1155
|
+
&& typeof request.consumerPostProcess.setPrePassRenderer === 'function'
|
|
1156
|
+
&& Number.isInteger(request.babylon.Constants?.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE));
|
|
1157
|
+
}
|
|
1158
|
+
function createPrePassSelectionSceneDepthSourceLease(request) {
|
|
1159
|
+
const depthTextureType = request.babylon.Constants.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE;
|
|
1160
|
+
const consumer = request.consumerPostProcess;
|
|
1161
|
+
const originalSetPrePassRenderer = consumer.setPrePassRenderer;
|
|
1162
|
+
let state = null;
|
|
1163
|
+
let active = false;
|
|
1164
|
+
let disposed = false;
|
|
1165
|
+
const restoreConsumer = () => {
|
|
1166
|
+
if (consumer.setPrePassRenderer === setPrePassRenderer) {
|
|
1167
|
+
consumer.setPrePassRenderer = originalSetPrePassRenderer;
|
|
1168
|
+
}
|
|
1169
|
+
};
|
|
1170
|
+
const setPrePassRenderer = function (prePassRenderer) {
|
|
1171
|
+
const originalNeeded = originalSetPrePassRenderer.call(consumer, prePassRenderer);
|
|
1172
|
+
if (!state || state.prePassRenderer !== prePassRenderer)
|
|
1173
|
+
return originalNeeded;
|
|
1174
|
+
state.configuration = prePassRenderer.addEffectConfiguration(state.configuration);
|
|
1175
|
+
state.configuration.enabled = state.activeLeaseCount > 0;
|
|
1176
|
+
return originalNeeded || state.configuration.enabled;
|
|
1177
|
+
};
|
|
1178
|
+
const deactivate = () => {
|
|
1179
|
+
if (!active)
|
|
1180
|
+
return;
|
|
1181
|
+
active = false;
|
|
1182
|
+
restoreConsumer();
|
|
1183
|
+
if (state) {
|
|
1184
|
+
state.activeLeaseCount = Math.max(0, state.activeLeaseCount - 1);
|
|
1185
|
+
state.configuration.enabled = state.activeLeaseCount > 0;
|
|
1186
|
+
state.prePassRenderer.markAsDirty?.();
|
|
1187
|
+
state.prePassRenderer.update?.();
|
|
1188
|
+
}
|
|
1189
|
+
};
|
|
1190
|
+
const getTexture = () => {
|
|
1191
|
+
const index = state?.prePassRenderer?.getIndex?.(depthTextureType);
|
|
1192
|
+
const texture = Number.isInteger(index) && index >= 0
|
|
1193
|
+
? state?.prePassRenderer?.defaultRT?.textures?.[index]
|
|
1194
|
+
: null;
|
|
1195
|
+
if (!texture)
|
|
1196
|
+
throw new Error('Babylon pre-pass did not expose a compatible screen-space depth texture.');
|
|
1197
|
+
return texture;
|
|
1198
|
+
};
|
|
1199
|
+
return {
|
|
1200
|
+
kind: 'prepass',
|
|
1201
|
+
packed: false,
|
|
1202
|
+
backgroundDepth: 0,
|
|
1203
|
+
getTexture,
|
|
1204
|
+
activate() {
|
|
1205
|
+
if (disposed || active)
|
|
1206
|
+
return;
|
|
1207
|
+
const prePassRenderer = request.scene.enablePrePassRenderer?.();
|
|
1208
|
+
if (!prePassRenderer?.isSupported) {
|
|
1209
|
+
throw new Error('Babylon pre-pass is unavailable on the active engine.');
|
|
1210
|
+
}
|
|
1211
|
+
state = prePassSceneDepthStates.get(request.scene) ?? {
|
|
1212
|
+
prePassRenderer,
|
|
1213
|
+
configuration: {
|
|
1214
|
+
name: PREPASS_SELECTION_DEPTH_CONFIGURATION_NAME,
|
|
1215
|
+
enabled: false,
|
|
1216
|
+
texturesRequired: [depthTextureType],
|
|
1217
|
+
needsImageProcessing: false,
|
|
1218
|
+
},
|
|
1219
|
+
activeLeaseCount: 0,
|
|
1220
|
+
};
|
|
1221
|
+
if (state.prePassRenderer !== prePassRenderer) {
|
|
1222
|
+
throw new Error('The scene pre-pass renderer changed while acquiring selection depth.');
|
|
1223
|
+
}
|
|
1224
|
+
prePassSceneDepthStates.set(request.scene, state);
|
|
1225
|
+
state.activeLeaseCount += 1;
|
|
1226
|
+
state.configuration.enabled = true;
|
|
1227
|
+
consumer.setPrePassRenderer = setPrePassRenderer;
|
|
1228
|
+
active = true;
|
|
1229
|
+
try {
|
|
1230
|
+
prePassRenderer.markAsDirty?.();
|
|
1231
|
+
prePassRenderer.update?.();
|
|
1232
|
+
if (!prePassRenderer.enabled)
|
|
1233
|
+
throw new Error('Babylon pre-pass did not activate.');
|
|
1234
|
+
getTexture();
|
|
1235
|
+
}
|
|
1236
|
+
catch (cause) {
|
|
1237
|
+
deactivate();
|
|
1238
|
+
throw cause;
|
|
1239
|
+
}
|
|
1240
|
+
},
|
|
1241
|
+
deactivate,
|
|
1242
|
+
resize() {
|
|
1243
|
+
// Babylon owns this target and resizes it with the main render surface.
|
|
1244
|
+
},
|
|
1245
|
+
dispose() {
|
|
1246
|
+
if (disposed)
|
|
1247
|
+
return;
|
|
1248
|
+
disposed = true;
|
|
1249
|
+
deactivate();
|
|
1250
|
+
restoreConsumer();
|
|
1251
|
+
},
|
|
1252
|
+
};
|
|
1253
|
+
}
|
|
1254
|
+
function createDedicatedSelectionSceneDepthSourceLease(request) {
|
|
1255
|
+
const lease = acquireSceneDepthLease(request.babylon, request.scene, request.camera, request.textureType, request.width, request.height);
|
|
1256
|
+
let active = false;
|
|
1257
|
+
let disposed = false;
|
|
1258
|
+
return {
|
|
1259
|
+
kind: 'dedicated',
|
|
1260
|
+
packed: lease.packed,
|
|
1261
|
+
backgroundDepth: 1,
|
|
1262
|
+
getTexture: () => lease.depthMap,
|
|
1263
|
+
activate() {
|
|
1264
|
+
if (disposed || active)
|
|
1265
|
+
return;
|
|
1266
|
+
activateSceneDepthLease(request.scene, lease);
|
|
1267
|
+
active = true;
|
|
1268
|
+
},
|
|
1269
|
+
deactivate() {
|
|
1270
|
+
if (!active)
|
|
1271
|
+
return;
|
|
1272
|
+
deactivateSceneDepthLease(request.scene, lease);
|
|
1273
|
+
active = false;
|
|
1274
|
+
},
|
|
1275
|
+
resize(width, height) {
|
|
1276
|
+
resizeSceneDepthLease(lease, width, height);
|
|
1277
|
+
},
|
|
1278
|
+
dispose() {
|
|
1279
|
+
if (disposed)
|
|
1280
|
+
return;
|
|
1281
|
+
disposed = true;
|
|
1282
|
+
if (active)
|
|
1283
|
+
deactivateSceneDepthLease(request.scene, lease);
|
|
1284
|
+
active = false;
|
|
1285
|
+
releaseSceneDepthLease(request.scene, lease, request.reportDiagnostic);
|
|
1286
|
+
},
|
|
1287
|
+
};
|
|
1288
|
+
}
|
|
1289
|
+
function resolveDepthTextureType(engine) {
|
|
1290
|
+
const caps = engine.getCaps?.() ?? {};
|
|
1291
|
+
if (caps.textureHalfFloatRender)
|
|
1292
|
+
return TEXTURE_TYPE_HALF_FLOAT;
|
|
1293
|
+
if (caps.textureFloatRender)
|
|
1294
|
+
return TEXTURE_TYPE_FLOAT;
|
|
1295
|
+
return TEXTURE_TYPE_UNSIGNED_BYTE;
|
|
1296
|
+
}
|
|
1297
|
+
function acquireSceneDepthLease(babylon, scene, camera, type, width, height) {
|
|
1298
|
+
let cameraLeases = sceneDepthLeases.get(scene);
|
|
1299
|
+
if (!cameraLeases) {
|
|
1300
|
+
cameraLeases = new Map();
|
|
1301
|
+
sceneDepthLeases.set(scene, cameraLeases);
|
|
1302
|
+
}
|
|
1303
|
+
const existing = cameraLeases.get(camera);
|
|
1304
|
+
if (existing && existing.type === type) {
|
|
1305
|
+
resizeSceneDepthLease(existing, width, height);
|
|
1306
|
+
existing.refs += 1;
|
|
1307
|
+
return existing;
|
|
1308
|
+
}
|
|
1309
|
+
const DepthRenderer = babylon.DepthRenderer;
|
|
1310
|
+
if (!DepthRenderer)
|
|
1311
|
+
throw new Error('Babylon runtime is missing DepthRenderer.');
|
|
1312
|
+
let renderer = null;
|
|
1313
|
+
let depthMap = null;
|
|
1314
|
+
try {
|
|
1315
|
+
renderer = new DepthRenderer(scene, type, camera, true, TEXTURE_NEAREST_SAMPLING_MODE, false, 'editorSelectionSceneDepthRenderer');
|
|
1316
|
+
renderer.forceDepthWriteTransparentMeshes = true;
|
|
1317
|
+
depthMap = renderer.getDepthMap();
|
|
1318
|
+
depthMap.renderListPredicate = (mesh) => !mesh?.metadata?.editorProjectionSelectionProxy;
|
|
1319
|
+
depthMap.resize?.({ width, height });
|
|
1320
|
+
const lease = {
|
|
1321
|
+
camera,
|
|
1322
|
+
renderer,
|
|
1323
|
+
depthMap,
|
|
1324
|
+
type,
|
|
1325
|
+
packed: !!renderer.isPacked,
|
|
1326
|
+
refs: 1,
|
|
1327
|
+
activeRefs: 0,
|
|
1328
|
+
width,
|
|
1329
|
+
height,
|
|
1330
|
+
};
|
|
1331
|
+
cameraLeases.set(camera, lease);
|
|
1332
|
+
return lease;
|
|
1333
|
+
}
|
|
1334
|
+
catch (cause) {
|
|
1335
|
+
try {
|
|
1336
|
+
renderer?.dispose?.();
|
|
1337
|
+
}
|
|
1338
|
+
catch { }
|
|
1339
|
+
try {
|
|
1340
|
+
depthMap?.dispose?.();
|
|
1341
|
+
}
|
|
1342
|
+
catch { }
|
|
1343
|
+
if (cameraLeases.size === 0)
|
|
1344
|
+
sceneDepthLeases.delete(scene);
|
|
1345
|
+
throw cause;
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
function activateSceneDepthLease(scene, lease) {
|
|
1349
|
+
if (lease.activeRefs === 0)
|
|
1350
|
+
addCustomRenderTarget(scene, lease.depthMap);
|
|
1351
|
+
lease.activeRefs += 1;
|
|
1352
|
+
}
|
|
1353
|
+
function deactivateSceneDepthLease(scene, lease) {
|
|
1354
|
+
if (lease.activeRefs <= 0)
|
|
1355
|
+
return;
|
|
1356
|
+
if (lease.activeRefs === 1)
|
|
1357
|
+
removeCustomRenderTarget(scene, lease.depthMap);
|
|
1358
|
+
lease.activeRefs -= 1;
|
|
1359
|
+
}
|
|
1360
|
+
function resizeSceneDepthLease(lease, width, height) {
|
|
1361
|
+
if (lease.width === width && lease.height === height)
|
|
1362
|
+
return;
|
|
1363
|
+
lease.depthMap.resize?.({ width, height });
|
|
1364
|
+
lease.width = width;
|
|
1365
|
+
lease.height = height;
|
|
1366
|
+
}
|
|
1367
|
+
function releaseSceneDepthLease(scene, lease, reportDiagnostic) {
|
|
1368
|
+
lease.refs = Math.max(0, lease.refs - 1);
|
|
1369
|
+
if (lease.refs > 0)
|
|
1370
|
+
return;
|
|
1371
|
+
lease.activeRefs = 0;
|
|
1372
|
+
try {
|
|
1373
|
+
removeCustomRenderTarget(scene, lease.depthMap);
|
|
1374
|
+
}
|
|
1375
|
+
catch (cause) {
|
|
1376
|
+
reportDiagnostic({
|
|
1377
|
+
code: 'resource-dispose-failed',
|
|
1378
|
+
message: 'The owned scene depth target could not be detached cleanly.',
|
|
1379
|
+
cause,
|
|
1380
|
+
});
|
|
1381
|
+
}
|
|
1382
|
+
const cameraLeases = sceneDepthLeases.get(scene);
|
|
1383
|
+
cameraLeases?.delete(lease.camera);
|
|
1384
|
+
if (cameraLeases?.size === 0)
|
|
1385
|
+
sceneDepthLeases.delete(scene);
|
|
1386
|
+
try {
|
|
1387
|
+
lease.renderer.dispose?.();
|
|
1388
|
+
}
|
|
1389
|
+
catch (cause) {
|
|
1390
|
+
reportDiagnostic({
|
|
1391
|
+
code: 'resource-dispose-failed',
|
|
1392
|
+
message: 'A leased scene depth resource could not be disposed cleanly.',
|
|
1393
|
+
cause,
|
|
1394
|
+
});
|
|
1395
|
+
}
|
|
1396
|
+
try {
|
|
1397
|
+
lease.depthMap.dispose?.();
|
|
1398
|
+
}
|
|
1399
|
+
catch (cause) {
|
|
1400
|
+
reportDiagnostic({
|
|
1401
|
+
code: 'resource-dispose-failed',
|
|
1402
|
+
message: 'The owned scene depth target could not be disposed cleanly.',
|
|
1403
|
+
cause,
|
|
1404
|
+
});
|
|
1405
|
+
}
|
|
1406
|
+
}
|
|
1407
|
+
function addCustomRenderTarget(scene, target) {
|
|
1408
|
+
if (!target)
|
|
1409
|
+
return;
|
|
1410
|
+
scene.customRenderTargets = Array.isArray(scene.customRenderTargets) ? scene.customRenderTargets : [];
|
|
1411
|
+
if (!scene.customRenderTargets.includes(target))
|
|
1412
|
+
scene.customRenderTargets.push(target);
|
|
1413
|
+
}
|
|
1414
|
+
function removeCustomRenderTarget(scene, target) {
|
|
1415
|
+
if (!target || !Array.isArray(scene.customRenderTargets))
|
|
1416
|
+
return;
|
|
1417
|
+
const index = scene.customRenderTargets.indexOf(target);
|
|
1418
|
+
if (index >= 0)
|
|
1419
|
+
scene.customRenderTargets.splice(index, 1);
|
|
1420
|
+
}
|
|
1421
|
+
function findCameraPostProcessIndex(camera, postProcess) {
|
|
1422
|
+
return Array.isArray(camera?._postProcesses)
|
|
1423
|
+
? camera._postProcesses.indexOf(postProcess)
|
|
1424
|
+
: -1;
|
|
1425
|
+
}
|
|
1426
|
+
function getCameraSelectionPostProcessSlotRegistry(camera) {
|
|
1427
|
+
let registry = cameraSelectionPostProcessSlots.get(camera);
|
|
1428
|
+
if (!registry) {
|
|
1429
|
+
registry = { owners: new Map(), releasedSlots: new Map() };
|
|
1430
|
+
cameraSelectionPostProcessSlots.set(camera, registry);
|
|
1431
|
+
}
|
|
1432
|
+
return registry;
|
|
1433
|
+
}
|
|
1434
|
+
function cameraPostProcessTopologyMatches(slots, topology) {
|
|
1435
|
+
return topology != null
|
|
1436
|
+
&& slots.length === topology.length
|
|
1437
|
+
&& slots.every((slot, index) => slot === topology[index]);
|
|
1438
|
+
}
|
|
1439
|
+
function reserveOwnedCameraPostProcessSlot(camera, owner, insertIndex, topologyBeforeDetach) {
|
|
1440
|
+
const slots = camera?._postProcesses;
|
|
1441
|
+
const registry = cameraSelectionPostProcessSlots.get(camera);
|
|
1442
|
+
const ownedSlot = registry?.owners.get(owner);
|
|
1443
|
+
if (!Array.isArray(slots) || !registry || !ownedSlot)
|
|
1444
|
+
return;
|
|
1445
|
+
const reservedIndex = insertIndex ?? ownedSlot.index;
|
|
1446
|
+
if (reservedIndex != null && reservedIndex < slots.length && slots[reservedIndex] === null) {
|
|
1447
|
+
ownedSlot.index = reservedIndex;
|
|
1448
|
+
ownedSlot.vacantTopology = slots.slice();
|
|
1449
|
+
}
|
|
1450
|
+
else {
|
|
1451
|
+
ownedSlot.index = null;
|
|
1452
|
+
ownedSlot.vacantTopology = null;
|
|
1453
|
+
}
|
|
1454
|
+
refreshProvenVacantCameraPostProcessTopologies(registry, slots, topologyBeforeDetach, owner);
|
|
1455
|
+
}
|
|
1456
|
+
function refreshProvenVacantCameraPostProcessTopologies(registry, slots, topologyBeforeMutation, excludedOwner = null) {
|
|
1457
|
+
if (!topologyBeforeMutation)
|
|
1458
|
+
return;
|
|
1459
|
+
const nextTopology = slots.slice();
|
|
1460
|
+
for (const [owner, slot] of registry.owners) {
|
|
1461
|
+
if (owner !== excludedOwner
|
|
1462
|
+
&& slot.index != null
|
|
1463
|
+
&& slot.index < slots.length
|
|
1464
|
+
&& slots[slot.index] === null
|
|
1465
|
+
&& cameraPostProcessTopologyMatches(topologyBeforeMutation, slot.vacantTopology)) {
|
|
1466
|
+
slot.vacantTopology = nextTopology;
|
|
1467
|
+
}
|
|
1468
|
+
}
|
|
1469
|
+
for (const [releasedIndex, topology] of registry.releasedSlots) {
|
|
1470
|
+
if (releasedIndex < slots.length
|
|
1471
|
+
&& slots[releasedIndex] === null
|
|
1472
|
+
&& cameraPostProcessTopologyMatches(topologyBeforeMutation, topology)) {
|
|
1473
|
+
registry.releasedSlots.set(releasedIndex, nextTopology);
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
}
|
|
1477
|
+
function attachOwnedCameraPostProcess(camera, owner, postProcess) {
|
|
1478
|
+
const registry = getCameraSelectionPostProcessSlotRegistry(camera);
|
|
1479
|
+
const slots = camera?._postProcesses;
|
|
1480
|
+
const topologyBeforeAttach = Array.isArray(slots) ? slots.slice() : null;
|
|
1481
|
+
const ownedSlot = registry.owners.get(owner);
|
|
1482
|
+
let reusableIndex = null;
|
|
1483
|
+
if (Array.isArray(slots)
|
|
1484
|
+
&& ownedSlot != null
|
|
1485
|
+
&& ownedSlot.postProcess === postProcess
|
|
1486
|
+
&& ownedSlot.index != null
|
|
1487
|
+
&& ownedSlot.index < slots.length
|
|
1488
|
+
&& slots[ownedSlot.index] === null
|
|
1489
|
+
&& cameraPostProcessTopologyMatches(slots, ownedSlot.vacantTopology)) {
|
|
1490
|
+
reusableIndex = ownedSlot.index;
|
|
1491
|
+
}
|
|
1492
|
+
else if (Array.isArray(slots)) {
|
|
1493
|
+
if (ownedSlot) {
|
|
1494
|
+
ownedSlot.index = null;
|
|
1495
|
+
ownedSlot.vacantTopology = null;
|
|
1496
|
+
}
|
|
1497
|
+
for (const [releasedIndex, topology] of [...registry.releasedSlots.entries()]
|
|
1498
|
+
.sort(([left], [right]) => left - right)) {
|
|
1499
|
+
if (releasedIndex >= slots.length
|
|
1500
|
+
|| slots[releasedIndex] !== null
|
|
1501
|
+
|| !cameraPostProcessTopologyMatches(slots, topology)) {
|
|
1502
|
+
registry.releasedSlots.delete(releasedIndex);
|
|
1503
|
+
continue;
|
|
1504
|
+
}
|
|
1505
|
+
reusableIndex = releasedIndex;
|
|
1506
|
+
break;
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
try {
|
|
1510
|
+
const attachedIndex = camera.attachPostProcess?.(postProcess, reusableIndex);
|
|
1511
|
+
const actualIndex = Number.isInteger(attachedIndex) && attachedIndex >= 0
|
|
1512
|
+
? attachedIndex
|
|
1513
|
+
: findCameraPostProcessIndex(camera, postProcess);
|
|
1514
|
+
if (actualIndex < 0) {
|
|
1515
|
+
throw new Error('The selection silhouette post-process was not attached to the active camera.');
|
|
1516
|
+
}
|
|
1517
|
+
registry.owners.set(owner, { index: actualIndex, postProcess, vacantTopology: null });
|
|
1518
|
+
registry.releasedSlots.delete(actualIndex);
|
|
1519
|
+
if (Array.isArray(slots)) {
|
|
1520
|
+
refreshProvenVacantCameraPostProcessTopologies(registry, slots, topologyBeforeAttach, owner);
|
|
1521
|
+
}
|
|
1522
|
+
return actualIndex;
|
|
1523
|
+
}
|
|
1524
|
+
catch (cause) {
|
|
1525
|
+
forceDetachCameraPostProcess(camera, postProcess);
|
|
1526
|
+
throw cause;
|
|
1527
|
+
}
|
|
1528
|
+
}
|
|
1529
|
+
function forceDetachCameraPostProcess(camera, postProcess) {
|
|
1530
|
+
const slots = camera?._postProcesses;
|
|
1531
|
+
if (!Array.isArray(slots))
|
|
1532
|
+
return false;
|
|
1533
|
+
const liveIndex = slots.indexOf(postProcess);
|
|
1534
|
+
if (liveIndex >= 0)
|
|
1535
|
+
slots[liveIndex] = null;
|
|
1536
|
+
return slots.indexOf(postProcess) < 0;
|
|
1537
|
+
}
|
|
1538
|
+
function releaseOwnedCameraPostProcessSlot(camera, owner, insertIndex, postProcess) {
|
|
1539
|
+
const slots = camera?._postProcesses;
|
|
1540
|
+
if (!camera || !Array.isArray(slots))
|
|
1541
|
+
return;
|
|
1542
|
+
const registry = cameraSelectionPostProcessSlots.get(camera);
|
|
1543
|
+
const ownedSlot = registry?.owners.get(owner);
|
|
1544
|
+
const liveIndex = slots.indexOf(postProcess);
|
|
1545
|
+
let releasedIndex = null;
|
|
1546
|
+
if (liveIndex >= 0) {
|
|
1547
|
+
slots[liveIndex] = null;
|
|
1548
|
+
releasedIndex = liveIndex;
|
|
1549
|
+
}
|
|
1550
|
+
else if (insertIndex != null && slots[insertIndex] === postProcess) {
|
|
1551
|
+
slots[insertIndex] = null;
|
|
1552
|
+
releasedIndex = insertIndex;
|
|
1553
|
+
}
|
|
1554
|
+
else if (ownedSlot?.index != null
|
|
1555
|
+
&& ownedSlot.index < slots.length
|
|
1556
|
+
&& slots[ownedSlot.index] === null
|
|
1557
|
+
&& cameraPostProcessTopologyMatches(slots, ownedSlot.vacantTopology)) {
|
|
1558
|
+
releasedIndex = ownedSlot.index;
|
|
1559
|
+
}
|
|
1560
|
+
registry?.owners.delete(owner);
|
|
1561
|
+
const topologyBeforeTrim = slots.slice();
|
|
1562
|
+
// Babylon uses null placeholders for detached passes. A released selection-owned hole may
|
|
1563
|
+
// be reclaimed by a successor controller; only trailing placeholders are removed here so
|
|
1564
|
+
// live passes never shift. Reserved inactive owners trimmed from the tail append on reattach.
|
|
1565
|
+
while (slots.length > 0 && slots[slots.length - 1] == null)
|
|
1566
|
+
slots.pop();
|
|
1567
|
+
if (!registry)
|
|
1568
|
+
return;
|
|
1569
|
+
refreshProvenVacantCameraPostProcessTopologies(registry, slots, topologyBeforeTrim);
|
|
1570
|
+
for (const slot of registry.owners.values()) {
|
|
1571
|
+
if (slot.index != null && slot.index >= slots.length) {
|
|
1572
|
+
slot.index = null;
|
|
1573
|
+
slot.vacantTopology = null;
|
|
1574
|
+
}
|
|
1575
|
+
}
|
|
1576
|
+
for (const released of [...registry.releasedSlots.keys()]) {
|
|
1577
|
+
if (released >= slots.length) {
|
|
1578
|
+
registry.releasedSlots.delete(released);
|
|
1579
|
+
}
|
|
1580
|
+
}
|
|
1581
|
+
if (releasedIndex != null && releasedIndex < slots.length && slots[releasedIndex] === null) {
|
|
1582
|
+
registry.releasedSlots.set(releasedIndex, slots.slice());
|
|
1583
|
+
}
|
|
1584
|
+
if (registry.owners.size === 0 && registry.releasedSlots.size === 0) {
|
|
1585
|
+
cameraSelectionPostProcessSlots.delete(camera);
|
|
1586
|
+
}
|
|
1587
|
+
}
|
|
1588
|
+
function safelyDisposeBackend(backend, reportDiagnostic) {
|
|
1589
|
+
try {
|
|
1590
|
+
backend.dispose();
|
|
1591
|
+
}
|
|
1592
|
+
catch (cause) {
|
|
1593
|
+
reportDiagnostic({
|
|
1594
|
+
code: 'resource-dispose-failed',
|
|
1595
|
+
message: 'Selection silhouette resources could not be disposed cleanly.',
|
|
1596
|
+
cause,
|
|
1597
|
+
});
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
//# sourceMappingURL=selection-presentation-controller.js.map
|