@types/three 0.139.0 → 0.142.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.
Files changed (56) hide show
  1. three/README.md +2 -2
  2. three/examples/jsm/controls/FirstPersonControls.d.ts +1 -1
  3. three/examples/jsm/controls/FlyControls.d.ts +1 -1
  4. three/examples/jsm/controls/OrbitControls.d.ts +4 -4
  5. three/examples/jsm/controls/TransformControls.d.ts +41 -1
  6. three/examples/jsm/curves/NURBSUtils.d.ts +18 -20
  7. three/examples/jsm/exporters/GLTFExporter.d.ts +102 -5
  8. three/examples/jsm/exporters/KTX2Exporter.d.ts +5 -0
  9. three/examples/jsm/geometries/LightningStrike.d.ts +3 -3
  10. three/examples/jsm/loaders/GLTFLoader.d.ts +7 -2
  11. three/examples/jsm/loaders/NRRDLoader.d.ts +2 -2
  12. three/examples/jsm/misc/MorphAnimMesh.d.ts +1 -1
  13. three/examples/jsm/objects/LightningStorm.d.ts +3 -3
  14. three/examples/jsm/objects/Reflector.d.ts +11 -1
  15. three/examples/jsm/objects/Refractor.d.ts +11 -1
  16. three/examples/jsm/postprocessing/SAOPass.d.ts +1 -1
  17. three/examples/jsm/postprocessing/SavePass.d.ts +1 -1
  18. three/examples/jsm/shaders/ACESFilmicToneMappingShader.d.ts +10 -0
  19. three/examples/jsm/utils/BufferGeometryUtils.d.ts +7 -1
  20. three/examples/jsm/utils/CameraUtils.d.ts +7 -9
  21. three/examples/jsm/utils/GeometryCompressionUtils.d.ts +3 -5
  22. three/examples/jsm/utils/GeometryUtils.d.ts +23 -25
  23. three/examples/jsm/utils/SkeletonUtils.d.ts +16 -18
  24. three/examples/jsm/webxr/ARButton.d.ts +5 -1
  25. three/examples/jsm/webxr/OculusHandModel.d.ts +3 -2
  26. three/examples/jsm/webxr/OculusHandPointerModel.d.ts +6 -2
  27. three/examples/jsm/webxr/XRControllerModelFactory.d.ts +2 -0
  28. three/examples/jsm/webxr/XREstimatedLight.d.ts +5 -5
  29. three/examples/jsm/webxr/XRHandModelFactory.d.ts +1 -1
  30. three/index.d.ts +6 -5
  31. three/package.json +6 -4
  32. three/src/Three.d.ts +1 -1
  33. three/src/audio/AudioContext.d.ts +1 -1
  34. three/src/constants.d.ts +0 -1
  35. three/src/extras/DataUtils.d.ts +2 -4
  36. three/src/extras/Earcut.d.ts +4 -0
  37. three/src/materials/Material.d.ts +0 -10
  38. three/src/materials/MeshBasicMaterial.d.ts +7 -0
  39. three/src/materials/MeshLambertMaterial.d.ts +7 -0
  40. three/src/materials/MeshMatcapMaterial.d.ts +7 -1
  41. three/src/materials/MeshPhongMaterial.d.ts +7 -1
  42. three/src/materials/MeshPhysicalMaterial.d.ts +20 -0
  43. three/src/materials/MeshStandardMaterial.d.ts +7 -1
  44. three/src/materials/MeshToonMaterial.d.ts +7 -0
  45. three/src/materials/PointsMaterial.d.ts +7 -0
  46. three/src/materials/ShadowMaterial.d.ts +7 -0
  47. three/src/materials/SpriteMaterial.d.ts +7 -0
  48. three/src/math/Color.d.ts +2 -0
  49. three/src/math/Euler.d.ts +2 -0
  50. three/src/math/Quaternion.d.ts +2 -0
  51. three/src/renderers/WebGLRenderTarget.d.ts +6 -0
  52. three/src/renderers/WebGLRenderer.d.ts +1 -7
  53. three/src/renderers/webxr/WebXRController.d.ts +31 -5
  54. three/src/renderers/webxr/WebXRManager.d.ts +23 -7
  55. three/examples/jsm/shaders/SSRrShader.d.ts +0 -48
  56. three/src/renderers/webxr/WebXR.d.ts +0 -328
