@iwsdk/core 0.2.2 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +94 -0
- package/dist/asset/loaders/hdr-texture-loader.d.ts +1 -1
- package/dist/asset/loaders/hdr-texture-loader.d.ts.map +1 -1
- package/dist/asset/loaders/hdr-texture-loader.js +4 -4
- package/dist/asset/loaders/hdr-texture-loader.js.map +1 -1
- package/dist/audio/audio-system.d.ts +6 -2
- package/dist/audio/audio-system.d.ts.map +1 -1
- package/dist/audio/audio-system.js +1 -0
- package/dist/audio/audio-system.js.map +1 -1
- package/dist/audio/audio.d.ts +3 -1
- package/dist/audio/audio.d.ts.map +1 -1
- package/dist/audio/audio.js +8 -2
- package/dist/audio/audio.js.map +1 -1
- package/dist/camera/camera-source.js +1 -0
- package/dist/camera/camera-source.js.map +1 -1
- package/dist/camera/camera-system.d.ts.map +1 -1
- package/dist/camera/camera-system.js +1 -0
- package/dist/camera/camera-system.js.map +1 -1
- package/dist/camera/camera-utils.d.ts.map +1 -1
- package/dist/camera/camera-utils.js.map +1 -1
- package/dist/depth/depth-occludable.d.ts +48 -0
- package/dist/depth/depth-occludable.d.ts.map +1 -0
- package/dist/depth/depth-occludable.js +48 -0
- package/dist/depth/depth-occludable.js.map +1 -0
- package/dist/depth/depth-sensing-system.d.ts +164 -0
- package/dist/depth/depth-sensing-system.d.ts.map +1 -0
- package/dist/depth/depth-sensing-system.js +453 -0
- package/dist/depth/depth-sensing-system.js.map +1 -0
- package/dist/depth/depth-textures.d.ts +53 -0
- package/dist/depth/depth-textures.d.ts.map +1 -0
- package/dist/depth/depth-textures.js +114 -0
- package/dist/depth/depth-textures.js.map +1 -0
- package/dist/depth/index.d.ts +10 -0
- package/dist/depth/index.d.ts.map +1 -0
- package/dist/depth/occlusion/preprocessing-pass.d.ts +52 -0
- package/dist/depth/occlusion/preprocessing-pass.d.ts.map +1 -0
- package/dist/depth/occlusion/preprocessing-pass.js +105 -0
- package/dist/depth/occlusion/preprocessing-pass.js.map +1 -0
- package/dist/depth/occlusion/preprocessing-shader.glsl.d.ts +22 -0
- package/dist/depth/occlusion/preprocessing-shader.glsl.d.ts.map +1 -0
- package/dist/depth/occlusion/preprocessing-shader.glsl.js +115 -0
- package/dist/depth/occlusion/preprocessing-shader.glsl.js.map +1 -0
- package/dist/ecs/entity.d.ts +17 -1
- package/dist/ecs/entity.d.ts.map +1 -1
- package/dist/ecs/entity.js +7 -1
- package/dist/ecs/entity.js.map +1 -1
- package/dist/ecs/world.d.ts +12 -0
- package/dist/ecs/world.d.ts.map +1 -1
- package/dist/ecs/world.js +47 -3
- package/dist/ecs/world.js.map +1 -1
- package/dist/environment/dome-gradient.js +1 -0
- package/dist/environment/dome-gradient.js.map +1 -1
- package/dist/environment/dome-texture.d.ts +3 -1
- package/dist/environment/dome-texture.d.ts.map +1 -1
- package/dist/environment/dome-texture.js +7 -1
- package/dist/environment/dome-texture.js.map +1 -1
- package/dist/environment/environment-system.d.ts +8 -0
- package/dist/environment/environment-system.d.ts.map +1 -1
- package/dist/environment/environment-system.js +78 -2
- package/dist/environment/environment-system.js.map +1 -1
- package/dist/environment/ibl-gradient.js +1 -0
- package/dist/environment/ibl-gradient.js.map +1 -1
- package/dist/environment/ibl-texture.d.ts +3 -1
- package/dist/environment/ibl-texture.d.ts.map +1 -1
- package/dist/environment/ibl-texture.js +7 -1
- package/dist/environment/ibl-texture.js.map +1 -1
- package/dist/environment-raycast/environment-raycast.d.ts +136 -0
- package/dist/environment-raycast/environment-raycast.d.ts.map +1 -0
- package/dist/environment-raycast/environment-raycast.js +333 -0
- package/dist/environment-raycast/environment-raycast.js.map +1 -0
- package/dist/environment-raycast/index.d.ts +9 -0
- package/dist/environment-raycast/index.d.ts.map +1 -0
- package/dist/environment-raycast/raycast-target.d.ts +114 -0
- package/dist/environment-raycast/raycast-target.d.ts.map +1 -0
- package/dist/environment-raycast/raycast-target.js +84 -0
- package/dist/environment-raycast/raycast-target.js.map +1 -0
- package/dist/grab/distance-grabbable.d.ts +27 -2
- package/dist/grab/distance-grabbable.d.ts.map +1 -1
- package/dist/grab/distance-grabbable.js +25 -2
- package/dist/grab/distance-grabbable.js.map +1 -1
- package/dist/grab/grab-system.d.ts +106 -61
- package/dist/grab/grab-system.d.ts.map +1 -1
- package/dist/grab/grab-system.js +61 -10
- package/dist/grab/grab-system.js.map +1 -1
- package/dist/grab/handles.d.ts +14 -4
- package/dist/grab/handles.d.ts.map +1 -1
- package/dist/grab/handles.js +45 -18
- package/dist/grab/handles.js.map +1 -1
- package/dist/grab/index.d.ts +0 -1
- package/dist/grab/index.d.ts.map +1 -1
- package/dist/grab/index.js +0 -2
- package/dist/grab/index.js.map +1 -1
- package/dist/grab/one-hand-grabbable.js +1 -0
- package/dist/grab/one-hand-grabbable.js.map +1 -1
- package/dist/grab/two-hands-grabbable.js +1 -0
- package/dist/grab/two-hands-grabbable.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/init/world-initializer.d.ts +13 -1
- package/dist/init/world-initializer.d.ts.map +1 -1
- package/dist/init/world-initializer.js +78 -18
- package/dist/init/world-initializer.js.map +1 -1
- package/dist/init/xr.d.ts +1 -0
- package/dist/init/xr.d.ts.map +1 -1
- package/dist/init/xr.js +6 -0
- package/dist/init/xr.js.map +1 -1
- package/dist/input/input-system.d.ts +409 -5
- package/dist/input/input-system.d.ts.map +1 -1
- package/dist/input/input-system.js +166 -32
- package/dist/input/input-system.js.map +1 -1
- package/dist/input/state-tags.d.ts +32 -15
- package/dist/input/state-tags.d.ts.map +1 -1
- package/dist/input/state-tags.js +34 -16
- package/dist/input/state-tags.js.map +1 -1
- package/dist/level/level-entity-creator.js +1 -0
- package/dist/level/level-entity-creator.js.map +1 -1
- package/dist/level/level-root.js +1 -0
- package/dist/level/level-root.js.map +1 -1
- package/dist/level/level-system.js +1 -0
- package/dist/level/level-system.js.map +1 -1
- package/dist/level/level-tag.js +1 -0
- package/dist/level/level-tag.js.map +1 -1
- package/dist/locomotion/locomotion.d.ts +10 -0
- package/dist/locomotion/locomotion.d.ts.map +1 -1
- package/dist/locomotion/locomotion.js +17 -1
- package/dist/locomotion/locomotion.js.map +1 -1
- package/dist/locomotion/slide.d.ts +10 -0
- package/dist/locomotion/slide.d.ts.map +1 -1
- package/dist/locomotion/slide.js +6 -2
- package/dist/locomotion/slide.js.map +1 -1
- package/dist/locomotion/teleport.js +1 -0
- package/dist/locomotion/teleport.js.map +1 -1
- package/dist/mcp/ecs-debug-tools.d.ts +167 -0
- package/dist/mcp/ecs-debug-tools.d.ts.map +1 -0
- package/dist/mcp/ecs-debug-tools.js +602 -0
- package/dist/mcp/ecs-debug-tools.js.map +1 -0
- package/dist/mcp/index.d.ts +10 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/mcp-runtime.d.ts +31 -0
- package/dist/mcp/mcp-runtime.d.ts.map +1 -0
- package/dist/mcp/mcp-runtime.js +85 -0
- package/dist/mcp/mcp-runtime.js.map +1 -0
- package/dist/mcp/scene-tools.d.ts +41 -0
- package/dist/mcp/scene-tools.d.ts.map +1 -0
- package/dist/mcp/scene-tools.js +95 -0
- package/dist/mcp/scene-tools.js.map +1 -0
- package/dist/physics/physics-system.d.ts +1 -1
- package/dist/physics/physics-system.d.ts.map +1 -1
- package/dist/physics/physics-system.js +9 -4
- package/dist/physics/physics-system.js.map +1 -1
- package/dist/physics/utils.d.ts.map +1 -1
- package/dist/physics/utils.js +1 -1
- package/dist/scene-understanding/anchor.js +1 -0
- package/dist/scene-understanding/anchor.js.map +1 -1
- package/dist/scene-understanding/mesh.js +1 -0
- package/dist/scene-understanding/mesh.js.map +1 -1
- package/dist/scene-understanding/plane.js +1 -0
- package/dist/scene-understanding/plane.js.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.d.ts +0 -39
- package/dist/scene-understanding/scene-understanding-system.d.ts.map +1 -1
- package/dist/scene-understanding/scene-understanding-system.js +10 -2
- package/dist/scene-understanding/scene-understanding-system.js.map +1 -1
- package/dist/transform/index.d.ts +2 -0
- package/dist/transform/index.d.ts.map +1 -1
- package/dist/transform/synced-euler.d.ts +62 -0
- package/dist/transform/synced-euler.d.ts.map +1 -0
- package/dist/transform/synced-euler.js +212 -0
- package/dist/transform/synced-euler.js.map +1 -0
- package/dist/transform/synced-quaternion.d.ts +11 -0
- package/dist/transform/synced-quaternion.d.ts.map +1 -1
- package/dist/transform/synced-quaternion.js +29 -0
- package/dist/transform/synced-quaternion.js.map +1 -1
- package/dist/transform/transform-utils.d.ts +24 -0
- package/dist/transform/transform-utils.d.ts.map +1 -0
- package/dist/transform/transform-utils.js +53 -0
- package/dist/transform/transform-utils.js.map +1 -0
- package/dist/transform/transform.d.ts.map +1 -1
- package/dist/transform/transform.js +19 -2
- package/dist/transform/transform.js.map +1 -1
- package/dist/ui/follow.js +1 -0
- package/dist/ui/follow.js.map +1 -1
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/screenspace.js +1 -0
- package/dist/ui/screenspace.js.map +1 -1
- package/dist/ui/ui.d.ts.map +1 -1
- package/dist/ui/ui.js +2 -8
- package/dist/ui/ui.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/visibility/visibility.d.ts.map +1 -1
- package/dist/visibility/visibility.js +4 -1
- package/dist/visibility/visibility.js.map +1 -1
- package/package.json +16 -9
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.1.7_super-three@0.177.0/node_modules/@pmndrs/uikitml/dist/interpreter/html.js +0 -128
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.1.7_super-three@0.177.0/node_modules/@pmndrs/uikitml/dist/interpreter/html.js.map +0 -1
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.1.7_super-three@0.177.0/node_modules/@pmndrs/uikitml/dist/interpreter/index.js +0 -161
- package/dist/node_modules/.pnpm/@pmndrs_uikitml@0.1.7_super-three@0.177.0/node_modules/@pmndrs/uikitml/dist/interpreter/index.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js +0 -66
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/error-codes.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js +0 -162
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/foreign-content.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js +0 -519
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/html.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js +0 -15
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/token.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js +0 -32
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/common/unicode.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js +0 -10
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/formatting-element-list.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js +0 -41
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/index.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js +0 -35
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/parser/open-element-stack.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js +0 -24
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/serializer/index.js.map +0 -1
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js +0 -92
- package/dist/node_modules/.pnpm/parse5@7.3.0/node_modules/parse5/dist/tokenizer/index.js.map +0 -1
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js +0 -382
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/libs/fflate.module.js.map +0 -1
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js +0 -2587
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/EXRLoader.js.map +0 -1
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js +0 -477
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/examples/jsm/loaders/RGBELoader.js.map +0 -1
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js +0 -17
- package/dist/node_modules/.pnpm/super-three@0.177.0/node_modules/super-three/src/math/MathUtils.js.map +0 -1
package/dist/grab/handles.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { HandleOptions, HandleStore } from '@pmndrs/handle';
|
|
8
8
|
import { Types } from '../ecs/index.js';
|
|
9
|
-
import { Object3D } from '../runtime/index.js';
|
|
9
|
+
import { Object3D, Quaternion, Vector3 } from '../runtime/index.js';
|
|
10
10
|
export declare const Handle: import("elics").Component<{
|
|
11
11
|
instance: {
|
|
12
12
|
type: Types.Object;
|
|
@@ -28,17 +28,27 @@ export declare class DistanceGrabHandle<T> extends HandleStore<T> {
|
|
|
28
28
|
readonly target_: Object3D | {
|
|
29
29
|
current?: Object3D | null;
|
|
30
30
|
};
|
|
31
|
+
readonly sceneRoot_: Object3D;
|
|
31
32
|
readonly getOptions: () => HandleOptions<T>;
|
|
32
33
|
readonly movementMode: string;
|
|
33
|
-
readonly returnToOrigin:
|
|
34
|
-
readonly
|
|
34
|
+
readonly returnToOrigin: boolean;
|
|
35
|
+
readonly moveSpeedFactor: number;
|
|
36
|
+
readonly targetPosOffset: Vector3;
|
|
37
|
+
readonly targetQuatOffset: Quaternion;
|
|
38
|
+
readonly detachOnGrab: boolean;
|
|
35
39
|
private previousPointerOrigin;
|
|
40
|
+
private isSnapped;
|
|
41
|
+
private static SNAP_THRESHOLD;
|
|
42
|
+
private static MOVE_SPEED_SCALE;
|
|
36
43
|
private static _tmp;
|
|
44
|
+
private static _tmpQuat;
|
|
37
45
|
private static _posHelper;
|
|
38
46
|
private static _quatHelper;
|
|
47
|
+
private static _offsetPosHelper;
|
|
48
|
+
private static _offsetQuatHelper;
|
|
39
49
|
constructor(target_: Object3D | {
|
|
40
50
|
current?: Object3D | null;
|
|
41
|
-
}, getOptions: (() => HandleOptions<T>) | undefined, movementMode: string, returnToOrigin:
|
|
51
|
+
}, sceneRoot_: Object3D, getOptions: (() => HandleOptions<T>) | undefined, movementMode: string, returnToOrigin: boolean, moveSpeedFactor: number | undefined, targetPosOffset: Vector3 | undefined, targetQuatOffset: Quaternion | undefined, detachOnGrab: boolean);
|
|
42
52
|
update(time: number): void;
|
|
43
53
|
protected apply(target: Object3D): T;
|
|
44
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/grab/handles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/grab/handles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEpE,eAAO,MAAM,MAAM;;;;;EAMlB,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,YAAY;IACvB,oFAAoF;;IAEpF,qEAAqE;;IAErE,qFAAqF;;IAErF,8DAA8D;;CAE/D,CAAC;AAEF,qBAAa,kBAAkB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IAarD,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE;IAC1D,QAAQ,CAAC,UAAU,EAAE,QAAQ;aACb,UAAU,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC;aAClC,YAAY,EAAE,MAAM;aACpB,cAAc,EAAE,OAAO;aACvB,eAAe,EAAE,MAAM;aACvB,eAAe,EAAE,OAAO;aACxB,gBAAgB,EAAE,UAAU;aAC5B,YAAY,EAAE,OAAO;IApBvC,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAS;IACtC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAO;IACtC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAiB;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoB;IAC3C,OAAO,CAAC,MAAM,CAAC,UAAU,CAAiB;IAC1C,OAAO,CAAC,MAAM,CAAC,WAAW,CAAoB;IAC9C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAiB;IAChD,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAoB;gBAGzC,OAAO,EAAE,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,EACjD,UAAU,EAAE,QAAQ,EACb,UAAU,GAAE,MAAM,aAAa,CAAC,CAAC,CAAC,aAAa,EAC/C,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,OAAO,EACvB,eAAe,EAAE,MAAM,YAAM,EAC7B,eAAe,EAAE,OAAO,YAAuB,EAC/C,gBAAgB,EAAE,UAAU,YAA6B,EACzD,YAAY,EAAE,OAAO;IAWvC,MAAM,CAAC,IAAI,EAAE,MAAM;IAmInB,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,CAAC;CAcrC"}
|
package/dist/grab/handles.js
CHANGED
|
@@ -2,6 +2,7 @@ import { HandleStore } from '@pmndrs/handle';
|
|
|
2
2
|
import '@preact/signals-core';
|
|
3
3
|
import '../ecs/world.js';
|
|
4
4
|
import { createComponent, Types } from 'elics';
|
|
5
|
+
import '../ecs/entity.js';
|
|
5
6
|
import '../ecs/component-registry.js';
|
|
6
7
|
import '../runtime/three.js';
|
|
7
8
|
import { Vector3, Quaternion } from 'three';
|
|
@@ -27,21 +28,25 @@ const MovementMode = {
|
|
|
27
28
|
RotateAtSource: 'RotateAtSource',
|
|
28
29
|
};
|
|
29
30
|
class DistanceGrabHandle extends HandleStore {
|
|
30
|
-
constructor(target_, getOptions = () => ({}), movementMode, returnToOrigin,
|
|
31
|
+
constructor(target_, sceneRoot_, getOptions = () => ({}), movementMode, returnToOrigin, moveSpeedFactor = 0.1, targetPosOffset = new Vector3(0, 0, 0), targetQuatOffset = new Quaternion(0, 0, 0, 1), detachOnGrab) {
|
|
31
32
|
super(target_, getOptions);
|
|
32
33
|
this.target_ = target_;
|
|
34
|
+
this.sceneRoot_ = sceneRoot_;
|
|
33
35
|
this.getOptions = getOptions;
|
|
34
36
|
this.movementMode = movementMode;
|
|
35
37
|
this.returnToOrigin = returnToOrigin;
|
|
36
|
-
this.
|
|
38
|
+
this.moveSpeedFactor = moveSpeedFactor;
|
|
39
|
+
this.targetPosOffset = targetPosOffset;
|
|
40
|
+
this.targetQuatOffset = targetQuatOffset;
|
|
41
|
+
this.detachOnGrab = detachOnGrab;
|
|
42
|
+
this.isSnapped = false;
|
|
43
|
+
this.targetQuatOffset.normalize();
|
|
44
|
+
target_.addEventListener('pointerup', () => {
|
|
45
|
+
this.isSnapped = false;
|
|
46
|
+
});
|
|
37
47
|
}
|
|
38
48
|
update(time) {
|
|
39
49
|
var _a;
|
|
40
|
-
if (this.movementMode === MovementMode.RotateAtSource ||
|
|
41
|
-
this.movementMode === MovementMode.MoveFromTarget) {
|
|
42
|
-
super.update(time);
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
50
|
const target = this.getTarget();
|
|
46
51
|
if (target == null ||
|
|
47
52
|
this.inputState.size === 0 ||
|
|
@@ -52,6 +57,14 @@ class DistanceGrabHandle extends HandleStore {
|
|
|
52
57
|
}
|
|
53
58
|
return;
|
|
54
59
|
}
|
|
60
|
+
if (this.detachOnGrab && target.parent != this.sceneRoot_) {
|
|
61
|
+
this.sceneRoot_.attach(target);
|
|
62
|
+
}
|
|
63
|
+
if (this.movementMode === MovementMode.RotateAtSource ||
|
|
64
|
+
this.movementMode === MovementMode.MoveFromTarget) {
|
|
65
|
+
super.update(time);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
55
68
|
const pointerAmount = this.inputState.size;
|
|
56
69
|
target.getWorldPosition(DistanceGrabHandle._posHelper);
|
|
57
70
|
target.getWorldQuaternion(DistanceGrabHandle._quatHelper);
|
|
@@ -79,18 +92,27 @@ class DistanceGrabHandle extends HandleStore {
|
|
|
79
92
|
case MovementMode.MoveTowardsTarget: {
|
|
80
93
|
const [p1] = this.inputState.values();
|
|
81
94
|
const pointerOrigin = p1.pointerWorldOrigin;
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
95
|
+
const pointerQuaternion = p1.pointerWorldQuaternion;
|
|
96
|
+
// Calculate target position by applying position offset in pointer's local space
|
|
97
|
+
const targetPosition = DistanceGrabHandle._offsetPosHelper
|
|
98
|
+
.copy(this.targetPosOffset)
|
|
99
|
+
.applyQuaternion(pointerQuaternion)
|
|
100
|
+
.add(pointerOrigin);
|
|
101
|
+
// Calculate target rotation by multiplying pointer rotation with rotation offset
|
|
102
|
+
const targetQuaternion = DistanceGrabHandle._offsetQuatHelper
|
|
103
|
+
.copy(pointerQuaternion)
|
|
104
|
+
.multiply(this.targetQuatOffset);
|
|
105
|
+
const distance = targetPosition.distanceTo(DistanceGrabHandle._posHelper);
|
|
106
|
+
if (!this.isSnapped && distance > DistanceGrabHandle.SNAP_THRESHOLD) {
|
|
107
|
+
DistanceGrabHandle._posHelper.lerp(targetPosition, this.moveSpeedFactor * time * DistanceGrabHandle.MOVE_SPEED_SCALE);
|
|
108
|
+
DistanceGrabHandle._quatHelper.slerp(targetQuaternion, this.moveSpeedFactor * time * DistanceGrabHandle.MOVE_SPEED_SCALE);
|
|
90
109
|
}
|
|
91
110
|
else {
|
|
92
|
-
|
|
93
|
-
|
|
111
|
+
if (!this.isSnapped) {
|
|
112
|
+
this.isSnapped = true;
|
|
113
|
+
}
|
|
114
|
+
DistanceGrabHandle._posHelper.copy(targetPosition);
|
|
115
|
+
DistanceGrabHandle._quatHelper.copy(targetQuaternion);
|
|
94
116
|
}
|
|
95
117
|
break;
|
|
96
118
|
}
|
|
@@ -107,7 +129,7 @@ class DistanceGrabHandle extends HandleStore {
|
|
|
107
129
|
.applyMatrix4(parentWorldMatrixInverse);
|
|
108
130
|
// Transform desired world quaternion to local space
|
|
109
131
|
const parentWorldQuaternionInverse = target.parent
|
|
110
|
-
.getWorldQuaternion(
|
|
132
|
+
.getWorldQuaternion(DistanceGrabHandle._tmpQuat)
|
|
111
133
|
.invert();
|
|
112
134
|
quaternion
|
|
113
135
|
.copy(DistanceGrabHandle._quatHelper)
|
|
@@ -147,9 +169,14 @@ class DistanceGrabHandle extends HandleStore {
|
|
|
147
169
|
return super.apply(target);
|
|
148
170
|
}
|
|
149
171
|
}
|
|
172
|
+
DistanceGrabHandle.SNAP_THRESHOLD = 0.005;
|
|
173
|
+
DistanceGrabHandle.MOVE_SPEED_SCALE = 100;
|
|
150
174
|
DistanceGrabHandle._tmp = new Vector3();
|
|
175
|
+
DistanceGrabHandle._tmpQuat = new Quaternion();
|
|
151
176
|
DistanceGrabHandle._posHelper = new Vector3();
|
|
152
177
|
DistanceGrabHandle._quatHelper = new Quaternion();
|
|
178
|
+
DistanceGrabHandle._offsetPosHelper = new Vector3();
|
|
179
|
+
DistanceGrabHandle._offsetQuatHelper = new Quaternion();
|
|
153
180
|
|
|
154
181
|
export { DistanceGrabHandle, Handle, MovementMode };
|
|
155
182
|
//# sourceMappingURL=handles.js.map
|
package/dist/grab/handles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handles.js","sources":["../../src/grab/handles.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handles.js","sources":["../../src/grab/handles.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAAA;;;;;AAKG;AAMI,MAAM,MAAM,GAAG,eAAe,CACnC,QAAQ,EACR;IACE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE;CACrD,EACD,kEAAkE;AAGpE;AACO,MAAM,YAAY,GAAG;;AAE1B,IAAA,cAAc,EAAE,gBAAgB;;AAEhC,IAAA,iBAAiB,EAAE,mBAAmB;;AAEtC,IAAA,YAAY,EAAE,cAAc;;AAE5B,IAAA,cAAc,EAAE,gBAAgB;;AAG5B,MAAO,kBAAsB,SAAQ,WAAc,CAAA;AAYvD,IAAA,WAAA,CACW,OAAiD,EACjD,UAAoB,EACb,UAAA,GAAqC,OAAO,EAAE,CAAC,EAC/C,YAAoB,EACpB,cAAuB,EACvB,eAAA,GAA0B,GAAG,EAC7B,eAAA,GAA2B,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC/C,mBAA+B,IAAI,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACzD,YAAqB,EAAA;AAErC,QAAA,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC;QAVjB,IAAA,CAAA,OAAO,GAAP,OAAO;QACP,IAAA,CAAA,UAAU,GAAV,UAAU;QACH,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,YAAY,GAAZ,YAAY;QAnBtB,IAAA,CAAA,SAAS,GAAY,KAAK;AAuBhC,QAAA,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AAEhC,QAAA,OAAoB,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAK;AACvD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,CAAC,IAAY,EAAA;;AACjB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE;QAE/B,IACE,MAAM,IAAI,IAAI;AACd,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;AAC1B,aAAC,IAAI,CAAC,eAAe,IAAI,IAAI;AAC3B,gBAAA,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,KAAK,MAAM,KAAK,CAAC,EACtD;AACA,YAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,SAAS,EAAE;AAC3C,gBAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS;YACxC;YACA;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE;AACzD,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;QAChC;AAEA,QAAA,IACE,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,cAAc;AACjD,YAAA,IAAI,CAAC,YAAY,KAAK,YAAY,CAAC,cAAc,EACjD;AACA,YAAA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAClB;QACF;AAEA,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;AAC1C,QAAA,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,UAAU,CAAC;AACtD,QAAA,MAAM,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,WAAW,CAAC;AACzD,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU;AACpC,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ;AAChC,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK;AAE1B,QAAA,QAAQ,IAAI,CAAC,YAAY;AACvB,YAAA,KAAK,YAAY,CAAC,YAAY,EAAE;gBAC9B,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACrC,gBAAA,MAAM,OAAO,GAAG,EAAE,CAAC,kBAAkB;AACrC,gBAAA,IAAI,IAAI,CAAC,qBAAqB,IAAI,SAAS,EAAE;AAC3C,oBAAA,MAAM,KAAK,GAAG,kBAAkB,CAAC;yBAC9B,IAAI,CAAC,OAAO;AACZ,yBAAA,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC;AAClC,oBAAA,kBAAkB,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC1C;qBAAO;oBACL,IAAI,CAAC,qBAAqB,GAAG,IAAI,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC1D;;AAEA,gBAAA,IAAI,CAAC,qBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC;gBACzC;YACF;AACA,YAAA,KAAK,YAAY,CAAC,iBAAiB,EAAE;gBACnC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;AACrC,gBAAA,MAAM,aAAa,GAAG,EAAE,CAAC,kBAAkB;AAC3C,gBAAA,MAAM,iBAAiB,GAAG,EAAE,CAAC,sBAAsB;;AAGnD,gBAAA,MAAM,cAAc,GAAG,kBAAkB,CAAC;AACvC,qBAAA,IAAI,CAAC,IAAI,CAAC,eAAe;qBACzB,eAAe,CAAC,iBAAiB;qBACjC,GAAG,CAAC,aAAa,CAAC;;AAGrB,gBAAA,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;qBACzC,IAAI,CAAC,iBAAiB;AACtB,qBAAA,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAElC,MAAM,QAAQ,GAAG,cAAc,CAAC,UAAU,CACxC,kBAAkB,CAAC,UAAU,CAC9B;gBAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,QAAQ,GAAG,kBAAkB,CAAC,cAAc,EAAE;AACnE,oBAAA,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAChC,cAAc,EACd,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,kBAAkB,CAAC,gBAAgB,CAClE;AACD,oBAAA,kBAAkB,CAAC,WAAW,CAAC,KAAK,CAClC,gBAAgB,EAChB,IAAI,CAAC,eAAe,GAAG,IAAI,GAAG,kBAAkB,CAAC,gBAAgB,CAClE;gBACH;qBAAO;AACL,oBAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACnB,wBAAA,IAAI,CAAC,SAAS,GAAG,IAAI;oBACvB;AACA,oBAAA,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;AAClD,oBAAA,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBACvD;gBAEA;YACF;;;AAIF,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;;AAEjB,YAAA,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;AAC5C,iBAAA,KAAK;AACL,iBAAA,MAAM,EAAE;;YAGX;AACG,iBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU;iBAClC,YAAY,CAAC,wBAAwB,CAAC;;AAGzC,YAAA,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACzC,iBAAA,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ;AAC9C,iBAAA,MAAM,EAAE;YACX;AACG,iBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW;iBACnC,WAAW,CAAC,4BAA4B,CAAC;QAC9C;aAAO;;AAEL,YAAA,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC;AAC5C,YAAA,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;QACjD;;;QAIA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAC5C,aAAa;YACb,QAAQ;YACR,UAAU;YACV,QAAQ;YACR,KAAK;YACL,IAAI;AACL,SAAA,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AAC1C,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;IAClC;AAEU,IAAA,KAAK,CAAC,MAAgB,EAAA;;;;AAG9B,QAAA,IAAI,IAAI,CAAC,cAAc,KAAI,CAAA,EAAA,GAAC,IAAY,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,IAAI,CAAA,EAAE;YAC1D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;;YAEhD,MAAM,CAAC,QAAQ,CAAC,KAAK,GAAI,IAAY,CAAC,qBAAqB,CAAC,KAAK;YACjE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;YACpD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;;AAE1C,YAAA,OAAO,SAAyB;QAClC;AACA,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5B;;AA7Ke,kBAAA,CAAA,cAAc,GAAG,KAAH;AACd,kBAAA,CAAA,gBAAgB,GAAG,GAAH;AAChB,kBAAA,CAAA,IAAI,GAAG,IAAI,OAAO,EAAE;AACpB,kBAAA,CAAA,QAAQ,GAAG,IAAI,UAAU,EAAE;AAC3B,kBAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAE;AAC1B,kBAAA,CAAA,WAAW,GAAG,IAAI,UAAU,EAAE;AAC9B,kBAAA,CAAA,gBAAgB,GAAG,IAAI,OAAO,EAAE;AAChC,kBAAA,CAAA,iBAAiB,GAAG,IAAI,UAAU,EAAE;;;;"}
|
package/dist/grab/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
export { Interactable, Hovered, Pressed } from '../input/index.js';
|
|
8
7
|
export * from './grab-system.js';
|
|
9
8
|
export * from './one-hand-grabbable.js';
|
|
10
9
|
export * from './two-hands-grabbable.js';
|
package/dist/grab/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grab/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grab/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/grab/index.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { RayIntersector, SphereIntersector } from '@pmndrs/pointer-events';
|
|
2
2
|
import { patchedIntersectRayPointerCapture, patchedIntersectSpherePointerCapture, patchedExecuteIntersection } from './pointer-events-patch.js';
|
|
3
|
-
import '../input/input-system.js';
|
|
4
|
-
export { Hovered, Interactable, Pressed } from '../input/state-tags.js';
|
|
5
3
|
export { GrabSystem } from './grab-system.js';
|
|
6
4
|
export { OneHandGrabbable } from './one-hand-grabbable.js';
|
|
7
5
|
export { TwoHandsGrabbable } from './two-hands-grabbable.js';
|
package/dist/grab/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/grab/index.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/grab/index.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAAA;;;;;AAKG;AAeH;AACA,cAAc,CAAC,SAAS,CAAC,uBAAuB;AAC9C,IAAA,iCAAiC;AACnC,iBAAiB,CAAC,SAAS,CAAC,uBAAuB;AACjD,IAAA,oCAAoC;AACtC,iBAAiB,CAAC,SAAS,CAAC,mBAAmB,GAAG,0BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"one-hand-grabbable.js","sources":["../../src/grab/one-hand-grabbable.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"one-hand-grabbable.js","sources":["../../src/grab/one-hand-grabbable.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAAA;;;;;AAKG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AAEI,MAAM,gBAAgB,GAAG,eAAe,CAC7C,kBAAkB,EAClB;;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;CACF,EACD,4DAA4D;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"two-hands-grabbable.js","sources":["../../src/grab/two-hands-grabbable.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
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
CHANGED
|
@@ -18,9 +18,12 @@ export * from './input/index.js';
|
|
|
18
18
|
export * from './environment/index.js';
|
|
19
19
|
export * from './level/index.js';
|
|
20
20
|
export * from './scene-understanding/index.js';
|
|
21
|
+
export * from './environment-raycast/index.js';
|
|
21
22
|
export * from './audio/index.js';
|
|
22
23
|
export * from './physics/index.js';
|
|
23
24
|
export * from './camera/index.js';
|
|
25
|
+
export * from './depth/index.js';
|
|
26
|
+
export * from './mcp/index.js';
|
|
24
27
|
export * from '@iwsdk/xr-input';
|
|
25
28
|
export * from '@iwsdk/locomotor';
|
|
26
29
|
export * as UIKit from '@pmndrs/uikit';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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;AACnC,cAAc,mBAAmB,CAAC;
|
|
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,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,OAAO,KAAK,KAAK,MAAM,eAAe,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,8 +9,10 @@ export { VisibilityState, World } from './ecs/world.js';
|
|
|
9
9
|
export { NullEntity } from './ecs/entity.js';
|
|
10
10
|
export { GLXFComponentRegistry } from './ecs/component-registry.js';
|
|
11
11
|
export { Transform, TransformSystem } from './transform/transform.js';
|
|
12
|
+
export { setWorldPosition, setWorldQuaternion } from './transform/transform-utils.js';
|
|
12
13
|
export { SyncedVector3 } from './transform/synced-vector3.js';
|
|
13
14
|
export { SyncedQuaternion } from './transform/synced-quaternion.js';
|
|
15
|
+
export { SyncedEuler } from './transform/synced-euler.js';
|
|
14
16
|
export { AssetManager, AssetType } from './asset/asset-manager.js';
|
|
15
17
|
export { CacheManager } from './asset/cache-manager.js';
|
|
16
18
|
export { SlideSystem } from './locomotion/slide.js';
|
|
@@ -26,7 +28,7 @@ export { ReferenceSpaceType, SessionMode, buildSessionInit, launchXR, normalizeR
|
|
|
26
28
|
export { initializeWorld } from './init/world-initializer.js';
|
|
27
29
|
import './grab/index.js';
|
|
28
30
|
export { InputSystem } from './input/input-system.js';
|
|
29
|
-
export { Hovered, Interactable, Pressed } from './input/state-tags.js';
|
|
31
|
+
export { Hovered, Interactable, PokeInteractable, Pressed, RayInteractable } from './input/state-tags.js';
|
|
30
32
|
export { DomeTexture } from './environment/dome-texture.js';
|
|
31
33
|
export { DomeGradient } from './environment/dome-gradient.js';
|
|
32
34
|
export { IBLTexture } from './environment/ibl-texture.js';
|
|
@@ -41,6 +43,8 @@ export { SceneUnderstandingSystem } from './scene-understanding/scene-understand
|
|
|
41
43
|
export { XRAnchor } from './scene-understanding/anchor.js';
|
|
42
44
|
export { XRPlane } from './scene-understanding/plane.js';
|
|
43
45
|
export { XRMesh } from './scene-understanding/mesh.js';
|
|
46
|
+
export { EnvironmentRaycastSystem } from './environment-raycast/environment-raycast.js';
|
|
47
|
+
export { EnvironmentRaycastTarget, RaycastSpace } from './environment-raycast/raycast-target.js';
|
|
44
48
|
export { AudioSource, DistanceModel, InstanceStealPolicy, PlaybackMode } from './audio/audio.js';
|
|
45
49
|
export { AudioSystem } from './audio/audio-system.js';
|
|
46
50
|
export { AudioUtils } from './audio/audio-utils.js';
|
|
@@ -53,6 +57,10 @@ export { CameraFacing, CameraState } from './camera/types.js';
|
|
|
53
57
|
export { CameraUtils } from './camera/camera-utils.js';
|
|
54
58
|
export { CameraSource } from './camera/camera-source.js';
|
|
55
59
|
export { CameraSystem } from './camera/camera-system.js';
|
|
60
|
+
export { DepthOccludable, OcclusionShadersMode } from './depth/depth-occludable.js';
|
|
61
|
+
export { DepthTextures } from './depth/depth-textures.js';
|
|
62
|
+
export { DepthSensingSystem } from './depth/depth-sensing-system.js';
|
|
63
|
+
export { MCPRuntime } from './mcp/mcp-runtime.js';
|
|
56
64
|
export * from '@iwsdk/xr-input';
|
|
57
65
|
export * from '@iwsdk/locomotor';
|
|
58
66
|
import * as uikit from '@pmndrs/uikit';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["EliCSVersion"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["EliCSVersion"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAiCH,OAAO,CAAC,GAAG,CAAC,CAAA;;;;;;;;;qBASS,OAAO;YAChB,QAAQ;SACXA,SAAY,CAAA,CAAE,CAAC;;;;"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { AssetManifest } from '../asset/index.js';
|
|
8
8
|
import { World } from '../ecs/index.js';
|
|
9
|
+
import { TurningMethod } from '../locomotion/index.js';
|
|
9
10
|
import { ColorScheme } from '../ui/index.js';
|
|
10
11
|
import { XROptions } from './index.js';
|
|
11
12
|
/** Options for {@link initializeWorld} / {@link World.create}.
|
|
@@ -35,21 +36,32 @@ export type WorldOptions = {
|
|
|
35
36
|
far?: number;
|
|
36
37
|
/** Generate a default gradient environment and background. @defaultValue true */
|
|
37
38
|
defaultLighting?: boolean;
|
|
39
|
+
/** Enable stencil buffer. @defaultValue false */
|
|
40
|
+
stencil?: boolean;
|
|
38
41
|
};
|
|
39
42
|
/** Opt‑in feature systems. */
|
|
40
43
|
features?: {
|
|
41
44
|
/** Locomotion (teleport/slide/turn). Boolean or config. @defaultValue false */
|
|
42
45
|
locomotion?: boolean | {
|
|
43
46
|
useWorker?: boolean;
|
|
47
|
+
initialPlayerPosition?: [number, number, number];
|
|
48
|
+
comfortAssistLevel?: number;
|
|
49
|
+
turningMethod?: TurningMethod;
|
|
50
|
+
/** Whether jumping is enabled. @defaultValue true */
|
|
51
|
+
enableJumping?: boolean;
|
|
44
52
|
};
|
|
45
53
|
/** Grabbing (one/two‑hand, distance). @defaultValue false */
|
|
46
|
-
grabbing?: boolean
|
|
54
|
+
grabbing?: boolean | {
|
|
55
|
+
useHandPinchForGrab?: boolean;
|
|
56
|
+
};
|
|
47
57
|
/** Physics simulation (Havok). @defaultValue false */
|
|
48
58
|
physics?: boolean;
|
|
49
59
|
/** Scene Understanding (planes/meshes/anchors). Boolean or config. @defaultValue false */
|
|
50
60
|
sceneUnderstanding?: boolean | {
|
|
51
61
|
showWireFrame?: boolean;
|
|
52
62
|
};
|
|
63
|
+
/** Environment Raycast (hit-test against real-world surfaces). @defaultValue false */
|
|
64
|
+
environmentRaycast?: boolean;
|
|
53
65
|
/** Camera access for video streaming. @defaultValue false */
|
|
54
66
|
camera?: boolean;
|
|
55
67
|
/** Spatial UI systems (PanelUI/ScreenSpace/Follow). Boolean or config. @defaultValue true */
|
|
@@ -1 +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;AAGhE,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;
|
|
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;AAGhE,OAAO,EAAE,KAAK,EAAmB,MAAM,iBAAiB,CAAC;AAsBzD,OAAO,EAAoB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAsBzE,OAAO,EAOL,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,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;QAC1B,iDAAiD;QACjD,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,8BAA8B;IAC9B,QAAQ,CAAC,EAAE;QACT,+EAA+E;QAC/E,UAAU,CAAC,EACP,OAAO,GACP;YACE,SAAS,CAAC,EAAE,OAAO,CAAC;YACpB,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B,aAAa,CAAC,EAAE,aAAa,CAAC;YAC9B,qDAAqD;YACrD,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;QACN,6DAA6D;QAC7D,QAAQ,CAAC,EAAE,OAAO,GAAG;YAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QACvD,sDAAsD;QACtD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,0FAA0F;QAC1F,kBAAkB,CAAC,EAAE,OAAO,GAAG;YAAE,aAAa,CAAC,EAAE,OAAO,CAAA;SAAE,CAAC;QAC3D,sFAAsF;QACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,6DAA6D;QAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,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;YAChE,oBAAoB,CAAC,EAAE,WAAW,CAAC;SACpC,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,CAgEhB"}
|
|
@@ -10,15 +10,18 @@ import { CameraSource } from '../camera/camera-source.js';
|
|
|
10
10
|
import { CameraSystem } from '../camera/camera-system.js';
|
|
11
11
|
import { World, VisibilityState } from '../ecs/world.js';
|
|
12
12
|
import 'elics';
|
|
13
|
+
import '../ecs/entity.js';
|
|
13
14
|
import '../ecs/component-registry.js';
|
|
14
15
|
import { DomeTexture } from '../environment/dome-texture.js';
|
|
15
16
|
import { DomeGradient } from '../environment/dome-gradient.js';
|
|
16
17
|
import { IBLTexture } from '../environment/ibl-texture.js';
|
|
17
18
|
import { IBLGradient } from '../environment/ibl-gradient.js';
|
|
18
19
|
import { EnvironmentSystem } from '../environment/environment-system.js';
|
|
20
|
+
import { EnvironmentRaycastSystem } from '../environment-raycast/environment-raycast.js';
|
|
21
|
+
import { EnvironmentRaycastTarget } from '../environment-raycast/raycast-target.js';
|
|
19
22
|
import '../grab/index.js';
|
|
20
23
|
import { InputSystem } from '../input/input-system.js';
|
|
21
|
-
import {
|
|
24
|
+
import { RayInteractable, PokeInteractable, Hovered, Pressed } from '../input/state-tags.js';
|
|
22
25
|
import { LevelSystem } from '../level/level-system.js';
|
|
23
26
|
import { LevelTag } from '../level/level-tag.js';
|
|
24
27
|
import '@iwsdk/glxf';
|
|
@@ -32,6 +35,7 @@ import '../locomotion/slide.js';
|
|
|
32
35
|
import '../locomotion/teleport.js';
|
|
33
36
|
import '../locomotion/turn.js';
|
|
34
37
|
import { LocomotionSystem } from '../locomotion/locomotion.js';
|
|
38
|
+
import { MCPRuntime } from '../mcp/mcp-runtime.js';
|
|
35
39
|
import { PhysicsSystem } from '../physics/physics-system.js';
|
|
36
40
|
import { PhysicsBody } from '../physics/physicsBody.js';
|
|
37
41
|
import { PhysicsManipulation } from '../physics/physicsManipulation.js';
|
|
@@ -41,6 +45,7 @@ import { XRAnchor } from '../scene-understanding/anchor.js';
|
|
|
41
45
|
import { XRPlane } from '../scene-understanding/plane.js';
|
|
42
46
|
import { XRMesh } from '../scene-understanding/mesh.js';
|
|
43
47
|
import { Transform, TransformSystem } from '../transform/transform.js';
|
|
48
|
+
import '../transform/transform-utils.js';
|
|
44
49
|
import { Visibility, VisibilitySystem } from '../visibility/visibility.js';
|
|
45
50
|
import { ReferenceSpaceType, SessionMode, buildSessionInit, normalizeReferenceSpec, resolveReferenceSpaceType } from './xr.js';
|
|
46
51
|
import { GrabSystem } from '../grab/grab-system.js';
|
|
@@ -70,6 +75,7 @@ import { GrabSystem } from '../grab/grab-system.js';
|
|
|
70
75
|
* This function powers {@link World.create}. Prefer using that static helper.
|
|
71
76
|
*/
|
|
72
77
|
function initializeWorld(container, options = {}) {
|
|
78
|
+
var _a;
|
|
73
79
|
// Create and configure world instance
|
|
74
80
|
const world = createWorldInstance();
|
|
75
81
|
// Extract configuration options
|
|
@@ -101,6 +107,13 @@ function initializeWorld(container, options = {}) {
|
|
|
101
107
|
if (config.xr.offer && config.xr.offer !== 'none') {
|
|
102
108
|
manageOfferFlow(world, config.xr.offer);
|
|
103
109
|
}
|
|
110
|
+
// Setup MCP runtime for framework-specific tools (dev only).
|
|
111
|
+
// In production Vite builds, import.meta.env.DEV is false and this entire
|
|
112
|
+
// code path is tree-shaken. In Node.js/tests, import.meta.env is undefined
|
|
113
|
+
// so the check defaults to enabled.
|
|
114
|
+
if (((_a = import.meta.env) === null || _a === void 0 ? void 0 : _a.DEV) !== false) {
|
|
115
|
+
setupMCPRuntime(world);
|
|
116
|
+
}
|
|
104
117
|
// Return promise that resolves after asset preloading
|
|
105
118
|
return finalizeInitialization(world, options.assets).then(async (w) => {
|
|
106
119
|
var _a;
|
|
@@ -132,25 +145,27 @@ function createWorldInstance() {
|
|
|
132
145
|
* Extract and normalize configuration options
|
|
133
146
|
*/
|
|
134
147
|
function extractConfiguration(options) {
|
|
135
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2;
|
|
148
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6;
|
|
136
149
|
return {
|
|
137
150
|
cameraFov: (_b = (_a = options.render) === null || _a === void 0 ? void 0 : _a.fov) !== null && _b !== void 0 ? _b : 50,
|
|
138
151
|
cameraNear: (_d = (_c = options.render) === null || _c === void 0 ? void 0 : _c.near) !== null && _d !== void 0 ? _d : 0.1,
|
|
139
152
|
cameraFar: (_f = (_e = options.render) === null || _e === void 0 ? void 0 : _e.far) !== null && _f !== void 0 ? _f : 200,
|
|
140
153
|
defaultLighting: (_h = (_g = options.render) === null || _g === void 0 ? void 0 : _g.defaultLighting) !== null && _h !== void 0 ? _h : true,
|
|
154
|
+
stencil: (_k = (_j = options.render) === null || _j === void 0 ? void 0 : _j.stencil) !== null && _k !== void 0 ? _k : false,
|
|
141
155
|
xr: {
|
|
142
|
-
sessionMode: (
|
|
143
|
-
referenceSpace: (
|
|
144
|
-
features: (
|
|
145
|
-
offer: (
|
|
156
|
+
sessionMode: (_m = (_l = options.xr) === null || _l === void 0 ? void 0 : _l.sessionMode) !== null && _m !== void 0 ? _m : SessionMode.ImmersiveVR,
|
|
157
|
+
referenceSpace: (_p = (_o = options.xr) === null || _o === void 0 ? void 0 : _o.referenceSpace) !== null && _p !== void 0 ? _p : ReferenceSpaceType.LocalFloor,
|
|
158
|
+
features: (_q = options.xr) === null || _q === void 0 ? void 0 : _q.features,
|
|
159
|
+
offer: (_s = (_r = options.xr) === null || _r === void 0 ? void 0 : _r.offer) !== null && _s !== void 0 ? _s : 'always',
|
|
146
160
|
},
|
|
147
161
|
features: {
|
|
148
|
-
locomotion: (
|
|
149
|
-
grabbing: (
|
|
150
|
-
physics: (
|
|
151
|
-
sceneUnderstanding: (
|
|
152
|
-
|
|
153
|
-
|
|
162
|
+
locomotion: (_u = (_t = options.features) === null || _t === void 0 ? void 0 : _t.locomotion) !== null && _u !== void 0 ? _u : false,
|
|
163
|
+
grabbing: (_w = (_v = options.features) === null || _v === void 0 ? void 0 : _v.grabbing) !== null && _w !== void 0 ? _w : false,
|
|
164
|
+
physics: (_y = (_x = options.features) === null || _x === void 0 ? void 0 : _x.physics) !== null && _y !== void 0 ? _y : false,
|
|
165
|
+
sceneUnderstanding: (_0 = (_z = options.features) === null || _z === void 0 ? void 0 : _z.sceneUnderstanding) !== null && _0 !== void 0 ? _0 : false,
|
|
166
|
+
environmentRaycast: (_2 = (_1 = options.features) === null || _1 === void 0 ? void 0 : _1.environmentRaycast) !== null && _2 !== void 0 ? _2 : false,
|
|
167
|
+
camera: (_4 = (_3 = options.features) === null || _3 === void 0 ? void 0 : _3.camera) !== null && _4 !== void 0 ? _4 : false,
|
|
168
|
+
spatialUI: (_6 = (_5 = options.features) === null || _5 === void 0 ? void 0 : _5.spatialUI) !== null && _6 !== void 0 ? _6 : true,
|
|
154
169
|
},
|
|
155
170
|
};
|
|
156
171
|
}
|
|
@@ -167,6 +182,7 @@ function setupRendering(sceneContainer, config) {
|
|
|
167
182
|
alpha: config.xr.sessionMode === SessionMode.ImmersiveAR,
|
|
168
183
|
// @ts-ignore
|
|
169
184
|
multiviewStereo: true,
|
|
185
|
+
stencil: config.stencil,
|
|
170
186
|
});
|
|
171
187
|
renderer.setPixelRatio(window.devicePixelRatio);
|
|
172
188
|
renderer.setSize(window.innerWidth, window.innerHeight);
|
|
@@ -238,6 +254,10 @@ function manageOfferFlow(world, mode) {
|
|
|
238
254
|
const refSpec = normalizeReferenceSpec(opts.referenceSpace);
|
|
239
255
|
session.addEventListener('end', onEnd);
|
|
240
256
|
try {
|
|
257
|
+
// disable built-in occlusion
|
|
258
|
+
world.renderer.xr.getDepthSensingMesh = function () {
|
|
259
|
+
return null;
|
|
260
|
+
};
|
|
241
261
|
const resolvedType = await resolveReferenceSpaceType(session, refSpec.type, refSpec.required ? [] : refSpec.fallbackOrder);
|
|
242
262
|
world.renderer.xr.setReferenceSpaceType(resolvedType);
|
|
243
263
|
await world.renderer.xr.setSession(session);
|
|
@@ -272,7 +292,8 @@ function manageOfferFlow(world, mode) {
|
|
|
272
292
|
*/
|
|
273
293
|
function registerCoreSystems(world, config) {
|
|
274
294
|
world
|
|
275
|
-
.registerComponent(
|
|
295
|
+
.registerComponent(RayInteractable)
|
|
296
|
+
.registerComponent(PokeInteractable)
|
|
276
297
|
.registerComponent(Hovered)
|
|
277
298
|
.registerComponent(Pressed)
|
|
278
299
|
.registerComponent(LevelRoot)
|
|
@@ -303,16 +324,24 @@ function registerAdditionalSystems(world) {
|
|
|
303
324
|
function registerFeatureSystems(world, config) {
|
|
304
325
|
const locomotion = config.features.locomotion;
|
|
305
326
|
const locomotionEnabled = !!locomotion;
|
|
306
|
-
const
|
|
327
|
+
const grabbing = config.features.grabbing;
|
|
328
|
+
const grabbingEnabled = !!grabbing;
|
|
307
329
|
const physicsEnabled = !!config.features.physics;
|
|
308
330
|
const sceneUnderstanding = config.features.sceneUnderstanding;
|
|
309
331
|
const sceneUnderstandingEnabled = !!sceneUnderstanding;
|
|
332
|
+
const environmentRaycastEnabled = !!config.features.environmentRaycast;
|
|
310
333
|
const cameraEnabled = !!config.features.camera;
|
|
311
334
|
const spatialUI = config.features.spatialUI;
|
|
312
335
|
const spatialUIEnabled = !!spatialUI;
|
|
313
336
|
if (locomotionEnabled) {
|
|
314
337
|
const locOpts = typeof locomotion === 'object' && locomotion
|
|
315
|
-
? {
|
|
338
|
+
? Object.fromEntries(Object.entries({
|
|
339
|
+
useWorker: locomotion.useWorker,
|
|
340
|
+
initialPlayerPosition: locomotion.initialPlayerPosition,
|
|
341
|
+
comfortAssist: locomotion.comfortAssistLevel,
|
|
342
|
+
turningMethod: locomotion.turningMethod,
|
|
343
|
+
enableJumping: locomotion.enableJumping,
|
|
344
|
+
}).filter(([, v]) => v !== undefined))
|
|
316
345
|
: undefined;
|
|
317
346
|
world.registerSystem(LocomotionSystem, {
|
|
318
347
|
priority: -5,
|
|
@@ -321,7 +350,12 @@ function registerFeatureSystems(world, config) {
|
|
|
321
350
|
}
|
|
322
351
|
world.registerSystem(InputSystem, { priority: -4 });
|
|
323
352
|
if (grabbingEnabled) {
|
|
324
|
-
|
|
353
|
+
const grabOpts = typeof grabbing === 'object' && grabbing
|
|
354
|
+
? Object.fromEntries(Object.entries({
|
|
355
|
+
useHandPinchForGrab: grabbing.useHandPinchForGrab,
|
|
356
|
+
}).filter(([, v]) => v !== undefined))
|
|
357
|
+
: undefined;
|
|
358
|
+
world.registerSystem(GrabSystem, { priority: -3, configData: grabOpts });
|
|
325
359
|
}
|
|
326
360
|
// Physics runs after Grab so it can respect Pressed overrides
|
|
327
361
|
if (physicsEnabled) {
|
|
@@ -334,7 +368,9 @@ function registerFeatureSystems(world, config) {
|
|
|
334
368
|
// Scene Understanding updates plane/mesh/anchor debug after input/physics
|
|
335
369
|
if (sceneUnderstandingEnabled) {
|
|
336
370
|
const sceneOpts = typeof sceneUnderstanding === 'object' && sceneUnderstanding
|
|
337
|
-
? {
|
|
371
|
+
? Object.fromEntries(Object.entries({
|
|
372
|
+
showWireFrame: sceneUnderstanding.showWireFrame,
|
|
373
|
+
}).filter(([, v]) => v !== undefined))
|
|
338
374
|
: undefined;
|
|
339
375
|
world
|
|
340
376
|
.registerComponent(XRPlane)
|
|
@@ -345,6 +381,14 @@ function registerFeatureSystems(world, config) {
|
|
|
345
381
|
configData: sceneOpts,
|
|
346
382
|
});
|
|
347
383
|
}
|
|
384
|
+
// Environment Raycast system - requires hit-test feature
|
|
385
|
+
if (environmentRaycastEnabled) {
|
|
386
|
+
world
|
|
387
|
+
.registerComponent(EnvironmentRaycastTarget)
|
|
388
|
+
.registerSystem(EnvironmentRaycastSystem, {
|
|
389
|
+
priority: -1,
|
|
390
|
+
});
|
|
391
|
+
}
|
|
348
392
|
// Camera system for video streaming
|
|
349
393
|
if (cameraEnabled) {
|
|
350
394
|
world.registerComponent(CameraSource).registerSystem(CameraSystem);
|
|
@@ -369,7 +413,9 @@ function registerFeatureSystems(world, config) {
|
|
|
369
413
|
configData: {
|
|
370
414
|
...(forwardHtmlEvents !== undefined ? { forwardHtmlEvents } : {}),
|
|
371
415
|
...(kitsObj ? { kits: kitsObj } : {}),
|
|
372
|
-
...(preferredColorScheme !== undefined
|
|
416
|
+
...(preferredColorScheme !== undefined
|
|
417
|
+
? { preferredColorScheme }
|
|
418
|
+
: {}),
|
|
373
419
|
},
|
|
374
420
|
})
|
|
375
421
|
.registerSystem(ScreenSpaceUISystem)
|
|
@@ -418,6 +464,20 @@ function finalizeInitialization(world, assets) {
|
|
|
418
464
|
.catch(reject);
|
|
419
465
|
});
|
|
420
466
|
}
|
|
467
|
+
/**
|
|
468
|
+
* Setup MCP runtime for framework-specific tools.
|
|
469
|
+
* This creates the MCPRuntime and exposes it on window.FRAMEWORK_MCP_RUNTIME
|
|
470
|
+
* for vite-plugin-dev to route framework-specific tool calls.
|
|
471
|
+
*/
|
|
472
|
+
function setupMCPRuntime(world) {
|
|
473
|
+
world.mcpRuntime = new MCPRuntime(world);
|
|
474
|
+
// Expose globally for vite-plugin discovery
|
|
475
|
+
// This allows the vite plugin to route framework-specific MCP tools
|
|
476
|
+
// without having a direct dependency on @iwsdk/core
|
|
477
|
+
if (typeof window !== 'undefined') {
|
|
478
|
+
window.FRAMEWORK_MCP_RUNTIME = world.mcpRuntime;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
421
481
|
|
|
422
482
|
export { initializeWorld };
|
|
423
483
|
//# sourceMappingURL=world-initializer.js.map
|