@iwsdk/core 0.4.1 → 0.5.0
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/README.md +4 -7
- package/dist/asset/asset-manager.d.ts +137 -9
- package/dist/asset/asset-manager.d.ts.map +1 -1
- package/dist/asset/asset-manager.js +491 -47
- package/dist/asset/asset-manager.js.map +1 -1
- package/dist/asset/cache-manager.d.ts +4 -2
- package/dist/asset/cache-manager.d.ts.map +1 -1
- package/dist/asset/cache-manager.js +10 -3
- package/dist/asset/cache-manager.js.map +1 -1
- package/dist/asset/loaders/audio-loader.d.ts +1 -1
- package/dist/asset/loaders/audio-loader.d.ts.map +1 -1
- package/dist/asset/loaders/audio-loader.js +8 -26
- package/dist/asset/loaders/audio-loader.js.map +1 -1
- package/dist/asset/loaders/cached-asset-load.d.ts +35 -0
- package/dist/asset/loaders/cached-asset-load.d.ts.map +1 -0
- package/dist/asset/loaders/cached-asset-load.js +100 -0
- package/dist/asset/loaders/cached-asset-load.js.map +1 -0
- package/dist/asset/loaders/gltf-loader.d.ts +28 -1
- package/dist/asset/loaders/gltf-loader.d.ts.map +1 -1
- package/dist/asset/loaders/gltf-loader.js +254 -33
- package/dist/asset/loaders/gltf-loader.js.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.js +19 -29
- package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
- package/dist/asset/loaders/texture-loader.d.ts +1 -1
- package/dist/asset/loaders/texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/texture-loader.js +9 -26
- package/dist/asset/loaders/texture-loader.js.map +1 -1
- package/dist/asset/loaders/uikitml-loader.d.ts +12 -0
- package/dist/asset/loaders/uikitml-loader.d.ts.map +1 -0
- package/dist/asset/loaders/uikitml-loader.js +44 -0
- package/dist/asset/loaders/uikitml-loader.js.map +1 -0
- package/dist/audio/audio-pool.d.ts +7 -0
- package/dist/audio/audio-pool.d.ts.map +1 -1
- package/dist/audio/audio-pool.js.map +1 -1
- package/dist/audio/audio-system.d.ts +3 -2
- package/dist/audio/audio-system.d.ts.map +1 -1
- package/dist/audio/audio-system.js +17 -6
- package/dist/audio/audio-system.js.map +1 -1
- package/dist/audio/audio-utils.d.ts +2 -2
- package/dist/audio/audio-utils.d.ts.map +1 -1
- package/dist/audio/audio.d.ts +1 -1
- package/dist/audio/audio.d.ts.map +1 -1
- package/dist/audio/audio.js +2 -4
- package/dist/audio/audio.js.map +1 -1
- package/dist/camera/camera-source.d.ts +1 -1
- package/dist/camera/camera-source.d.ts.map +1 -1
- package/dist/camera/camera-source.js +0 -4
- package/dist/camera/camera-source.js.map +1 -1
- package/dist/camera/camera-system.d.ts +18 -18
- package/dist/camera/camera-system.d.ts.map +1 -1
- package/dist/camera/camera-system.js +5 -6
- package/dist/camera/camera-system.js.map +1 -1
- package/dist/camera/camera-utils.d.ts +1 -1
- package/dist/camera/camera-utils.d.ts.map +1 -1
- package/dist/depth/depth-occludable.d.ts +1 -1
- package/dist/depth/depth-occludable.d.ts.map +1 -1
- package/dist/depth/depth-occludable.js +0 -4
- package/dist/depth/depth-occludable.js.map +1 -1
- package/dist/depth/depth-sensing-system.d.ts +2 -2
- package/dist/depth/depth-sensing-system.d.ts.map +1 -1
- package/dist/depth/depth-sensing-system.js +31 -13
- package/dist/depth/depth-sensing-system.js.map +1 -1
- package/dist/ecs/builtin-components.d.ts +1239 -0
- package/dist/ecs/builtin-components.d.ts.map +1 -0
- package/dist/ecs/builtin-components.js +87 -0
- package/dist/ecs/builtin-components.js.map +1 -0
- package/dist/ecs/component-editor-metadata.d.ts +19 -0
- package/dist/ecs/component-editor-metadata.d.ts.map +1 -0
- package/dist/ecs/component-editor-metadata.js +19 -0
- package/dist/ecs/component-editor-metadata.js.map +1 -0
- package/dist/ecs/component-manifest.d.ts +24 -0
- package/dist/ecs/component-manifest.d.ts.map +1 -0
- package/dist/ecs/component-manifest.js +121 -0
- package/dist/ecs/component-manifest.js.map +1 -0
- package/dist/ecs/component.d.ts +1 -0
- package/dist/ecs/component.d.ts.map +1 -1
- package/dist/ecs/entity.d.ts +20 -2
- package/dist/ecs/entity.d.ts.map +1 -1
- package/dist/ecs/entity.js +59 -3
- package/dist/ecs/entity.js.map +1 -1
- package/dist/ecs/index.d.ts +3 -1
- package/dist/ecs/index.d.ts.map +1 -1
- package/dist/ecs/system.d.ts +9 -0
- package/dist/ecs/system.d.ts.map +1 -1
- package/dist/ecs/system.js.map +1 -1
- package/dist/ecs/world.d.ts +160 -5
- package/dist/ecs/world.d.ts.map +1 -1
- package/dist/ecs/world.js +306 -19
- package/dist/ecs/world.js.map +1 -1
- package/dist/environment/dome-gradient.d.ts +3 -2
- package/dist/environment/dome-gradient.d.ts.map +1 -1
- package/dist/environment/dome-gradient.js +2 -5
- package/dist/environment/dome-gradient.js.map +1 -1
- package/dist/environment/dome-texture.d.ts +1 -1
- package/dist/environment/dome-texture.d.ts.map +1 -1
- package/dist/environment/dome-texture.js +0 -4
- package/dist/environment/dome-texture.js.map +1 -1
- package/dist/environment/environment-system.d.ts +20 -4
- package/dist/environment/environment-system.d.ts.map +1 -1
- package/dist/environment/environment-system.js +79 -61
- package/dist/environment/environment-system.js.map +1 -1
- package/dist/environment/gradient-environment.d.ts.map +1 -1
- package/dist/environment/gradient-environment.js +13 -7
- package/dist/environment/gradient-environment.js.map +1 -1
- package/dist/environment/ibl-gradient.d.ts +1 -1
- package/dist/environment/ibl-gradient.d.ts.map +1 -1
- package/dist/environment/ibl-gradient.js +0 -4
- package/dist/environment/ibl-gradient.js.map +1 -1
- package/dist/environment/ibl-texture.d.ts +1 -1
- package/dist/environment/ibl-texture.d.ts.map +1 -1
- package/dist/environment/ibl-texture.js +0 -4
- package/dist/environment/ibl-texture.js.map +1 -1
- package/dist/environment/scene-ar-environment.d.ts +39 -0
- package/dist/environment/scene-ar-environment.d.ts.map +1 -0
- package/dist/environment/scene-ar-environment.js +93 -0
- package/dist/environment/scene-ar-environment.js.map +1 -0
- package/dist/environment-raycast/environment-raycast.d.ts +21 -21
- package/dist/environment-raycast/environment-raycast.d.ts.map +1 -1
- package/dist/environment-raycast/environment-raycast.js +0 -4
- package/dist/environment-raycast/environment-raycast.js.map +1 -1
- package/dist/environment-raycast/raycast-target.d.ts +1 -1
- package/dist/environment-raycast/raycast-target.d.ts.map +1 -1
- package/dist/environment-raycast/raycast-target.js +0 -4
- package/dist/environment-raycast/raycast-target.js.map +1 -1
- package/dist/grab/distance-grabbable.d.ts +1 -1
- package/dist/grab/distance-grabbable.d.ts.map +1 -1
- package/dist/grab/distance-grabbable.js +0 -4
- package/dist/grab/distance-grabbable.js.map +1 -1
- package/dist/grab/grab-helpers.d.ts +39 -0
- package/dist/grab/grab-helpers.d.ts.map +1 -0
- package/dist/grab/grab-helpers.js +59 -0
- package/dist/grab/grab-helpers.js.map +1 -0
- package/dist/grab/grab-system.d.ts +47 -2
- package/dist/grab/grab-system.d.ts.map +1 -1
- package/dist/grab/grab-system.js +67 -8
- package/dist/grab/grab-system.js.map +1 -1
- package/dist/grab/grab-warnings.d.ts +14 -0
- package/dist/grab/grab-warnings.d.ts.map +1 -0
- package/dist/grab/grab-warnings.js +53 -0
- package/dist/grab/grab-warnings.js.map +1 -0
- package/dist/grab/grabbed.d.ts.map +1 -1
- package/dist/grab/grabbed.js +0 -4
- package/dist/grab/grabbed.js.map +1 -1
- package/dist/grab/handles.d.ts +1 -1
- package/dist/grab/handles.d.ts.map +1 -1
- package/dist/grab/handles.js +8 -7
- package/dist/grab/handles.js.map +1 -1
- package/dist/grab/one-hand-grabbable.d.ts +1 -1
- package/dist/grab/one-hand-grabbable.d.ts.map +1 -1
- package/dist/grab/one-hand-grabbable.js +0 -4
- package/dist/grab/one-hand-grabbable.js.map +1 -1
- package/dist/grab/two-hands-grabbable.d.ts +1 -1
- package/dist/grab/two-hands-grabbable.d.ts.map +1 -1
- package/dist/grab/two-hands-grabbable.js +0 -4
- package/dist/grab/two-hands-grabbable.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -16
- package/dist/index.js.map +1 -1
- package/dist/init/world-initializer.d.ts +12 -8
- package/dist/init/world-initializer.d.ts.map +1 -1
- package/dist/init/world-initializer.js +127 -67
- package/dist/init/world-initializer.js.map +1 -1
- package/dist/init/xr.d.ts +1 -2
- package/dist/init/xr.d.ts.map +1 -1
- package/dist/init/xr.js +12 -3
- package/dist/init/xr.js.map +1 -1
- package/dist/input/input-system.d.ts +59 -59
- package/dist/input/input-system.d.ts.map +1 -1
- package/dist/input/input-system.js +26 -13
- package/dist/input/input-system.js.map +1 -1
- package/dist/input/state-tags.d.ts.map +1 -1
- package/dist/input/state-tags.js +0 -4
- package/dist/input/state-tags.js.map +1 -1
- package/dist/layers/xr-cylinder-layer.d.ts +1 -1
- package/dist/layers/xr-cylinder-layer.d.ts.map +1 -1
- package/dist/layers/xr-cylinder-layer.js +0 -4
- package/dist/layers/xr-cylinder-layer.js.map +1 -1
- package/dist/layers/xr-layer-state.d.ts +47 -0
- package/dist/layers/xr-layer-state.d.ts.map +1 -0
- package/dist/layers/xr-layer-state.js +23 -0
- package/dist/layers/xr-layer-state.js.map +1 -0
- package/dist/layers/xr-layer-system.d.ts +46 -94
- package/dist/layers/xr-layer-system.d.ts.map +1 -1
- package/dist/layers/xr-layer-system.js +4 -28
- package/dist/layers/xr-layer-system.js.map +1 -1
- package/dist/layers/xr-quad-layer.d.ts +1 -1
- package/dist/layers/xr-quad-layer.d.ts.map +1 -1
- package/dist/layers/xr-quad-layer.js +0 -4
- package/dist/layers/xr-quad-layer.js.map +1 -1
- package/dist/level/index.d.ts +6 -2
- package/dist/level/index.d.ts.map +1 -1
- package/dist/level/level-component-applier.d.ts +24 -0
- package/dist/level/level-component-applier.d.ts.map +1 -0
- package/dist/level/level-component-applier.js +199 -0
- package/dist/level/level-component-applier.js.map +1 -0
- package/dist/level/level-player-rig.d.ts +17 -0
- package/dist/level/level-player-rig.d.ts.map +1 -0
- package/dist/level/level-player-rig.js +113 -0
- package/dist/level/level-player-rig.js.map +1 -0
- package/dist/level/level-root.d.ts.map +1 -1
- package/dist/level/level-root.js +0 -4
- package/dist/level/level-root.js.map +1 -1
- package/dist/level/level-scene-environment.d.ts +28 -0
- package/dist/level/level-scene-environment.d.ts.map +1 -0
- package/dist/level/level-scene-environment.js +121 -0
- package/dist/level/level-scene-environment.js.map +1 -0
- package/dist/level/level-scene-json-importer.d.ts +53 -0
- package/dist/level/level-scene-json-importer.d.ts.map +1 -0
- package/dist/level/level-scene-json-importer.js +256 -0
- package/dist/level/level-scene-json-importer.js.map +1 -0
- package/dist/level/level-scene-material.d.ts +22 -0
- package/dist/level/level-scene-material.d.ts.map +1 -0
- package/dist/level/level-scene-material.js +231 -0
- package/dist/level/level-scene-material.js.map +1 -0
- package/dist/level/level-scene-object.d.ts +49 -0
- package/dist/level/level-scene-object.d.ts.map +1 -0
- package/dist/level/level-scene-object.js +396 -0
- package/dist/level/level-scene-object.js.map +1 -0
- package/dist/level/level-scene-primitive.d.ts +21 -0
- package/dist/level/level-scene-primitive.d.ts.map +1 -0
- package/dist/level/level-scene-primitive.js +159 -0
- package/dist/level/level-scene-primitive.js.map +1 -0
- package/dist/level/level-system.d.ts +14 -20
- package/dist/level/level-system.d.ts.map +1 -1
- package/dist/level/level-system.js +114 -52
- package/dist/level/level-system.js.map +1 -1
- package/dist/level/level-tag.d.ts +1 -1
- package/dist/level/level-tag.d.ts.map +1 -1
- package/dist/level/level-tag.js +0 -4
- package/dist/level/level-tag.js.map +1 -1
- package/dist/lighting/index.d.ts +10 -0
- package/dist/lighting/index.d.ts.map +1 -0
- package/dist/lighting/index.js +4 -0
- package/dist/lighting/index.js.map +1 -0
- package/dist/lighting/light-binding.d.ts +76 -0
- package/dist/lighting/light-binding.d.ts.map +1 -0
- package/dist/lighting/light-binding.js +229 -0
- package/dist/lighting/light-binding.js.map +1 -0
- package/dist/lighting/light-components.d.ts +885 -0
- package/dist/lighting/light-components.d.ts.map +1 -0
- package/dist/lighting/light-components.js +146 -0
- package/dist/lighting/light-components.js.map +1 -0
- package/dist/lighting/light-system.d.ts +919 -0
- package/dist/lighting/light-system.d.ts.map +1 -0
- package/dist/lighting/light-system.js +244 -0
- package/dist/lighting/light-system.js.map +1 -0
- package/dist/locomotion/locomotion-environment.d.ts +27 -0
- package/dist/locomotion/locomotion-environment.d.ts.map +1 -0
- package/dist/locomotion/locomotion-environment.js +22 -0
- package/dist/locomotion/locomotion-environment.js.map +1 -0
- package/dist/locomotion/locomotion-input-provider.d.ts +1 -1
- package/dist/locomotion/locomotion.d.ts +5 -34
- package/dist/locomotion/locomotion.d.ts.map +1 -1
- package/dist/locomotion/locomotion.js +33 -31
- package/dist/locomotion/locomotion.js.map +1 -1
- package/dist/locomotion/materials/line.js +1 -1
- package/dist/locomotion/slide.d.ts +2 -2
- package/dist/locomotion/slide.d.ts.map +1 -1
- package/dist/locomotion/slide.js +3 -6
- package/dist/locomotion/slide.js.map +1 -1
- package/dist/locomotion/teleport.d.ts +2 -2
- package/dist/locomotion/teleport.d.ts.map +1 -1
- package/dist/locomotion/teleport.js +1 -4
- package/dist/locomotion/teleport.js.map +1 -1
- package/dist/mcp/ecs-debug-tools.d.ts.map +1 -1
- package/dist/mcp/ecs-debug-tools.js +10 -2
- package/dist/mcp/ecs-debug-tools.js.map +1 -1
- package/dist/mcp/mcp-runtime.d.ts.map +1 -1
- package/dist/mcp/mcp-runtime.js +4 -1
- package/dist/mcp/mcp-runtime.js.map +1 -1
- package/dist/mcp/scene-tools.d.ts +152 -1
- package/dist/mcp/scene-tools.d.ts.map +1 -1
- package/dist/mcp/scene-tools.js +538 -8
- package/dist/mcp/scene-tools.js.map +1 -1
- package/dist/physics/index.js +12 -0
- package/dist/physics/index.js.map +1 -0
- package/dist/physics/physics-system.d.ts +704 -11
- package/dist/physics/physics-system.d.ts.map +1 -1
- package/dist/physics/physics-system.js +310 -29
- package/dist/physics/physics-system.js.map +1 -1
- package/dist/physics/physicsBody.d.ts +40 -1
- package/dist/physics/physicsBody.d.ts.map +1 -1
- package/dist/physics/physicsBody.js +39 -1
- package/dist/physics/physicsBody.js.map +1 -1
- package/dist/physics/physicsManipulation.d.ts +1 -1
- package/dist/physics/physicsManipulation.d.ts.map +1 -1
- package/dist/physics/physicsManipulation.js +0 -1
- package/dist/physics/physicsManipulation.js.map +1 -1
- package/dist/physics/physicsShape.d.ts +5 -3
- package/dist/physics/physicsShape.d.ts.map +1 -1
- package/dist/physics/physicsShape.js +2 -2
- package/dist/physics/physicsShape.js.map +1 -1
- package/dist/physics/utils.d.ts +10 -0
- package/dist/physics/utils.d.ts.map +1 -1
- package/dist/physics/utils.js +82 -48
- package/dist/physics/utils.js.map +1 -1
- package/dist/project/index.d.ts +11 -0
- package/dist/project/index.d.ts.map +1 -0
- package/dist/project/index.js +5 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/normalize.d.ts +19 -0
- package/dist/project/normalize.d.ts.map +1 -0
- package/dist/project/normalize.js +206 -0
- package/dist/project/normalize.js.map +1 -0
- package/dist/project/paths.d.ts +21 -0
- package/dist/project/paths.d.ts.map +1 -0
- package/dist/project/paths.js +75 -0
- package/dist/project/paths.js.map +1 -0
- package/dist/project/types.d.ts +159 -0
- package/dist/project/types.d.ts.map +1 -0
- package/dist/project/types.js +11 -0
- package/dist/project/types.js.map +1 -0
- package/dist/project/validation.d.ts +17 -0
- package/dist/project/validation.d.ts.map +1 -0
- package/dist/project/validation.js +501 -0
- package/dist/project/validation.js.map +1 -0
- package/dist/scene-understanding/anchor.d.ts +1 -1
- package/dist/scene-understanding/anchor.d.ts.map +1 -1
- package/dist/scene-understanding/anchor.js +0 -4
- package/dist/scene-understanding/anchor.js.map +1 -1
- package/dist/scene-understanding/mesh.d.ts +1 -1
- package/dist/scene-understanding/mesh.d.ts.map +1 -1
- package/dist/scene-understanding/mesh.js +0 -4
- package/dist/scene-understanding/mesh.js.map +1 -1
- package/dist/scene-understanding/plane.d.ts +1 -1
- package/dist/scene-understanding/plane.d.ts.map +1 -1
- package/dist/scene-understanding/plane.js +0 -4
- package/dist/scene-understanding/plane.js.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.d.ts +25 -4
- package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.js +76 -57
- package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
- package/dist/schemas/iwsdk-project.v1.schema.json +305 -0
- package/dist/transform/transform-component.d.ts +32 -0
- package/dist/transform/transform-component.d.ts.map +1 -0
- package/dist/transform/transform-component.js +24 -0
- package/dist/transform/transform-component.js.map +1 -0
- package/dist/transform/transform.d.ts +10 -43
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +9 -28
- package/dist/transform/transform.js.map +1 -1
- package/dist/ui/document.d.ts +9 -2
- package/dist/ui/document.d.ts.map +1 -1
- package/dist/ui/document.js +30 -5
- package/dist/ui/document.js.map +1 -1
- package/dist/ui/follow-component.d.ts +57 -0
- package/dist/ui/follow-component.d.ts.map +1 -0
- package/dist/ui/follow-component.js +38 -0
- package/dist/ui/follow-component.js.map +1 -0
- package/dist/ui/follow.d.ts +29 -103
- package/dist/ui/follow.d.ts.map +1 -1
- package/dist/ui/follow.js +10 -51
- package/dist/ui/follow.js.map +1 -1
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/panel-components.d.ts +29 -0
- package/dist/ui/panel-components.d.ts.map +1 -0
- package/dist/ui/panel-components.js +22 -0
- package/dist/ui/panel-components.js.map +1 -0
- package/dist/ui/screenspace-component.d.ts +39 -0
- package/dist/ui/screenspace-component.d.ts.map +1 -0
- package/dist/ui/screenspace-component.js +21 -0
- package/dist/ui/screenspace-component.js.map +1 -0
- package/dist/ui/screenspace.d.ts +47 -135
- package/dist/ui/screenspace.d.ts.map +1 -1
- package/dist/ui/screenspace.js +127 -65
- package/dist/ui/screenspace.js.map +1 -1
- package/dist/ui/ui.d.ts +20 -122
- package/dist/ui/ui.d.ts.map +1 -1
- package/dist/ui/ui.js +44 -107
- package/dist/ui/ui.js.map +1 -1
- package/dist/ui/uikitml-asset.d.ts +25 -0
- package/dist/ui/uikitml-asset.d.ts.map +1 -0
- package/dist/ui/uikitml-asset.js +56 -0
- package/dist/ui/uikitml-asset.js.map +1 -0
- package/dist/ui/uikitml.d.ts +41 -0
- package/dist/ui/uikitml.d.ts.map +1 -0
- package/dist/ui/uikitml.js +119 -0
- package/dist/ui/uikitml.js.map +1 -0
- package/dist/vendor/draco/gltf/draco_encoder.js +0 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/visibility/visibility-component.d.ts +14 -0
- package/dist/visibility/visibility-component.d.ts.map +1 -0
- package/dist/visibility/visibility-component.js +15 -0
- package/dist/visibility/visibility-component.js.map +1 -0
- package/dist/visibility/visibility.d.ts +4 -11
- package/dist/visibility/visibility.d.ts.map +1 -1
- package/dist/visibility/visibility.js +9 -15
- package/dist/visibility/visibility.js.map +1 -1
- package/package.json +71 -19
- package/LICENSE +0 -21
- package/dist/ecs/component-registry.d.ts +0 -54
- package/dist/ecs/component-registry.d.ts.map +0 -1
- package/dist/ecs/component-registry.js +0 -86
- package/dist/ecs/component-registry.js.map +0 -1
- package/dist/level/level-entity-creator.d.ts +0 -27
- package/dist/level/level-entity-creator.d.ts.map +0 -1
- package/dist/level/level-entity-creator.js +0 -111
- package/dist/level/level-entity-creator.js.map +0 -1
- package/dist/level/level-glxf-importer.d.ts +0 -22
- package/dist/level/level-glxf-importer.d.ts.map +0 -1
- package/dist/level/level-glxf-importer.js +0 -40
- package/dist/level/level-glxf-importer.js.map +0 -1
package/dist/ecs/world.d.ts
CHANGED
|
@@ -4,14 +4,17 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
import type { SceneDocument } from '@iwsdk/scene-composition';
|
|
8
|
+
import type { SceneComponentCatalog } from '@iwsdk/scene-composition';
|
|
7
9
|
import { XROrigin } from '@iwsdk/xr-input';
|
|
8
10
|
import { Signal } from '@preact/signals-core';
|
|
9
11
|
import { AnyComponent, World as ElicsWorld } from 'elics';
|
|
10
|
-
import { AssetManager } from '../asset/index.js';
|
|
11
|
-
import { WorldOptions
|
|
12
|
+
import { AssetManager, RenderableAssetRegistry } from '../asset/index.js';
|
|
13
|
+
import type { WorldOptions } from '../init/world-initializer.js';
|
|
14
|
+
import type { XROptions } from '../init/xr.js';
|
|
12
15
|
import type { InputManager } from '../input/index.js';
|
|
13
16
|
import type { MCPRuntime } from '../mcp/index.js';
|
|
14
|
-
import { Object3D, PerspectiveCamera, Scene, WebGLRenderer } from '../runtime/index.js';
|
|
17
|
+
import { Object3D, PerspectiveCamera, Scene, Vector3, WebGLRenderer } from '../runtime/index.js';
|
|
15
18
|
import { Entity } from './entity.js';
|
|
16
19
|
export declare enum VisibilityState {
|
|
17
20
|
NonImmersive = "non-immersive",
|
|
@@ -24,6 +27,17 @@ export type GradientColors = {
|
|
|
24
27
|
equator: number;
|
|
25
28
|
ground: number;
|
|
26
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Callback invoked once per render-loop tick while an XR session is active,
|
|
32
|
+
* registered via {@link World.onXRFrame}.
|
|
33
|
+
*
|
|
34
|
+
* @param frame The live {@link XRFrame} for this tick. Only valid synchronously
|
|
35
|
+
* inside the callback — do not retain it across ticks.
|
|
36
|
+
* @param delta Seconds since the previous frame.
|
|
37
|
+
* @param time Accumulated render-loop time in seconds (monotonic within a session).
|
|
38
|
+
* @category XR Runtime
|
|
39
|
+
*/
|
|
40
|
+
export type OnXRFrameCallback = (frame: XRFrame, delta: number, time: number) => void;
|
|
27
41
|
/**
|
|
28
42
|
* World is the root ECS container, Three.js scene/renderer owner, and XR session gateway.
|
|
29
43
|
*
|
|
@@ -43,7 +57,7 @@ export type GradientColors = {
|
|
|
43
57
|
* const world = await World.create(container, {
|
|
44
58
|
* xr: { sessionMode: SessionMode.ImmersiveVR },
|
|
45
59
|
* features: { enableLocomotion: true, enableGrabbing: true },
|
|
46
|
-
* level: '/
|
|
60
|
+
* level: '/scenes/main.iwsdk.scene.json'
|
|
47
61
|
* });
|
|
48
62
|
* ```
|
|
49
63
|
*/
|
|
@@ -51,6 +65,10 @@ export declare class World extends ElicsWorld {
|
|
|
51
65
|
input: InputManager;
|
|
52
66
|
player: XROrigin;
|
|
53
67
|
assetManager: typeof AssetManager;
|
|
68
|
+
/** Renderable assets registered by the application manifest. */
|
|
69
|
+
assets: RenderableAssetRegistry;
|
|
70
|
+
/** Component definitions shared by scene validation and editor tooling. */
|
|
71
|
+
componentCatalog: SceneComponentCatalog;
|
|
54
72
|
scene: Scene;
|
|
55
73
|
sceneEntity: Entity;
|
|
56
74
|
activeLevel: Signal<Entity>;
|
|
@@ -60,12 +78,24 @@ export declare class World extends ElicsWorld {
|
|
|
60
78
|
renderer: WebGLRenderer;
|
|
61
79
|
session: XRSession | undefined;
|
|
62
80
|
visibilityState: Signal<VisibilityState>;
|
|
81
|
+
/** Whether this world was created with XR support enabled. */
|
|
82
|
+
xrEnabled: boolean;
|
|
63
83
|
requestedLevelUrl: string | undefined;
|
|
84
|
+
requestedLevelDocument: SceneDocument | undefined;
|
|
64
85
|
_resolveLevelLoad: (() => void) | undefined;
|
|
86
|
+
_rejectLevelLoad: ((reason: unknown) => void) | undefined;
|
|
65
87
|
/** Default XR options used when calling {@link World.launchXR} without overrides. */
|
|
66
88
|
xrDefaults: import('../init/xr.js').XROptions | undefined;
|
|
67
89
|
/** MCP runtime for framework-specific tools. Set automatically during World.create(). */
|
|
68
90
|
mcpRuntime?: MCPRuntime;
|
|
91
|
+
/** Teardown callbacks run by {@link World.destroy} (render loop, global listeners). */
|
|
92
|
+
private worldCleanupFuncs;
|
|
93
|
+
/** Guards {@link World.destroy} so a second call is a no-op. */
|
|
94
|
+
private destroyed;
|
|
95
|
+
private authoredPlayerPosition?;
|
|
96
|
+
private authoredPlayerPositionListeners;
|
|
97
|
+
/** Per-frame XR callbacks registered via {@link World.onXRFrame}. */
|
|
98
|
+
private xrFrameCallbacks;
|
|
69
99
|
/** Entity wrapping the XROrigin Group (persistent, survives level changes). */
|
|
70
100
|
playerEntity: Entity;
|
|
71
101
|
/** Entity wrapping the player head Group (persistent). */
|
|
@@ -97,14 +127,139 @@ export declare class World extends ElicsWorld {
|
|
|
97
127
|
*/
|
|
98
128
|
private disposeObject3DResources;
|
|
99
129
|
createEntity(): Entity;
|
|
130
|
+
/** @internal Publish scene-authored player placement to locomotion owners. */
|
|
131
|
+
setAuthoredPlayerPosition(position: Vector3): void;
|
|
132
|
+
/** @internal Reconcile a locomotion owner with scene-authored placement. */
|
|
133
|
+
onAuthoredPlayerPosition(listener: (position: Vector3) => void): () => void;
|
|
100
134
|
createTransformEntity(object?: Object3D, parentOrOptions?: Entity | {
|
|
101
135
|
parent?: Entity;
|
|
102
136
|
persistent?: boolean;
|
|
103
137
|
}): Entity;
|
|
138
|
+
/** Find an authored scene object by its stable scene node id. */
|
|
139
|
+
getSceneObject<T extends Object3D = Object3D>(nodeId: string): T | undefined;
|
|
140
|
+
/** Find an authored scene object or throw a node-oriented lookup error. */
|
|
141
|
+
requireSceneObject<T extends Object3D = Object3D>(nodeId: string): T;
|
|
142
|
+
/** Find the ECS entity that owns an authored scene node. */
|
|
143
|
+
getSceneEntity(nodeId: string): Entity | undefined;
|
|
144
|
+
/** Find the ECS entity for an authored scene node or throw. */
|
|
145
|
+
requireSceneEntity(nodeId: string): Entity;
|
|
104
146
|
launchXR(xrOptions?: Partial<XROptions>): void;
|
|
105
|
-
/** Request a level change; LevelSystem performs the work and resolves. */
|
|
147
|
+
/** Request a native scene JSON level change; LevelSystem performs the work and resolves. */
|
|
106
148
|
loadLevel(url?: string): Promise<void>;
|
|
149
|
+
/** Request an in-memory native scene document level load; LevelSystem performs the work and resolves. */
|
|
150
|
+
loadSceneDocument(document: SceneDocument): Promise<void>;
|
|
107
151
|
exitXR(): void;
|
|
152
|
+
private rejectPendingLevelLoad;
|
|
153
|
+
/**
|
|
154
|
+
* The active {@link XRSession}, or `undefined` outside XR. Alias of
|
|
155
|
+
* {@link World.session}, exposed for discoverability alongside
|
|
156
|
+
* {@link World.xrFrame} and {@link World.xrReferenceSpace}.
|
|
157
|
+
*
|
|
158
|
+
* @remarks
|
|
159
|
+
* Enable WebXR features your app needs (e.g. hit-test, depth sensing) via
|
|
160
|
+
* `World.create(container, { xr: { features: { hitTest: true, depthSensing: true } } })`.
|
|
161
|
+
* Once granted, they appear in `world.xrSession.enabledFeatures`.
|
|
162
|
+
* @category XR Runtime
|
|
163
|
+
*/
|
|
164
|
+
get xrSession(): XRSession | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* The current {@link XRFrame} for this animation-loop tick, or `null` outside
|
|
167
|
+
* XR. Use it for raw WebXR access such as `frame.getViewerPose(...)`,
|
|
168
|
+
* `frame.getHitTestResults(...)`, or `frame.getDepthInformation(...)`.
|
|
169
|
+
*
|
|
170
|
+
* @remarks
|
|
171
|
+
* Read this synchronously inside an {@link World.onXRFrame} callback or a
|
|
172
|
+
* System `update()` — the frame object is only valid for the current tick and
|
|
173
|
+
* must not be retained across frames.
|
|
174
|
+
* @category XR Runtime
|
|
175
|
+
*/
|
|
176
|
+
get xrFrame(): XRFrame | null;
|
|
177
|
+
/**
|
|
178
|
+
* The active {@link XRReferenceSpace} that IWSDK resolved for the session, or
|
|
179
|
+
* `null` outside XR. Pass it to `XRHitTestResult.getPose(space)` or
|
|
180
|
+
* `XRFrame.getViewerPose(space)` to obtain poses in the world's tracking space.
|
|
181
|
+
* @category XR Runtime
|
|
182
|
+
*/
|
|
183
|
+
get xrReferenceSpace(): XRReferenceSpace | null;
|
|
184
|
+
/**
|
|
185
|
+
* Register a callback that runs once per render-loop tick with the live
|
|
186
|
+
* {@link XRFrame}, without having to author a System. Useful for per-pixel
|
|
187
|
+
* world alignment, hit-test queries, depth sampling, and object-anchored
|
|
188
|
+
* overlays.
|
|
189
|
+
*
|
|
190
|
+
* @param callback Invoked with `(frame, delta, time)` while an XR session is active.
|
|
191
|
+
* @returns An unsubscribe function; call it to stop receiving frames.
|
|
192
|
+
* @category XR Runtime
|
|
193
|
+
* @example
|
|
194
|
+
* ```ts
|
|
195
|
+
* const source = await world.requestHitTestSource({ space: world.xrReferenceSpace! });
|
|
196
|
+
* const stop = world.onXRFrame((frame) => {
|
|
197
|
+
* if (!source) return;
|
|
198
|
+
* const [hit] = world.getHitTestResults(source);
|
|
199
|
+
* const pose = hit?.getPose(world.xrReferenceSpace!);
|
|
200
|
+
* // place a world-locked label at pose.transform.position ...
|
|
201
|
+
* });
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
onXRFrame(callback: OnXRFrameCallback): () => void;
|
|
205
|
+
/**
|
|
206
|
+
* Invoke all callbacks registered via {@link World.onXRFrame}. Called by the
|
|
207
|
+
* render loop after systems update and before rendering.
|
|
208
|
+
* @internal
|
|
209
|
+
*/
|
|
210
|
+
runXRFrameCallbacks(frame: XRFrame, delta: number, time: number): void;
|
|
211
|
+
/**
|
|
212
|
+
* Request an {@link XRHitTestSource} on the active session. Requires the
|
|
213
|
+
* `hit-test` feature (enable via
|
|
214
|
+
* `World.create(container, { xr: { features: { hitTest: true } } })`).
|
|
215
|
+
*
|
|
216
|
+
* @returns The hit-test source, or `undefined` if there is no active session
|
|
217
|
+
* or the request is unavailable/unsupported. The underlying
|
|
218
|
+
* `XRSession.requestHitTestSource` rejects when the `hit-test` feature was
|
|
219
|
+
* not granted; that rejection is caught and surfaced as `undefined` (logged
|
|
220
|
+
* as a warning) so callers can `await` without their own `try/catch`.
|
|
221
|
+
* @category XR Runtime
|
|
222
|
+
*/
|
|
223
|
+
requestHitTestSource(options: XRHitTestOptionsInit): Promise<XRHitTestSource | undefined>;
|
|
224
|
+
/**
|
|
225
|
+
* Request an {@link XRTransientInputHitTestSource} (e.g. for screen taps or
|
|
226
|
+
* transient controllers). Requires the `hit-test` feature.
|
|
227
|
+
*
|
|
228
|
+
* @returns The transient hit-test source, or `undefined` if unavailable. As
|
|
229
|
+
* with {@link World.requestHitTestSource}, a rejection from the underlying
|
|
230
|
+
* WebXR call (e.g. feature not granted) is caught and surfaced as
|
|
231
|
+
* `undefined`.
|
|
232
|
+
* @category XR Runtime
|
|
233
|
+
*/
|
|
234
|
+
requestHitTestSourceForTransientInput(options: XRTransientInputHitTestOptionsInit): Promise<XRTransientInputHitTestSource | undefined>;
|
|
235
|
+
/**
|
|
236
|
+
* Read the hit-test results for a source from the current {@link XRFrame}.
|
|
237
|
+
* Returns an empty array when there is no active frame.
|
|
238
|
+
* @category XR Runtime
|
|
239
|
+
*/
|
|
240
|
+
getHitTestResults(source: XRHitTestSource): XRHitTestResult[];
|
|
241
|
+
/**
|
|
242
|
+
* Register a teardown callback to run on {@link World.destroy}. Used by the
|
|
243
|
+
* initializer to undo global side effects such as the render loop and the
|
|
244
|
+
* window `resize` listener.
|
|
245
|
+
*
|
|
246
|
+
* @internal
|
|
247
|
+
*/
|
|
248
|
+
addCleanup(fn: () => void): void;
|
|
249
|
+
/**
|
|
250
|
+
* Tear down the world: destroy all registered systems (running their
|
|
251
|
+
* `cleanupFuncs`), then run world-level teardown callbacks (stop the render
|
|
252
|
+
* loop, remove the window `resize` listener). After calling this the world
|
|
253
|
+
* instance should be discarded.
|
|
254
|
+
*
|
|
255
|
+
* @remarks
|
|
256
|
+
* Not invoked during normal single-world app usage (where the world lives for
|
|
257
|
+
* the page lifetime); provided so tests, hot-reload, and multi-world hosts can
|
|
258
|
+
* release the render loop, listeners, and per-system subscriptions instead of
|
|
259
|
+
* leaking them. Individual failures are caught so one bad teardown does not
|
|
260
|
+
* block the rest.
|
|
261
|
+
*/
|
|
262
|
+
destroy(): void;
|
|
108
263
|
update(delta: number, time: number): void;
|
|
109
264
|
registerComponent(component: AnyComponent): this;
|
|
110
265
|
getActiveRoot(): Object3D;
|
package/dist/ecs/world.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/ecs/world.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,EAAE,MAAM,EAAU,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/ecs/world.ts"],"names":[],"mappings":"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"}
|
package/dist/ecs/world.js
CHANGED
|
@@ -1,23 +1,12 @@
|
|
|
1
1
|
import { signal } from '@preact/signals-core';
|
|
2
2
|
import { World as World$1 } from 'elics';
|
|
3
3
|
import { launchXR } from '../init/xr.js';
|
|
4
|
-
import { initializeWorld } from '../init/world-initializer.js';
|
|
5
|
-
import '../level/level-system.js';
|
|
6
4
|
import { LevelTag } from '../level/level-tag.js';
|
|
7
|
-
import '@iwsdk/glxf';
|
|
8
|
-
import '../asset/asset-manager.js';
|
|
9
|
-
import '../asset/cache-manager.js';
|
|
10
|
-
import './entity.js';
|
|
11
|
-
import './component-registry.js';
|
|
12
|
-
import '@pmndrs/uikit';
|
|
13
|
-
import { Object3D } from 'three';
|
|
14
|
-
import '../ui/ui.js';
|
|
15
|
-
import '../ui/follow.js';
|
|
16
|
-
import '../ui/screenspace.js';
|
|
17
|
-
import '../level/level-root.js';
|
|
18
5
|
import '../runtime/three.js';
|
|
19
|
-
import
|
|
20
|
-
import '../
|
|
6
|
+
import '../transform/transform.js';
|
|
7
|
+
import { Visibility } from '../visibility/visibility-component.js';
|
|
8
|
+
import { Transform } from '../transform/transform-component.js';
|
|
9
|
+
import { Vector3, Object3D } from 'three';
|
|
21
10
|
|
|
22
11
|
/**
|
|
23
12
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -51,7 +40,7 @@ var VisibilityState;
|
|
|
51
40
|
* const world = await World.create(container, {
|
|
52
41
|
* xr: { sessionMode: SessionMode.ImmersiveVR },
|
|
53
42
|
* features: { enableLocomotion: true, enableGrabbing: true },
|
|
54
|
-
* level: '/
|
|
43
|
+
* level: '/scenes/main.iwsdk.scene.json'
|
|
55
44
|
* });
|
|
56
45
|
* ```
|
|
57
46
|
*/
|
|
@@ -60,11 +49,25 @@ class World extends World$1 {
|
|
|
60
49
|
super();
|
|
61
50
|
this.activeLevelId = 'level:default';
|
|
62
51
|
this.visibilityState = signal(VisibilityState.NonImmersive);
|
|
52
|
+
/** Whether this world was created with XR support enabled. */
|
|
53
|
+
this.xrEnabled = true;
|
|
54
|
+
/** Teardown callbacks run by {@link World.destroy} (render loop, global listeners). */
|
|
55
|
+
this.worldCleanupFuncs = [];
|
|
56
|
+
/** Guards {@link World.destroy} so a second call is a no-op. */
|
|
57
|
+
this.destroyed = false;
|
|
58
|
+
this.authoredPlayerPositionListeners = new Set();
|
|
59
|
+
/** Per-frame XR callbacks registered via {@link World.onXRFrame}. */
|
|
60
|
+
this.xrFrameCallbacks = new Set();
|
|
63
61
|
const originalReleaseFunc = this.entityManager.releaseEntityInstance.bind(this.entityManager);
|
|
64
62
|
this.entityManager.releaseEntityInstance = (entity) => {
|
|
65
63
|
originalReleaseFunc(entity);
|
|
66
64
|
const obj = entity.object3D;
|
|
67
65
|
if (obj) {
|
|
66
|
+
const disposeAsset = obj.userData.iwsdkDisposeAsset;
|
|
67
|
+
if (typeof disposeAsset === 'function') {
|
|
68
|
+
obj.userData.iwsdkDisposeAsset = null;
|
|
69
|
+
disposeAsset();
|
|
70
|
+
}
|
|
68
71
|
// Check if entity was marked for resource disposal
|
|
69
72
|
if (entity._disposeResources) {
|
|
70
73
|
this.disposeObject3DResources(obj);
|
|
@@ -113,10 +116,28 @@ class World extends World$1 {
|
|
|
113
116
|
createEntity() {
|
|
114
117
|
return super.createEntity();
|
|
115
118
|
}
|
|
119
|
+
/** @internal Publish scene-authored player placement to locomotion owners. */
|
|
120
|
+
setAuthoredPlayerPosition(position) {
|
|
121
|
+
var _a;
|
|
122
|
+
(_a = this.authoredPlayerPosition) !== null && _a !== void 0 ? _a : (this.authoredPlayerPosition = new Vector3());
|
|
123
|
+
this.authoredPlayerPosition.copy(position);
|
|
124
|
+
for (const listener of this.authoredPlayerPositionListeners) {
|
|
125
|
+
listener(this.authoredPlayerPosition);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/** @internal Reconcile a locomotion owner with scene-authored placement. */
|
|
129
|
+
onAuthoredPlayerPosition(listener) {
|
|
130
|
+
this.authoredPlayerPositionListeners.add(listener);
|
|
131
|
+
if (this.authoredPlayerPosition != null) {
|
|
132
|
+
listener(this.authoredPlayerPosition);
|
|
133
|
+
}
|
|
134
|
+
return () => this.authoredPlayerPositionListeners.delete(listener);
|
|
135
|
+
}
|
|
116
136
|
createTransformEntity(object, parentOrOptions) {
|
|
117
137
|
var _a, _b;
|
|
118
138
|
const entity = super.createEntity();
|
|
119
139
|
const obj = object !== null && object !== void 0 ? object : new Object3D();
|
|
140
|
+
const initialVisible = obj.visible;
|
|
120
141
|
// Cast to pointer-events-capable Object3D event map for downstream typing
|
|
121
142
|
entity.object3D = obj;
|
|
122
143
|
let parent = undefined;
|
|
@@ -144,27 +165,292 @@ class World extends World$1 {
|
|
|
144
165
|
: ((_b = (_a = this.activeLevel) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.sceneEntity);
|
|
145
166
|
}
|
|
146
167
|
}
|
|
168
|
+
const parentObject = parent === null || parent === void 0 ? void 0 : parent.object3D;
|
|
169
|
+
if (parentObject && parentObject !== obj && obj.parent !== parentObject) {
|
|
170
|
+
parentObject.add(obj);
|
|
171
|
+
}
|
|
147
172
|
entity.addComponent(Transform, { parent });
|
|
173
|
+
entity.addComponent(Visibility, { isVisible: initialVisible });
|
|
148
174
|
// Tag entity with current level, unless persistent
|
|
149
175
|
if (!persistent) {
|
|
150
176
|
entity.addComponent(LevelTag, { id: this.activeLevelId });
|
|
151
177
|
}
|
|
152
178
|
return entity;
|
|
153
179
|
}
|
|
180
|
+
/** Find an authored scene object by its stable scene node id. */
|
|
181
|
+
getSceneObject(nodeId) {
|
|
182
|
+
var _a, _b, _c;
|
|
183
|
+
let result;
|
|
184
|
+
for (const root of [
|
|
185
|
+
(_b = (_a = this.activeLevel) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.object3D,
|
|
186
|
+
(_c = this.playerEntity) === null || _c === void 0 ? void 0 : _c.object3D,
|
|
187
|
+
]) {
|
|
188
|
+
if (root == null) {
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
root.traverse((object) => {
|
|
192
|
+
if (!result &&
|
|
193
|
+
object.userData.iwsdkSceneNodeId === nodeId &&
|
|
194
|
+
(object.userData.iwsdkSceneLevelId == null ||
|
|
195
|
+
object.userData.iwsdkSceneLevelId === this.activeLevelId)) {
|
|
196
|
+
result = object;
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
/** Find an authored scene object or throw a node-oriented lookup error. */
|
|
203
|
+
requireSceneObject(nodeId) {
|
|
204
|
+
const object = this.getSceneObject(nodeId);
|
|
205
|
+
if (!object) {
|
|
206
|
+
throw new Error(`Scene object "${nodeId}" was not found in the active level`);
|
|
207
|
+
}
|
|
208
|
+
return object;
|
|
209
|
+
}
|
|
210
|
+
/** Find the ECS entity that owns an authored scene node. */
|
|
211
|
+
getSceneEntity(nodeId) {
|
|
212
|
+
var _a;
|
|
213
|
+
const index = (_a = this.getSceneObject(nodeId)) === null || _a === void 0 ? void 0 : _a.entityIdx;
|
|
214
|
+
return typeof index === 'number'
|
|
215
|
+
? this.entityManager.getEntityByIndex(index)
|
|
216
|
+
: undefined;
|
|
217
|
+
}
|
|
218
|
+
/** Find the ECS entity for an authored scene node or throw. */
|
|
219
|
+
requireSceneEntity(nodeId) {
|
|
220
|
+
const entity = this.getSceneEntity(nodeId);
|
|
221
|
+
if (!entity) {
|
|
222
|
+
throw new Error(`Scene entity "${nodeId}" was not found in the active level`);
|
|
223
|
+
}
|
|
224
|
+
return entity;
|
|
225
|
+
}
|
|
154
226
|
launchXR(xrOptions) {
|
|
155
227
|
launchXR(this, xrOptions);
|
|
156
228
|
}
|
|
157
|
-
/** Request a level change; LevelSystem performs the work and resolves. */
|
|
229
|
+
/** Request a native scene JSON level change; LevelSystem performs the work and resolves. */
|
|
158
230
|
async loadLevel(url) {
|
|
231
|
+
this.rejectPendingLevelLoad();
|
|
232
|
+
this.requestedLevelDocument = undefined;
|
|
159
233
|
this.requestedLevelUrl = url !== null && url !== void 0 ? url : '';
|
|
160
|
-
return new Promise((resolve) => {
|
|
234
|
+
return new Promise((resolve, reject) => {
|
|
235
|
+
this._resolveLevelLoad = resolve;
|
|
236
|
+
this._rejectLevelLoad = reject;
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
/** Request an in-memory native scene document level load; LevelSystem performs the work and resolves. */
|
|
240
|
+
async loadSceneDocument(document) {
|
|
241
|
+
this.rejectPendingLevelLoad();
|
|
242
|
+
this.requestedLevelUrl = undefined;
|
|
243
|
+
this.requestedLevelDocument = document;
|
|
244
|
+
return new Promise((resolve, reject) => {
|
|
161
245
|
this._resolveLevelLoad = resolve;
|
|
246
|
+
this._rejectLevelLoad = reject;
|
|
162
247
|
});
|
|
163
248
|
}
|
|
164
249
|
exitXR() {
|
|
165
250
|
var _a;
|
|
166
251
|
(_a = this.session) === null || _a === void 0 ? void 0 : _a.end();
|
|
167
252
|
}
|
|
253
|
+
rejectPendingLevelLoad() {
|
|
254
|
+
if (this._resolveLevelLoad == null && this._rejectLevelLoad == null) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
const reject = this._rejectLevelLoad;
|
|
258
|
+
this._resolveLevelLoad = undefined;
|
|
259
|
+
this._rejectLevelLoad = undefined;
|
|
260
|
+
reject === null || reject === void 0 ? void 0 : reject(new Error('Level load was superseded by a newer request'));
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* The active {@link XRSession}, or `undefined` outside XR. Alias of
|
|
264
|
+
* {@link World.session}, exposed for discoverability alongside
|
|
265
|
+
* {@link World.xrFrame} and {@link World.xrReferenceSpace}.
|
|
266
|
+
*
|
|
267
|
+
* @remarks
|
|
268
|
+
* Enable WebXR features your app needs (e.g. hit-test, depth sensing) via
|
|
269
|
+
* `World.create(container, { xr: { features: { hitTest: true, depthSensing: true } } })`.
|
|
270
|
+
* Once granted, they appear in `world.xrSession.enabledFeatures`.
|
|
271
|
+
* @category XR Runtime
|
|
272
|
+
*/
|
|
273
|
+
get xrSession() {
|
|
274
|
+
return this.session;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* The current {@link XRFrame} for this animation-loop tick, or `null` outside
|
|
278
|
+
* XR. Use it for raw WebXR access such as `frame.getViewerPose(...)`,
|
|
279
|
+
* `frame.getHitTestResults(...)`, or `frame.getDepthInformation(...)`.
|
|
280
|
+
*
|
|
281
|
+
* @remarks
|
|
282
|
+
* Read this synchronously inside an {@link World.onXRFrame} callback or a
|
|
283
|
+
* System `update()` — the frame object is only valid for the current tick and
|
|
284
|
+
* must not be retained across frames.
|
|
285
|
+
* @category XR Runtime
|
|
286
|
+
*/
|
|
287
|
+
get xrFrame() {
|
|
288
|
+
var _a, _b;
|
|
289
|
+
return (_b = (_a = this.renderer) === null || _a === void 0 ? void 0 : _a.xr.getFrame()) !== null && _b !== void 0 ? _b : null;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* The active {@link XRReferenceSpace} that IWSDK resolved for the session, or
|
|
293
|
+
* `null` outside XR. Pass it to `XRHitTestResult.getPose(space)` or
|
|
294
|
+
* `XRFrame.getViewerPose(space)` to obtain poses in the world's tracking space.
|
|
295
|
+
* @category XR Runtime
|
|
296
|
+
*/
|
|
297
|
+
get xrReferenceSpace() {
|
|
298
|
+
var _a, _b;
|
|
299
|
+
return (_b = (_a = this.renderer) === null || _a === void 0 ? void 0 : _a.xr.getReferenceSpace()) !== null && _b !== void 0 ? _b : null;
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Register a callback that runs once per render-loop tick with the live
|
|
303
|
+
* {@link XRFrame}, without having to author a System. Useful for per-pixel
|
|
304
|
+
* world alignment, hit-test queries, depth sampling, and object-anchored
|
|
305
|
+
* overlays.
|
|
306
|
+
*
|
|
307
|
+
* @param callback Invoked with `(frame, delta, time)` while an XR session is active.
|
|
308
|
+
* @returns An unsubscribe function; call it to stop receiving frames.
|
|
309
|
+
* @category XR Runtime
|
|
310
|
+
* @example
|
|
311
|
+
* ```ts
|
|
312
|
+
* const source = await world.requestHitTestSource({ space: world.xrReferenceSpace! });
|
|
313
|
+
* const stop = world.onXRFrame((frame) => {
|
|
314
|
+
* if (!source) return;
|
|
315
|
+
* const [hit] = world.getHitTestResults(source);
|
|
316
|
+
* const pose = hit?.getPose(world.xrReferenceSpace!);
|
|
317
|
+
* // place a world-locked label at pose.transform.position ...
|
|
318
|
+
* });
|
|
319
|
+
* ```
|
|
320
|
+
*/
|
|
321
|
+
onXRFrame(callback) {
|
|
322
|
+
this.xrFrameCallbacks.add(callback);
|
|
323
|
+
return () => {
|
|
324
|
+
this.xrFrameCallbacks.delete(callback);
|
|
325
|
+
};
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Invoke all callbacks registered via {@link World.onXRFrame}. Called by the
|
|
329
|
+
* render loop after systems update and before rendering.
|
|
330
|
+
* @internal
|
|
331
|
+
*/
|
|
332
|
+
runXRFrameCallbacks(frame, delta, time) {
|
|
333
|
+
if (this.xrFrameCallbacks.size === 0) {
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
for (const callback of this.xrFrameCallbacks) {
|
|
337
|
+
try {
|
|
338
|
+
callback(frame, delta, time);
|
|
339
|
+
}
|
|
340
|
+
catch (error) {
|
|
341
|
+
console.error('[World] onXRFrame callback failed:', error);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Request an {@link XRHitTestSource} on the active session. Requires the
|
|
347
|
+
* `hit-test` feature (enable via
|
|
348
|
+
* `World.create(container, { xr: { features: { hitTest: true } } })`).
|
|
349
|
+
*
|
|
350
|
+
* @returns The hit-test source, or `undefined` if there is no active session
|
|
351
|
+
* or the request is unavailable/unsupported. The underlying
|
|
352
|
+
* `XRSession.requestHitTestSource` rejects when the `hit-test` feature was
|
|
353
|
+
* not granted; that rejection is caught and surfaced as `undefined` (logged
|
|
354
|
+
* as a warning) so callers can `await` without their own `try/catch`.
|
|
355
|
+
* @category XR Runtime
|
|
356
|
+
*/
|
|
357
|
+
async requestHitTestSource(options) {
|
|
358
|
+
const session = this.session;
|
|
359
|
+
if (!(session === null || session === void 0 ? void 0 : session.requestHitTestSource)) {
|
|
360
|
+
return undefined;
|
|
361
|
+
}
|
|
362
|
+
try {
|
|
363
|
+
return await session.requestHitTestSource(options);
|
|
364
|
+
}
|
|
365
|
+
catch (error) {
|
|
366
|
+
console.warn("[World] requestHitTestSource failed (is the 'hit-test' feature enabled?):", error);
|
|
367
|
+
return undefined;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Request an {@link XRTransientInputHitTestSource} (e.g. for screen taps or
|
|
372
|
+
* transient controllers). Requires the `hit-test` feature.
|
|
373
|
+
*
|
|
374
|
+
* @returns The transient hit-test source, or `undefined` if unavailable. As
|
|
375
|
+
* with {@link World.requestHitTestSource}, a rejection from the underlying
|
|
376
|
+
* WebXR call (e.g. feature not granted) is caught and surfaced as
|
|
377
|
+
* `undefined`.
|
|
378
|
+
* @category XR Runtime
|
|
379
|
+
*/
|
|
380
|
+
async requestHitTestSourceForTransientInput(options) {
|
|
381
|
+
const session = this.session;
|
|
382
|
+
if (!(session === null || session === void 0 ? void 0 : session.requestHitTestSourceForTransientInput)) {
|
|
383
|
+
return undefined;
|
|
384
|
+
}
|
|
385
|
+
try {
|
|
386
|
+
return await session.requestHitTestSourceForTransientInput(options);
|
|
387
|
+
}
|
|
388
|
+
catch (error) {
|
|
389
|
+
console.warn("[World] requestHitTestSourceForTransientInput failed (is the 'hit-test' feature enabled?):", error);
|
|
390
|
+
return undefined;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* Read the hit-test results for a source from the current {@link XRFrame}.
|
|
395
|
+
* Returns an empty array when there is no active frame.
|
|
396
|
+
* @category XR Runtime
|
|
397
|
+
*/
|
|
398
|
+
getHitTestResults(source) {
|
|
399
|
+
const frame = this.xrFrame;
|
|
400
|
+
if (!frame) {
|
|
401
|
+
return [];
|
|
402
|
+
}
|
|
403
|
+
return frame.getHitTestResults(source);
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Register a teardown callback to run on {@link World.destroy}. Used by the
|
|
407
|
+
* initializer to undo global side effects such as the render loop and the
|
|
408
|
+
* window `resize` listener.
|
|
409
|
+
*
|
|
410
|
+
* @internal
|
|
411
|
+
*/
|
|
412
|
+
addCleanup(fn) {
|
|
413
|
+
this.worldCleanupFuncs.push(fn);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Tear down the world: destroy all registered systems (running their
|
|
417
|
+
* `cleanupFuncs`), then run world-level teardown callbacks (stop the render
|
|
418
|
+
* loop, remove the window `resize` listener). After calling this the world
|
|
419
|
+
* instance should be discarded.
|
|
420
|
+
*
|
|
421
|
+
* @remarks
|
|
422
|
+
* Not invoked during normal single-world app usage (where the world lives for
|
|
423
|
+
* the page lifetime); provided so tests, hot-reload, and multi-world hosts can
|
|
424
|
+
* release the render loop, listeners, and per-system subscriptions instead of
|
|
425
|
+
* leaking them. Individual failures are caught so one bad teardown does not
|
|
426
|
+
* block the rest.
|
|
427
|
+
*/
|
|
428
|
+
destroy() {
|
|
429
|
+
var _a, _b;
|
|
430
|
+
// Idempotent: getSystems() keeps returning the same systems, so without
|
|
431
|
+
// this guard a second destroy() would re-run every system's destroy().
|
|
432
|
+
if (this.destroyed) {
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
this.destroyed = true;
|
|
436
|
+
for (const system of this.getSystems()) {
|
|
437
|
+
try {
|
|
438
|
+
(_b = (_a = system).destroy) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
439
|
+
}
|
|
440
|
+
catch (error) {
|
|
441
|
+
console.error('[World] system destroy failed:', error);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
const fns = this.worldCleanupFuncs.splice(0);
|
|
445
|
+
for (const fn of fns) {
|
|
446
|
+
try {
|
|
447
|
+
fn();
|
|
448
|
+
}
|
|
449
|
+
catch (error) {
|
|
450
|
+
console.error('[World] cleanup failed:', error);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
168
454
|
update(delta, time) {
|
|
169
455
|
super.update(delta, time);
|
|
170
456
|
}
|
|
@@ -200,7 +486,8 @@ class World extends World$1 {
|
|
|
200
486
|
* - If {@link WorldOptions.level} is provided, the LevelSystem will load it after assets are preloaded.
|
|
201
487
|
* @see /getting-started/01-hello-xr
|
|
202
488
|
*/
|
|
203
|
-
static create(container, options) {
|
|
489
|
+
static async create(container, options) {
|
|
490
|
+
const { initializeWorld } = await import('../init/world-initializer.js');
|
|
204
491
|
return initializeWorld(container, options);
|
|
205
492
|
}
|
|
206
493
|
}
|
package/dist/ecs/world.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sources":["../../src/ecs/world.ts"],"sourcesContent":[null],"names":["ElicsWorld"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"world.js","sources":["../../src/ecs/world.ts"],"sourcesContent":[null],"names":["ElicsWorld"],"mappings":"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"}
|