@@ -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,14 +1,15 @@
1
- // Type definitions for three 0.139
1
+ // Type definitions for three 0.142
2
2
  // Project: https://threejs.org/
3
3
  // Definitions by: Josh Ellis <https://github.com/joshuaellis>
4
4
  // Nathan Bierema <https://github.com/Methuselah96>
5
5
  // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
6
6
  // Minimum TypeScript Version: 3.6
7
7
 
8
+ // To update three.js type definition, please make changes to the repository at:
9
+ // https://github.com/three-types/three-ts-types.
10
+ // Periodically, the updates from the repository are pushed to DefinitelyTyped
11
+ // and released in the @types/three npm package.
12
+
8
13
  export * from './src/Three';
9
14
 
10
- /*~ If this module is a UMD module that exposes a global variable 'myLib' when
11
- *~ loaded outside a module loader environment, declare that global here.
12
- *~ Otherwise, delete this declaration.
13
- */
14
15
  export as namespace THREE;
three/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/three",
3
- "version": "0.139.0",
3
+ "version": "0.142.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": "3d3b533eda48e6d4aad35b8b2177550c7d54d7f9eef4a9c679730a92b75d3551",
29
- "typeScriptVersion": "3.9"
27
+ "dependencies": {
28
+ "@types/webxr": "*"
29
+ },
30
+ "typesPublisherContentHash": "d187945f6b769add03311f684cc4c99011ebd1d56bd6d32f2636d9dac50f5052",
31
+ "typeScriptVersion": "4.0"
30
32
  }
three/src/Three.d.ts CHANGED
@@ -65,6 +65,7 @@ export * from './extras/core/ShapePath';
65
65
  export * from './extras/core/CurvePath';
66
66
  export * from './extras/core/Curve';
67
67
  export * from './extras/DataUtils';
68
+ export * from './extras/Earcut';
68
69
  export * from './extras/ImageUtils';
69
70
  export * from './extras/ShapeUtils';
70
71
  export * from './extras/PMREMGenerator';
@@ -206,7 +207,6 @@ export * from './renderers/webgl/WebGLShadowMap';
206
207
  export * from './renderers/webgl/WebGLState';
207
208
  export * from './renderers/webgl/WebGLTextures';
208
209
  export * from './renderers/webgl/WebGLUniforms';
209
- export * from './renderers/webxr/WebXR';
210
210
  export * from './renderers/webxr/WebXRController';
211
211
  export * from './renderers/webxr/WebXRManager';
212
212
  export { WebGLUtils } from './renderers/webgl/WebGLUtils.js';
@@ -4,5 +4,5 @@
4
4
  export namespace AudioContext {
5
5
  function getContext(): AudioContext;
6
6
 
7
- function setContext(): void;
7
+ function setContext(context: AudioContext): void;
8
8
  }
three/src/constants.d.ts CHANGED
@@ -301,7 +301,6 @@ export const TriangleFanDrawMode: TrianglesDrawModes;
301
301
  export enum TextureEncoding {}
302
302
  export const LinearEncoding: TextureEncoding;
303
303
  export const sRGBEncoding: TextureEncoding;
304
- export const LogLuvEncoding: TextureEncoding;
305
304
 
306
305
  // Depth packing strategies
307
306
  export enum DepthPackingStrategies {}
@@ -1,4 +1,2 @@
1
- export namespace DataUtils {
2
- function toHalfFloat(val: number): number;
3
- function fromHalfFloat(val: number): number;
4
- }
1
+ export function toHalfFloat(val: number): number;
2
+ export function fromHalfFloat(val: number): number;
@@ -0,0 +1,4 @@
1
+ import { Triangle } from '../Three';
2
+ export namespace Earcut {
3
+ function triangulate(data: number[], holeIndices: number[], dim: number): Triangle[];
4
+ }
@@ -13,9 +13,6 @@ import {
13
13
  StencilOp,
14
14
  PixelFormat,
15
15
  } from '../constants';
