@aura3d/input 2.0.4 → 3.0.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/dist/ActionMap.d.ts +40 -0
- package/dist/ActionMap.d.ts.map +1 -1
- package/dist/ActionMap.js +179 -0
- package/dist/ActionMap.js.map +1 -1
- package/dist/ComboDetector.d.ts +49 -0
- package/dist/ComboDetector.d.ts.map +1 -0
- package/dist/ComboDetector.js +102 -0
- package/dist/ComboDetector.js.map +1 -0
- package/dist/Haptics.d.ts +46 -0
- package/dist/Haptics.d.ts.map +1 -0
- package/dist/Haptics.js +67 -0
- package/dist/Haptics.js.map +1 -0
- package/dist/InputSystem.d.ts.map +1 -1
- package/dist/InputSystem.js +1 -0
- package/dist/InputSystem.js.map +1 -1
- package/dist/PointerDevice.d.ts +1 -0
- package/dist/PointerDevice.d.ts.map +1 -1
- package/dist/PointerDevice.js +1 -1
- package/dist/PointerDevice.js.map +1 -1
- package/dist/TouchLayouts.d.ts +35 -0
- package/dist/TouchLayouts.d.ts.map +1 -0
- package/dist/TouchLayouts.js +88 -0
- package/dist/TouchLayouts.js.map +1 -0
- package/dist/WebXRSessionController.d.ts +53 -0
- package/dist/WebXRSessionController.d.ts.map +1 -1
- package/dist/WebXRSessionController.js +88 -2
- package/dist/WebXRSessionController.js.map +1 -1
- package/dist/controls/OrbitControls.d.ts +44 -1
- package/dist/controls/OrbitControls.d.ts.map +1 -1
- package/dist/controls/OrbitControls.js +151 -12
- package/dist/controls/OrbitControls.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/PointerDevice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,qBAAa,aAAa;IACxB,CAAC,SAAK;IACN,CAAC,SAAK;IACN,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IAEX,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAAK;IAEvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOxC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAanC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAKnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAQjC,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,YAAY;;;;;;;;;sBACgC,OAAO;yBAAW,OAAO;0BAAY,OAAO;;;;;;IAoBxF,QAAQ,IAAI,IAAI;CAOjB"}
|
|
1
|
+
{"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/PointerDevice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,qBAAa,aAAa;IACxB,CAAC,SAAK;IACN,CAAC,SAAK;IACN,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IAEX,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAAK;IAEvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOxC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAanC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAKnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAQjC,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,YAAY;;;;;;;;;sBACgC,OAAO;yBAAW,OAAO;0BAAY,OAAO;;;;;;IAoBxF,QAAQ,IAAI,IAAI;CAOjB"}
|
package/dist/PointerDevice.js
CHANGED
|
@@ -22,7 +22,7 @@ export class PointerDevice {
|
|
|
22
22
|
this.deltaY += nextY - this.y;
|
|
23
23
|
this.x = nextX;
|
|
24
24
|
this.y = nextY;
|
|
25
|
-
if (event.pointerId !== undefined) {
|
|
25
|
+
if (event.pointerId !== undefined && event.pointerType !== "mouse" && event.pointerType !== "pen") {
|
|
26
26
|
this.touches.set(event.pointerId, { id: event.pointerId, x: this.x, y: this.y });
|
|
27
27
|
}
|
|
28
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerDevice.js","sourceRoot":"","sources":["../../../../packages/input/src/PointerDevice.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PointerDevice.js","sourceRoot":"","sources":["../../../../packages/input/src/PointerDevice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { VirtualJoystickConfig } from "./VirtualTouchControls.js";
|
|
2
|
+
export type TouchLayoutGenre = "fight" | "race" | "platform";
|
|
3
|
+
export interface TouchLayoutButtonBinding {
|
|
4
|
+
/** DOM id the route creates for the on-screen button. */
|
|
5
|
+
readonly elementId: string;
|
|
6
|
+
/** `KeyboardEvent.code` the button synthesises (same path as physical keys). */
|
|
7
|
+
readonly code: string;
|
|
8
|
+
readonly kind: "hold" | "pulse";
|
|
9
|
+
readonly label: string;
|
|
10
|
+
}
|
|
11
|
+
export interface TouchLayoutPreset {
|
|
12
|
+
readonly kind: "touch-layout-preset";
|
|
13
|
+
readonly genre: TouchLayoutGenre;
|
|
14
|
+
/** Primary analog stick (move / steer). */
|
|
15
|
+
readonly leftStick: VirtualJoystickConfig;
|
|
16
|
+
/** Optional second stick (camera / aim). Present for fight + platform. */
|
|
17
|
+
readonly rightStick?: VirtualJoystickConfig;
|
|
18
|
+
readonly hold: readonly TouchLayoutButtonBinding[];
|
|
19
|
+
readonly pulse: readonly TouchLayoutButtonBinding[];
|
|
20
|
+
}
|
|
21
|
+
export interface TouchLayoutPresetOptions {
|
|
22
|
+
readonly width?: number;
|
|
23
|
+
readonly height?: number;
|
|
24
|
+
readonly elementIdPrefix?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Analog-stick + button layout presets per genre. Stick configs feed
|
|
28
|
+
* `VirtualTouchJoystick`; button bindings feed the engine's
|
|
29
|
+
* `bindGameTouchControls` as `{ hold, pulse }` (see also the engine-side
|
|
30
|
+
* `touchLayoutBindingsForGenre`, which mirrors the button maps where the
|
|
31
|
+
* engine cannot depend on this package).
|
|
32
|
+
*/
|
|
33
|
+
export declare function createTouchLayoutPreset(genre: TouchLayoutGenre, options?: TouchLayoutPresetOptions): TouchLayoutPreset;
|
|
34
|
+
export declare const TOUCH_LAYOUT_GENRES: readonly TouchLayoutGenre[];
|
|
35
|
+
//# sourceMappingURL=TouchLayouts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchLayouts.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/TouchLayouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IACjC,2CAA2C;IAC3C,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAC;IAC1C,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,IAAI,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;CACrD;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,wBAA6B,GACrC,iBAAiB,CAiFnB;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAAkC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analog-stick + button layout presets per genre. Stick configs feed
|
|
3
|
+
* `VirtualTouchJoystick`; button bindings feed the engine's
|
|
4
|
+
* `bindGameTouchControls` as `{ hold, pulse }` (see also the engine-side
|
|
5
|
+
* `touchLayoutBindingsForGenre`, which mirrors the button maps where the
|
|
6
|
+
* engine cannot depend on this package).
|
|
7
|
+
*/
|
|
8
|
+
export function createTouchLayoutPreset(genre, options = {}) {
|
|
9
|
+
const width = Math.max(1, options.width ?? 960);
|
|
10
|
+
const height = Math.max(1, options.height ?? 540);
|
|
11
|
+
const prefix = options.elementIdPrefix ?? `touch-${genre}`;
|
|
12
|
+
const scale = Math.min(width, height) / 540;
|
|
13
|
+
const stickRadius = 64 * scale;
|
|
14
|
+
const leftStick = {
|
|
15
|
+
center: [96 * scale, height - 96 * scale],
|
|
16
|
+
radius: stickRadius,
|
|
17
|
+
deadZone: 0.18,
|
|
18
|
+
maxDistance: stickRadius * 0.8,
|
|
19
|
+
fixed: false,
|
|
20
|
+
returnToCenter: true
|
|
21
|
+
};
|
|
22
|
+
const hold = (elementId, code, label) => ({
|
|
23
|
+
elementId: `${prefix}:${elementId}`,
|
|
24
|
+
code,
|
|
25
|
+
kind: "hold",
|
|
26
|
+
label
|
|
27
|
+
});
|
|
28
|
+
const pulse = (elementId, code, label) => ({
|
|
29
|
+
elementId: `${prefix}:${elementId}`,
|
|
30
|
+
code,
|
|
31
|
+
kind: "pulse",
|
|
32
|
+
label
|
|
33
|
+
});
|
|
34
|
+
switch (genre) {
|
|
35
|
+
case "fight":
|
|
36
|
+
return {
|
|
37
|
+
kind: "touch-layout-preset",
|
|
38
|
+
genre,
|
|
39
|
+
leftStick,
|
|
40
|
+
rightStick: {
|
|
41
|
+
center: [width - 96 * scale, height - 220 * scale],
|
|
42
|
+
radius: 52 * scale,
|
|
43
|
+
deadZone: 0.25,
|
|
44
|
+
maxDistance: 40 * scale,
|
|
45
|
+
fixed: true,
|
|
46
|
+
returnToCenter: true
|
|
47
|
+
},
|
|
48
|
+
hold: [hold("left", "ArrowLeft", "Move left"), hold("right", "ArrowRight", "Move right"), hold("block", "KeyS", "Block")],
|
|
49
|
+
pulse: [
|
|
50
|
+
pulse("light", "KeyJ", "Light"),
|
|
51
|
+
pulse("heavy", "KeyK", "Heavy"),
|
|
52
|
+
pulse("special", "KeyL", "Special"),
|
|
53
|
+
pulse("jump", "Space", "Jump")
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
case "race":
|
|
57
|
+
return {
|
|
58
|
+
kind: "touch-layout-preset",
|
|
59
|
+
genre,
|
|
60
|
+
leftStick: { ...leftStick, deadZone: 0.12 },
|
|
61
|
+
hold: [
|
|
62
|
+
hold("steer-left", "ArrowLeft", "Steer left"),
|
|
63
|
+
hold("steer-right", "ArrowRight", "Steer right"),
|
|
64
|
+
hold("throttle", "ArrowUp", "Throttle"),
|
|
65
|
+
hold("brake", "ArrowDown", "Brake")
|
|
66
|
+
],
|
|
67
|
+
pulse: [pulse("boost", "ShiftLeft", "Boost"), pulse("reset", "KeyR", "Reset")]
|
|
68
|
+
};
|
|
69
|
+
case "platform":
|
|
70
|
+
return {
|
|
71
|
+
kind: "touch-layout-preset",
|
|
72
|
+
genre,
|
|
73
|
+
leftStick,
|
|
74
|
+
rightStick: {
|
|
75
|
+
center: [width - 96 * scale, height - 220 * scale],
|
|
76
|
+
radius: 48 * scale,
|
|
77
|
+
deadZone: 0.3,
|
|
78
|
+
maxDistance: 36 * scale,
|
|
79
|
+
fixed: true,
|
|
80
|
+
returnToCenter: true
|
|
81
|
+
},
|
|
82
|
+
hold: [hold("left", "ArrowLeft", "Move left"), hold("right", "ArrowRight", "Move right"), hold("dash", "ShiftLeft", "Dash")],
|
|
83
|
+
pulse: [pulse("jump", "Space", "Jump"), pulse("attack", "KeyJ", "Attack")]
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
export const TOUCH_LAYOUT_GENRES = ["fight", "race", "platform"];
|
|
88
|
+
//# sourceMappingURL=TouchLayouts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TouchLayouts.js","sourceRoot":"","sources":["../../../../packages/input/src/TouchLayouts.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ export interface A3DXRSessionInit {
|
|
|
11
11
|
}
|
|
12
12
|
export interface A3DXRSessionLike {
|
|
13
13
|
readonly inputSources?: readonly A3DXRInputSourceLike[];
|
|
14
|
+
readonly enabledFeatures?: readonly string[];
|
|
14
15
|
requestReferenceSpace?(type: A3DXRReferenceSpaceType): Promise<A3DXRReferenceSpaceLike>;
|
|
15
16
|
requestAnimationFrame?(callback: (time: number, frame: A3DXRFrameLike) => void): number;
|
|
16
17
|
end?(): Promise<void>;
|
|
@@ -21,6 +22,7 @@ export interface A3DXRInputSourceLike {
|
|
|
21
22
|
readonly profiles?: readonly string[];
|
|
22
23
|
readonly targetRaySpace?: unknown;
|
|
23
24
|
readonly gripSpace?: unknown;
|
|
25
|
+
readonly hand?: A3DXRHandLike;
|
|
24
26
|
readonly gamepad?: {
|
|
25
27
|
readonly buttons?: readonly {
|
|
26
28
|
readonly pressed?: boolean;
|
|
@@ -33,9 +35,30 @@ export interface A3DXRInputSourceLike {
|
|
|
33
35
|
}[];
|
|
34
36
|
};
|
|
35
37
|
}
|
|
38
|
+
/** Injected hand-tracking state for one input source (N3). Joint names follow
|
|
39
|
+
* the WebXR Hand Input `XRHandJoint` identifiers (e.g. "wrist",
|
|
40
|
+
* "index-finger-tip"); unknown names pass through untouched. */
|
|
41
|
+
export interface A3DXRJointSample {
|
|
42
|
+
readonly position?: readonly [number, number, number];
|
|
43
|
+
readonly orientation?: readonly [number, number, number, number];
|
|
44
|
+
readonly radius?: number;
|
|
45
|
+
}
|
|
46
|
+
export interface A3DXRHandLike {
|
|
47
|
+
readonly handedness?: A3DXRHandedness;
|
|
48
|
+
readonly trackingState?: "tracked" | "not-tracked" | unknown;
|
|
49
|
+
readonly joints?: Readonly<Record<string, A3DXRJointSample>>;
|
|
50
|
+
}
|
|
51
|
+
export interface A3DXRViewerPoseLike {
|
|
52
|
+
readonly position?: readonly [number, number, number];
|
|
53
|
+
readonly orientation?: readonly [number, number, number, number];
|
|
54
|
+
readonly viewMatrix?: readonly number[];
|
|
55
|
+
readonly projectionMatrix?: readonly number[];
|
|
56
|
+
}
|
|
36
57
|
export interface A3DXRFrameLike {
|
|
37
58
|
getHitTestResults?(source: unknown): readonly A3DXRHitTestResultLike[];
|
|
38
59
|
getPose?(space: unknown, baseSpace: A3DXRReferenceSpaceLike): A3DXRPoseLike | undefined;
|
|
60
|
+
/** Viewer pose for XR camera handling; absent on sessions without tracking. */
|
|
61
|
+
getViewerPose?(referenceSpace: A3DXRReferenceSpaceLike): A3DXRViewerPoseLike | undefined;
|
|
39
62
|
}
|
|
40
63
|
export interface A3DXRReferenceSpaceLike {
|
|
41
64
|
readonly type?: A3DXRReferenceSpaceType;
|
|
@@ -74,6 +97,33 @@ export interface WebXRHitTestSample {
|
|
|
74
97
|
readonly position: readonly [number, number, number];
|
|
75
98
|
readonly normal: readonly [number, number, number];
|
|
76
99
|
}
|
|
100
|
+
export interface WebXRJointSample {
|
|
101
|
+
readonly position: readonly [number, number, number] | null;
|
|
102
|
+
readonly radius: number;
|
|
103
|
+
}
|
|
104
|
+
export interface WebXRHandSample {
|
|
105
|
+
readonly handedness: A3DXRHandedness;
|
|
106
|
+
readonly tracked: boolean;
|
|
107
|
+
readonly jointCount: number;
|
|
108
|
+
readonly joints: Readonly<Record<string, WebXRJointSample>>;
|
|
109
|
+
}
|
|
110
|
+
export interface WebXRCameraSample {
|
|
111
|
+
readonly tracked: boolean;
|
|
112
|
+
readonly position: readonly [number, number, number] | null;
|
|
113
|
+
readonly orientation: readonly [number, number, number, number] | null;
|
|
114
|
+
readonly viewMatrix: readonly number[] | null;
|
|
115
|
+
readonly projectionMatrix: readonly number[] | null;
|
|
116
|
+
}
|
|
117
|
+
/** Capability report: what THIS injected session actually provided. Every
|
|
118
|
+
* flag degrades to an explicit false/empty — never a hardware claim. */
|
|
119
|
+
export interface WebXRCapabilityReport {
|
|
120
|
+
readonly handTracking: boolean;
|
|
121
|
+
readonly viewerPose: boolean;
|
|
122
|
+
readonly hitTest: boolean;
|
|
123
|
+
readonly haptics: boolean;
|
|
124
|
+
readonly referenceSpace: A3DXRReferenceSpaceType;
|
|
125
|
+
readonly enabledFeatures: readonly string[];
|
|
126
|
+
}
|
|
77
127
|
export interface WebXRFrameSample {
|
|
78
128
|
readonly mode: A3DXRSessionMode;
|
|
79
129
|
readonly referenceSpace: A3DXRReferenceSpaceType;
|
|
@@ -82,6 +132,9 @@ export interface WebXRFrameSample {
|
|
|
82
132
|
readonly controllers: readonly WebXRControllerSample[];
|
|
83
133
|
readonly hitTestCount: number;
|
|
84
134
|
readonly hitTests: readonly WebXRHitTestSample[];
|
|
135
|
+
readonly hands: readonly WebXRHandSample[];
|
|
136
|
+
readonly camera: WebXRCameraSample;
|
|
137
|
+
readonly capabilities: WebXRCapabilityReport;
|
|
85
138
|
}
|
|
86
139
|
export interface WebXRSessionStartResult {
|
|
87
140
|
readonly mode: A3DXRSessionMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebXRSessionController.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/WebXRSessionController.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,cAAc,GAAG,cAAc,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;AACzG,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,kBAAkB,CAAC,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,cAAc,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/F;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxD,qBAAqB,CAAC,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxF,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,CAAC;IACxF,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;IACtC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS;YAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;YAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAClH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS;YAAE,KAAK,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;SAAE,EAAE,CAAC;KACnH,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,iBAAiB,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,sBAAsB,EAAE,CAAC;IACvE,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,GAAG,aAAa,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"WebXRSessionController.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/WebXRSessionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,10 +55,17 @@ export class WebXRSessionController {
|
|
|
55
55
|
}
|
|
56
56
|
sampleFrame(frame, hitTestSource) {
|
|
57
57
|
const referenceSpace = this.referenceSpace ?? { type: this.referenceSpaceType };
|
|
58
|
-
const
|
|
58
|
+
const sources = Array.from(this.session?.inputSources ?? []);
|
|
59
|
+
const controllers = sources.map((source) => sampleInputSource(source, frame, referenceSpace));
|
|
60
|
+
const hands = sources
|
|
61
|
+
.filter((source) => source.hand !== undefined)
|
|
62
|
+
.map((source) => sampleHand(source.handedness ?? "none", source.hand));
|
|
59
63
|
const hitTests = frame?.getHitTestResults && hitTestSource
|
|
60
64
|
? frame.getHitTestResults(hitTestSource).map(sampleHitTest)
|
|
61
65
|
: [];
|
|
66
|
+
const camera = sampleViewerPose(frame, referenceSpace);
|
|
67
|
+
const hitTestCapable = Boolean(frame?.getHitTestResults && hitTestSource);
|
|
68
|
+
const enabledFeatures = Array.from(this.session?.enabledFeatures ?? []);
|
|
62
69
|
return {
|
|
63
70
|
mode: this.mode,
|
|
64
71
|
referenceSpace: this.referenceSpace?.type ?? this.referenceSpaceType,
|
|
@@ -66,7 +73,17 @@ export class WebXRSessionController {
|
|
|
66
73
|
controllerCount: controllers.length,
|
|
67
74
|
controllers,
|
|
68
75
|
hitTestCount: hitTests.length,
|
|
69
|
-
hitTests
|
|
76
|
+
hitTests,
|
|
77
|
+
hands,
|
|
78
|
+
camera,
|
|
79
|
+
capabilities: {
|
|
80
|
+
handTracking: hands.some((hand) => hand.tracked),
|
|
81
|
+
viewerPose: camera.tracked,
|
|
82
|
+
hitTest: hitTestCapable,
|
|
83
|
+
haptics: controllers.some((controller) => controller.hapticActuatorCount > 0),
|
|
84
|
+
referenceSpace: this.referenceSpace?.type ?? this.referenceSpaceType,
|
|
85
|
+
enabledFeatures
|
|
86
|
+
}
|
|
70
87
|
};
|
|
71
88
|
}
|
|
72
89
|
async end() {
|
|
@@ -114,6 +131,45 @@ function samplePoseMatrix(frame, space, referenceSpace) {
|
|
|
114
131
|
return null;
|
|
115
132
|
return sanitizeMatrix4(frame.getPose(space, referenceSpace)?.transform?.matrix);
|
|
116
133
|
}
|
|
134
|
+
function sampleHand(handedness, hand) {
|
|
135
|
+
const joints = {};
|
|
136
|
+
const entries = hand?.joints ? Object.entries(hand.joints).slice(0, 64) : [];
|
|
137
|
+
for (const [name, joint] of entries) {
|
|
138
|
+
joints[name] = {
|
|
139
|
+
position: sanitizeVec3OrNull(joint?.position),
|
|
140
|
+
radius: typeof joint?.radius === "number" && Number.isFinite(joint.radius) ? Math.max(0, joint.radius) : 0
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
const jointCount = Object.keys(joints).length;
|
|
144
|
+
return {
|
|
145
|
+
handedness,
|
|
146
|
+
tracked: hand?.trackingState === "tracked" && jointCount > 0,
|
|
147
|
+
jointCount,
|
|
148
|
+
joints
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function sampleViewerPose(frame, referenceSpace) {
|
|
152
|
+
const untracked = {
|
|
153
|
+
tracked: false,
|
|
154
|
+
position: null,
|
|
155
|
+
orientation: null,
|
|
156
|
+
viewMatrix: null,
|
|
157
|
+
projectionMatrix: null
|
|
158
|
+
};
|
|
159
|
+
const pose = frame?.getViewerPose?.(referenceSpace);
|
|
160
|
+
if (!pose)
|
|
161
|
+
return untracked;
|
|
162
|
+
const position = sanitizeVec3OrNull(pose.position);
|
|
163
|
+
const orientation = sanitizeQuatOrNull(pose.orientation);
|
|
164
|
+
// Strict: a single non-finite entry invalidates the whole matrix. Zeroing
|
|
165
|
+
// it (the legacy controller-pose behavior) would silently warp the XR
|
|
166
|
+
// camera, so the sample degrades to untracked instead.
|
|
167
|
+
const viewMatrix = sanitizeMatrix4Strict(pose.viewMatrix);
|
|
168
|
+
const projectionMatrix = sanitizeMatrix4Strict(pose.projectionMatrix);
|
|
169
|
+
if (!position && !orientation && !viewMatrix && !projectionMatrix)
|
|
170
|
+
return untracked;
|
|
171
|
+
return { tracked: true, position, orientation, viewMatrix, projectionMatrix };
|
|
172
|
+
}
|
|
117
173
|
function sampleHitTest(result) {
|
|
118
174
|
return {
|
|
119
175
|
position: sanitizeVec3(result.position, [0, 0, 0]),
|
|
@@ -128,6 +184,36 @@ function sanitizeVec3(value, fallback) {
|
|
|
128
184
|
const z = finiteOrZero(value[2]);
|
|
129
185
|
return [x, y, z];
|
|
130
186
|
}
|
|
187
|
+
function sanitizeVec3OrNull(value) {
|
|
188
|
+
if (!value || value.length < 3)
|
|
189
|
+
return null;
|
|
190
|
+
const x = value[0];
|
|
191
|
+
const y = value[1];
|
|
192
|
+
const z = value[2];
|
|
193
|
+
if (typeof x !== "number" || typeof y !== "number" || typeof z !== "number")
|
|
194
|
+
return null;
|
|
195
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z))
|
|
196
|
+
return null;
|
|
197
|
+
return [x, y, z];
|
|
198
|
+
}
|
|
199
|
+
function sanitizeQuatOrNull(value) {
|
|
200
|
+
if (!value || value.length < 4)
|
|
201
|
+
return null;
|
|
202
|
+
const [x, y, z, w] = [value[0], value[1], value[2], value[3]];
|
|
203
|
+
if (typeof x !== "number" || typeof y !== "number" || typeof z !== "number" || typeof w !== "number")
|
|
204
|
+
return null;
|
|
205
|
+
if (!Number.isFinite(x) || !Number.isFinite(y) || !Number.isFinite(z) || !Number.isFinite(w))
|
|
206
|
+
return null;
|
|
207
|
+
return [x, y, z, w];
|
|
208
|
+
}
|
|
209
|
+
function sanitizeMatrix4Strict(value) {
|
|
210
|
+
if (!value || value.length < 16)
|
|
211
|
+
return null;
|
|
212
|
+
const matrix = value.slice(0, 16);
|
|
213
|
+
if (matrix.some((entry) => typeof entry !== "number" || !Number.isFinite(entry)))
|
|
214
|
+
return null;
|
|
215
|
+
return Array.from(matrix);
|
|
216
|
+
}
|
|
131
217
|
function finiteOrZero(value) {
|
|
132
218
|
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
133
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebXRSessionController.js","sourceRoot":"","sources":["../../../../packages/input/src/WebXRSessionController.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WebXRSessionController.js","sourceRoot":"","sources":["../../../../packages/input/src/WebXRSessionController.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,23 @@ import type { InputSnapshot } from "../InputSnapshot.js";
|
|
|
2
2
|
import { type CameraTransformLike, type Vec3Like } from "./ControlTypes.js";
|
|
3
3
|
export declare const DEFAULT_ORBIT_MAX_POLAR: number;
|
|
4
4
|
export interface OrbitControlsOptions {
|
|
5
|
+
/** Opt in to time-based decay; dampingFactor is the fraction consumed at 60Hz. */
|
|
6
|
+
readonly enableDamping?: boolean;
|
|
7
|
+
readonly dampingFactor?: number;
|
|
8
|
+
readonly zoomToCursor?: boolean;
|
|
9
|
+
/** Pointer coordinates and this rectangle must use the same CSS-pixel space. */
|
|
10
|
+
readonly viewport?: () => {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
width: number;
|
|
14
|
+
height: number;
|
|
15
|
+
};
|
|
16
|
+
readonly panBounds?: {
|
|
17
|
+
readonly min: Vec3Like;
|
|
18
|
+
readonly max: Vec3Like;
|
|
19
|
+
};
|
|
20
|
+
readonly screenSpacePanning?: boolean;
|
|
21
|
+
readonly oneFingerAction?: "rotate" | "pan";
|
|
5
22
|
readonly enabled?: boolean;
|
|
6
23
|
readonly enablePan?: boolean;
|
|
7
24
|
readonly enableZoom?: boolean;
|
|
@@ -10,14 +27,31 @@ export interface OrbitControlsOptions {
|
|
|
10
27
|
readonly distance?: number;
|
|
11
28
|
readonly minDistance?: number;
|
|
12
29
|
readonly maxDistance?: number;
|
|
30
|
+
readonly minZoom?: number;
|
|
31
|
+
readonly maxZoom?: number;
|
|
13
32
|
readonly minPolar?: number;
|
|
14
33
|
readonly maxPolar?: number;
|
|
15
34
|
readonly rotateSpeed?: number;
|
|
16
35
|
readonly zoomSpeed?: number;
|
|
17
36
|
readonly panSpeed?: number;
|
|
18
37
|
}
|
|
38
|
+
/** Structural projection adapter; fov is vertical degrees, orthographic extents are world units. */
|
|
39
|
+
export interface OrbitCameraTransformLike extends CameraTransformLike {
|
|
40
|
+
readonly fov?: number;
|
|
41
|
+
readonly aspect?: number;
|
|
42
|
+
readonly isOrthographicCamera?: boolean;
|
|
43
|
+
readonly left?: number;
|
|
44
|
+
readonly right?: number;
|
|
45
|
+
readonly top?: number;
|
|
46
|
+
readonly bottom?: number;
|
|
47
|
+
zoom?: number;
|
|
48
|
+
updateProjectionMatrix?(): void;
|
|
49
|
+
}
|
|
19
50
|
export declare class OrbitControls {
|
|
20
51
|
private readonly camera;
|
|
52
|
+
enableDamping: boolean;
|
|
53
|
+
dampingFactor: number;
|
|
54
|
+
zoomToCursor: boolean;
|
|
21
55
|
enabled: boolean;
|
|
22
56
|
enablePan: boolean;
|
|
23
57
|
enableZoom: boolean;
|
|
@@ -27,6 +61,11 @@ export declare class OrbitControls {
|
|
|
27
61
|
private polar;
|
|
28
62
|
private distance;
|
|
29
63
|
private readonly initial;
|
|
64
|
+
private disposed;
|
|
65
|
+
private pendingAzimuth;
|
|
66
|
+
private pendingPolar;
|
|
67
|
+
private pendingPan;
|
|
68
|
+
private previousTouches;
|
|
30
69
|
private readonly minDistance;
|
|
31
70
|
private readonly maxDistance;
|
|
32
71
|
private readonly minPolar;
|
|
@@ -34,16 +73,20 @@ export declare class OrbitControls {
|
|
|
34
73
|
private readonly rotateSpeed;
|
|
35
74
|
private readonly zoomSpeed;
|
|
36
75
|
private readonly panSpeed;
|
|
76
|
+
private readonly options;
|
|
37
77
|
constructor(camera: CameraTransformLike, options?: OrbitControlsOptions);
|
|
38
|
-
update(snapshot: InputSnapshot): void;
|
|
78
|
+
update(snapshot: InputSnapshot, deltaSeconds?: number): void;
|
|
39
79
|
getPolarAngle(): number;
|
|
40
80
|
getAzimuthalAngle(): number;
|
|
41
81
|
getDistance(): number;
|
|
42
82
|
saveState(): void;
|
|
43
83
|
reset(): void;
|
|
44
84
|
dispose(): void;
|
|
85
|
+
private clearPending;
|
|
45
86
|
private pan;
|
|
46
87
|
private dollyFromWheel;
|
|
88
|
+
private cursorOffset;
|
|
89
|
+
private touch;
|
|
47
90
|
private apply;
|
|
48
91
|
}
|
|
49
92
|
//# sourceMappingURL=OrbitControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/OrbitControls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAS,KAAK,mBAAmB,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEhF,eAAO,MAAM,uBAAuB,QAAiB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/OrbitControls.ts"],"names":[],"mappings":"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"}
|