@iwsdk/core 0.1.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/LICENSE +21 -0
- package/dist/asset/asset-manager.d.ts +72 -0
- package/dist/asset/asset-manager.d.ts.map +1 -0
- package/dist/asset/asset-manager.js +138 -0
- package/dist/asset/asset-manager.js.map +1 -0
- package/dist/asset/cache-manager.d.ts +44 -0
- package/dist/asset/cache-manager.d.ts.map +1 -0
- package/dist/asset/cache-manager.js +80 -0
- package/dist/asset/cache-manager.js.map +1 -0
- package/dist/asset/index.d.ts +9 -0
- package/dist/asset/index.d.ts.map +1 -0
- package/dist/asset/loaders/audio-loader.d.ts +21 -0
- package/dist/asset/loaders/audio-loader.d.ts.map +1 -0
- package/dist/asset/loaders/audio-loader.js +57 -0
- package/dist/asset/loaders/audio-loader.js.map +1 -0
- package/dist/asset/loaders/gltf-loader.d.ts +33 -0
- package/dist/asset/loaders/gltf-loader.d.ts.map +1 -0
- package/dist/asset/loaders/gltf-loader.js +79 -0
- package/dist/asset/loaders/gltf-loader.js.map +1 -0
- package/dist/asset/loaders/hdr-texture-loader.d.ts +18 -0
- package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -0
- package/dist/asset/loaders/hdr-texture-loader.js +65 -0
- package/dist/asset/loaders/hdr-texture-loader.js.map +1 -0
- package/dist/asset/loaders/texture-loader.d.ts +21 -0
- package/dist/asset/loaders/texture-loader.d.ts.map +1 -0
- package/dist/asset/loaders/texture-loader.js +57 -0
- package/dist/asset/loaders/texture-loader.js.map +1 -0
- package/dist/audio/audio-pool.d.ts +59 -0
- package/dist/audio/audio-pool.d.ts.map +1 -0
- package/dist/audio/audio-pool.js +105 -0
- package/dist/audio/audio-pool.js.map +1 -0
- package/dist/audio/audio-system.d.ts +326 -0
- package/dist/audio/audio-system.d.ts.map +1 -0
- package/dist/audio/audio-system.js +478 -0
- package/dist/audio/audio-system.js.map +1 -0
- package/dist/audio/audio-utils.d.ts +71 -0
- package/dist/audio/audio-utils.d.ts.map +1 -0
- package/dist/audio/audio-utils.js +145 -0
- package/dist/audio/audio-utils.js.map +1 -0
- package/dist/audio/audio.d.ts +178 -0
- package/dist/audio/audio.d.ts.map +1 -0
- package/dist/audio/audio.js +104 -0
- package/dist/audio/audio.js.map +1 -0
- package/dist/audio/index.d.ts +11 -0
- package/dist/audio/index.d.ts.map +1 -0
- package/dist/ecs/component-registry.d.ts +54 -0
- package/dist/ecs/component-registry.d.ts.map +1 -0
- package/dist/ecs/component-registry.js +86 -0
- package/dist/ecs/component-registry.js.map +1 -0
- package/dist/ecs/component.d.ts +12 -0
- package/dist/ecs/component.d.ts.map +1 -0
- package/dist/ecs/entity.d.ts +17 -0
- package/dist/ecs/entity.d.ts.map +1 -0
- package/dist/ecs/entity.js +13 -0
- package/dist/ecs/entity.js.map +1 -0
- package/dist/ecs/index.d.ts +12 -0
- package/dist/ecs/index.d.ts.map +1 -0
- package/dist/ecs/system.d.ts +70 -0
- package/dist/ecs/system.d.ts.map +1 -0
- package/dist/ecs/system.js +79 -0
- package/dist/ecs/system.js.map +1 -0
- package/dist/ecs/world.d.ts +101 -0
- package/dist/ecs/world.d.ts.map +1 -0
- package/dist/ecs/world.js +165 -0
- package/dist/ecs/world.js.map +1 -0
- package/dist/environment/dome-gradient.d.ts +39 -0
- package/dist/environment/dome-gradient.d.ts.map +1 -0
- package/dist/environment/dome-gradient.js +30 -0
- package/dist/environment/dome-gradient.js.map +1 -0
- package/dist/environment/dome-texture.d.ts +39 -0
- package/dist/environment/dome-texture.d.ts.map +1 -0
- package/dist/environment/dome-texture.js +30 -0
- package/dist/environment/dome-texture.js.map +1 -0
- package/dist/environment/environment-system.d.ts +82 -0
- package/dist/environment/environment-system.d.ts.map +1 -0
- package/dist/environment/environment-system.js +389 -0
- package/dist/environment/environment-system.js.map +1 -0
- package/dist/environment/gradient-environment.d.ts +37 -0
- package/dist/environment/gradient-environment.d.ts.map +1 -0
- package/dist/environment/gradient-environment.js +99 -0
- package/dist/environment/gradient-environment.js.map +1 -0
- package/dist/environment/ibl-gradient.d.ts +38 -0
- package/dist/environment/ibl-gradient.d.ts.map +1 -0
- package/dist/environment/ibl-gradient.js +29 -0
- package/dist/environment/ibl-gradient.js.map +1 -0
- package/dist/environment/ibl-texture.d.ts +36 -0
- package/dist/environment/ibl-texture.d.ts.map +1 -0
- package/dist/environment/ibl-texture.js +30 -0
- package/dist/environment/ibl-texture.js.map +1 -0
- package/dist/environment/index.d.ts +12 -0
- package/dist/environment/index.d.ts.map +1 -0
- package/dist/grab/distance-grabbable.d.ts +115 -0
- package/dist/grab/distance-grabbable.d.ts.map +1 -0
- package/dist/grab/distance-grabbable.js +102 -0
- package/dist/grab/distance-grabbable.js.map +1 -0
- package/dist/grab/grab-system.d.ts +320 -0
- package/dist/grab/grab-system.d.ts.map +1 -0
- package/dist/grab/grab-system.js +239 -0
- package/dist/grab/grab-system.js.map +1 -0
- package/dist/grab/handles.d.ts +43 -0
- package/dist/grab/handles.d.ts.map +1 -0
- package/dist/grab/handles.js +132 -0
- package/dist/grab/handles.js.map +1 -0
- package/dist/grab/index.d.ts +13 -0
- package/dist/grab/index.d.ts.map +1 -0
- package/dist/grab/index.js +23 -0
- package/dist/grab/index.js.map +1 -0
- package/dist/grab/one-hand-grabbable.d.ts +80 -0
- package/dist/grab/one-hand-grabbable.d.ts.map +1 -0
- package/dist/grab/one-hand-grabbable.js +80 -0
- package/dist/grab/one-hand-grabbable.js.map +1 -0
- package/dist/grab/pointer-events-patch.d.ts +16 -0
- package/dist/grab/pointer-events-patch.d.ts.map +1 -0
- package/dist/grab/pointer-events-patch.js +223 -0
- package/dist/grab/pointer-events-patch.js.map +1 -0
- package/dist/grab/two-hands-grabbable.d.ts +103 -0
- package/dist/grab/two-hands-grabbable.d.ts.map +1 -0
- package/dist/grab/two-hands-grabbable.js +100 -0
- package/dist/grab/two-hands-grabbable.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/init/index.d.ts +9 -0
- package/dist/init/index.d.ts.map +1 -0
- package/dist/init/world-initializer.d.ts +76 -0
- package/dist/init/world-initializer.d.ts.map +1 -0
- package/dist/init/world-initializer.js +403 -0
- package/dist/init/world-initializer.js.map +1 -0
- package/dist/init/xr.d.ts +87 -0
- package/dist/init/xr.d.ts.map +1 -0
- package/dist/init/xr.js +193 -0
- package/dist/init/xr.js.map +1 -0
- package/dist/input/index.d.ts +9 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/input-system.d.ts +52 -0
- package/dist/input/input-system.d.ts.map +1 -0
- package/dist/input/input-system.js +176 -0
- package/dist/input/input-system.js.map +1 -0
- package/dist/input/state-tags.d.ts +56 -0
- package/dist/input/state-tags.d.ts.map +1 -0
- package/dist/input/state-tags.js +63 -0
- package/dist/input/state-tags.js.map +1 -0
- package/dist/level/index.d.ts +12 -0
- package/dist/level/index.d.ts.map +1 -0
- package/dist/level/level-entity-creator.d.ts +27 -0
- package/dist/level/level-entity-creator.d.ts.map +1 -0
- package/dist/level/level-entity-creator.js +110 -0
- package/dist/level/level-entity-creator.js.map +1 -0
- package/dist/level/level-glxf-importer.d.ts +22 -0
- package/dist/level/level-glxf-importer.d.ts.map +1 -0
- package/dist/level/level-glxf-importer.js +40 -0
- package/dist/level/level-glxf-importer.js.map +1 -0
- package/dist/level/level-root.d.ts +18 -0
- package/dist/level/level-root.d.ts.map +1 -0
- package/dist/level/level-root.js +25 -0
- package/dist/level/level-root.js.map +1 -0
- package/dist/level/level-system.d.ts +54 -0
- package/dist/level/level-system.d.ts.map +1 -0
- package/dist/level/level-system.js +134 -0
- package/dist/level/level-system.js.map +1 -0
- package/dist/level/level-tag.d.ts +25 -0
- package/dist/level/level-tag.d.ts.map +1 -0
- package/dist/level/level-tag.js +28 -0
- package/dist/level/level-tag.js.map +1 -0
- package/dist/locomotion/geometries/beveled-cylinder.d.ts +12 -0
- package/dist/locomotion/geometries/beveled-cylinder.d.ts.map +1 -0
- package/dist/locomotion/geometries/beveled-cylinder.js +64 -0
- package/dist/locomotion/geometries/beveled-cylinder.js.map +1 -0
- package/dist/locomotion/index.d.ts +11 -0
- package/dist/locomotion/index.d.ts.map +1 -0
- package/dist/locomotion/locomotion.d.ts +239 -0
- package/dist/locomotion/locomotion.d.ts.map +1 -0
- package/dist/locomotion/locomotion.js +256 -0
- package/dist/locomotion/locomotion.js.map +1 -0
- package/dist/locomotion/materials/line.d.ts +24 -0
- package/dist/locomotion/materials/line.d.ts.map +1 -0
- package/dist/locomotion/materials/line.js +307 -0
- package/dist/locomotion/materials/line.js.map +1 -0
- package/dist/locomotion/slide.d.ts +76 -0
- package/dist/locomotion/slide.d.ts.map +1 -0
- package/dist/locomotion/slide.js +131 -0
- package/dist/locomotion/slide.js.map +1 -0
- package/dist/locomotion/teleport.d.ts +68 -0
- package/dist/locomotion/teleport.d.ts.map +1 -0
- package/dist/locomotion/teleport.js +150 -0
- package/dist/locomotion/teleport.js.map +1 -0
- package/dist/locomotion/turn.d.ts +77 -0
- package/dist/locomotion/turn.d.ts.map +1 -0
- package/dist/locomotion/turn.js +126 -0
- package/dist/locomotion/turn.js.map +1 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js +13 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js +154 -0
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.0.10_@pmndrs_uikit@1.0.32_super-three@0.177.0_/node_modules/@pmndrs/uikitml/dist/interpreter/index.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js +66 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js +162 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js +519 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js +15 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js +32 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js +10 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +41 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js +35 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js +24 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js.map +1 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js +92 -0
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js +382 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js +2587 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js +477 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js.map +1 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js +17 -0
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js.map +1 -0
- package/dist/physics/index.d.ts +11 -0
- package/dist/physics/index.d.ts.map +1 -0
- package/dist/physics/physics-system.d.ts +314 -0
- package/dist/physics/physics-system.d.ts.map +1 -0
- package/dist/physics/physics-system.js +419 -0
- package/dist/physics/physics-system.js.map +1 -0
- package/dist/physics/physicsBody.d.ts +83 -0
- package/dist/physics/physicsBody.d.ts.map +1 -0
- package/dist/physics/physicsBody.js +60 -0
- package/dist/physics/physicsBody.js.map +1 -0
- package/dist/physics/physicsManipulation.d.ts +51 -0
- package/dist/physics/physicsManipulation.d.ts.map +1 -0
- package/dist/physics/physicsManipulation.js +46 -0
- package/dist/physics/physicsManipulation.js.map +1 -0
- package/dist/physics/physicsShape.d.ts +133 -0
- package/dist/physics/physicsShape.d.ts.map +1 -0
- package/dist/physics/physicsShape.js +97 -0
- package/dist/physics/physicsShape.js.map +1 -0
- package/dist/physics/utils.d.ts +21 -0
- package/dist/physics/utils.d.ts.map +1 -0
- package/dist/physics/utils.js +130 -0
- package/dist/physics/utils.js.map +1 -0
- package/dist/runtime/index.d.ts +8 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/three.d.ts +8 -0
- package/dist/runtime/three.d.ts.map +1 -0
- package/dist/runtime/three.js +18 -0
- package/dist/runtime/three.js.map +1 -0
- package/dist/scene-understanding/anchor.d.ts +42 -0
- package/dist/scene-understanding/anchor.d.ts.map +1 -0
- package/dist/scene-understanding/anchor.js +45 -0
- package/dist/scene-understanding/anchor.js.map +1 -0
- package/dist/scene-understanding/index.d.ts +11 -0
- package/dist/scene-understanding/index.d.ts.map +1 -0
- package/dist/scene-understanding/mesh.d.ts +67 -0
- package/dist/scene-understanding/mesh.d.ts.map +1 -0
- package/dist/scene-understanding/mesh.js +55 -0
- package/dist/scene-understanding/mesh.js.map +1 -0
- package/dist/scene-understanding/plane.d.ts +39 -0
- package/dist/scene-understanding/plane.d.ts.map +1 -0
- package/dist/scene-understanding/plane.js +42 -0
- package/dist/scene-understanding/plane.js.map +1 -0
- package/dist/scene-understanding/scene-understanding-system.d.ts +180 -0
- package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -0
- package/dist/scene-understanding/scene-understanding-system.js +342 -0
- package/dist/scene-understanding/scene-understanding-system.js.map +1 -0
- package/dist/transform/index.d.ts +10 -0
- package/dist/transform/index.d.ts.map +1 -0
- package/dist/transform/synced-quaternion.d.ts +35 -0
- package/dist/transform/synced-quaternion.d.ts.map +1 -0
- package/dist/transform/synced-quaternion.js +128 -0
- package/dist/transform/synced-quaternion.js.map +1 -0
- package/dist/transform/synced-vector3.d.ts +34 -0
- package/dist/transform/synced-vector3.d.ts.map +1 -0
- package/dist/transform/synced-vector3.js +106 -0
- package/dist/transform/synced-vector3.js.map +1 -0
- package/dist/transform/transform.d.ts +100 -0
- package/dist/transform/transform.d.ts.map +1 -0
- package/dist/transform/transform.js +194 -0
- package/dist/transform/transform.js.map +1 -0
- package/dist/types/webxr-augmentations.d.ts +23 -0
- package/dist/types/webxr-augmentations.d.ts.map +1 -0
- package/dist/ui/document.d.ts +112 -0
- package/dist/ui/document.d.ts.map +1 -0
- package/dist/ui/document.js +298 -0
- package/dist/ui/document.js.map +1 -0
- package/dist/ui/follow.d.ts +197 -0
- package/dist/ui/follow.d.ts.map +1 -0
- package/dist/ui/follow.js +143 -0
- package/dist/ui/follow.js.map +1 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/screenspace.d.ts +219 -0
- package/dist/ui/screenspace.d.ts.map +1 -0
- package/dist/ui/screenspace.js +215 -0
- package/dist/ui/screenspace.js.map +1 -0
- package/dist/ui/ui.d.ts +209 -0
- package/dist/ui/ui.d.ts.map +1 -0
- package/dist/ui/ui.js +185 -0
- package/dist/ui/ui.js.map +1 -0
- package/dist/vendor/basis/README.md +46 -0
- package/dist/vendor/basis/basis_transcoder.js +19 -0
- package/dist/vendor/basis/basis_transcoder.wasm +0 -0
- package/dist/vendor/draco/README.md +32 -0
- package/dist/vendor/draco/draco_decoder.js +34 -0
- package/dist/vendor/draco/draco_decoder.wasm +0 -0
- package/dist/vendor/draco/draco_encoder.js +33 -0
- package/dist/vendor/draco/draco_wasm_wrapper.js +117 -0
- package/dist/vendor/draco/gltf/draco_decoder.js +33 -0
- package/dist/vendor/draco/gltf/draco_decoder.wasm +0 -0
- package/dist/vendor/draco/gltf/draco_encoder.js +33 -0
- package/dist/vendor/draco/gltf/draco_wasm_wrapper.js +116 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/dist/visibility/index.d.ts +8 -0
- package/dist/visibility/index.d.ts.map +1 -0
- package/dist/visibility/visibility.d.ts +37 -0
- package/dist/visibility/visibility.d.ts.map +1 -0
- package/dist/visibility/visibility.js +52 -0
- package/dist/visibility/visibility.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import { XRInputManager } from '@iwsdk/xr-input';
|
|
2
|
+
import { signal } from '@preact/signals-core';
|
|
3
|
+
import { AssetManager } from '../asset/asset-manager.js';
|
|
4
|
+
import '../asset/cache-manager.js';
|
|
5
|
+
import { AudioSource } from '../audio/audio.js';
|
|
6
|
+
import { AudioSystem } from '../audio/audio-system.js';
|
|
7
|
+
import '../runtime/three.js';
|
|
8
|
+
import { World, VisibilityState } from '../ecs/world.js';
|
|
9
|
+
import 'elics';
|
|
10
|
+
import '../ecs/component-registry.js';
|
|
11
|
+
import { DomeTexture } from '../environment/dome-texture.js';
|
|
12
|
+
import { DomeGradient } from '../environment/dome-gradient.js';
|
|
13
|
+
import { IBLTexture } from '../environment/ibl-texture.js';
|
|
14
|
+
import { IBLGradient } from '../environment/ibl-gradient.js';
|
|
15
|
+
import { EnvironmentSystem } from '../environment/environment-system.js';
|
|
16
|
+
import '../grab/index.js';
|
|
17
|
+
import { InputSystem } from '../input/input-system.js';
|
|
18
|
+
import { Interactable, Hovered, Pressed } from '../input/state-tags.js';
|
|
19
|
+
import { LevelSystem } from '../level/level-system.js';
|
|
20
|
+
import { LevelTag } from '../level/level-tag.js';
|
|
21
|
+
import '@iwsdk/glxf';
|
|
22
|
+
import '@pmndrs/uikit';
|
|
23
|
+
import { PerspectiveCamera, WebGLRenderer, SRGBColorSpace, Scene, Clock } from 'three';
|
|
24
|
+
import { PanelUI, PanelUISystem } from '../ui/ui.js';
|
|
25
|
+
import { Follower, FollowSystem } from '../ui/follow.js';
|
|
26
|
+
import { ScreenSpace, ScreenSpaceUISystem } from '../ui/screenspace.js';
|
|
27
|
+
import { LevelRoot } from '../level/level-root.js';
|
|
28
|
+
import '../locomotion/slide.js';
|
|
29
|
+
import '../locomotion/teleport.js';
|
|
30
|
+
import '../locomotion/turn.js';
|
|
31
|
+
import { LocomotionSystem } from '../locomotion/locomotion.js';
|
|
32
|
+
import { PhysicsSystem } from '../physics/physics-system.js';
|
|
33
|
+
import { PhysicsBody } from '../physics/physicsBody.js';
|
|
34
|
+
import { PhysicsManipulation } from '../physics/physicsManipulation.js';
|
|
35
|
+
import { PhysicsShape } from '../physics/physicsShape.js';
|
|
36
|
+
import { SceneUnderstandingSystem } from '../scene-understanding/scene-understanding-system.js';
|
|
37
|
+
import { XRAnchor } from '../scene-understanding/anchor.js';
|
|
38
|
+
import { XRPlane } from '../scene-understanding/plane.js';
|
|
39
|
+
import { XRMesh } from '../scene-understanding/mesh.js';
|
|
40
|
+
import { Transform, TransformSystem } from '../transform/transform.js';
|
|
41
|
+
import { Visibility, VisibilitySystem } from '../visibility/visibility.js';
|
|
42
|
+
import { ReferenceSpaceType, SessionMode, buildSessionInit, normalizeReferenceSpec, resolveReferenceSpaceType } from './xr.js';
|
|
43
|
+
import { GrabSystem } from '../grab/grab-system.js';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
47
|
+
*
|
|
48
|
+
* This source code is licensed under the MIT license found in the
|
|
49
|
+
* LICENSE file in the root directory of this source tree.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* Initialize a new WebXR world with all required systems and setup
|
|
53
|
+
*
|
|
54
|
+
* @param sceneContainer - HTML container for the renderer canvas
|
|
55
|
+
* @param assets - Asset manifest for preloading
|
|
56
|
+
* @param options - Configuration options for the world
|
|
57
|
+
* @returns Promise that resolves to the initialized World instance
|
|
58
|
+
*/
|
|
59
|
+
/**
|
|
60
|
+
* Initialize a new WebXR world with all required systems and setup.
|
|
61
|
+
*
|
|
62
|
+
* @param sceneContainer HTML container for the renderer canvas.
|
|
63
|
+
* @param options Configuration options for the world.
|
|
64
|
+
* @returns Promise that resolves to the initialized {@link World} instance.
|
|
65
|
+
*
|
|
66
|
+
* @remarks
|
|
67
|
+
* This function powers {@link World.create}. Prefer using that static helper.
|
|
68
|
+
*/
|
|
69
|
+
function initializeWorld(container, options = {}) {
|
|
70
|
+
// Create and configure world instance
|
|
71
|
+
const world = createWorldInstance();
|
|
72
|
+
// Extract configuration options
|
|
73
|
+
const config = extractConfiguration(options);
|
|
74
|
+
// Setup core rendering components
|
|
75
|
+
const { camera, renderer, scene } = setupRendering(container, config);
|
|
76
|
+
assignRenderingToWorld(world, camera, renderer, scene);
|
|
77
|
+
// Setup input management
|
|
78
|
+
setupInputManagement(world);
|
|
79
|
+
// Store XR defaults for later explicit launch/offer calls
|
|
80
|
+
world.xrDefaults = {
|
|
81
|
+
sessionMode: config.xr.sessionMode,
|
|
82
|
+
referenceSpace: config.xr.referenceSpace,
|
|
83
|
+
features: config.xr.features,
|
|
84
|
+
};
|
|
85
|
+
// Register core systems (LevelSystem receives defaultLighting)
|
|
86
|
+
registerCoreSystems(world, config);
|
|
87
|
+
// Initialize asset manager
|
|
88
|
+
initializeAssetManager(renderer, world);
|
|
89
|
+
// Register additional systems (UI + Audio on by default)
|
|
90
|
+
registerAdditionalSystems(world);
|
|
91
|
+
// Register input and feature systems with explicit priorities
|
|
92
|
+
registerFeatureSystems(world, config);
|
|
93
|
+
// Setup render loop
|
|
94
|
+
setupRenderLoop(world, renderer);
|
|
95
|
+
// Setup resize handling
|
|
96
|
+
setupResizeHandling(camera, renderer);
|
|
97
|
+
// Manage XR offer flow if configured
|
|
98
|
+
if (config.xr.offer && config.xr.offer !== 'none') {
|
|
99
|
+
manageOfferFlow(world, config.xr.offer);
|
|
100
|
+
}
|
|
101
|
+
// Return promise that resolves after asset preloading
|
|
102
|
+
return finalizeInitialization(world, options.assets).then(async (w) => {
|
|
103
|
+
var _a;
|
|
104
|
+
// Load initial level or create empty level
|
|
105
|
+
const levelUrl = typeof options.level === 'string' ? options.level : (_a = options.level) === null || _a === void 0 ? void 0 : _a.url;
|
|
106
|
+
if (levelUrl) {
|
|
107
|
+
await w.loadLevel(levelUrl);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
await w.loadLevel();
|
|
111
|
+
}
|
|
112
|
+
return w;
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Create a new World instance with basic ECS setup
|
|
117
|
+
*/
|
|
118
|
+
function createWorldInstance() {
|
|
119
|
+
const world = new World();
|
|
120
|
+
world
|
|
121
|
+
.registerComponent(Transform)
|
|
122
|
+
.registerComponent(Visibility)
|
|
123
|
+
.registerComponent(LevelTag)
|
|
124
|
+
.registerSystem(TransformSystem)
|
|
125
|
+
.registerSystem(VisibilitySystem);
|
|
126
|
+
return world;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Extract and normalize configuration options
|
|
130
|
+
*/
|
|
131
|
+
function extractConfiguration(options) {
|
|
132
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
|
|
133
|
+
return {
|
|
134
|
+
cameraFov: (_b = (_a = options.render) === null || _a === void 0 ? void 0 : _a.fov) !== null && _b !== void 0 ? _b : 50,
|
|
135
|
+
cameraNear: (_d = (_c = options.render) === null || _c === void 0 ? void 0 : _c.near) !== null && _d !== void 0 ? _d : 0.1,
|
|
136
|
+
cameraFar: (_f = (_e = options.render) === null || _e === void 0 ? void 0 : _e.far) !== null && _f !== void 0 ? _f : 200,
|
|
137
|
+
defaultLighting: (_h = (_g = options.render) === null || _g === void 0 ? void 0 : _g.defaultLighting) !== null && _h !== void 0 ? _h : true,
|
|
138
|
+
xr: {
|
|
139
|
+
sessionMode: (_k = (_j = options.xr) === null || _j === void 0 ? void 0 : _j.sessionMode) !== null && _k !== void 0 ? _k : SessionMode.ImmersiveVR,
|
|
140
|
+
referenceSpace: (_m = (_l = options.xr) === null || _l === void 0 ? void 0 : _l.referenceSpace) !== null && _m !== void 0 ? _m : ReferenceSpaceType.LocalFloor,
|
|
141
|
+
features: (_o = options.xr) === null || _o === void 0 ? void 0 : _o.features,
|
|
142
|
+
offer: (_q = (_p = options.xr) === null || _p === void 0 ? void 0 : _p.offer) !== null && _q !== void 0 ? _q : 'always',
|
|
143
|
+
},
|
|
144
|
+
features: {
|
|
145
|
+
locomotion: (_s = (_r = options.features) === null || _r === void 0 ? void 0 : _r.locomotion) !== null && _s !== void 0 ? _s : false,
|
|
146
|
+
grabbing: (_u = (_t = options.features) === null || _t === void 0 ? void 0 : _t.grabbing) !== null && _u !== void 0 ? _u : false,
|
|
147
|
+
physics: (_w = (_v = options.features) === null || _v === void 0 ? void 0 : _v.physics) !== null && _w !== void 0 ? _w : false,
|
|
148
|
+
sceneUnderstanding: (_y = (_x = options.features) === null || _x === void 0 ? void 0 : _x.sceneUnderstanding) !== null && _y !== void 0 ? _y : false,
|
|
149
|
+
spatialUI: (_0 = (_z = options.features) === null || _z === void 0 ? void 0 : _z.spatialUI) !== null && _0 !== void 0 ? _0 : true,
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Setup camera, renderer, and scene
|
|
155
|
+
*/
|
|
156
|
+
function setupRendering(sceneContainer, config) {
|
|
157
|
+
// Camera Setup
|
|
158
|
+
const camera = new PerspectiveCamera(config.cameraFov, window.innerWidth / window.innerHeight, config.cameraNear, config.cameraFar);
|
|
159
|
+
camera.position.set(0, 1.7, 0);
|
|
160
|
+
// Renderer Setup
|
|
161
|
+
const renderer = new WebGLRenderer({
|
|
162
|
+
antialias: true,
|
|
163
|
+
alpha: config.xr.sessionMode === SessionMode.ImmersiveAR,
|
|
164
|
+
// @ts-ignore
|
|
165
|
+
multiviewStereo: true,
|
|
166
|
+
});
|
|
167
|
+
renderer.setPixelRatio(window.devicePixelRatio);
|
|
168
|
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
|
169
|
+
renderer.outputColorSpace = SRGBColorSpace;
|
|
170
|
+
renderer.xr.enabled = true;
|
|
171
|
+
sceneContainer.appendChild(renderer.domElement);
|
|
172
|
+
// Scene Setup
|
|
173
|
+
const scene = new Scene();
|
|
174
|
+
return { camera, renderer, scene };
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Assign rendering components to world instance
|
|
178
|
+
*/
|
|
179
|
+
function assignRenderingToWorld(world, camera, renderer, scene) {
|
|
180
|
+
world.scene = scene;
|
|
181
|
+
world.camera = camera;
|
|
182
|
+
world.renderer = renderer;
|
|
183
|
+
// Scene entity (wrap Scene in an entity for parenting convenience)
|
|
184
|
+
world.sceneEntity = world.createTransformEntity(scene);
|
|
185
|
+
// Create a default level root so activeLevel is always defined
|
|
186
|
+
const levelRootEntity = world.createTransformEntity(undefined, {
|
|
187
|
+
parent: world.sceneEntity,
|
|
188
|
+
});
|
|
189
|
+
levelRootEntity.object3D.name = 'LevelRoot';
|
|
190
|
+
// @ts-ignore init signal now; LevelSystem will enforce identity each frame
|
|
191
|
+
world.activeLevel = signal(levelRootEntity);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Setup default lighting environment using Unity-style gradient ambient lighting
|
|
195
|
+
*/
|
|
196
|
+
// default lighting is attached per level by LevelSystem
|
|
197
|
+
/**
|
|
198
|
+
* Setup XR input management
|
|
199
|
+
*/
|
|
200
|
+
function setupInputManagement(world) {
|
|
201
|
+
const inputManager = new XRInputManager({
|
|
202
|
+
camera: world.camera,
|
|
203
|
+
scene: world.scene,
|
|
204
|
+
assetLoader: AssetManager,
|
|
205
|
+
});
|
|
206
|
+
world.scene.add(inputManager.xrOrigin);
|
|
207
|
+
inputManager.xrOrigin.add(world.camera);
|
|
208
|
+
world.player = inputManager.xrOrigin;
|
|
209
|
+
world.input = inputManager;
|
|
210
|
+
return inputManager;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Manage offering XR sessions according to the configured offer policy.
|
|
214
|
+
* - 'once': offer after init; no re-offer on end
|
|
215
|
+
* - 'always': offer after init and re-offer whenever the session ends
|
|
216
|
+
*/
|
|
217
|
+
function manageOfferFlow(world, mode) {
|
|
218
|
+
let offering = false;
|
|
219
|
+
const offer = async () => {
|
|
220
|
+
var _a, _b, _c, _d;
|
|
221
|
+
if (offering || world.session) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
offering = true;
|
|
225
|
+
try {
|
|
226
|
+
const opts = (_a = world.xrDefaults) !== null && _a !== void 0 ? _a : { sessionMode: SessionMode.ImmersiveVR };
|
|
227
|
+
const sessionInit = buildSessionInit(opts);
|
|
228
|
+
const session = await ((_c = (_b = navigator.xr) === null || _b === void 0 ? void 0 : _b.offerSession) === null || _c === void 0 ? void 0 : _c.call(_b, (_d = opts.sessionMode) !== null && _d !== void 0 ? _d : SessionMode.ImmersiveVR,
|
|
229
|
+
// if the dynamic import failed, rebuild via launchXR path by calling request, but we only want offer
|
|
230
|
+
sessionInit));
|
|
231
|
+
if (!session) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const refSpec = normalizeReferenceSpec(opts.referenceSpace);
|
|
235
|
+
session.addEventListener('end', onEnd);
|
|
236
|
+
try {
|
|
237
|
+
const resolvedType = await resolveReferenceSpaceType(session, refSpec.type, refSpec.required ? [] : refSpec.fallbackOrder);
|
|
238
|
+
world.renderer.xr.setReferenceSpaceType(resolvedType);
|
|
239
|
+
await world.renderer.xr.setSession(session);
|
|
240
|
+
world.session = session;
|
|
241
|
+
}
|
|
242
|
+
catch (err) {
|
|
243
|
+
console.error('[XR] Failed to acquire reference space:', err);
|
|
244
|
+
try {
|
|
245
|
+
await session.end();
|
|
246
|
+
}
|
|
247
|
+
catch (_e) { }
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
finally {
|
|
251
|
+
offering = false;
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
const onEnd = () => {
|
|
255
|
+
var _a;
|
|
256
|
+
(_a = world.session) === null || _a === void 0 ? void 0 : _a.removeEventListener('end', onEnd);
|
|
257
|
+
world.session = undefined;
|
|
258
|
+
if (mode === 'always') {
|
|
259
|
+
// re-offer after session ends
|
|
260
|
+
offer();
|
|
261
|
+
}
|
|
262
|
+
};
|
|
263
|
+
// initial offer once world is ready
|
|
264
|
+
offer();
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Register core interaction systems
|
|
268
|
+
*/
|
|
269
|
+
function registerCoreSystems(world, config) {
|
|
270
|
+
world
|
|
271
|
+
.registerComponent(Interactable)
|
|
272
|
+
.registerComponent(Hovered)
|
|
273
|
+
.registerComponent(Pressed)
|
|
274
|
+
.registerComponent(LevelRoot)
|
|
275
|
+
// New split components
|
|
276
|
+
.registerComponent(DomeTexture)
|
|
277
|
+
.registerComponent(DomeGradient)
|
|
278
|
+
.registerComponent(IBLTexture)
|
|
279
|
+
.registerComponent(IBLGradient)
|
|
280
|
+
// Unified environment system (background + IBL)
|
|
281
|
+
.registerSystem(EnvironmentSystem)
|
|
282
|
+
.registerSystem(LevelSystem, {
|
|
283
|
+
configData: { defaultLighting: config.defaultLighting },
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Initialize the asset manager
|
|
288
|
+
*/
|
|
289
|
+
function initializeAssetManager(renderer, world) {
|
|
290
|
+
AssetManager.init(renderer, world);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Register optional systems based on configuration
|
|
294
|
+
*/
|
|
295
|
+
function registerAdditionalSystems(world) {
|
|
296
|
+
// Audio system remains always-on
|
|
297
|
+
world.registerComponent(AudioSource).registerSystem(AudioSystem);
|
|
298
|
+
}
|
|
299
|
+
function registerFeatureSystems(world, config) {
|
|
300
|
+
const locomotion = config.features.locomotion;
|
|
301
|
+
const locomotionEnabled = !!locomotion;
|
|
302
|
+
const grabbingEnabled = !!config.features.grabbing;
|
|
303
|
+
const physicsEnabled = !!config.features.physics;
|
|
304
|
+
const sceneUnderstandingEnabled = !!config.features.sceneUnderstanding;
|
|
305
|
+
const spatialUI = config.features.spatialUI;
|
|
306
|
+
const spatialUIEnabled = !!spatialUI;
|
|
307
|
+
if (locomotionEnabled) {
|
|
308
|
+
const locOpts = typeof locomotion === 'object' && locomotion
|
|
309
|
+
? { useWorker: locomotion.useWorker }
|
|
310
|
+
: undefined;
|
|
311
|
+
world.registerSystem(LocomotionSystem, {
|
|
312
|
+
priority: -5,
|
|
313
|
+
configData: locOpts,
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
world.registerSystem(InputSystem, { priority: -4 });
|
|
317
|
+
if (grabbingEnabled) {
|
|
318
|
+
world.registerSystem(GrabSystem, { priority: -3 });
|
|
319
|
+
}
|
|
320
|
+
// Physics runs after Grab so it can respect Pressed overrides
|
|
321
|
+
if (physicsEnabled) {
|
|
322
|
+
world
|
|
323
|
+
.registerComponent(PhysicsBody)
|
|
324
|
+
.registerComponent(PhysicsShape)
|
|
325
|
+
.registerComponent(PhysicsManipulation)
|
|
326
|
+
.registerSystem(PhysicsSystem, { priority: -2 });
|
|
327
|
+
}
|
|
328
|
+
// Scene Understanding updates plane/mesh/anchor debug after input/physics
|
|
329
|
+
if (sceneUnderstandingEnabled) {
|
|
330
|
+
world
|
|
331
|
+
.registerComponent(XRPlane)
|
|
332
|
+
.registerComponent(XRMesh)
|
|
333
|
+
.registerComponent(XRAnchor)
|
|
334
|
+
.registerSystem(SceneUnderstandingSystem, { priority: -1 });
|
|
335
|
+
}
|
|
336
|
+
// Spatial UI systems (Panel, ScreenSpace, Follow)
|
|
337
|
+
if (spatialUIEnabled) {
|
|
338
|
+
const forwardHtmlEvents = typeof spatialUI === 'object' && spatialUI
|
|
339
|
+
? spatialUI.forwardHtmlEvents
|
|
340
|
+
: undefined;
|
|
341
|
+
const kitsVal = typeof spatialUI === 'object' && spatialUI ? spatialUI.kits : undefined;
|
|
342
|
+
const kitsObj = Array.isArray(kitsVal)
|
|
343
|
+
? Object.assign({}, ...kitsVal)
|
|
344
|
+
: kitsVal;
|
|
345
|
+
world
|
|
346
|
+
.registerComponent(PanelUI)
|
|
347
|
+
.registerComponent(ScreenSpace)
|
|
348
|
+
.registerComponent(Follower)
|
|
349
|
+
.registerSystem(PanelUISystem, {
|
|
350
|
+
configData: {
|
|
351
|
+
...(forwardHtmlEvents !== undefined ? { forwardHtmlEvents } : {}),
|
|
352
|
+
...(kitsObj ? { kits: kitsObj } : {}),
|
|
353
|
+
},
|
|
354
|
+
})
|
|
355
|
+
.registerSystem(ScreenSpaceUISystem)
|
|
356
|
+
.registerSystem(FollowSystem);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Setup the main render loop
|
|
361
|
+
*/
|
|
362
|
+
function setupRenderLoop(world, renderer) {
|
|
363
|
+
const clock = new Clock();
|
|
364
|
+
const render = () => {
|
|
365
|
+
var _a, _b;
|
|
366
|
+
const delta = clock.getDelta();
|
|
367
|
+
const elapsedTime = clock.elapsedTime;
|
|
368
|
+
world.visibilityState.value = ((_b = (_a = world.session) === null || _a === void 0 ? void 0 : _a.visibilityState) !== null && _b !== void 0 ? _b : VisibilityState.NonImmersive);
|
|
369
|
+
// Run ECS systems in priority order (InputSystem => LocomotionSystem => GrabSystem)
|
|
370
|
+
world.update(delta, elapsedTime);
|
|
371
|
+
renderer.render(world.scene, world.camera);
|
|
372
|
+
};
|
|
373
|
+
renderer.setAnimationLoop(render);
|
|
374
|
+
// No explicit sessionend handling required on r177; WebXRManager handles
|
|
375
|
+
// render target and canvas sizing restoration internally.
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Setup window resize handling
|
|
379
|
+
*/
|
|
380
|
+
function setupResizeHandling(camera, renderer) {
|
|
381
|
+
const onWindowResize = () => {
|
|
382
|
+
camera.aspect = window.innerWidth / window.innerHeight;
|
|
383
|
+
camera.updateProjectionMatrix();
|
|
384
|
+
renderer.setSize(window.innerWidth, window.innerHeight);
|
|
385
|
+
};
|
|
386
|
+
window.addEventListener('resize', onWindowResize, false);
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Finalize initialization with asset preloading
|
|
390
|
+
*/
|
|
391
|
+
function finalizeInitialization(world, assets) {
|
|
392
|
+
return new Promise((resolve, reject) => {
|
|
393
|
+
if (!assets || Object.keys(assets).length === 0) {
|
|
394
|
+
return resolve(world);
|
|
395
|
+
}
|
|
396
|
+
AssetManager.preloadAssets(assets)
|
|
397
|
+
.then(() => resolve(world))
|
|
398
|
+
.catch(reject);
|
|
399
|
+
});
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
export { initializeWorld };
|
|
403
|
+
//# sourceMappingURL=world-initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world-initializer.js","sources":["../../src/init/world-initializer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import type { World } from '../ecs/index.js';
|
|
8
|
+
/** WebXR session modes supported by IWSDK. @category Runtime */
|
|
9
|
+
export declare enum SessionMode {
|
|
10
|
+
ImmersiveVR = "immersive-vr",
|
|
11
|
+
ImmersiveAR = "immersive-ar"
|
|
12
|
+
}
|
|
13
|
+
/** Common WebXR reference spaces. @category Runtime */
|
|
14
|
+
export declare enum ReferenceSpaceType {
|
|
15
|
+
BoundedFloor = "bounded-floor",
|
|
16
|
+
Local = "local",
|
|
17
|
+
LocalFloor = "local-floor",
|
|
18
|
+
Unbounded = "unbounded",
|
|
19
|
+
Viewer = "viewer"
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Flag style for enabling a feature.
|
|
23
|
+
* - `true` => request as optional
|
|
24
|
+
* - `{ required: true }` => request as required
|
|
25
|
+
* - `false`/`undefined` => do not request
|
|
26
|
+
* @category Runtime
|
|
27
|
+
*/
|
|
28
|
+
export type FeatureFlag = boolean | {
|
|
29
|
+
required?: boolean;
|
|
30
|
+
};
|
|
31
|
+
/** Depth sensing feature configuration. @category Runtime */
|
|
32
|
+
export type DepthSensingFlag = boolean | {
|
|
33
|
+
required?: boolean;
|
|
34
|
+
/** Depth usage preference. */
|
|
35
|
+
usage?: 'cpu-optimized' | 'gpu-optimized';
|
|
36
|
+
/** Depth data format preference. */
|
|
37
|
+
format?: 'luminance-alpha' | 'float32';
|
|
38
|
+
};
|
|
39
|
+
/** Structured feature flags supported by IWSDK. @category Runtime */
|
|
40
|
+
export type XRFeatureOptions = {
|
|
41
|
+
handTracking?: FeatureFlag;
|
|
42
|
+
anchors?: FeatureFlag;
|
|
43
|
+
hitTest?: FeatureFlag;
|
|
44
|
+
planeDetection?: FeatureFlag;
|
|
45
|
+
meshDetection?: FeatureFlag;
|
|
46
|
+
lightEstimation?: FeatureFlag;
|
|
47
|
+
depthSensing?: DepthSensingFlag;
|
|
48
|
+
/**
|
|
49
|
+
* WebXR Layers. Defaults to optional even if not set, to maximize success.
|
|
50
|
+
* You may set `{ required: true }` to require layers.
|
|
51
|
+
*/
|
|
52
|
+
layers?: FeatureFlag;
|
|
53
|
+
};
|
|
54
|
+
/** Reference space configuration. @category Runtime */
|
|
55
|
+
export type ReferenceSpaceSpec = ReferenceSpaceType | {
|
|
56
|
+
/** Preferred reference space type. @defaultValue 'local-floor' */
|
|
57
|
+
type?: ReferenceSpaceType;
|
|
58
|
+
/** If true, do not fall back to other spaces on failure. */
|
|
59
|
+
required?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Fallback order if preferred type is unavailable.
|
|
62
|
+
* @defaultValue ['local', 'viewer']
|
|
63
|
+
*/
|
|
64
|
+
fallbackOrder?: ReferenceSpaceType[];
|
|
65
|
+
};
|
|
66
|
+
/** Options for launching an XR session. @category Runtime */
|
|
67
|
+
export type XROptions = {
|
|
68
|
+
/** Session mode to request. @defaultValue SessionMode.ImmersiveVR */
|
|
69
|
+
sessionMode?: SessionMode;
|
|
70
|
+
/** Reference space policy (preferred + fallback). */
|
|
71
|
+
referenceSpace?: ReferenceSpaceSpec;
|
|
72
|
+
/** Structured feature flags; avoids raw string arrays. */
|
|
73
|
+
features?: XRFeatureOptions;
|
|
74
|
+
};
|
|
75
|
+
/** Build `XRSessionInit` from structured feature flags. */
|
|
76
|
+
export declare function buildSessionInit(opts: XROptions): XRSessionInit;
|
|
77
|
+
export declare function normalizeReferenceSpec(spec?: ReferenceSpaceSpec): Required<Exclude<ReferenceSpaceSpec, ReferenceSpaceType>>;
|
|
78
|
+
export declare function resolveReferenceSpaceType(session: XRSession, preferred: ReferenceSpaceType, fallbacks: ReferenceSpaceType[]): Promise<ReferenceSpaceType>;
|
|
79
|
+
/**
|
|
80
|
+
* Explicitly request a WebXR session with the given options.
|
|
81
|
+
*
|
|
82
|
+
* @param world Target world.
|
|
83
|
+
* @param options Partial overrides merged with {@link World.xrDefaults}.
|
|
84
|
+
* @category Runtime
|
|
85
|
+
*/
|
|
86
|
+
export declare function launchXR(world: World, options?: Partial<XROptions>): void;
|
|
87
|
+
//# sourceMappingURL=xr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xr.d.ts","sourceRoot":"","sources":["../../src/init/xr.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,gEAAgE;AAChE,oBAAY,WAAW;IACrB,WAAW,iBAAiB;IAC5B,WAAW,iBAAiB;CAC7B;AAED,uDAAuD;AACvD,oBAAY,kBAAkB;IAC5B,YAAY,kBAAkB;IAC9B,KAAK,UAAU;IACf,UAAU,gBAAgB;IAC1B,SAAS,cAAc;IACvB,MAAM,WAAW;CAClB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE3D,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,eAAe,GAAG,eAAe,CAAC;IAC1C,oCAAoC;IACpC,MAAM,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACxC,CAAC;AAEN,qEAAqE;AACrE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,uDAAuD;AACvD,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB;IACE,kEAAkE;IAClE,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACtC,CAAC;AAEN,6DAA6D;AAC7D,MAAM,MAAM,SAAS,GAAG;IACtB,qEAAqE;IACrE,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qDAAqD;IACrD,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAsBF,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CA4E/D;AAED,wBAAgB,sBAAsB,CACpC,IAAI,CAAC,EAAE,kBAAkB,GACxB,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC,CAgB3D;AAiBD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,SAAS,EAClB,SAAS,EAAE,kBAAkB,EAC7B,SAAS,EAAE,kBAAkB,EAAE,GAC9B,OAAO,CAAC,kBAAkB,CAAC,CAqB7B;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,QAuClE"}
|