@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,12 @@
|
|
|
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
|
+
export * from './system.js';
|
|
8
|
+
export * from './world.js';
|
|
9
|
+
export * from './component.js';
|
|
10
|
+
export * from './entity.js';
|
|
11
|
+
export * from './component-registry.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ecs/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
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 { XRInputManager, XROrigin } from '@iwsdk/xr-input';
|
|
8
|
+
import { Signal } from '@preact/signals-core';
|
|
9
|
+
import { System as ElicsSystem, Query, SystemConstructor, SystemQueries, SystemSchema, TypeValueToType } from 'elics';
|
|
10
|
+
import type { QueryManager } from 'elics/lib/query-manager.js';
|
|
11
|
+
import { PerspectiveCamera, Scene, WebGLRenderer, WebXRManager } from '../runtime/index.js';
|
|
12
|
+
import { Entity } from './entity.js';
|
|
13
|
+
import type { VisibilityState, World } from './world';
|
|
14
|
+
type SystemConfigSignals<S extends SystemSchema> = {
|
|
15
|
+
[K in keyof S]: Signal<TypeValueToType<S[K]['type']>>;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* System base interface wired to the IWSDK World, renderer, and XR runtime.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* - `createSystem(queries, schema)` returns a class that implements this interface.
|
|
22
|
+
* - Config values are exposed as reactive Signals on `this.config.<key>`.
|
|
23
|
+
* - Common world resources are available as readonly properties (`player`, `input`,
|
|
24
|
+
* `scene`, `camera`, `renderer`, `visibilityState`).
|
|
25
|
+
* - Use `cleanupFuncs.push(() => ...)` to register teardown callbacks.
|
|
26
|
+
*
|
|
27
|
+
* @category ECS
|
|
28
|
+
*/
|
|
29
|
+
export interface System<S extends SystemSchema, Q extends SystemQueries> extends ElicsSystem<S, Q> {
|
|
30
|
+
isPaused: boolean;
|
|
31
|
+
config: SystemConfigSignals<S>;
|
|
32
|
+
queries: Record<keyof Q, Query>;
|
|
33
|
+
world: World;
|
|
34
|
+
queryManager: QueryManager;
|
|
35
|
+
priority: number;
|
|
36
|
+
globals: Record<string, any>;
|
|
37
|
+
xrManager: WebXRManager;
|
|
38
|
+
xrFrame: XRFrame;
|
|
39
|
+
readonly player: XROrigin;
|
|
40
|
+
readonly input: XRInputManager;
|
|
41
|
+
readonly scene: Scene;
|
|
42
|
+
readonly camera: PerspectiveCamera;
|
|
43
|
+
readonly renderer: WebGLRenderer;
|
|
44
|
+
readonly visibilityState: Signal<VisibilityState>;
|
|
45
|
+
readonly cleanupFuncs: Array<() => void>;
|
|
46
|
+
init(): void;
|
|
47
|
+
update(delta: number, time: number): void;
|
|
48
|
+
play(): void;
|
|
49
|
+
stop(): void;
|
|
50
|
+
createEntity: () => Entity;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Create a strongly-typed System class with query bindings and reactive config.
|
|
54
|
+
*
|
|
55
|
+
* @param queries Elics query descriptors keyed by name.
|
|
56
|
+
* @param schema Option map of config defaults and Types.
|
|
57
|
+
* @returns A System constructor to `export class MySystem extends createSystem(...) { ... }`.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* export class Rotator extends createSystem({ items: { required: [Transform] } }, {
|
|
61
|
+
* speed: { type: Types.Float32, default: 1 }
|
|
62
|
+
* }) {
|
|
63
|
+
* update(dt:number){ this.queries.items.entities.forEach(e=> e.object3D.rotateY(dt*this.config.speed.value)) }
|
|
64
|
+
* }
|
|
65
|
+
*
|
|
66
|
+
* @category ECS
|
|
67
|
+
*/
|
|
68
|
+
export declare function createSystem<S extends SystemSchema, Q extends SystemQueries>(queries?: Q, schema?: S): SystemConstructor<S, Q, World, System<S, Q>>;
|
|
69
|
+
export {};
|
|
70
|
+
//# sourceMappingURL=system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/ecs/system.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAU,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,MAAM,IAAI,WAAW,EACrB,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,eAAe,EAChB,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,OAAO,EACL,iBAAiB,EACjB,KAAK,EACL,aAAa,EACb,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEtD,KAAK,mBAAmB,CAAC,CAAC,SAAS,YAAY,IAAI;KAChD,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,CACrE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,SAAS,EAAE,YAAY,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAClD,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAEzC,IAAI,IAAI,IAAI,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,aAAa,EAC1E,OAAO,GAAE,CAAW,EACpB,MAAM,GAAE,CAAW,GAClB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAsE9C"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { signal } from '@preact/signals-core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Create a strongly-typed System class with query bindings and reactive config.
|
|
11
|
+
*
|
|
12
|
+
* @param queries Elics query descriptors keyed by name.
|
|
13
|
+
* @param schema Option map of config defaults and Types.
|
|
14
|
+
* @returns A System constructor to `export class MySystem extends createSystem(...) { ... }`.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* export class Rotator extends createSystem({ items: { required: [Transform] } }, {
|
|
18
|
+
* speed: { type: Types.Float32, default: 1 }
|
|
19
|
+
* }) {
|
|
20
|
+
* update(dt:number){ this.queries.items.entities.forEach(e=> e.object3D.rotateY(dt*this.config.speed.value)) }
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* @category ECS
|
|
24
|
+
*/
|
|
25
|
+
function createSystem(queries = {}, schema = {}) {
|
|
26
|
+
var _a;
|
|
27
|
+
return _a = class {
|
|
28
|
+
constructor(world, queryManager, priority) {
|
|
29
|
+
this.world = world;
|
|
30
|
+
this.queryManager = queryManager;
|
|
31
|
+
this.priority = priority;
|
|
32
|
+
this.isPaused = false;
|
|
33
|
+
this.config = {};
|
|
34
|
+
this.cleanupFuncs = [];
|
|
35
|
+
for (const key in schema) {
|
|
36
|
+
this.config[key] = signal(schema[key].default);
|
|
37
|
+
}
|
|
38
|
+
this.player = world.player;
|
|
39
|
+
this.input = world.input;
|
|
40
|
+
this.scene = world.scene;
|
|
41
|
+
this.camera = world.camera;
|
|
42
|
+
this.renderer = world.renderer;
|
|
43
|
+
this.visibilityState = world.visibilityState;
|
|
44
|
+
}
|
|
45
|
+
get globals() {
|
|
46
|
+
return this.world.globals;
|
|
47
|
+
}
|
|
48
|
+
get xrManager() {
|
|
49
|
+
return this.world.renderer.xr;
|
|
50
|
+
}
|
|
51
|
+
get xrFrame() {
|
|
52
|
+
return this.xrManager.getFrame();
|
|
53
|
+
}
|
|
54
|
+
createEntity() {
|
|
55
|
+
return this.world.createEntity();
|
|
56
|
+
}
|
|
57
|
+
createTransformEntity(object, parent) {
|
|
58
|
+
return this.world.createTransformEntity(object, parent);
|
|
59
|
+
}
|
|
60
|
+
init() { }
|
|
61
|
+
update(_delta, _time) { }
|
|
62
|
+
play() {
|
|
63
|
+
this.isPaused = false;
|
|
64
|
+
}
|
|
65
|
+
stop() {
|
|
66
|
+
this.isPaused = true;
|
|
67
|
+
}
|
|
68
|
+
destroy() {
|
|
69
|
+
this.cleanupFuncs.forEach((func) => func());
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
_a.schema = schema,
|
|
73
|
+
_a.isSystem = true,
|
|
74
|
+
_a.queries = queries,
|
|
75
|
+
_a;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export { createSystem };
|
|
79
|
+
//# sourceMappingURL=system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system.js","sources":["../../src/ecs/system.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA;;;;;AAKG;AAkEH;;;;;;;;;;;;;;;AAeG;SACa,YAAY,CAC1B,UAAa,EAAO,EACpB,SAAY,EAAO,EAAA;;IAEnB,OAAA,EAAA,GAAO,MAAA;AAiBL,YAAA,WAAA,CACkB,KAAY,EACrB,YAA0B,EAC1B,QAAgB,EAAA;gBAFP,IAAA,CAAA,KAAK,GAAL,KAAK;gBACd,IAAA,CAAA,YAAY,GAAZ,YAAY;gBACZ,IAAA,CAAA,QAAQ,GAAR,QAAQ;gBAfV,IAAA,CAAA,QAAQ,GAAY,KAAK;gBAEzB,IAAA,CAAA,MAAM,GAAG,EAA4B;gBAQ5B,IAAA,CAAA,YAAY,GAAsB,EAAE;AAOlD,gBAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACxB,oBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAc,CAAC;gBACvD;AACA,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,gBAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;AAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ;AAC9B,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe;YAC9C;AAEA,YAAA,IAAI,OAAO,GAAA;AACT,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B;AAEA,YAAA,IAAI,SAAS,GAAA;AACX,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAC/B;AAEA,YAAA,IAAI,OAAO,GAAA;AACT,gBAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YAClC;YAEA,YAAY,GAAA;AACV,gBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE;YAClC;YAEA,qBAAqB,CAAC,MAAiB,EAAE,MAAe,EAAA;gBACtD,OAAO,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;YACzD;AAEA,YAAA,IAAI,KAAU;AAEd,YAAA,MAAM,CAAC,MAAc,EAAE,KAAa,IAAS;YAE7C,IAAI,GAAA;AACF,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;YACvB;YAEA,IAAI,GAAA;AACF,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;YACtB;YAEA,OAAO,GAAA;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7C;AACD,SAAA;AAnEQ,QAAA,EAAA,CAAA,MAAM,GAAG,MAAO;AAChB,QAAA,EAAA,CAAA,QAAQ,GAAG,IAAK;AAChB,QAAA,EAAA,CAAA,OAAO,GAAG,OAAQ;AAiEzB,QAAA,EAAA;AACJ;;;;"}
|
|
@@ -0,0 +1,101 @@
|
|
|
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 { XRInputManager, XROrigin } from '@iwsdk/xr-input';
|
|
8
|
+
import { Signal } from '@preact/signals-core';
|
|
9
|
+
import { AnyComponent, World as ElicsWorld } from 'elics';
|
|
10
|
+
import { AssetManager } from '../asset/index.js';
|
|
11
|
+
import { WorldOptions, XROptions } from '../init/index.js';
|
|
12
|
+
import { Object3D, PerspectiveCamera, Scene, WebGLRenderer } from '../runtime/index.js';
|
|
13
|
+
import { Entity } from './entity.js';
|
|
14
|
+
export declare enum VisibilityState {
|
|
15
|
+
NonImmersive = "non-immersive",
|
|
16
|
+
Hidden = "hidden",
|
|
17
|
+
Visible = "visible",
|
|
18
|
+
VisibleBlurred = "visible-blurred"
|
|
19
|
+
}
|
|
20
|
+
export type GradientColors = {
|
|
21
|
+
sky: number;
|
|
22
|
+
equator: number;
|
|
23
|
+
ground: number;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* World is the root ECS container, Three.js scene/renderer owner, and XR session gateway.
|
|
27
|
+
*
|
|
28
|
+
* @remarks
|
|
29
|
+
* - Construct a world with {@link World.create} (recommended) which wires the renderer, scene, default systems
|
|
30
|
+
* (Input, UI, Audio, Level) and starts the render loop.
|
|
31
|
+
* - The world exposes convenience handles like {@link World.input | input} (XRInputManager),
|
|
32
|
+
* {@link World.player | player} (XROrigin), and {@link World.assetManager}.
|
|
33
|
+
* - Feature systems (Grabbing, Locomotion) are opt‑in via {@link WorldOptions.features}.
|
|
34
|
+
*
|
|
35
|
+
* @category Runtime
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* import { World, SessionMode } from '@iwsdk/core';
|
|
39
|
+
*
|
|
40
|
+
* const container = document.getElementById('scene-container') as HTMLDivElement;
|
|
41
|
+
* const world = await World.create(container, {
|
|
42
|
+
* xr: { sessionMode: SessionMode.ImmersiveVR },
|
|
43
|
+
* features: { enableLocomotion: true, enableGrabbing: true },
|
|
44
|
+
* level: '/glxf/Composition.glxf'
|
|
45
|
+
* });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare class World extends ElicsWorld {
|
|
49
|
+
input: XRInputManager;
|
|
50
|
+
player: XROrigin;
|
|
51
|
+
assetManager: typeof AssetManager;
|
|
52
|
+
scene: Scene;
|
|
53
|
+
sceneEntity: Entity;
|
|
54
|
+
activeLevel: Signal<Entity>;
|
|
55
|
+
activeLevelId: string;
|
|
56
|
+
camera: PerspectiveCamera;
|
|
57
|
+
renderer: WebGLRenderer;
|
|
58
|
+
session: XRSession | undefined;
|
|
59
|
+
visibilityState: Signal<VisibilityState>;
|
|
60
|
+
requestedLevelUrl: string | undefined;
|
|
61
|
+
_resolveLevelLoad: (() => void) | undefined;
|
|
62
|
+
/** Default XR options used when calling {@link World.launchXR} without overrides. */
|
|
63
|
+
xrDefaults: import('../init/xr.js').XROptions | undefined;
|
|
64
|
+
constructor();
|
|
65
|
+
createEntity(): Entity;
|
|
66
|
+
createTransformEntity(object?: Object3D, parentOrOptions?: Entity | {
|
|
67
|
+
parent?: Entity;
|
|
68
|
+
persistent?: boolean;
|
|
69
|
+
}): Entity;
|
|
70
|
+
launchXR(xrOptions?: Partial<XROptions>): void;
|
|
71
|
+
/** Request a level change; LevelSystem performs the work and resolves. */
|
|
72
|
+
loadLevel(url?: string): Promise<void>;
|
|
73
|
+
exitXR(): void;
|
|
74
|
+
update(delta: number, time: number): void;
|
|
75
|
+
registerComponent(component: AnyComponent): this;
|
|
76
|
+
getActiveRoot(): Object3D;
|
|
77
|
+
getPersistentRoot(): Object3D;
|
|
78
|
+
/**
|
|
79
|
+
* Initialize a new WebXR world with all required systems and setup
|
|
80
|
+
*
|
|
81
|
+
* @param sceneContainer - HTML container for the renderer canvas
|
|
82
|
+
* @param assets - Asset manifest for preloading
|
|
83
|
+
* @param options - Configuration options for the world
|
|
84
|
+
* @returns Promise that resolves to the initialized World instance
|
|
85
|
+
*/
|
|
86
|
+
/**
|
|
87
|
+
* Initialize a new WebXR world with renderer, scene, default systems, and optional level.
|
|
88
|
+
*
|
|
89
|
+
* @param container HTML container to which the renderer canvas will be appended.
|
|
90
|
+
* @param options Runtime configuration, see {@link WorldOptions}.
|
|
91
|
+
* @returns A promise that resolves to the initialized {@link World}.
|
|
92
|
+
*
|
|
93
|
+
* @remarks
|
|
94
|
+
* - This call enables the Input, UI and Audio systems by default.
|
|
95
|
+
* - Use {@link WorldOptions.features} to enable Locomotion or Grabbing.
|
|
96
|
+
* - If {@link WorldOptions.level} is provided, the LevelSystem will load it after assets are preloaded.
|
|
97
|
+
* @see /getting-started/01-hello-xr
|
|
98
|
+
*/
|
|
99
|
+
static create(container: HTMLDivElement, options?: WorldOptions): Promise<World>;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=world.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/ecs/world.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3D,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;AAEjD,OAAO,EACL,YAAY,EAEZ,SAAS,EAEV,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,aAAa,EACd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,oBAAY,eAAe;IACzB,YAAY,kBAAkB;IAC9B,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,cAAc,oBAAoB;CACnC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,KAAM,SAAQ,UAAU;IAC5B,KAAK,EAAG,cAAc,CAAC;IACvB,MAAM,EAAG,QAAQ,CAAC;IAClB,YAAY,EAAG,OAAO,YAAY,CAAC;IACnC,KAAK,EAAG,KAAK,CAAC;IACd,WAAW,EAAG,MAAM,CAAC;IACrB,WAAW,EAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAmB;IACxC,MAAM,EAAG,iBAAiB,CAAC;IAC3B,QAAQ,EAAG,aAAa,CAAC;IACzB,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,eAAe,0BAAwC;IACvD,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,iBAAiB,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACnD,qFAAqF;IAC9E,UAAU,EAAE,OAAO,eAAe,EAAE,SAAS,GAAG,SAAS,CAAC;;IAcjE,YAAY,IAAI,MAAM;IAItB,qBAAqB,CACnB,MAAM,CAAC,EAAE,QAAQ,EACjB,eAAe,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAA;KAAE,GACnE,MAAM;IA8CT,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAIvC,0EAA0E;IACpE,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5C,MAAM;IAIN,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC,iBAAiB,CAAC,SAAS,EAAE,YAAY,GAAG,IAAI;IAKhD,aAAa,IAAI,QAAQ;IAIzB,iBAAiB,IAAI,QAAQ;IAI7B;;;;;;;OAOG;IACH;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,MAAM,CACX,SAAS,EAAE,cAAc,EACzB,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,KAAK,CAAC;CAGlB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { signal } from '@preact/signals-core';
|
|
2
|
+
import { World as World$1 } from 'elics';
|
|
3
|
+
import { launchXR } from '../init/xr.js';
|
|
4
|
+
import { initializeWorld } from '../init/world-initializer.js';
|
|
5
|
+
import '../level/level-system.js';
|
|
6
|
+
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 './component-registry.js';
|
|
11
|
+
import '@pmndrs/uikit';
|
|
12
|
+
import { Object3D } from 'three';
|
|
13
|
+
import '../ui/ui.js';
|
|
14
|
+
import '../ui/follow.js';
|
|
15
|
+
import '../ui/screenspace.js';
|
|
16
|
+
import '../level/level-root.js';
|
|
17
|
+
import '../runtime/three.js';
|
|
18
|
+
import { Transform } from '../transform/transform.js';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/
|
|
26
|
+
var VisibilityState;
|
|
27
|
+
(function (VisibilityState) {
|
|
28
|
+
VisibilityState["NonImmersive"] = "non-immersive";
|
|
29
|
+
VisibilityState["Hidden"] = "hidden";
|
|
30
|
+
VisibilityState["Visible"] = "visible";
|
|
31
|
+
VisibilityState["VisibleBlurred"] = "visible-blurred";
|
|
32
|
+
})(VisibilityState || (VisibilityState = {}));
|
|
33
|
+
/**
|
|
34
|
+
* World is the root ECS container, Three.js scene/renderer owner, and XR session gateway.
|
|
35
|
+
*
|
|
36
|
+
* @remarks
|
|
37
|
+
* - Construct a world with {@link World.create} (recommended) which wires the renderer, scene, default systems
|
|
38
|
+
* (Input, UI, Audio, Level) and starts the render loop.
|
|
39
|
+
* - The world exposes convenience handles like {@link World.input | input} (XRInputManager),
|
|
40
|
+
* {@link World.player | player} (XROrigin), and {@link World.assetManager}.
|
|
41
|
+
* - Feature systems (Grabbing, Locomotion) are opt‑in via {@link WorldOptions.features}.
|
|
42
|
+
*
|
|
43
|
+
* @category Runtime
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* import { World, SessionMode } from '@iwsdk/core';
|
|
47
|
+
*
|
|
48
|
+
* const container = document.getElementById('scene-container') as HTMLDivElement;
|
|
49
|
+
* const world = await World.create(container, {
|
|
50
|
+
* xr: { sessionMode: SessionMode.ImmersiveVR },
|
|
51
|
+
* features: { enableLocomotion: true, enableGrabbing: true },
|
|
52
|
+
* level: '/glxf/Composition.glxf'
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
class World extends World$1 {
|
|
57
|
+
constructor() {
|
|
58
|
+
super();
|
|
59
|
+
this.activeLevelId = 'level:default';
|
|
60
|
+
this.visibilityState = signal(VisibilityState.NonImmersive);
|
|
61
|
+
const originalReleaseFunc = this.entityManager.releaseEntityInstance.bind(this.entityManager);
|
|
62
|
+
this.entityManager.releaseEntityInstance = (entity) => {
|
|
63
|
+
var _a;
|
|
64
|
+
originalReleaseFunc(entity);
|
|
65
|
+
(_a = entity.object3D) === null || _a === void 0 ? void 0 : _a.removeFromParent();
|
|
66
|
+
delete entity.object3D;
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
createEntity() {
|
|
70
|
+
return super.createEntity();
|
|
71
|
+
}
|
|
72
|
+
createTransformEntity(object, parentOrOptions) {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
const entity = super.createEntity();
|
|
75
|
+
const obj = object !== null && object !== void 0 ? object : new Object3D();
|
|
76
|
+
// Cast to pointer-events-capable Object3D event map for downstream typing
|
|
77
|
+
entity.object3D = obj;
|
|
78
|
+
let parent = undefined;
|
|
79
|
+
let persistent = false;
|
|
80
|
+
if (parentOrOptions) {
|
|
81
|
+
if (typeof parentOrOptions.index === 'number') {
|
|
82
|
+
parent = parentOrOptions;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const opts = parentOrOptions;
|
|
86
|
+
parent = opts.parent;
|
|
87
|
+
persistent = !!opts.persistent;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (!parent) {
|
|
91
|
+
// Avoid self-parenting for the Scene root
|
|
92
|
+
const isSceneObject = (obj) => obj.isScene === true;
|
|
93
|
+
if (object && isSceneObject(object)) {
|
|
94
|
+
parent = undefined;
|
|
95
|
+
persistent = true;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
parent = persistent
|
|
99
|
+
? this.sceneEntity
|
|
100
|
+
: ((_b = (_a = this.activeLevel) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : this.sceneEntity);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
entity.addComponent(Transform, { parent });
|
|
104
|
+
// Tag entity with current level, unless persistent
|
|
105
|
+
if (!persistent) {
|
|
106
|
+
entity.addComponent(LevelTag, { id: this.activeLevelId });
|
|
107
|
+
}
|
|
108
|
+
return entity;
|
|
109
|
+
}
|
|
110
|
+
launchXR(xrOptions) {
|
|
111
|
+
launchXR(this, xrOptions);
|
|
112
|
+
}
|
|
113
|
+
/** Request a level change; LevelSystem performs the work and resolves. */
|
|
114
|
+
async loadLevel(url) {
|
|
115
|
+
this.requestedLevelUrl = url !== null && url !== void 0 ? url : '';
|
|
116
|
+
return new Promise((resolve) => {
|
|
117
|
+
this._resolveLevelLoad = resolve;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
exitXR() {
|
|
121
|
+
var _a;
|
|
122
|
+
(_a = this.session) === null || _a === void 0 ? void 0 : _a.end();
|
|
123
|
+
}
|
|
124
|
+
update(delta, time) {
|
|
125
|
+
super.update(delta, time);
|
|
126
|
+
}
|
|
127
|
+
registerComponent(component) {
|
|
128
|
+
return super.registerComponent(component);
|
|
129
|
+
}
|
|
130
|
+
// Level root helpers
|
|
131
|
+
getActiveRoot() {
|
|
132
|
+
var _a, _b, _c;
|
|
133
|
+
return (_c = (_b = (_a = this.activeLevel) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.object3D) !== null && _c !== void 0 ? _c : this.scene;
|
|
134
|
+
}
|
|
135
|
+
getPersistentRoot() {
|
|
136
|
+
return this.scene;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Initialize a new WebXR world with all required systems and setup
|
|
140
|
+
*
|
|
141
|
+
* @param sceneContainer - HTML container for the renderer canvas
|
|
142
|
+
* @param assets - Asset manifest for preloading
|
|
143
|
+
* @param options - Configuration options for the world
|
|
144
|
+
* @returns Promise that resolves to the initialized World instance
|
|
145
|
+
*/
|
|
146
|
+
/**
|
|
147
|
+
* Initialize a new WebXR world with renderer, scene, default systems, and optional level.
|
|
148
|
+
*
|
|
149
|
+
* @param container HTML container to which the renderer canvas will be appended.
|
|
150
|
+
* @param options Runtime configuration, see {@link WorldOptions}.
|
|
151
|
+
* @returns A promise that resolves to the initialized {@link World}.
|
|
152
|
+
*
|
|
153
|
+
* @remarks
|
|
154
|
+
* - This call enables the Input, UI and Audio systems by default.
|
|
155
|
+
* - Use {@link WorldOptions.features} to enable Locomotion or Grabbing.
|
|
156
|
+
* - If {@link WorldOptions.level} is provided, the LevelSystem will load it after assets are preloaded.
|
|
157
|
+
* @see /getting-started/01-hello-xr
|
|
158
|
+
*/
|
|
159
|
+
static create(container, options) {
|
|
160
|
+
return initializeWorld(container, options);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
export { VisibilityState, World };
|
|
165
|
+
//# sourceMappingURL=world.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world.js","sources":["../../src/ecs/world.ts"],"sourcesContent":[null],"names":["ElicsWorld"],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { Types } from '../ecs/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Procedural gradient background dome.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* - Renders an inward‑facing sphere and writes to `scene.background`.
|
|
13
|
+
* - Colors are Unity‑style sky/equator/ground; intensity multiplies shader output.
|
|
14
|
+
*
|
|
15
|
+
* @category Environment & Lighting
|
|
16
|
+
*/
|
|
17
|
+
export declare const DomeGradient: import("elics").Component<{
|
|
18
|
+
sky: {
|
|
19
|
+
type: Types.Color;
|
|
20
|
+
default: [number, number, number, number];
|
|
21
|
+
};
|
|
22
|
+
equator: {
|
|
23
|
+
type: Types.Color;
|
|
24
|
+
default: [number, number, number, number];
|
|
25
|
+
};
|
|
26
|
+
ground: {
|
|
27
|
+
type: Types.Color;
|
|
28
|
+
default: [number, number, number, number];
|
|
29
|
+
};
|
|
30
|
+
intensity: {
|
|
31
|
+
type: Types.Float32;
|
|
32
|
+
default: number;
|
|
33
|
+
};
|
|
34
|
+
_needsUpdate: {
|
|
35
|
+
type: Types.Boolean;
|
|
36
|
+
default: true;
|
|
37
|
+
};
|
|
38
|
+
}>;
|
|
39
|
+
//# sourceMappingURL=dome-gradient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dome-gradient.d.ts","sourceRoot":"","sources":["../../src/environment/dome-gradient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;EAUxB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import '@preact/signals-core';
|
|
2
|
+
import '../ecs/world.js';
|
|
3
|
+
import { createComponent, Types } from 'elics';
|
|
4
|
+
import '../ecs/component-registry.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the MIT license found in the
|
|
10
|
+
* LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Procedural gradient background dome.
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* - Renders an inward‑facing sphere and writes to `scene.background`.
|
|
17
|
+
* - Colors are Unity‑style sky/equator/ground; intensity multiplies shader output.
|
|
18
|
+
*
|
|
19
|
+
* @category Environment & Lighting
|
|
20
|
+
*/
|
|
21
|
+
const DomeGradient = createComponent('DomeGradient', {
|
|
22
|
+
sky: { type: Types.Color, default: [0.2423, 0.6172, 0.8308, 1.0] },
|
|
23
|
+
equator: { type: Types.Color, default: [0.6584, 0.7084, 0.7913, 1.0] },
|
|
24
|
+
ground: { type: Types.Color, default: [0.807, 0.7758, 0.7454, 1.0] },
|
|
25
|
+
intensity: { type: Types.Float32, default: 1.0 },
|
|
26
|
+
_needsUpdate: { type: Types.Boolean, default: true },
|
|
27
|
+
}, 'Background dome using a gradient');
|
|
28
|
+
|
|
29
|
+
export { DomeGradient };
|
|
30
|
+
//# sourceMappingURL=dome-gradient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dome-gradient.js","sources":["../../src/environment/dome-gradient.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;AAQG;AACI,MAAM,YAAY,GAAG,eAAe,CACzC,cAAc,EACd;AACE,IAAA,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;AAClE,IAAA,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;AACtE,IAAA,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE;IACpE,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;IAChD,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;CACrD,EACD,kCAAkC;;;;"}
|
|
@@ -0,0 +1,39 @@
|
|
|
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 { Types } from '../ecs/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Background dome driven by a single equirectangular texture.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* - `src` may be HDR/EXR or LDR (png/jpg/ktx2). Mapping is set to equirect when needed.
|
|
13
|
+
* - Affects only `scene.background` and optional `scene.backgroundRotation`/`backgroundIntensity`.
|
|
14
|
+
*
|
|
15
|
+
* @category Environment & Lighting
|
|
16
|
+
*/
|
|
17
|
+
export declare const DomeTexture: import("elics").Component<{
|
|
18
|
+
src: {
|
|
19
|
+
type: Types.String;
|
|
20
|
+
default: string;
|
|
21
|
+
};
|
|
22
|
+
blurriness: {
|
|
23
|
+
type: Types.Float32;
|
|
24
|
+
default: number;
|
|
25
|
+
};
|
|
26
|
+
intensity: {
|
|
27
|
+
type: Types.Float32;
|
|
28
|
+
default: number;
|
|
29
|
+
};
|
|
30
|
+
rotation: {
|
|
31
|
+
type: Types.Vec3;
|
|
32
|
+
default: [number, number, number];
|
|
33
|
+
};
|
|
34
|
+
_needsUpdate: {
|
|
35
|
+
type: Types.Boolean;
|
|
36
|
+
default: true;
|
|
37
|
+
};
|
|
38
|
+
}>;
|
|
39
|
+
//# sourceMappingURL=dome-texture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dome-texture.d.ts","sourceRoot":"","sources":["../../src/environment/dome-texture.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import '@preact/signals-core';
|
|
2
|
+
import '../ecs/world.js';
|
|
3
|
+
import { createComponent, Types } from 'elics';
|
|
4
|
+
import '../ecs/component-registry.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the MIT license found in the
|
|
10
|
+
* LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Background dome driven by a single equirectangular texture.
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* - `src` may be HDR/EXR or LDR (png/jpg/ktx2). Mapping is set to equirect when needed.
|
|
17
|
+
* - Affects only `scene.background` and optional `scene.backgroundRotation`/`backgroundIntensity`.
|
|
18
|
+
*
|
|
19
|
+
* @category Environment & Lighting
|
|
20
|
+
*/
|
|
21
|
+
const DomeTexture = createComponent('DomeTexture', {
|
|
22
|
+
src: { type: Types.String, default: '' },
|
|
23
|
+
blurriness: { type: Types.Float32, default: 0.0 },
|
|
24
|
+
intensity: { type: Types.Float32, default: 1.0 },
|
|
25
|
+
rotation: { type: Types.Vec3, default: [0, 0, 0] }, // radians [x,y,z]
|
|
26
|
+
_needsUpdate: { type: Types.Boolean, default: true },
|
|
27
|
+
}, 'Background dome using a single equirectangular texture');
|
|
28
|
+
|
|
29
|
+
export { DomeTexture };
|
|
30
|
+
//# sourceMappingURL=dome-texture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dome-texture.js","sources":["../../src/environment/dome-texture.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;AAQG;AACI,MAAM,WAAW,GAAG,eAAe,CACxC,aAAa,EACb;IACE,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;IACxC,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;IACjD,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE;AAChD,IAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;IAClD,YAAY,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;CACrD,EACD,wDAAwD;;;;"}
|