@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.
@@ -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"}
@@ -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":"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"}
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":"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"}
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 controllers = Array.from(this.session?.inputSources ?? []).map((source) => sampleInputSource(source, frame, referenceSpace));
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":"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"}
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;IAoBtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAnBzB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE1B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyE;IACjG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,MAAM,EAAE,mBAAmB,EAC5C,OAAO,GAAE,oBAAyB;IA2BpC,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI;IA0BrC,aAAa,IAAI,MAAM;IAIvB,iBAAiB,IAAI,MAAM;IAI3B,WAAW,IAAI,MAAM;IAIrB,SAAS,IAAI,IAAI;IASjB,KAAK,IAAI,IAAI;IAUb,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,GAAG;IAMX,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,KAAK;CAOd"}
1
+ {"version":3,"file":"OrbitControls.d.ts","sourceRoot":"","sources":["../../../../../packages/input/src/controls/OrbitControls.ts"],"names":[],"mappings":"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"}