@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,103 @@
|
|
|
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
|
+
* Component for enabling two‑handed object grabbing and manipulation.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* - Enables advanced manipulation using both VR controllers or hand inputs simultaneously.
|
|
13
|
+
* - Supports rotation, translation, and **scaling** operations (scaling requires two hands).
|
|
14
|
+
* - Distance between hands controls scaling: spreading hands apart scales up, bringing them together scales down.
|
|
15
|
+
* - The position of first controller that grabbed the objects determines the object's position during translation.
|
|
16
|
+
* - Rotation is calculated from the relative orientation between the two hands.
|
|
17
|
+
* - All transformations can be independently enabled/disabled and constrained per axis.
|
|
18
|
+
* - Works with the {@link GrabSystem} to automatically create multitouch interaction handles.
|
|
19
|
+
*
|
|
20
|
+
* @example Basic two‑handed grabbable object
|
|
21
|
+
* ```ts
|
|
22
|
+
* entity.addComponent(TwoHandsGrabbable, {})
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example Scaling‑only with constraints
|
|
26
|
+
* ```ts
|
|
27
|
+
* entity.addComponent(TwoHandsGrabbable, {
|
|
28
|
+
* rotate: false,
|
|
29
|
+
* translate: false,
|
|
30
|
+
* scale: true,
|
|
31
|
+
* scaleMin: [0.1, 0.1, 0.1],
|
|
32
|
+
* scaleMax: [5, 5, 5]
|
|
33
|
+
* })
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* @example Precise manipulation with limits
|
|
37
|
+
* ```ts
|
|
38
|
+
* entity.addComponent(TwoHandsGrabbable, {
|
|
39
|
+
* rotate: true,
|
|
40
|
+
* translate: true,
|
|
41
|
+
* scale: true,
|
|
42
|
+
* rotateMin: [-Math.PI/4, -Math.PI/2, -Math.PI/4],
|
|
43
|
+
* rotateMax: [Math.PI/4, Math.PI/2, Math.PI/4],
|
|
44
|
+
* translateMin: [-1, 0, -1],
|
|
45
|
+
* translateMax: [1, 2, 1],
|
|
46
|
+
* scaleMin: [0.5, 0.5, 0.5],
|
|
47
|
+
* scaleMax: [2, 2, 2]
|
|
48
|
+
* })
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @category Grab
|
|
52
|
+
* @see {@link GrabSystem}
|
|
53
|
+
* @see {@link OneHandGrabbable}
|
|
54
|
+
* @see {@link DistanceGrabbable}
|
|
55
|
+
*/
|
|
56
|
+
export declare const TwoHandsGrabbable: import("elics").Component<{
|
|
57
|
+
/** A boolean value to set whether rotating the object is allowed. */
|
|
58
|
+
rotate: {
|
|
59
|
+
type: Types.Boolean;
|
|
60
|
+
default: true;
|
|
61
|
+
};
|
|
62
|
+
/** An optional vector to define the maximum angle of the allowed rotation in [x, y, z] axes. */
|
|
63
|
+
rotateMax: {
|
|
64
|
+
type: Types.Vec3;
|
|
65
|
+
default: [number, number, number];
|
|
66
|
+
};
|
|
67
|
+
/** An optional vector to define the minimum angle of the allowed rotation in [x, y, z] axes. */
|
|
68
|
+
rotateMin: {
|
|
69
|
+
type: Types.Vec3;
|
|
70
|
+
default: [number, number, number];
|
|
71
|
+
};
|
|
72
|
+
/** A boolean value to set whether moving the object's position is allowed. */
|
|
73
|
+
translate: {
|
|
74
|
+
type: Types.Boolean;
|
|
75
|
+
default: true;
|
|
76
|
+
};
|
|
77
|
+
/** An optional vector to define the maximum allowed position in [x, y, z] axes. */
|
|
78
|
+
translateMax: {
|
|
79
|
+
type: Types.Vec3;
|
|
80
|
+
default: [number, number, number];
|
|
81
|
+
};
|
|
82
|
+
/** An optional vector to define the minimum allowed position in [x, y, z] axes. */
|
|
83
|
+
translateMin: {
|
|
84
|
+
type: Types.Vec3;
|
|
85
|
+
default: [number, number, number];
|
|
86
|
+
};
|
|
87
|
+
/** A boolean value to set whether scaling the object up and down is allowed. */
|
|
88
|
+
scale: {
|
|
89
|
+
type: Types.Boolean;
|
|
90
|
+
default: true;
|
|
91
|
+
};
|
|
92
|
+
/** An optional vector to define the maximum allowed scaling in [x, y, z] axes. */
|
|
93
|
+
scaleMax: {
|
|
94
|
+
type: Types.Vec3;
|
|
95
|
+
default: [number, number, number];
|
|
96
|
+
};
|
|
97
|
+
/** An optional vector to define the minimum allowed scaling in [x, y, z] axes. */
|
|
98
|
+
scaleMin: {
|
|
99
|
+
type: Types.Vec3;
|
|
100
|
+
default: [number, number, number];
|
|
101
|
+
};
|
|
102
|
+
}>;
|
|
103
|
+
//# sourceMappingURL=two-hands-grabbable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"two-hands-grabbable.d.ts","sourceRoot":"","sources":["../../src/grab/two-hands-grabbable.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,eAAO,MAAM,iBAAiB;IAG1B,qEAAqE;;;;;IAErE,gGAAgG;;;;;IAKhG,gGAAgG;;;;;IAKhG,8EAA8E;;;;;IAE9E,mFAAmF;;;;;IAKnF,mFAAmF;;;;;IAKnF,gFAAgF;;;;;IAEhF,kFAAkF;;;;;IAKlF,kFAAkF;;;;;EAOrF,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
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
|
+
* Component for enabling two‑handed object grabbing and manipulation.
|
|
14
|
+
*
|
|
15
|
+
* @remarks
|
|
16
|
+
* - Enables advanced manipulation using both VR controllers or hand inputs simultaneously.
|
|
17
|
+
* - Supports rotation, translation, and **scaling** operations (scaling requires two hands).
|
|
18
|
+
* - Distance between hands controls scaling: spreading hands apart scales up, bringing them together scales down.
|
|
19
|
+
* - The position of first controller that grabbed the objects determines the object's position during translation.
|
|
20
|
+
* - Rotation is calculated from the relative orientation between the two hands.
|
|
21
|
+
* - All transformations can be independently enabled/disabled and constrained per axis.
|
|
22
|
+
* - Works with the {@link GrabSystem} to automatically create multitouch interaction handles.
|
|
23
|
+
*
|
|
24
|
+
* @example Basic two‑handed grabbable object
|
|
25
|
+
* ```ts
|
|
26
|
+
* entity.addComponent(TwoHandsGrabbable, {})
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example Scaling‑only with constraints
|
|
30
|
+
* ```ts
|
|
31
|
+
* entity.addComponent(TwoHandsGrabbable, {
|
|
32
|
+
* rotate: false,
|
|
33
|
+
* translate: false,
|
|
34
|
+
* scale: true,
|
|
35
|
+
* scaleMin: [0.1, 0.1, 0.1],
|
|
36
|
+
* scaleMax: [5, 5, 5]
|
|
37
|
+
* })
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @example Precise manipulation with limits
|
|
41
|
+
* ```ts
|
|
42
|
+
* entity.addComponent(TwoHandsGrabbable, {
|
|
43
|
+
* rotate: true,
|
|
44
|
+
* translate: true,
|
|
45
|
+
* scale: true,
|
|
46
|
+
* rotateMin: [-Math.PI/4, -Math.PI/2, -Math.PI/4],
|
|
47
|
+
* rotateMax: [Math.PI/4, Math.PI/2, Math.PI/4],
|
|
48
|
+
* translateMin: [-1, 0, -1],
|
|
49
|
+
* translateMax: [1, 2, 1],
|
|
50
|
+
* scaleMin: [0.5, 0.5, 0.5],
|
|
51
|
+
* scaleMax: [2, 2, 2]
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @category Grab
|
|
56
|
+
* @see {@link GrabSystem}
|
|
57
|
+
* @see {@link OneHandGrabbable}
|
|
58
|
+
* @see {@link DistanceGrabbable}
|
|
59
|
+
*/
|
|
60
|
+
const TwoHandsGrabbable = createComponent('TwoHandsGrabbable', {
|
|
61
|
+
/** A boolean value to set whether rotating the object is allowed. */
|
|
62
|
+
rotate: { type: Types.Boolean, default: true },
|
|
63
|
+
/** An optional vector to define the maximum angle of the allowed rotation in [x, y, z] axes. */
|
|
64
|
+
rotateMax: {
|
|
65
|
+
type: Types.Vec3,
|
|
66
|
+
default: [Infinity, Infinity, Infinity],
|
|
67
|
+
},
|
|
68
|
+
/** An optional vector to define the minimum angle of the allowed rotation in [x, y, z] axes. */
|
|
69
|
+
rotateMin: {
|
|
70
|
+
type: Types.Vec3,
|
|
71
|
+
default: [-Infinity, -Infinity, -Infinity],
|
|
72
|
+
},
|
|
73
|
+
/** A boolean value to set whether moving the object's position is allowed. */
|
|
74
|
+
translate: { type: Types.Boolean, default: true },
|
|
75
|
+
/** An optional vector to define the maximum allowed position in [x, y, z] axes. */
|
|
76
|
+
translateMax: {
|
|
77
|
+
type: Types.Vec3,
|
|
78
|
+
default: [Infinity, Infinity, Infinity],
|
|
79
|
+
},
|
|
80
|
+
/** An optional vector to define the minimum allowed position in [x, y, z] axes. */
|
|
81
|
+
translateMin: {
|
|
82
|
+
type: Types.Vec3,
|
|
83
|
+
default: [-Infinity, -Infinity, -Infinity],
|
|
84
|
+
},
|
|
85
|
+
/** A boolean value to set whether scaling the object up and down is allowed. */
|
|
86
|
+
scale: { type: Types.Boolean, default: true },
|
|
87
|
+
/** An optional vector to define the maximum allowed scaling in [x, y, z] axes. */
|
|
88
|
+
scaleMax: {
|
|
89
|
+
type: Types.Vec3,
|
|
90
|
+
default: [Infinity, Infinity, Infinity],
|
|
91
|
+
},
|
|
92
|
+
/** An optional vector to define the minimum allowed scaling in [x, y, z] axes. */
|
|
93
|
+
scaleMin: {
|
|
94
|
+
type: Types.Vec3,
|
|
95
|
+
default: [-Infinity, -Infinity, -Infinity],
|
|
96
|
+
},
|
|
97
|
+
}, 'Component for two-handed object grabbing and manipulation');
|
|
98
|
+
|
|
99
|
+
export { TwoHandsGrabbable };
|
|
100
|
+
//# sourceMappingURL=two-hands-grabbable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"two-hands-grabbable.js","sources":["../../src/grab/two-hands-grabbable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CG;AAEI,MAAM,iBAAiB,GAAG,eAAe,CAC9C,mBAAmB,EACnB;;IAEE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;;AAE9C,IAAA,SAAS,EAAE;QACT,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACxC,KAAA;;AAED,IAAA,SAAS,EAAE;QACT,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;AAC3C,KAAA;;IAED,SAAS,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;;AAEjD,IAAA,YAAY,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACxC,KAAA;;AAED,IAAA,YAAY,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;AAC3C,KAAA;;IAED,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;;AAE7C,IAAA,QAAQ,EAAE;QACR,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAA,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;AACxC,KAAA;;AAED,IAAA,QAAQ,EAAE;QACR,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;AAC3C,KAAA;CACF,EACD,2DAA2D;;;;"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
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 { VERSION } from './version.js';
|
|
8
|
+
export * from './runtime/index.js';
|
|
9
|
+
export * from './ecs/index.js';
|
|
10
|
+
export * from './transform/index.js';
|
|
11
|
+
export * from './asset/index.js';
|
|
12
|
+
export * from './locomotion/index.js';
|
|
13
|
+
export * from './visibility/index.js';
|
|
14
|
+
export * from './ui/index.js';
|
|
15
|
+
export * from './init/index.js';
|
|
16
|
+
export * from './grab/index.js';
|
|
17
|
+
export * from './input/index.js';
|
|
18
|
+
export * from './environment/index.js';
|
|
19
|
+
export * from './level/index.js';
|
|
20
|
+
export * from './scene-understanding/index.js';
|
|
21
|
+
export * from './audio/index.js';
|
|
22
|
+
export * from './physics/index.js';
|
|
23
|
+
export * from '@iwsdk/xr-input';
|
|
24
|
+
export * from '@iwsdk/locomotor';
|
|
25
|
+
export * as UIKit from '@pmndrs/uikit';
|
|
26
|
+
export { VERSION };
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { VERSION as VERSION$1 } from 'elics';
|
|
2
|
+
export { ComponentRegistry, Entity, Types, createComponent, eq, ge, gt, isin, le, lt, ne, nin } from 'elics';
|
|
3
|
+
import { REVISION } from 'three';
|
|
4
|
+
export * from 'three';
|
|
5
|
+
import { VERSION } from './version.js';
|
|
6
|
+
import './runtime/three.js';
|
|
7
|
+
export { createSystem } from './ecs/system.js';
|
|
8
|
+
export { VisibilityState, World } from './ecs/world.js';
|
|
9
|
+
export { NullEntity } from './ecs/entity.js';
|
|
10
|
+
export { GLXFComponentRegistry } from './ecs/component-registry.js';
|
|
11
|
+
export { Transform, TransformSystem } from './transform/transform.js';
|
|
12
|
+
export { SyncedVector3 } from './transform/synced-vector3.js';
|
|
13
|
+
export { SyncedQuaternion } from './transform/synced-quaternion.js';
|
|
14
|
+
export { AssetManager, AssetType } from './asset/asset-manager.js';
|
|
15
|
+
export { CacheManager } from './asset/cache-manager.js';
|
|
16
|
+
export { SlideSystem } from './locomotion/slide.js';
|
|
17
|
+
export { TeleportSystem } from './locomotion/teleport.js';
|
|
18
|
+
export { TurnSystem, TurningMethod } from './locomotion/turn.js';
|
|
19
|
+
export { LocomotionEnvironment, LocomotionSystem } from './locomotion/locomotion.js';
|
|
20
|
+
export { Visibility, VisibilitySystem } from './visibility/visibility.js';
|
|
21
|
+
export { UIKitDocument } from './ui/document.js';
|
|
22
|
+
export { PanelDocument, PanelUI, PanelUISystem } from './ui/ui.js';
|
|
23
|
+
export { FollowBehavior, FollowSystem, Follower } from './ui/follow.js';
|
|
24
|
+
export { ScreenSpace, ScreenSpaceUISystem } from './ui/screenspace.js';
|
|
25
|
+
export { ReferenceSpaceType, SessionMode, buildSessionInit, launchXR, normalizeReferenceSpec, resolveReferenceSpaceType } from './init/xr.js';
|
|
26
|
+
export { initializeWorld } from './init/world-initializer.js';
|
|
27
|
+
import './grab/index.js';
|
|
28
|
+
export { InputSystem } from './input/input-system.js';
|
|
29
|
+
export { Hovered, Interactable, Pressed } from './input/state-tags.js';
|
|
30
|
+
export { DomeTexture } from './environment/dome-texture.js';
|
|
31
|
+
export { DomeGradient } from './environment/dome-gradient.js';
|
|
32
|
+
export { IBLTexture } from './environment/ibl-texture.js';
|
|
33
|
+
export { IBLGradient } from './environment/ibl-gradient.js';
|
|
34
|
+
export { EnvironmentSystem } from './environment/environment-system.js';
|
|
35
|
+
export { LevelSystem } from './level/level-system.js';
|
|
36
|
+
export { LevelTag } from './level/level-tag.js';
|
|
37
|
+
export { GLXFImporter } from './level/level-glxf-importer.js';
|
|
38
|
+
export { EntityCreator } from './level/level-entity-creator.js';
|
|
39
|
+
export { LevelRoot } from './level/level-root.js';
|
|
40
|
+
export { SceneUnderstandingSystem } from './scene-understanding/scene-understanding-system.js';
|
|
41
|
+
export { XRAnchor } from './scene-understanding/anchor.js';
|
|
42
|
+
export { XRPlane } from './scene-understanding/plane.js';
|
|
43
|
+
export { XRMesh } from './scene-understanding/mesh.js';
|
|
44
|
+
export { AudioSource, DistanceModel, InstanceStealPolicy, PlaybackMode } from './audio/audio.js';
|
|
45
|
+
export { AudioSystem } from './audio/audio-system.js';
|
|
46
|
+
export { AudioUtils } from './audio/audio-utils.js';
|
|
47
|
+
export { AudioPool } from './audio/audio-pool.js';
|
|
48
|
+
export { PhysicsSystem } from './physics/physics-system.js';
|
|
49
|
+
export { DEFAULT_GRAVITY_FACTOR, DEFAULT_LINEAR_DAMPING, PhysicsBody, PhysicsState } from './physics/physicsBody.js';
|
|
50
|
+
export { PhysicsManipulation } from './physics/physicsManipulation.js';
|
|
51
|
+
export { DEFAULT_DENSITY, DEFAULT_FRICTION, DEFAULT_RESTITUTION, PhysicsShape, PhysicsShapeType } from './physics/physicsShape.js';
|
|
52
|
+
export * from '@iwsdk/xr-input';
|
|
53
|
+
export * from '@iwsdk/locomotor';
|
|
54
|
+
import * as uikit from '@pmndrs/uikit';
|
|
55
|
+
export { uikit as UIKit };
|
|
56
|
+
export { MovementMode } from './grab/handles.js';
|
|
57
|
+
export { GrabSystem } from './grab/grab-system.js';
|
|
58
|
+
export { OneHandGrabbable } from './grab/one-hand-grabbable.js';
|
|
59
|
+
export { TwoHandsGrabbable } from './grab/two-hands-grabbable.js';
|
|
60
|
+
export { DistanceGrabbable } from './grab/distance-grabbable.js';
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
64
|
+
*
|
|
65
|
+
* This source code is licensed under the MIT license found in the
|
|
66
|
+
* LICENSE file in the root directory of this source tree.
|
|
67
|
+
*/
|
|
68
|
+
console.log(`
|
|
69
|
+
▄▄▄▄▄▄ ▄▄ ▄▄ ▄▄▄▄ ▄▄▄▄▄ ▄▄ ▄▄▄
|
|
70
|
+
▀▀██▀▀ ██ ██ ▄█▀▀▀▀█ ██▀▀▀██ ██ ██▀
|
|
71
|
+
██ ▀█▄ ██ ▄█▀ ██▄ ██ ██ ██▄██
|
|
72
|
+
██ ██ ██ ██ ▀████▄ ██ ██ █████
|
|
73
|
+
██ ███▀▀███ ▀██ ██ ██ ██ ██▄
|
|
74
|
+
▄▄██▄▄ ███ ███ █▄▄▄▄▄█▀ ██▄▄▄██ ██ ██▄
|
|
75
|
+
▀▀▀▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▀▀ ▀▀▀▀▀ ▀▀ ▀▀
|
|
76
|
+
===============================================
|
|
77
|
+
Immersive Web SDK v${VERSION}
|
|
78
|
+
Three.js r${REVISION}
|
|
79
|
+
EliCS v${VERSION$1}`);
|
|
80
|
+
|
|
81
|
+
export { VERSION };
|
|
82
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["EliCSVersion"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AA6BH,OAAO,CAAC,GAAG,CAAC,CAAA;;;;;;;;;qBASS,OAAO;YAChB,QAAQ;SACXA,SAAY,CAAA,CAAE,CAAC;;;;"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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 './xr.js';
|
|
8
|
+
export * from './world-initializer.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/init/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
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 { AssetManifest } from '../asset/index.js';
|
|
8
|
+
import { World } from '../ecs/index.js';
|
|
9
|
+
import { XROptions } from './index.js';
|
|
10
|
+
/** Options for {@link initializeWorld} / {@link World.create}.
|
|
11
|
+
*
|
|
12
|
+
* @category Runtime
|
|
13
|
+
* @remarks
|
|
14
|
+
* Defaults are tuned for VR; you can override camera frustum and default lighting via {@link WorldOptions.render}.
|
|
15
|
+
*/
|
|
16
|
+
export type WorldOptions = {
|
|
17
|
+
/** Asset manifest to preload before the first frame. */
|
|
18
|
+
assets?: AssetManifest;
|
|
19
|
+
/** Level to load after initialization. Accepts a GLXF URL string or an object with a `url` field. */
|
|
20
|
+
level?: {
|
|
21
|
+
url?: string;
|
|
22
|
+
} | string;
|
|
23
|
+
/** XR session options and offer behavior. */
|
|
24
|
+
xr?: XROptions & {
|
|
25
|
+
offer?: 'none' | 'once' | 'always';
|
|
26
|
+
};
|
|
27
|
+
/** Renderer & camera configuration. */
|
|
28
|
+
render?: {
|
|
29
|
+
/** Camera field of view in degrees. @defaultValue 50 */
|
|
30
|
+
fov?: number;
|
|
31
|
+
/** Near clipping plane. @defaultValue 0.1 */
|
|
32
|
+
near?: number;
|
|
33
|
+
/** Far clipping plane. @defaultValue 200 */
|
|
34
|
+
far?: number;
|
|
35
|
+
/** Generate a default gradient environment and background. @defaultValue true */
|
|
36
|
+
defaultLighting?: boolean;
|
|
37
|
+
};
|
|
38
|
+
/** Opt‑in feature systems. */
|
|
39
|
+
features?: {
|
|
40
|
+
/** Locomotion (teleport/slide/turn). Boolean or config. @defaultValue false */
|
|
41
|
+
locomotion?: boolean | {
|
|
42
|
+
useWorker?: boolean;
|
|
43
|
+
};
|
|
44
|
+
/** Grabbing (one/two‑hand, distance). @defaultValue false */
|
|
45
|
+
grabbing?: boolean;
|
|
46
|
+
/** Physics simulation (Havok). @defaultValue false */
|
|
47
|
+
physics?: boolean;
|
|
48
|
+
/** Scene Understanding (planes/meshes/anchors). @defaultValue false */
|
|
49
|
+
sceneUnderstanding?: boolean;
|
|
50
|
+
/** Spatial UI systems (PanelUI/ScreenSpace/Follow). Boolean or config. @defaultValue true */
|
|
51
|
+
spatialUI?: boolean | {
|
|
52
|
+
forwardHtmlEvents?: boolean;
|
|
53
|
+
kits?: Array<Record<string, unknown>> | Record<string, unknown>;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Initialize a new WebXR world with all required systems and setup
|
|
59
|
+
*
|
|
60
|
+
* @param sceneContainer - HTML container for the renderer canvas
|
|
61
|
+
* @param assets - Asset manifest for preloading
|
|
62
|
+
* @param options - Configuration options for the world
|
|
63
|
+
* @returns Promise that resolves to the initialized World instance
|
|
64
|
+
*/
|
|
65
|
+
/**
|
|
66
|
+
* Initialize a new WebXR world with all required systems and setup.
|
|
67
|
+
*
|
|
68
|
+
* @param sceneContainer HTML container for the renderer canvas.
|
|
69
|
+
* @param options Configuration options for the world.
|
|
70
|
+
* @returns Promise that resolves to the initialized {@link World} instance.
|
|
71
|
+
*
|
|
72
|
+
* @remarks
|
|
73
|
+
* This function powers {@link World.create}. Prefer using that static helper.
|
|
74
|
+
*/
|
|
75
|
+
export declare function initializeWorld(container: HTMLDivElement, options?: WorldOptions): Promise<World>;
|
|
76
|
+
//# sourceMappingURL=world-initializer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"world-initializer.d.ts","sourceRoot":"","sources":["../../src/init/world-initializer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAgB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AA2CzD,OAAO,EAGL,SAAS,EAIV,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB,qGAAqG;IACrG,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC;IAElC,6CAA6C;IAC7C,EAAE,CAAC,EAAE,SAAS,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;KAAE,CAAC;IAExD,uCAAuC;IACvC,MAAM,CAAC,EAAE;QACP,wDAAwD;QACxD,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,6CAA6C;QAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,4CAA4C;QAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,iFAAiF;QACjF,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;IAEF,8BAA8B;IAC9B,QAAQ,CAAC,EAAE;QACT,+EAA+E;QAC/E,UAAU,CAAC,EAAE,OAAO,GAAG;YAAE,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC/C,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,sDAAsD;QACtD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,uEAAuE;QACvE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,6FAA6F;QAC7F,SAAS,CAAC,EACN,OAAO,GACP;YACE,iBAAiB,CAAC,EAAE,OAAO,CAAC;YAC5B,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACjE,CAAC;KACP,CAAC;CACH,CAAC;AAEF;;;;;;;GAOG;AACH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,cAAc,EACzB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,KAAK,CAAC,CAwDhB"}
|