16
- import { ColorRepresentation } from '../utils';
17
- import { Color } from '../math/Color';
18
- import { Texture } from '../textures/Texture';
19
16
 
20
17
  export interface MaterialParameters {
21
18
  alphaTest?: number | undefined;
@@ -35,7 +32,6 @@ export interface MaterialParameters {
35
32
  depthFunc?: DepthModes | undefined;
36
33
  depthTest?: boolean | undefined;
37
34
  depthWrite?: boolean | undefined;
38
- fog?: boolean | undefined;
39
35
  name?: string | undefined;
40
36
  opacity?: number | undefined;
41
37
  polygonOffset?: boolean | undefined;
@@ -175,12 +171,6 @@ export class Material extends EventDispatcher {
175
171
  */
176
172
  depthWrite: boolean;
177
173
 
178
- /**
179
- * Whether the material is affected by fog. Default is true.
180
- * @default fog
181
- */
182
- fog: boolean;
183
-
184
174
  /**
185
175
  * Unique number of this material instance.
186
176
  */
@@ -16,6 +16,7 @@ export interface MeshBasicMaterialParameters extends MaterialParameters {
16
16
  aoMapIntensity?: number | undefined;
17
17
  specularMap?: Texture | null | undefined;
18
18
  alphaMap?: Texture | null | undefined;
19
+ fog?: boolean | undefined;
19
20
  envMap?: Texture | null | undefined;
20
21
  combine?: Combine | undefined;
21
22
  reflectivity?: number | undefined;
@@ -114,5 +115,11 @@ export class MeshBasicMaterial extends Material {
114
115
  */
115
116
  wireframeLinejoin: string;
116
117
 
118
+ /**
119
+ * Whether the material is affected by fog. Default is true.
120
+ * @default fog
121
+ */
122
+ fog: boolean;
123
+
117
124
  setValues(parameters: MeshBasicMaterialParameters): void;
118
125
  }
@@ -24,6 +24,7 @@ export interface MeshLambertMaterialParameters extends MaterialParameters {
24
24
  wireframeLinewidth?: number | undefined;
25
25
  wireframeLinecap?: string | undefined;
26
26
  wireframeLinejoin?: string | undefined;
27
+ fog?: boolean | undefined;
27
28
  }
28
29
 
29
30
  export class MeshLambertMaterial extends Material {
@@ -129,5 +130,11 @@ export class MeshLambertMaterial extends Material {
129
130
  */
130
131
  wireframeLinejoin: string;
131
132
 
133
+ /**
134
+ * Whether the material is affected by fog. Default is true.
135
+ * @default fog
136
+ */
137
+ fog: boolean;
138
+
132
139
  setValues(parameters: MeshLambertMaterialParameters): void;
133
140
  }
@@ -18,7 +18,7 @@ export interface MeshMatcapMaterialParameters extends MaterialParameters {
18
18
  displacementScale?: number | undefined;
19
19
  displacementBias?: number | undefined;
20
20
  alphaMap?: Texture | null | undefined;
21
-
21
+ fog?: boolean | undefined;
22
22
  flatShading?: boolean | undefined;
23
23
  }
24
24
 
@@ -101,5 +101,11 @@ export class MeshMatcapMaterial extends Material {
101
101
  */
102
102
  flatShading: boolean;
103
103
 
104
+ /**
105
+ * Whether the material is affected by fog. Default is true.
106
+ * @default fog
107
+ */
108
+ fog: boolean;
109
+
104
110
  setValues(parameters: MeshMatcapMaterialParameters): void;
105
111
  }
@@ -37,7 +37,7 @@ export interface MeshPhongMaterialParameters extends MaterialParameters {
37
37
  wireframeLinewidth?: number | undefined;
38
38
  wireframeLinecap?: string | undefined;
39
39
  wireframeLinejoin?: string | undefined;
40
-
40
+ fog?: boolean | undefined;
41
41
  flatShading?: boolean | undefined;
42
42
  }
43
43
 
@@ -205,5 +205,11 @@ export class MeshPhongMaterial extends Material {
205
205
  */
206
206
  metal: boolean;
207
207
 
208
+ /**
209
+ * Whether the material is affected by fog. Default is true.
210
+ * @default fog
211
+ */
212
+ fog: boolean;
213
+
208
214
  setValues(parameters: MeshPhongMaterialParameters): void;
209
215
  }
@@ -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
  }
@@ -32,7 +32,7 @@ export interface MeshStandardMaterialParameters extends MaterialParameters {
32
32
  envMapIntensity?: number | undefined;
33
33
  wireframe?: boolean | undefined;
34
34
  wireframeLinewidth?: number | undefined;
35
-
35
+ fog?: boolean | undefined;
36
36
  flatShading?: boolean | undefined;
37
37
  }
38
38
 
@@ -195,6 +195,12 @@ export class MeshStandardMaterial extends Material {
195
195
  */
196
196
  flatShading: boolean;
197
197
 
198
+ /**
199
+ * Whether the material is affected by fog. Default is true.
200
+ * @default fog
201
+ */
202
+ fog: boolean;
203
+
198
204
  isMeshStandardMaterial: boolean;
199
205
 
200
206
  setValues(parameters: MeshStandardMaterialParameters): void;
@@ -31,6 +31,7 @@ export interface MeshToonMaterialParameters extends MaterialParameters {
31
31
  wireframeLinewidth?: number | undefined;
32
32
  wireframeLinecap?: string | undefined;
33
33
  wireframeLinejoin?: string | undefined;
34
+ fog?: boolean | undefined;
34
35
  }
35
36
 
36
37
  export class MeshToonMaterial extends Material {
@@ -161,5 +162,11 @@ export class MeshToonMaterial extends Material {
161
162
  */
162
163
  wireframeLinejoin: string;
163
164
 
165
+ /**
166
+ * Whether the material is affected by fog. Default is true.
167
+ * @default fog
168
+ */
169
+ fog: boolean;
170
+
164
171
  setValues(parameters: MeshToonMaterialParameters): void;
165
172
  }
@@ -9,6 +9,7 @@ export interface PointsMaterialParameters extends MaterialParameters {
9
9
  alphaMap?: Texture | null | undefined;
10
10
  size?: number | undefined;
11
11
  sizeAttenuation?: boolean | undefined;
12
+ fog?: boolean | undefined;
12
13
  }
13
14
 
14
15
  export class PointsMaterial extends Material {
@@ -44,5 +45,11 @@ export class PointsMaterial extends Material {
44
45
  */
45
46
  sizeAttenuation: boolean;
46
47
 
48
+ /**
49
+ * Whether the material is affected by fog. Default is true.
50
+ * @default fog
51
+ */
52
+ fog: boolean;
53
+
47
54
  setValues(parameters: PointsMaterialParameters): void;
48
55
  }
@@ -4,6 +4,7 @@ import { MaterialParameters, Material } from './Material';
4
4
 
5
5
  export interface ShadowMaterialParameters extends MaterialParameters {
6
6
  color?: ColorRepresentation | undefined;
7
+ fog?: boolean | undefined;
7
8
  }
8
9
 
9
10
  export class ShadowMaterial extends Material {
@@ -23,4 +24,10 @@ export class ShadowMaterial extends Material {
23
24
  * @default true
24
25
  */
25
26
  transparent: boolean;
27
+
28
+ /**
29
+ * Whether the material is affected by fog. Default is true.
30
+ * @default fog
31
+ */
32
+ fog: boolean;
26
33
  }
@@ -9,6 +9,7 @@ export interface SpriteMaterialParameters extends MaterialParameters {
9
9
  alphaMap?: Texture | null | undefined;
10
10
  rotation?: number | undefined;
11
11
  sizeAttenuation?: boolean | undefined;
12
+ fog?: boolean | undefined;
12
13
  }
13
14
 
14
15
  export class SpriteMaterial extends Material {
@@ -48,6 +49,12 @@ export class SpriteMaterial extends Material {
48
49
  */
49
50
  transparent: boolean;
50
51
 
52
+ /**
53
+ * Whether the material is affected by fog. Default is true.
54
+ * @default fog
55
+ */
56
+ fog: boolean;
57
+
51
58
  readonly isSpriteMaterial: true;
52
59
 
53
60
  setValues(parameters: SpriteMaterialParameters): void;
three/src/math/Color.d.ts CHANGED
@@ -175,6 +175,8 @@ export class Color {
175
175
 
176
176
  fromBufferAttribute(attribute: BufferAttribute, index: number): this;
177
177
 
178
+ [Symbol.iterator](): Generator<number, void>;
179
+
178
180
  /**
179
181
  * List of X11 color names.
180
182
  */
three/src/math/Euler.d.ts CHANGED
@@ -42,4 +42,6 @@ export class Euler {
42
42
 
43
43
  static RotationOrders: string[];
44
44
  static DefaultOrder: string;
45
+
46
+ [Symbol.iterator](): Generator<string | number, void>;
45
47
  }
@@ -174,4 +174,6 @@ export class Quaternion {
174
174
  inverse(): Quaternion;
175
175
 
176
176
  random(): Quaternion;
177
+
178
+ [Symbol.iterator](): Generator<number, void>;
177
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';
@@ -128,11 +127,6 @@ export class WebGLRenderer implements Renderer {
128
127
  */
129
128
  domElement: HTMLCanvasElement;
130
129
 
131
- /**
132
- * The HTML5 Canvas's 'webgl' context obtained from the canvas where the renderer will draw.
133
- */
134
- context: WebGLRenderingContext;
135
-
136
130
  /**
137
131
  * Defines whether the renderer should automatically clear its output before rendering.
138
132
  * @default true
@@ -336,7 +330,7 @@ export class WebGLRenderer implements Renderer {
336
330
  * A build in function that can be used instead of requestAnimationFrame. For WebXR projects this function must be used.
337
331
  * @param callback The function will be called every available frame. If `null` is passed it will stop any already ongoing animation.
338
332
  */
339
- setAnimationLoop(callback: XRAnimationLoopCallback | null): void;
333
+ setAnimationLoop(callback: XRFrameRequestCallback | null): void;
340
334
 
341
335
  /**
342
336
  * @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,48 +0,0 @@
1
- import { Matrix4, Vector2, IUniform, Texture } from '../../../src/Three';
2
-
3
- export interface SSRrShader {
4
- defines: {
5
- MAX_STEP: number;
6
- PERSPECTIVE_CAMERA: boolean;
7
- SPECULAR: boolean;
8
- FILL_HOLE: boolean;
9
- INFINITE_THICK: boolean;
10
- };
11
-
12
- uniforms: {
13
- tDiffuse: IUniform<Texture | null>;
14
- tSpecular: IUniform<Texture | null>;
15
- tNormalSelects: IUniform<Texture | null>;
16
- tRefractive: IUniform<Texture | null>;
17
- tDepthSelects: IUniform<Texture | null>;
18
- cameraNear: IUniform<number | null>;
19
- cameraFar: IUniform<number | null>;
20
- resolution: IUniform<Vector2>;
21
- cameraProjectionMatrix: IUniform<Matrix4>;
22
- cameraInverseProjectionMatrix: IUniform<Matrix4>;
23
- ior: IUniform<number>;
24
- cameraRange: IUniform<number>;
25
- maxDistance: IUniform<number>;
26
- surfDist: IUniform<number>;
27
- };
28
-
29
- vertexShader: string;
30
-
31
- fragmentShader: string;
32
- }
33
-
34
- export interface SSRrDepthShader {
35
- defines: {
36
- PERSPECTIVE_CAMERA: number;
37
- };
38
-
39
- uniforms: {
40
- tDepth: IUniform<Texture | null>;
41
- cameraNear: IUniform<number | null>;
42
- cameraFar: IUniform<number | null>;
43
- };
44
-
45
- vertexShader: string;
46
-
47
- fragmentShader: string;
48
- }