@types/three 0.140.0 → 0.141.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
three/README.md CHANGED
@@ -8,8 +8,8 @@ This package contains type definitions for three (https://threejs.org/).
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/three.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Tue, 03 May 2022 17:01:38 GMT
12
- * Dependencies: none
11
+ * Last updated: Tue, 31 May 2022 18:31:37 GMT
12
+ * Dependencies: [@types/webxr](https://npmjs.com/package/@types/webxr)
13
13
  * Global values: `THREE`
14
14
 
15
15
  # Credits
@@ -91,7 +91,7 @@ export class GLTFExporter {
91
91
  export class GLTFWriter {
92
92
  constructor();
93
93
 
94
- setPlugins(plugins: GLTFExporterPlugin[]);
94
+ setPlugins(plugins: GLTFExporterPlugin[]): void;
95
95
 
96
96
  /**
97
97
  * Parse scenes and generate GLTF output
@@ -0,0 +1,5 @@
1
+ import { Data3DTexture, DataTexture, WebGLRenderer, WebGLRenderTarget } from '../../../src/Three';
2
+
3
+ export class KTX2Exporter {
4
+ parse(arg1: Data3DTexture | DataTexture | WebGLRenderer, arg2?: WebGLRenderTarget): Uint8Array;
5
+ }
@@ -1,4 +1,4 @@
1
- import { Vector3 } from '../../../src/Three';
1
+ import { BufferGeometry, Vector3 } from '../../../src/Three';
2
2
 
3
3
  export interface RandomGenerator {
4
4
  random(): number;
@@ -87,7 +87,7 @@ export interface RayParameters {
87
87
  ) => void;
88
88
  }
89
89
 
90
- export class LightningStrike {
90
+ export class LightningStrike extends BufferGeometry {
91
91
  constructor(rayParameters?: RayParameters);
92
92
  copyParameters(dest?: RayParameters, source?: RayParameters): RayParameters;
93
93
 
@@ -103,6 +103,6 @@ export class LightningStrike {
103
103
 
104
104
  update(time: number): void;
105
105
 
106
- copy(source: LightningStrike): LightningStrike;
106
+ copy(source: LightningStrike): this;
107
107
  clone(): this;
108
108
  }
@@ -1,8 +1,8 @@
1
- import { LoadingManager } from '../../../src/Three';
1
+ import { Loader, LoadingManager } from '../../../src/Three';
2
2
 
3
3
  import { Volume } from '../misc/Volume';
4
4
 
5
- export class NRRDLoader {
5
+ export class NRRDLoader extends Loader {
6
6
  constructor(manager?: LoadingManager);
7
7
  manager: LoadingManager;
8
8
  path: string;
@@ -9,5 +9,5 @@ export class MorphAnimMesh extends Mesh {
9
9
  setDirectionBackward(): void;
10
10
  playAnimation(label: string, fps: number): void;
11
11
  updateAnimation(delta: number): void;
12
- copy(source: MorphAnimMesh): this;
12
+ copy(source: MorphAnimMesh, recursive?: boolean): this;
13
13
  }
@@ -1,4 +1,4 @@
1
- import { Material, Vector3 } from '../../../src/Three';
1
+ import { Material, Object3D, Vector3 } from '../../../src/Three';
2
2
 
3
3
  import { LightningStrike, RayParameters } from '../geometries/LightningStrike';
4
4
 
@@ -24,9 +24,9 @@ export interface StormParams {
24
24
  onLightningDown?: (lightning: LightningStrike) => void;
25
25
  }
26
26
 
27
- export class LightningStorm {
27
+ export class LightningStorm extends Object3D {
28
28
  constructor(stormParams?: StormParams);
29
29
  update(time: number): void;
30
- copy(source: LightningStorm): LightningStorm;
30
+ copy(source: LightningStorm, recursive?: boolean): this;
31
31
  clone(): this;
32
32
  }
@@ -1,5 +1,9 @@
1
1
  import { WebGLRenderer } from '../../../src/Three';
2
2
 
3
+ export interface ARButtonSessionInit extends XRSessionInit {
4
+ domOverlay: { root: HTMLElement };
5
+ }
6
+
3
7
  export namespace ARButton {
4
- function createButton(renderer: WebGLRenderer, sessionInit?: any): HTMLElement;
8
+ function createButton(renderer: WebGLRenderer, sessionInit?: Partial<ARButtonSessionInit>): HTMLElement;
5
9
  }
@@ -1,8 +1,9 @@
1
- import { Object3D, Sphere, Box3, Mesh, Texture, Vector3 } from '../../../src/Three';
1
+ import { Mesh, Object3D, Texture, Vector3 } from '../../../src/Three';
2
+ import { XRHandMeshModel } from './XRHandMeshModel';
2
3
 
3
4
  export class OculusHandModel extends Object3D {
4
5
  controller: Object3D;
5
- motionController: Object3D | null;
6
+ motionController: XRHandMeshModel | null;
6
7
  envMap: Texture | null;
7
8
 
8
9
  mesh: Mesh | null;
@@ -1,3 +1,5 @@
1
+ import 'webxr';
2
+
1
3
  import {
2
4
  BufferGeometry,
3
5
  Intersection,
@@ -10,10 +12,12 @@ import {
10
12
  Vector3,
11
13
  } from '../../../src/Three';
12
14
 
15
+ import { XRHandMeshModel } from './XRHandMeshModel';
16
+
13
17
  export class OculusHandPointerModel extends Object3D {
14
18
  hand: Object3D;
15
19
  controller: Object3D;
16
- motionController: Object3D | null;
20
+ motionController: XRHandMeshModel | null;
17
21
 
18
22
  envMap: Texture | null;
19
23
 
@@ -31,7 +35,7 @@ export class OculusHandPointerModel extends Object3D {
31
35
  raycaster: Raycaster;
32
36
 
33
37
  visible: boolean;
34
- xrInputSource: unknown;
38
+ xrInputSource: XRInputSource;
35
39
 
36
40
  constructor(hand: Object3D, controller: Object3D);
37
41
 
@@ -7,6 +7,8 @@ export class XRControllerModel extends Object3D {
7
7
 
8
8
  motionController: any;
9
9
 
10
+ envMap: Texture;
11
+
10
12
  setEnvironmentMap(envMap: Texture): XRControllerModel;
11
13
  }
12
14
 
@@ -1,24 +1,24 @@
1
- import { DirectionalLight, Group, LightProbe, XRFrame, WebGLRenderer, Texture } from '../../../src/Three';
1
+ import { DirectionalLight, Group, LightProbe, Texture, WebGLRenderer } from '../../../src/Three';
2
2
 
3
3
  export class SessionLightProbe {
4
4
  xrLight: XREstimatedLight;
5
5
  renderer: WebGLRenderer;
6
- lightProbe: unknown;
7
- xrWebGLBinding: unknown | null;
6
+ lightProbe: LightProbe;
7
+ xrWebGLBinding: XRWebGLBinding | null;
8
8
  estimationStartCallback: () => void;
9
9
  frameCallback: (this: SessionLightProbe, time: number, xrFrame: XRFrame) => void;
10
10
 
11
11
  constructor(
12
12
  xrLight: XREstimatedLight,
13
13
  renderer: WebGLRenderer,
14
- lightProbe: unknown,
14
+ lightProbe: LightProbe,
15
15
  environmentEstimation: boolean,
16
16
  estimationStartCallback: () => void,
17
17
  );
18
18
 
19
19
  updateReflection: () => void;
20
20
 
21
- onXRFrame: (time: number, xrFrame: XRFrame) => void;
21
+ onXRFrame: XRFrameRequestCallback;
22
22
 
23
23
  dispose: () => void;
24
24
  }
@@ -19,7 +19,7 @@ export class XRHandModelFactory {
19
19
 
20
20
  createHandModel(
21
21
  controller: Group,
22
- profile?: 'spheres' | 'boxes' | 'oculus',
22
+ profile?: 'spheres' | 'boxes' | 'mesh',
23
23
  options?: XRHandPrimitiveModelOptions,
24
24
  ): XRHandModel;
25
25
  }
three/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Type definitions for three 0.140
1
+ // Type definitions for three 0.141
2
2
  // Project: https://threejs.org/
3
3
  // Definitions by: Josh Ellis <https://github.com/joshuaellis>
4
4
  // Nathan Bierema <https://github.com/Methuselah96>
three/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/three",
3
- "version": "0.140.0",
3
+ "version": "0.141.0",
4
4
  "description": "TypeScript definitions for three",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/three",
6
6
  "license": "MIT",
@@ -24,7 +24,9 @@
24
24
  "directory": "types/three"
25
25
  },
26
26
  "scripts": {},
27
- "dependencies": {},
28
- "typesPublisherContentHash": "0003f52bd6b42bfc5b77be02ad5eee29a50d1ddc25ce1b64506a2253f0420782",
27
+ "dependencies": {
28
+ "@types/webxr": "*"
29
+ },
30
+ "typesPublisherContentHash": "f2cb59cf51914baac1f0032481e5702cdf38ace7e83148c7e0faefc44ed80745",
29
31
  "typeScriptVersion": "3.9"
30
32
  }
three/src/Three.d.ts CHANGED
@@ -207,7 +207,6 @@ export * from './renderers/webgl/WebGLShadowMap';
207
207
  export * from './renderers/webgl/WebGLState';
208
208
  export * from './renderers/webgl/WebGLTextures';
209
209
  export * from './renderers/webgl/WebGLUniforms';
210
- export * from './renderers/webxr/WebXR';
211
210
  export * from './renderers/webxr/WebXRController';
212
211
  export * from './renderers/webxr/WebXRManager';
213
212
  export { WebGLUtils } from './renderers/webgl/WebGLUtils.js';
@@ -156,4 +156,24 @@ export class MeshPhysicalMaterial extends MeshStandardMaterial {
156
156
  * @default null
157
157
  */
158
158
  specularColorMap: Texture | null;
159
+
160
+ /**
161
+ * @default null
162
+ */
163
+ iridescenceMap: Texture | null;
164
+
165
+ /**
166
+ * @default 1.3
167
+ */
168
+ iridescenceIOR: number;
169
+
170
+ /**
171
+ * @default [100, 400]
172
+ */
173
+ iridescenceThicknessRange: number[];
174
+
175
+ /**
176
+ * @default null
177
+ */
178
+ iridescenceThicknessMap: Texture | null;
159
179
  }
@@ -17,6 +17,12 @@ export interface WebGLRenderTargetOptions {
17
17
  generateMipmaps?: boolean | undefined; // true;
18
18
  depthTexture?: DepthTexture | undefined;
19
19
  encoding?: TextureEncoding | undefined;
20
+
21
+ /**
22
+ * Defines the count of MSAA samples. Can only be used with WebGL 2. Default is **0**.
23
+ * @default 0
24
+ */
25
+ samples?: number;
20
26
  }
21
27
 
22
28
  export class WebGLRenderTarget extends EventDispatcher {
@@ -19,7 +19,6 @@ import { WebXRManager } from '../renderers/webxr/WebXRManager';
19
19
  import { BufferGeometry } from './../core/BufferGeometry';
20
20
  import { Texture } from '../textures/Texture';
21
21
  import { Data3DTexture } from '../textures/Data3DTexture';
22
- import { XRAnimationLoopCallback } from './webxr/WebXR';
23
22
  import { Vector3 } from '../math/Vector3';
24
23
  import { Box3 } from '../math/Box3';
25
24
  import { DataArrayTexture } from '../textures/DataArrayTexture';
@@ -336,7 +335,7 @@ export class WebGLRenderer implements Renderer {
336
335
  * A build in function that can be used instead of requestAnimationFrame. For WebXR projects this function must be used.
337
336
  * @param callback The function will be called every available frame. If `null` is passed it will stop any already ongoing animation.
338
337
  */
339
- setAnimationLoop(callback: XRAnimationLoopCallback | null): void;
338
+ setAnimationLoop(callback: XRFrameRequestCallback | null): void;
340
339
 
341
340
  /**
342
341
  * @deprecated Use {@link WebGLRenderer#setAnimationLoop .setAnimationLoop()} instead.
@@ -1,14 +1,40 @@
1
1
  import { Group } from '../../objects/Group';
2
- import { XREventType, XRFrame, XRInputSource, XRReferenceSpace } from './WebXR';
2
+ import { Vector3 } from '../../math/Vector3';
3
3
 
4
- export type XRControllerEventType = XREventType | 'disconnected' | 'connected';
4
+ export type XRControllerEventType = XRSessionEventType | XRInputSourceEventType | 'disconnected' | 'connected';
5
+
6
+ export type XRHandJoints = Record<XRHandJoint, number>;
7
+
8
+ export interface XRHandInputState {
9
+ pinching: boolean;
10
+ }
11
+
12
+ export class XRHandSpace extends Group {
13
+ readonly joints: Partial<XRHandJoints>;
14
+ readonly inputState: XRHandInputState;
15
+ }
16
+
17
+ export class XRTargetRaySpace extends Group {
18
+ hasLinearVelocity: boolean;
19
+ readonly linearVelocity: Vector3;
20
+ hasAngularVelocity: boolean;
21
+ readonly angularVelocity: Vector3;
22
+ }
23
+
24
+ export class XRGripSpace extends Group {
25
+ hasLinearVelocity: boolean;
26
+ readonly linearVelocity: Vector3;
27
+ hasAngularVelocity: boolean;
28
+ readonly angularVelocity: Vector3;
29
+ }
5
30
 
6
31
  export class WebXRController {
7
32
  constructor();
8
33
 
9
- getTargetRaySpace(): Group;
10
- getGripSpace(): Group;
11
- dispatchEvent(event: { type: XRControllerEventType; data?: XRInputSource | undefined }): this;
34
+ getHandSpace(): XRHandSpace;
35
+ getTargetRaySpace(): XRTargetRaySpace;
36
+ getGripSpace(): XRGripSpace;
37
+ dispatchEvent(event: { type: XRControllerEventType; data?: XRInputSource }): this;
12
38
  disconnect(inputSource: XRInputSource): this;
13
39
  update(inputSource: XRInputSource, frame: XRFrame, referenceSpace: XRReferenceSpace): this;
14
40
  }
@@ -1,7 +1,13 @@
1
- import { Group } from '../../objects/Group';
2
- import { Camera } from '../../cameras/Camera';
1
+ /// <reference types="webxr" />
2
+
3
+ import { Vector4 } from '../../math/Vector4';
4
+ import { ArrayCamera } from '../../cameras/ArrayCamera';
5
+ import { PerspectiveCamera } from '../../cameras/PerspectiveCamera';
3
6
  import { EventDispatcher } from '../../core/EventDispatcher';
4
- import { XRFrameRequestCallback, XRReferenceSpace, XRReferenceSpaceType, XRSession } from './WebXR';
7
+ import { XRTargetRaySpace, XRGripSpace, XRHandSpace } from './WebXRController';
8
+
9
+ export type WebXRCamera = PerspectiveCamera & { viewport: Vector4 };
10
+ export type WebXRArrayCamera = Omit<ArrayCamera, 'cameras'> & { cameras: [WebXRCamera, WebXRCamera] };
5
11
 
6
12
  export class WebXRManager extends EventDispatcher {
7
13
  constructor(renderer: any, gl: WebGLRenderingContext);
@@ -16,15 +22,25 @@ export class WebXRManager extends EventDispatcher {
16
22
  */
17
23
  isPresenting: boolean;
18
24
 
19
- getController(index: number): Group;
20
- getControllerGrip(index: number): Group;
21
- getHand(index: number): Group;
25
+ /**
26
+ * @default true
27
+ */
28
+ cameraAutoUpdate: boolean;
29
+
30
+ getController(index: number): XRTargetRaySpace;
31
+ getControllerGrip(index: number): XRGripSpace;
32
+ getHand(index: number): XRHandSpace;
22
33
  setFramebufferScaleFactor(value: number): void;
23
34
  setReferenceSpaceType(value: XRReferenceSpaceType): void;
24
35
  getReferenceSpace(): XRReferenceSpace | null;
36
+ setReferenceSpace(value: XRReferenceSpace): void;
37
+ getBaseLayer(): XRWebGLLayer | XRProjectionLayer;
38
+ getBinding(): XRWebGLBinding;
39
+ getFrame(): XRFrame;
25
40
  getSession(): XRSession | null;
26
41
  setSession(value: XRSession): Promise<void>;
27
- getCamera(camera: Camera): Camera;
42
+ getCamera(): WebXRArrayCamera;
43
+ updateCamera(camera: PerspectiveCamera): void;
28
44
  setAnimationLoop(callback: XRFrameRequestCallback | null): void;
29
45
  getFoveation(): number | undefined;
30
46
  setFoveation(foveation: number): void;
@@ -1,328 +0,0 @@
1
- export type XRSessionMode = 'inline' | 'immersive-vr' | 'immersive-ar';
2
-
3
- export type XRReferenceSpaceType = 'viewer' | 'local' | 'local-floor' | 'bounded-floor' | 'unbounded';
4
-
5
- export type XREnvironmentBlendMode = 'opaque' | 'additive' | 'alpha-blend';
6
-
7
- export type XRVisibilityState = 'visible' | 'visible-blurred' | 'hidden';
8
-
9
- export type XRHandedness = 'none' | 'left' | 'right';
10
-
11
- export type XRTargetRayMode = 'gaze' | 'tracked-pointer' | 'screen';
12
-
13
- export type XREye = 'none' | 'left' | 'right';
14
-
15
- export type XREventType =
16
- | 'end'
17
- | 'select'
18
- | 'selectstart'
19
- | 'selectend'
20
- | 'squeeze'
21
- | 'squeezestart'
22
- | 'squeezeend'
23
- | 'inputsourceschange';
24
-
25
- export type XRAnimationLoopCallback = (time: number, frame?: XRFrame) => void;
26
-
27
- export type XRFrameRequestCallback = (time: number, frame: XRFrame) => void;
28
-
29
- export interface XR extends EventTarget {
30
- requestSession(mode: XRSessionMode, options?: XRSessionInit): Promise<XRSession>;
31
- isSessionSupported(mode: XRSessionMode): Promise<boolean>;
32
- }
33
-
34
- export interface Window {
35
- XRSession?: Constructor<XRSession> | undefined;
36
- XR?: Constructor<XR> | undefined;
37
- }
38
-
39
- export interface Navigator {
40
- xr?: XR | undefined;
41
- }
42
-
43
- export interface XRReferenceSpace extends EventTarget {
44
- getOffsetReferenceSpace(originOffset: XRRigidTransform): XRReferenceSpace;
45
- }
46
- export interface XRHitTestOptionsInit {
47
- space: EventTarget;
48
- offsetRay?: XRRay | undefined;
49
- }
50
-
51
- export interface XRTransientInputHitTestOptionsInit {
52
- profile: string;
53
- offsetRay?: XRRay | undefined;
54
- }
55
-
56
- export interface XRViewport {
57
- readonly x: number;
58
- readonly y: number;
59
- readonly width: number;
60
- readonly height: number;
61
- }
62
-
63
- export interface WebGLRenderingContext {
64
- makeXRCompatible(): Promise<void>;
65
- }
66
-
67
- export interface XRRenderState {
68
- readonly depthNear: number;
69
- readonly depthFar: number;
70
- readonly inlineVerticalFieldOfView?: number | undefined;
71
- readonly baseLayer?: XRWebGLLayer | undefined;
72
- }
73
-
74
- export interface XRRenderStateInit {
75
- depthNear?: number | undefined;
76
- depthFar?: number | undefined;
77
- inlineVerticalFieldOfView?: number | undefined;
78
- baseLayer?: XRWebGLLayer | undefined;
79
- }
80
-
81
- export interface XRGamepad {
82
- readonly id: string;
83
- readonly index: number; // long
84
- readonly connected: boolean;
85
- readonly timestamp: DOMHighResTimeStamp;
86
- readonly mapping: GamepadMappingType;
87
- readonly axes: Float32Array; // FrozenArray<double>;
88
- readonly buttons: GamepadButton[]; // FrozenArray<GamepadButton>;
89
- }
90
-
91
- export interface XRInputSource {
92
- readonly handedness: XRHandedness;
93
- readonly targetRayMode: XRTargetRayMode;
94
- readonly targetRaySpace: EventTarget;
95
- readonly gripSpace?: EventTarget | undefined;
96
- readonly profiles: string[];
97
- readonly gamepad: XRGamepad;
98
- readonly hand?: XRHand | undefined;
99
- }
100
-
101
- export interface XRSessionInit {
102
- optionalFeatures?: string[] | undefined;
103
- requiredFeatures?: string[] | undefined;
104
- }
105
-
106
- export interface XRSession extends EventTarget {
107
- requestReferenceSpace(type: XRReferenceSpaceType): Promise<XRReferenceSpace>;
108
- updateRenderState(renderStateInit: XRRenderStateInit): Promise<void>;
109
- requestAnimationFrame(callback: XRFrameRequestCallback): number;
110
- cancelAnimationFrame(id: number): void;
111
- end(): Promise<void>;
112
- renderState: XRRenderState;
113
- inputSources: XRInputSource[];
114
- environmentBlendMode: XREnvironmentBlendMode;
115
- visibilityState: XRVisibilityState;
116
-
117
- // hit test
118
- requestHitTestSource(options: XRHitTestOptionsInit): Promise<XRHitTestSource>;
119
- requestHitTestSourceForTransientInput(
120
- options: XRTransientInputHitTestOptionsInit,
121
- ): Promise<XRTransientInputHitTestSource>;
122
-
123
- // legacy AR hit test
124
- requestHitTest(ray: XRRay, referenceSpace: XRReferenceSpace): Promise<XRHitResult[]>;
125
-
126
- // legacy plane detection
127
- updateWorldTrackingState(options: { planeDetectionState?: { enabled: boolean } | undefined }): void;
128
- }
129
-
130
- export interface XRReferenceSpace extends EventTarget {
131
- getOffsetReferenceSpace(originOffset: XRRigidTransform): XRReferenceSpace;
132
- onreset: any;
133
- }
134
-
135
- export type XRPlaneSet = Set<XRPlane>;
136
- export type XRAnchorSet = Set<XRAnchor>;
137
-
138
- export interface XRFrame {
139
- readonly session: XRSession;
140
- getViewerPose(referenceSpace: XRReferenceSpace): XRViewerPose | undefined;
141
- getPose(space: EventTarget, baseSpace: EventTarget): XRPose | undefined;
142
-
143
- // AR
144
- getHitTestResults(hitTestSource: XRHitTestSource): XRHitTestResult[];
145
- getHitTestResultsForTransientInput(hitTestSource: XRTransientInputHitTestSource): XRTransientInputHitTestResult[];
146
- // Anchors
147
- trackedAnchors?: XRAnchorSet | undefined;
148
- createAnchor(pose: XRRigidTransform, space: EventTarget): Promise<XRAnchor>;
149
- // Planes
150
- worldInformation: {
151
- detectedPlanes?: XRPlaneSet | undefined;
152
- };
153
- // Hand tracking
154
- getJointPose(joint: XRJointSpace, baseSpace: EventTarget): XRJointPose;
155
- }
156
-
157
- export interface XRViewerPose {
158
- readonly transform: XRRigidTransform;
159
- readonly views: XRView[];
160
- }
161
-
162
- export interface XRPose {
163
- readonly emulatedPosition: boolean;
164
- readonly transform: XRRigidTransform;
165
- }
166
-
167
- export interface XRWebGLLayerInit {
168
- antialias?: boolean | undefined;
169
- depth?: boolean | undefined;
170
- stencil?: boolean | undefined;
171
- alpha?: boolean | undefined;
172
- ignoreDepthValues?: boolean | undefined;
173
- framebufferScaleFactor?: number | undefined;
174
- }
175
-
176
- export class XRWebGLLayer {
177
- constructor(session: XRSession, gl: WebGLRenderingContext | undefined, options?: XRWebGLLayerInit);
178
- framebuffer: WebGLFramebuffer;
179
- framebufferWidth: number;
180
- framebufferHeight: number;
181
- getViewport(view: XRView): XRViewport;
182
- }
183
-
184
- export interface DOMPointInit {
185
- w?: number | undefined;
186
- x?: number | undefined;
187
- y?: number | undefined;
188
- z?: number | undefined;
189
- }
190
-
191
- export class XRRigidTransform {
192
- constructor(matrix: Float32Array | DOMPointInit, direction?: DOMPointInit);
193
- position: DOMPointReadOnly;
194
- orientation: DOMPointReadOnly;
195
- matrix: Float32Array;
196
- inverse: XRRigidTransform;
197
- }
198
-
199
- export interface XRView {
200
- readonly eye: XREye;
201
- readonly projectionMatrix: Float32Array;
202
- readonly viewMatrix: Float32Array;
203
- readonly transform: XRRigidTransform;
204
- }
205
-
206
- export interface XRRayDirectionInit {
207
- x?: number | undefined;
208
- y?: number | undefined;
209
- z?: number | undefined;
210
- w?: number | undefined;
211
- }
212
-
213
- export class XRRay {
214
- readonly origin: DOMPointReadOnly;
215
- readonly direction: XRRayDirectionInit;
216
- matrix: Float32Array;
217
-
218
- constructor(transformOrOrigin: XRRigidTransform | DOMPointInit, direction?: XRRayDirectionInit);
219
- }
220
-
221
- export enum XRHitTestTrackableType {
222
- 'point',
223
- 'plane',
224
- 'mesh',
225
- }
226
-
227
- export interface XRHitResult {
228
- hitMatrix: Float32Array;
229
- }
230
-
231
- export interface XRTransientInputHitTestResult {
232
- readonly inputSource: XRInputSource;
233
- readonly results: XRHitTestResult[];
234
- }
235
-
236
- export interface XRHitTestResult {
237
- getPose(baseSpace: EventTarget): XRPose | undefined | null;
238
- // When anchor system is enabled
239
- createAnchor?(pose: XRRigidTransform): Promise<XRAnchor>;
240
- }
241
-
242
- export interface XRHitTestSource {
243
- cancel(): void;
244
- }
245
-
246
- export interface XRTransientInputHitTestSource {
247
- cancel(): void;
248
- }
249
-
250
- export interface XRHitTestOptionsInit {
251
- space: EventTarget;
252
- entityTypes?: XRHitTestTrackableType[] | undefined;
253
- offsetRay?: XRRay | undefined;
254
- }
255
-
256
- export interface XRTransientInputHitTestOptionsInit {
257
- profile: string;
258
- entityTypes?: XRHitTestTrackableType[] | undefined;
259
- offsetRay?: XRRay | undefined;
260
- }
261
-
262
- export interface XRAnchor {
263
- anchorSpace: EventTarget;
264
- delete(): void;
265
- }
266
-
267
- export interface XRPlane {
268
- orientation: 'Horizontal' | 'Vertical';
269
- planeSpace: EventTarget;
270
- polygon: DOMPointReadOnly[];
271
- lastChangedTime: number;
272
- }
273
-
274
- export enum XRHandJoint {
275
- 'wrist',
276
- 'thumb-metacarpal',
277
- 'thumb-phalanx-proximal',
278
- 'thumb-phalanx-distal',
279
- 'thumb-tip',
280
- 'index-finger-metacarpal',
281
- 'index-finger-phalanx-proximal',
282
- 'index-finger-phalanx-intermediate',
283
- 'index-finger-phalanx-distal',
284
- 'index-finger-tip',
285
- 'middle-finger-metacarpal',
286
- 'middle-finger-phalanx-proximal',
287
- 'middle-finger-phalanx-intermediate',
288
- 'middle-finger-phalanx-distal',
289
- 'middle-finger-tip',
290
- 'ring-finger-metacarpal',
291
- 'ring-finger-phalanx-proximal',
292
- 'ring-finger-phalanx-intermediate',
293
- 'ring-finger-phalanx-distal',
294
- 'ring-finger-tip',
295
- 'pinky-finger-metacarpal',
296
- 'pinky-finger-phalanx-proximal',
297
- 'pinky-finger-phalanx-intermediate',
298
- 'pinky-finger-phalanx-distal',
299
- 'pinky-finger-tip',
300
- }
301
-
302
- export interface XRJointSpace extends EventTarget {
303
- readonly jointName: XRHandJoint;
304
- }
305
-
306
- export interface XRJointPose extends XRPose {
307
- readonly radius: number | undefined;
308
- }
309
-
310
- export interface XRHand extends Map<XRHandJoint, XRJointSpace> {
311
- readonly size: number;
312
- }
313
-
314
- export interface Constructor<T = object> {
315
- new (...args: any[]): T;
316
- prototype: T;
317
- }
318
-
319
- export interface XRInputSourceChangeEvent {
320
- session: XRSession;
321
- removed: XRInputSource[];
322
- added: XRInputSource[];
323
- }
324
-
325
- export interface XRInputSourceEvent extends Event {
326
- readonly frame: XRFrame;
327
- readonly inputSource: XRInputSource;
328
- }