@types/three 0.132.1 → 0.134.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 (45) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/controls/ArcballControls.d.ts +160 -0
  3. three/examples/jsm/geometries/ParametricGeometries.d.ts +4 -2
  4. three/{src → examples/jsm}/geometries/ParametricGeometry.d.ts +2 -3
  5. three/{src → examples/jsm}/geometries/TextGeometry.d.ts +3 -2
  6. three/examples/jsm/lines/LineSegmentsGeometry.d.ts +2 -2
  7. three/{src → examples/jsm}/loaders/FontLoader.d.ts +14 -3
  8. three/examples/jsm/loaders/GLTFLoader.d.ts +22 -5
  9. three/examples/jsm/misc/GPUComputationRenderer.d.ts +8 -6
  10. three/examples/jsm/modifiers/TessellateModifier.d.ts +1 -1
  11. three/examples/jsm/nodes/inputs/ColorNode.d.ts +1 -1
  12. three/examples/jsm/nodes/materials/StandardNodeMaterial.d.ts +1 -1
  13. three/examples/jsm/nodes/materials/nodes/StandardNode.d.ts +1 -1
  14. three/examples/jsm/objects/MarchingCubes.d.ts +11 -5
  15. three/examples/jsm/postprocessing/SSRPass.d.ts +0 -3
  16. three/examples/jsm/postprocessing/SSRrPass.d.ts +0 -17
  17. three/examples/jsm/renderers/CSS2DRenderer.d.ts +5 -1
  18. three/examples/jsm/renderers/CSS3DRenderer.d.ts +5 -1
  19. three/index.d.ts +1 -1
  20. three/package.json +2 -2
  21. three/src/Three.d.ts +0 -3
  22. three/src/core/Raycaster.d.ts +12 -4
  23. three/src/extras/core/CurvePath.d.ts +1 -1
  24. three/src/geometries/EdgesGeometry.d.ts +3 -2
  25. three/src/geometries/ExtrudeGeometry.d.ts +1 -1
  26. three/src/geometries/Geometries.d.ts +0 -2
  27. three/src/geometries/LatheGeometry.d.ts +1 -1
  28. three/src/geometries/PolyhedronGeometry.d.ts +1 -1
  29. three/src/geometries/ShapeGeometry.d.ts +1 -1
  30. three/src/geometries/TubeGeometry.d.ts +1 -1
  31. three/src/geometries/WireframeGeometry.d.ts +6 -2
  32. three/src/lights/DirectionalLight.d.ts +1 -1
  33. three/src/lights/LightShadow.d.ts +3 -3
  34. three/src/loaders/LoaderUtils.d.ts +1 -0
  35. three/src/materials/Material.d.ts +1 -1
  36. three/src/materials/MeshPhysicalMaterial.d.ts +29 -7
  37. three/src/math/Quaternion.d.ts +2 -0
  38. three/src/math/Triangle.d.ts +10 -1
  39. three/src/math/Vector3.d.ts +2 -0
  40. three/src/renderers/WebGLRenderer.d.ts +11 -7
  41. three/src/renderers/webgl/WebGLRenderLists.d.ts +0 -3
  42. three/src/textures/Texture.d.ts +6 -0
  43. three/examples/jsm/controls/DeviceOrientationControls.d.ts +0 -19
  44. three/src/extras/core/Font.d.ts +0 -14
  45. three/src/extras/objects/ImmediateRenderObject.d.ts +0 -59
three/README.md CHANGED
@@ -8,7 +8,7 @@ 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: Sat, 25 Sep 2021 01:01:27 GMT
11
+ * Last updated: Mon, 08 Nov 2021 18:01:35 GMT
12
12
  * Dependencies: none
13
13
  * Global values: `THREE`
14
14
 
@@ -0,0 +1,160 @@
1
+ import { EventDispatcher, Camera, Scene, Vector3, Raycaster } from '../../../src/Three';
2
+
3
+ export enum ArcballControlsMouseActionOperations {
4
+ PAN = 'PAN',
5
+ ROTATE = 'ROTATE',
6
+ ZOOM = 'ZOOM',
7
+ FOV = 'FOV',
8
+ }
9
+
10
+ export type ArcballControlsMouseActionMouse = 0 | 1 | 2 | 'WHEEL';
11
+
12
+ export enum ArcballControlsMouseActionKeys {
13
+ SHIFT = 'SHIFT',
14
+ CTRL = 'CTRL',
15
+ }
16
+
17
+ export class ArcballControls extends EventDispatcher {
18
+ camera: Camera | null;
19
+ domElement: HTMLElement;
20
+ scene?: Scene | null | undefined;
21
+
22
+ /**
23
+ * @default 500
24
+ */
25
+ focusAnimationTime: number;
26
+
27
+ /**
28
+ * @default true
29
+ */
30
+ enabled: boolean;
31
+
32
+ /**
33
+ * @default true
34
+ */
35
+ enablePan: boolean;
36
+
37
+ /**
38
+ * @default true
39
+ */
40
+ enableRotate: boolean;
41
+
42
+ /**
43
+ * @default true
44
+ */
45
+ enableZoom: boolean;
46
+
47
+ /**
48
+ * @default true
49
+ */
50
+ enableGizmos: boolean;
51
+
52
+ /**
53
+ * @default true
54
+ */
55
+ adjustNearFar: boolean;
56
+
57
+ /**
58
+ * @default 1.1
59
+ */
60
+ scaleFactor: number;
61
+
62
+ /**
63
+ * @default 25
64
+ */
65
+ dampingFactor: number;
66
+
67
+ /**
68
+ * @default 20
69
+ */
70
+ wMax: number; // maximum angular velocity allowed
71
+
72
+ /**
73
+ * @default true
74
+ */
75
+ enableAnimations: boolean; // if animations should be performed
76
+
77
+ /**
78
+ * @default false
79
+ */
80
+ enableGrid: boolean; // if grid should be showed during pan operation
81
+
82
+ /**
83
+ * @default false
84
+ */
85
+ cursorZoom: boolean; // if wheel zoom should be cursor centered
86
+
87
+ /**
88
+ * @default 5
89
+ */
90
+ minFov: number;
91
+
92
+ /**
93
+ * @default 90
94
+ */
95
+ maxFov: number;
96
+
97
+ /**
98
+ * @default 0
99
+ */
100
+ minDistance: number;
101
+
102
+ /**
103
+ * @default Infinity
104
+ */
105
+ maxDistance: number;
106
+
107
+ /**
108
+ * @default 0
109
+ */
110
+ minZoom: number;
111
+
112
+ /**
113
+ * @default Infinity
114
+ */
115
+ maxZoom: number;
116
+
117
+ /**
118
+ * @default Vector3(0,0,0)
119
+ */
120
+ target: Vector3;
121
+
122
+ /**
123
+ * @default 0.67
124
+ */
125
+ radiusFactor: number;
126
+
127
+ constructor(camera: Camera, domElement: HTMLElement, scene?: Scene | null);
128
+
129
+ getRaycaster(): Raycaster;
130
+
131
+ activateGizmos(isActive: boolean): void;
132
+
133
+ copyState(): void;
134
+
135
+ pasteState(): void;
136
+
137
+ saveState(): void;
138
+
139
+ reset(): void;
140
+
141
+ setCamera(camera: Camera): void;
142
+
143
+ setGizmosVisible(value: boolean): void;
144
+
145
+ setTbRadius(value: number): void;
146
+
147
+ setMouseAction(
148
+ operation: ArcballControlsMouseActionOperations,
149
+ mouse: ArcballControlsMouseActionMouse,
150
+ key?: ArcballControlsMouseActionKeys,
151
+ ): boolean;
152
+
153
+ unsetMouseAction(mouse: ArcballControlsMouseActionMouse, key?: ArcballControlsMouseActionKeys): boolean;
154
+
155
+ setTarget(x: number, y: number, z: number): void;
156
+
157
+ update(): void;
158
+
159
+ dispose(): void;
160
+ }
@@ -1,8 +1,10 @@
1
- import { Curve, ParametricGeometry, Vector3 } from '../../../src/Three';
1
+ import { Curve, Vector3 } from '../../../src/Three';
2
+
3
+ import { ParametricGeometry } from './ParametricGeometry';
2
4
 
3
5
  export namespace ParametricGeometries {
4
6
  function klein(v: number, u: number, target: Vector3): Vector3;
5
- function plane(width: number, height: number, target: Vector3): Vector3;
7
+ function plane(width: number, height: number): (u: number, v: number, target: Vector3) => Vector3;
6
8
  function mobius(u: number, t: number, target: Vector3): Vector3;
7
9
  function mobius3d(u: number, t: number, target: Vector3): Vector3;
8
10
 
@@ -1,8 +1,7 @@
1
- import { Vector3 } from './../math/Vector3';
2
- import { BufferGeometry } from './../core/BufferGeometry';
1
+ import { Vector3, BufferGeometry } from '../../../src/Three';
3
2
 
4
3
  export class ParametricGeometry extends BufferGeometry {
5
- constructor(func: (u: number, v: number, dest: Vector3) => void, slices: number, stacks: number);
4
+ constructor(func?: (u: number, v: number, target: Vector3) => void, slices?: number, stacks?: number);
6
5
 
7
6
  /**
8
7
  * @default 'ParametricGeometry'
@@ -1,5 +1,6 @@
1
- import { Font } from './../extras/core/Font';
2
- import { ExtrudeGeometry } from './ExtrudeGeometry';
1
+ import { ExtrudeGeometry } from '../../../src/Three';
2
+
3
+ import { Font } from '../loaders/FontLoader';
3
4
 
4
5
  export interface TextGeometryParameters {
5
6
  font: Font;
@@ -14,10 +14,10 @@ export class LineSegmentsGeometry extends InstancedBufferGeometry {
14
14
  applyMatrix4(matrix: Matrix4): this;
15
15
  computeBoundingBox(): void;
16
16
  computeBoundingSphere(): void;
17
- fromEdgesGeometry(geometry: WireframeGeometry): this;
17
+ fromEdgesGeometry(geometry: EdgesGeometry): this;
18
18
  fromLineSegments(lineSegments: LineSegments): this;
19
19
  fromMesh(mesh: Mesh): this;
20
- fromWireframeGeometry(geometry: EdgesGeometry): this;
20
+ fromWireframeGeometry(geometry: WireframeGeometry): this;
21
21
  setColors(array: number[] | Float32Array): this;
22
22
  setPositions(array: number[] | Float32Array): this;
23
23
  }
@@ -1,6 +1,4 @@
1
- import { Loader } from './Loader';
2
- import { LoadingManager } from './LoadingManager';
3
- import { Font } from './../extras/core/Font';
1
+ import { Shape, Loader, LoadingManager } from '../../../src/Three';
4
2
 
5
3
  export class FontLoader extends Loader {
6
4
  constructor(manager?: LoadingManager);
@@ -14,3 +12,16 @@ export class FontLoader extends Loader {
14
12
  loadAsync(url: string, onProgress?: (event: ProgressEvent) => void): Promise<Font>;
15
13
  parse(json: any): Font;
16
14
  }
15
+
16
+ export class Font {
17
+ constructor(jsondata: any);
18
+
19
+ /**
20
+ * @default 'Font'
21
+ */
22
+ type: string;
23
+
24
+ data: string;
25
+
26
+ generateShapes(text: string, size: number): Shape[];
27
+ }
@@ -13,6 +13,9 @@ import {
13
13
  Material,
14
14
  SkinnedMesh,
15
15
  Texture,
16
+ TextureLoader,
17
+ FileLoader,
18
+ ImageBitmapLoader,
16
19
  } from '../../../src/Three';
17
20
 
18
21
  import { DRACOLoader } from './DRACOLoader';
@@ -63,18 +66,31 @@ export class GLTFLoader extends Loader {
63
66
  ): void;
64
67
  }
65
68
 
66
- export type GLTFReferenceType = 'materials'|'nodes'|'textures'|'meshes';
69
+ export type GLTFReferenceType = 'materials' | 'nodes' | 'textures' | 'meshes';
67
70
 
68
71
  export interface GLTFReference {
69
- materials?: number;
70
- nodes?: number;
71
- textures?: number;
72
- meshes?: number;
72
+ materials?: number;
73
+ nodes?: number;
74
+ textures?: number;
75
+ meshes?: number;
73
76
  }
74
77
 
75
78
  export class GLTFParser {
76
79
  json: any;
77
80
 
81
+ options: {
82
+ path: string;
83
+ manager: LoadingManager;
84
+ ktx2Loader: KTX2Loader;
85
+ meshoptDecoder: /* MeshoptDecoder */ any;
86
+ crossOrigin: string;
87
+ requestHeader: { [header: string]: string };
88
+ };
89
+
90
+ fileLoader: FileLoader;
91
+ textureLoader: TextureLoader | ImageBitmapLoader;
92
+ plugins: GLTFLoaderPlugin;
93
+ extensions: { [name: string]: any };
78
94
  associations: Map<Object3D | Material | Texture, GLTFReference>;
79
95
 
80
96
  getDependency: (type: string, index: number) => Promise<any>;
@@ -135,5 +151,6 @@ export interface GLTFLoaderPlugin {
135
151
  extendMaterialParams?:
136
152
  | ((materialIndex: number, materialParams: { [key: string]: any }) => Promise<any> | null)
137
153
  | undefined;
154
+ createNodeMesh?: ((nodeIndex: number) => Promise<Group | Mesh | SkinnedMesh> | null) | undefined;
138
155
  createNodeAttachment?: ((nodeIndex: number) => Promise<Object3D> | null) | undefined;
139
156
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  WebGLRenderer,
3
- RenderTarget,
3
+ WebGLRenderTarget,
4
4
  Texture,
5
5
  DataTexture,
6
6
  Material,
@@ -8,6 +8,7 @@ import {
8
8
  Wrapping,
9
9
  TextureFilter,
10
10
  TextureDataType,
11
+ IUniform,
11
12
  } from '../../../src/Three';
12
13
 
13
14
  export interface Variable {
@@ -15,7 +16,7 @@ export interface Variable {
15
16
  initialValueTexture: Texture;
16
17
  material: ShaderMaterial;
17
18
  dependencies: Variable[];
18
- renderTargets: RenderTarget[];
19
+ renderTargets: WebGLRenderTarget[];
19
20
  wrapS: number;
20
21
  wrapT: number;
21
22
  minFilter: number;
@@ -33,9 +34,10 @@ export class GPUComputationRenderer {
33
34
  init(): string | null;
34
35
  compute(): void;
35
36
 
36
- getCurrentRenderTarget(variable: Variable): RenderTarget;
37
- getAlternateRenderTarget(variable: Variable): RenderTarget;
37
+ getCurrentRenderTarget(variable: Variable): WebGLRenderTarget;
38
+ getAlternateRenderTarget(variable: Variable): WebGLRenderTarget;
38
39
  addResolutionDefine(materialShader: ShaderMaterial): void;
40
+ createShaderMaterial(computeFragmentShader: string, uniforms?: { [uniform: string]: IUniform }): ShaderMaterial;
39
41
  createRenderTarget(
40
42
  sizeXTexture: number,
41
43
  sizeYTexture: number,
@@ -43,8 +45,8 @@ export class GPUComputationRenderer {
43
45
  wrapT: number,
44
46
  minFilter: TextureFilter,
45
47
  magFilter: TextureFilter,
46
- ): RenderTarget;
48
+ ): WebGLRenderTarget;
47
49
  createTexture(): DataTexture;
48
50
  renderTexture(input: Texture, output: Texture): void;
49
- doRenderTarget(material: Material, output: RenderTarget): void;
51
+ doRenderTarget(material: Material, output: WebGLRenderTarget): void;
50
52
  }
@@ -5,5 +5,5 @@ export class TessellateModifier {
5
5
  maxEdgeLength: number;
6
6
  maxIterations: number;
7
7
 
8
- modify(geometry: BufferGeometry): BufferGeometry;
8
+ modify<TGeometry extends BufferGeometry>(geometry: TGeometry): TGeometry;
9
9
  }
@@ -1,4 +1,4 @@
1
- import { Color } from '../../../../src/Three';
1
+ import { Color, ColorRepresentation } from '../../../../src/Three';
2
2
 
3
3
  import { InputNode } from '../core/InputNode';
4
4
  import { NodeBuilder } from '../core/NodeBuilder';
@@ -21,5 +21,5 @@ export class StandardNodeMaterial extends NodeMaterial {
21
21
  environment: Node;
22
22
  mask: Node;
23
23
  position: Node;
24
- sheenTint: Node;
24
+ sheenColor: Node;
25
25
  }
@@ -8,7 +8,7 @@ export class StandardNode extends Node {
8
8
  roughness: Node;
9
9
  metalness: Node;
10
10
  nodeType: string;
11
- sheenTint: Node;
11
+ sheenColor: Node;
12
12
 
13
13
  build(builder: NodeBuilder): string;
14
14
  copy(source: StandardNode): this;
@@ -1,7 +1,13 @@
1
- import { BufferGeometry, Material, ImmediateRenderObject } from '../../../src/Three';
1
+ import { BufferGeometry, Material, Mesh, Color } from '../../../src/Three';
2
2
 
3
- export class MarchingCubes extends ImmediateRenderObject {
4
- constructor(resolution: number, material: Material, enableUvs?: boolean, enableColors?: boolean);
3
+ export class MarchingCubes extends Mesh {
4
+ constructor(
5
+ resolution: number,
6
+ material: Material,
7
+ enableUvs?: boolean,
8
+ enableColors?: boolean,
9
+ maxPolyCount?: number,
10
+ );
5
11
 
6
12
  enableUvs: boolean;
7
13
  enableColors: boolean;
@@ -46,9 +52,9 @@ export class MarchingCubes extends ImmediateRenderObject {
46
52
  begin(): void;
47
53
  end(): void;
48
54
 
49
- init(resolution: string): void;
55
+ init(resolution: number): void;
50
56
 
51
- addBall(ballx: number, bally: number, ballz: number, strength: number, subtract: number, colors: any): void;
57
+ addBall(ballx: number, bally: number, ballz: number, strength: number, subtract: number, colors?: Color): void;
52
58
 
53
59
  addPlaneX(strength: number, subtract: number): void;
54
60
  addPlaneY(strength: number, subtract: number): void;
@@ -7,7 +7,6 @@ import {
7
7
  Scene,
8
8
  WebGLRenderer,
9
9
  Camera,
10
- TextureEncoding,
11
10
  Mesh,
12
11
  Material,
13
12
  ColorRepresentation,
@@ -22,7 +21,6 @@ export interface SSRPassParams {
22
21
  width?: number | undefined;
23
22
  height?: number | undefined;
24
23
  selects: Mesh[] | null;
25
- encoding: TextureEncoding;
26
24
  isPerspectiveCamera?: boolean | undefined;
27
25
  isBouncing?: boolean | undefined;
28
26
  groundReflector: Reflector | null;
@@ -40,7 +38,6 @@ export class SSRPass extends Pass {
40
38
  output: number;
41
39
  maxDistance: number;
42
40
  thickness: number;
43
- encoding: TextureEncoding;
44
41
  tempColor: Color;
45
42
 
46
43
  get selects(): Mesh[] | null;
@@ -1,32 +1,18 @@
1
1
  import {
2
- AddEquation,
3
2
  Color,
4
- NormalBlending,
5
- DepthTexture,
6
- SrcAlphaFactor,
7
- OneMinusSrcAlphaFactor,
8
3
  MeshNormalMaterial,
9
4
  MeshBasicMaterial,
10
- NearestFilter,
11
- NoBlending,
12
- RGBAFormat,
13
5
  ShaderMaterial,
14
- UniformsUtils,
15
- UnsignedShortType,
16
6
  WebGLRenderTarget,
17
- HalfFloatType,
18
7
  MeshStandardMaterial,
19
8
  WebGLRenderer,
20
9
  Scene,
21
10
  Camera,
22
11
  Mesh,
23
- TextureEncoding,
24
12
  Material,
25
13
  ColorRepresentation,
26
14
  } from '../../../src/Three';
27
15
  import { Pass, FullScreenQuad } from './Pass';
28
- import { SSRrShader, SSRrDepthShader } from '../shaders/SSRrShader';
29
- import { CopyShader } from '../shaders/CopyShader';
30
16
 
31
17
  export interface SSRrPassParams {
32
18
  renderer: WebGLRenderer;
@@ -35,7 +21,6 @@ export interface SSRrPassParams {
35
21
  width?: number | undefined;
36
22
  height?: number | undefined;
37
23
  selects: Mesh[] | null;
38
- encoding: TextureEncoding;
39
24
  }
40
25
 
41
26
  export class SSRrPass extends Pass {
@@ -53,8 +38,6 @@ export class SSRrPass extends Pass {
53
38
  maxDistance: number;
54
39
  surfDist: number;
55
40
 
56
- encoding: TextureEncoding;
57
-
58
41
  color: Color;
59
42
 
60
43
  seleects: Mesh[] | null;
@@ -8,8 +8,12 @@ export class CSS2DObject extends Object3D {
8
8
  onAfterRender: (renderer: unknown, scene: Scene, camera: Camera) => void;
9
9
  }
10
10
 
11
+ export type CSS2DParameters = {
12
+ element?: HTMLElement;
13
+ };
14
+
11
15
  export class CSS2DRenderer {
12
- constructor();
16
+ constructor(parameters?: CSS2DParameters);
13
17
  domElement: HTMLElement;
14
18
 
15
19
  getSize(): { width: number; height: number };
@@ -12,8 +12,12 @@ export class CSS3DSprite extends CSS3DObject {
12
12
  constructor(element: HTMLElement);
13
13
  }
14
14
 
15
+ export type CSS3DParameters = {
16
+ element?: HTMLElement;
17
+ };
18
+
15
19
  export class CSS3DRenderer {
16
- constructor();
20
+ constructor(parameters?: CSS3DParameters);
17
21
  domElement: HTMLElement;
18
22
 
19
23
  getSize(): { width: number; height: number };
three/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- // Type definitions for three 0.132
1
+ // Type definitions for three 0.134
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.132.1",
3
+ "version": "0.134.0",
4
4
  "description": "TypeScript definitions for three",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/three",
6
6
  "license": "MIT",
@@ -25,6 +25,6 @@
25
25
  },
26
26
  "scripts": {},
27
27
  "dependencies": {},
28
- "typesPublisherContentHash": "3bc2c085ec825e9046e6e08328e766b595e0d10694adebcd6bcc872a22385730",
28
+ "typesPublisherContentHash": "081e8a2aa20cac9bb8a5fc1c65f63e7f502175cd0654faf460174999473bd0ac",
29
29
  "typeScriptVersion": "3.7"
30
30
  }
three/src/Three.d.ts CHANGED
@@ -58,12 +58,10 @@ export * from './core/Clock';
58
58
  /**
59
59
  * Extras
60
60
  */
61
- export * from './extras/objects/ImmediateRenderObject';
62
61
  export * from './extras/curves/Curves';
63
62
  export * from './extras/core/Shape';
64
63
  export * from './extras/core/Path';
65
64
  export * from './extras/core/ShapePath';
66
- export * from './extras/core/Font';
67
65
  export * from './extras/core/CurvePath';
68
66
  export * from './extras/core/Curve';
69
67
  export * from './extras/DataUtils';
@@ -121,7 +119,6 @@ export * from './loaders/BufferGeometryLoader';
121
119
  export * from './loaders/LoadingManager';
122
120
  export * from './loaders/ImageLoader';
123
121
  export * from './loaders/ImageBitmapLoader';
124
- export * from './loaders/FontLoader';
125
122
  export * from './loaders/FileLoader';
126
123
  export * from './loaders/Loader';
127
124
  export * from './loaders/LoaderUtils';
@@ -13,14 +13,14 @@ export interface Face {
13
13
  materialIndex: number;
14
14
  }
15
15
 
16
- export interface Intersection {
16
+ export interface Intersection<TIntersected extends Object3D = Object3D> {
17
17
  distance: number;
18
18
  distanceToRay?: number | undefined;
19
19
  point: Vector3;
20
20
  index?: number | undefined;
21
21
  face?: Face | null | undefined;
22
22
  faceIndex?: number | undefined;
23
- object: Object3D;
23
+ object: TIntersected;
24
24
  uv?: Vector2 | undefined;
25
25
  instanceId?: number | undefined;
26
26
  }
@@ -97,7 +97,11 @@ export class Raycaster {
97
97
  * @param recursive If true, it also checks all descendants. Otherwise it only checks intersecton with the object. Default is false.
98
98
  * @param optionalTarget (optional) target to set the result. Otherwise a new Array is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
99
99
  */
100
- intersectObject(object: Object3D, recursive?: boolean, optionalTarget?: Intersection[]): Intersection[];
100
+ intersectObject<TIntersected extends Object3D>(
101
+ object: Object3D,
102
+ recursive?: boolean,
103
+ optionalTarget?: Array<Intersection<TIntersected>>,
104
+ ): Array<Intersection<TIntersected>>;
101
105
 
102
106
  /**
103
107
  * Checks all intersection between the ray and the objects with or without the descendants.
@@ -107,5 +111,9 @@ export class Raycaster {
107
111
  * @param recursive If true, it also checks all descendants of the objects. Otherwise it only checks intersecton with the objects. Default is false.
108
112
  * @param optionalTarget (optional) target to set the result. Otherwise a new Array is instantiated. If set, you must clear this array prior to each call (i.e., array.length = 0;).
109
113
  */
110
- intersectObjects(objects: Object3D[], recursive?: boolean, optionalTarget?: Intersection[]): Intersection[];
114
+ intersectObjects<TIntersected extends Object3D>(
115
+ objects: Object3D[],
116
+ recursive?: boolean,
117
+ optionalTarget?: Array<Intersection<TIntersected>>,
118
+ ): Array<Intersection<TIntersected>>;
111
119
  }
@@ -21,6 +21,6 @@ export class CurvePath<T extends Vector> extends Curve<T> {
21
21
 
22
22
  add(curve: Curve<T>): void;
23
23
  closePath(): void;
24
- getPoint(t: number): T;
24
+ getPoint(t: number, optionalTarget?: T): T;
25
25
  getCurveLengths(): number[];
26
26
  }
@@ -1,11 +1,11 @@
1
1
  import { BufferGeometry } from '../core/BufferGeometry';
2
2
 
3
- export class EdgesGeometry extends BufferGeometry {
3
+ export class EdgesGeometry<TBufferGeometry extends BufferGeometry = BufferGeometry> extends BufferGeometry {
4
4
  /**
5
5
  * @param geometry
6
6
  * @param [thresholdAngle=1]
7
7
  */
8
- constructor(geometry: BufferGeometry, thresholdAngle?: number);
8
+ constructor(geometry?: TBufferGeometry, thresholdAngle?: number);
9
9
 
10
10
  /**
11
11
  * @default 'EdgesGeometry'
@@ -13,6 +13,7 @@ export class EdgesGeometry extends BufferGeometry {
13
13
  type: string;
14
14
 
15
15
  parameters: {
16
+ geometry: TBufferGeometry;
16
17
  thresholdAngle: number;
17
18
  };
18
19
  }
@@ -57,7 +57,7 @@ export interface UVGenerator {
57
57
  }
58
58
 
59
59
  export class ExtrudeGeometry extends BufferGeometry {
60
- constructor(shapes: Shape | Shape[], options?: ExtrudeGeometryOptions);
60
+ constructor(shapes?: Shape | Shape[], options?: ExtrudeGeometryOptions);
61
61
 
62
62
  /**
63
63
  * @default 'ExtrudeGeometry'
@@ -8,14 +8,12 @@ export * from './ExtrudeGeometry';
8
8
  export * from './IcosahedronGeometry';
9
9
  export * from './LatheGeometry';
10
10
  export * from './OctahedronGeometry';
11
- export * from './ParametricGeometry';
12
11
  export * from './PlaneGeometry';
13
12
  export * from './PolyhedronGeometry';
14
13
  export * from './RingGeometry';
15
14
  export * from './ShapeGeometry';
16
15
  export * from './SphereGeometry';
17
16
  export * from './TetrahedronGeometry';
18
- export * from './TextGeometry';
19
17
  export * from './TorusGeometry';
20
18
  export * from './TorusKnotGeometry';
21
19
  export * from './TubeGeometry';
@@ -8,7 +8,7 @@ export class LatheGeometry extends BufferGeometry {
8
8
  * @param [phiStart=0]
9
9
  * @param [phiLength=Math.PI * 2]
10
10
  */
11
- constructor(points: Vector2[], segments?: number, phiStart?: number, phiLength?: number);
11
+ constructor(points?: Vector2[], segments?: number, phiStart?: number, phiLength?: number);
12
12
 
13
13
  /**
14
14
  * @default 'LatheGeometry'
@@ -7,7 +7,7 @@ export class PolyhedronGeometry extends BufferGeometry {
7
7
  * @param [radius=1]
8
8
  * @param [detail=0]
9
9
  */
10
- constructor(vertices: number[], indices: number[], radius?: number, detail?: number);
10
+ constructor(vertices?: number[], indices?: number[], radius?: number, detail?: number);
11
11
 
12
12
  /**
13
13
  * @default 'PolyhedronGeometry'
@@ -7,7 +7,7 @@ export class ShapeGeometry extends BufferGeometry {
7
7
  */
8
8
  type: string;
9
9
 
10
- constructor(shapes: Shape | Shape[], curveSegments?: number);
10
+ constructor(shapes?: Shape | Shape[], curveSegments?: number);
11
11
 
12
12
  static fromJSON(data: any): ShapeGeometry;
13
13
  }
@@ -11,7 +11,7 @@ export class TubeGeometry extends BufferGeometry {
11
11
  * @param [closed=false]
12
12
  */
13
13
  constructor(
14
- path: Curve<Vector3>,
14
+ path?: Curve<Vector3>,
15
15
  tubularSegments?: number,
16
16
  radius?: number,
17
17
  radiusSegments?: number,
@@ -1,10 +1,14 @@
1
1
  import { BufferGeometry } from './../core/BufferGeometry';
2
2
 
3
- export class WireframeGeometry extends BufferGeometry {
4
- constructor(geometry: BufferGeometry);
3
+ export class WireframeGeometry<TBufferGeometry extends BufferGeometry = BufferGeometry> extends BufferGeometry {
4
+ constructor(geometry?: TBufferGeometry);
5
5
 
6
6
  /**
7
7
  * @default 'WireframeGeometry'
8
8
  */
9
9
  type: string;
10
+
11
+ parameters: {
12
+ geometry: TBufferGeometry;
13
+ };
10
14
  }
@@ -24,7 +24,7 @@ export class DirectionalLight extends Light {
24
24
  /**
25
25
  * @default THREE.Object3D.DefaultUp
26
26
  */
27
- position: Vector3;
27
+ readonly position: Vector3;
28
28
 
29
29
  /**
30
30
  * Target used for shadow camera orientation.
@@ -3,7 +3,7 @@ import { Light } from './../lights/Light';
3
3
  import { Vector2 } from './../math/Vector2';
4
4
  import { Vector4 } from './../math/Vector4';
5
5
  import { Matrix4 } from './../math/Matrix4';
6
- import { RenderTarget } from '../renderers/webgl/WebGLRenderLists';
6
+ import { WebGLRenderTarget } from '../renderers/WebGLRenderTarget';
7
7
 
8
8
  export class LightShadow {
9
9
  constructor(camera: Camera);
@@ -38,12 +38,12 @@ export class LightShadow {
38
38
  /**
39
39
  * @default null
40
40
  */
41
- map: RenderTarget;
41
+ map: WebGLRenderTarget;
42
42
 
43
43
  /**
44
44
  * @default null
45
45
  */
46
- mapPass: RenderTarget;
46
+ mapPass: WebGLRenderTarget;
47
47
 
48
48
  /**
49
49
  * @default new THREE.Matrix4()
@@ -1,6 +1,7 @@
1
1
  export interface LoaderUtils {
2
2
  decodeText(array: BufferSource): string;
3
3
  extractUrlBase(url: string): string;
4
+ resolveURL(url: string, path: string): string;
4
5
  }
5
6
 
6
7
  export const LoaderUtils: LoaderUtils;
@@ -317,7 +317,7 @@ export class Material extends EventDispatcher {
317
317
  * If *null*, the value is opposite that of side, above.
318
318
  * @default null
319
319
  */
320
- shadowSide: Side;
320
+ shadowSide: Side | null;
321
321
 
322
322
  /**
323
323
  * Defines whether this material is tone mapped according to the renderer's toneMapping setting.
@@ -14,17 +14,19 @@ export interface MeshPhysicalMaterialParameters extends MeshStandardMaterialPara
14
14
  reflectivity?: number | undefined;
15
15
  ior?: number | undefined;
16
16
 
17
- sheenTint?: Color | undefined;
17
+ sheen?: number | undefined;
18
+ sheenColor?: Color | undefined;
19
+ sheenRoughness?: number | undefined;
18
20
 
19
21
  transmission?: number | undefined;
20
22
  transmissionMap?: Texture | null | undefined;
21
23
  attenuationDistance?: number | undefined;
22
- attenuationTint?: Color | undefined;
24
+ attenuationColor?: Color | undefined;
23
25
 
24
26
  specularIntensity?: number | undefined;
25
- specularTint?: Color | undefined;
27
+ specularColor?: Color | undefined;
26
28
  specularIntensityMap?: Texture | null | undefined;
27
- specularTintMap?: Texture | null | undefined;
29
+ specularColorMap?: Texture | null | undefined;
28
30
  }
29
31
 
30
32
  export class MeshPhysicalMaterial extends MeshStandardMaterial {
@@ -80,10 +82,30 @@ export class MeshPhysicalMaterial extends MeshStandardMaterial {
80
82
  */
81
83
  ior: number;
82
84
 
85
+ /**
86
+ * @default 0.0
87
+ */
88
+ sheen: number;
89
+
90
+ /**
91
+ * @default Color( 0x000000 )
92
+ */
93
+ sheenColor: Color;
94
+
95
+ /**
96
+ * @default null
97
+ */
98
+ sheenColorMap: Texture | null;
99
+
100
+ /**
101
+ * @default 1.0
102
+ */
103
+ sheenRoughness: number;
104
+
83
105
  /**
84
106
  * @default null
85
107
  */
86
- sheenTint: Color | null;
108
+ sheenRoughnessMap: Texture | null;
87
109
 
88
110
  /**
89
111
  * @default 0
@@ -123,7 +145,7 @@ export class MeshPhysicalMaterial extends MeshStandardMaterial {
123
145
  /**
124
146
  * @default Color(1, 1, 1)
125
147
  */
126
- specularTint: Color;
148
+ specularColor: Color;
127
149
 
128
150
  /**
129
151
  * @default null
@@ -133,5 +155,5 @@ export class MeshPhysicalMaterial extends MeshStandardMaterial {
133
155
  /**
134
156
  * @default null
135
157
  */
136
- specularTintMap: Texture | null;
158
+ specularColorMap: Texture | null;
137
159
  }
@@ -172,4 +172,6 @@ export class Quaternion {
172
172
  * @deprecated Use {@link Quaternion#invert .invert()} instead.
173
173
  */
174
174
  inverse(): Quaternion;
175
+
176
+ random(): Quaternion;
175
177
  }
@@ -3,6 +3,9 @@ import { Vector3 } from './Vector3';
3
3
  import { Plane } from './Plane';
4
4
  import { Box3 } from './Box3';
5
5
 
6
+ import { InterleavedBufferAttribute } from '../core/InterleavedBufferAttribute';
7
+ import { BufferAttribute } from '../core/BufferAttribute';
8
+
6
9
  export class Triangle {
7
10
  constructor(a?: Vector3, b?: Vector3, c?: Vector3);
8
11
 
@@ -22,7 +25,13 @@ export class Triangle {
22
25
  c: Vector3;
23
26
 
24
27
  set(a: Vector3, b: Vector3, c: Vector3): Triangle;
25
- setFromPointsAndIndices(points: Vector3[], i0: number, i1: number, i2: number): Triangle;
28
+ setFromPointsAndIndices(points: Vector3[], i0: number, i1: number, i2: number): this;
29
+ setFromAttributeAndIndices(
30
+ attribute: BufferAttribute | InterleavedBufferAttribute,
31
+ i0: number,
32
+ i1: number,
33
+ i2: number,
34
+ ): this;
26
35
  clone(): this;
27
36
  copy(triangle: Triangle): this;
28
37
  getArea(): number;
@@ -287,4 +287,6 @@ export class Vector3 implements Vector {
287
287
  * Sets this vector's x, y and z from Math.random
288
288
  */
289
289
  random(): this;
290
+
291
+ randomDirection(): this;
290
292
  }
@@ -6,12 +6,13 @@ import { WebGLShadowMap } from './webgl/WebGLShadowMap';
6
6
  import { WebGLCapabilities } from './webgl/WebGLCapabilities';
7
7
  import { WebGLProperties } from './webgl/WebGLProperties';
8
8
  import { WebGLProgram } from './webgl/WebGLProgram';
9
- import { RenderTarget, WebGLRenderLists } from './webgl/WebGLRenderLists';
9
+ import { WebGLRenderLists } from './webgl/WebGLRenderLists';
10
10
  import { WebGLState } from './webgl/WebGLState';
11
11
  import { Vector2 } from './../math/Vector2';
12
12
  import { Vector4 } from './../math/Vector4';
13
13
  import { Color } from './../math/Color';
14
14
  import { WebGLRenderTarget } from './WebGLRenderTarget';
15
+ import { WebGLMultipleRenderTargets } from './WebGLMultipleRenderTargets';
15
16
  import { Object3D } from './../core/Object3D';
16
17
  import { Material } from './../materials/Material';
17
18
  import { ToneMapping, ShadowMapType, CullFace, TextureEncoding } from '../constants';
@@ -221,6 +222,7 @@ export class WebGLRenderer implements Renderer {
221
222
  getContext(): WebGLRenderingContext;
222
223
  getContextAttributes(): any;
223
224
  forceContextLoss(): void;
225
+ forceContextRestore(): void;
224
226
 
225
227
  /**
226
228
  * @deprecated Use {@link WebGLCapabilities#getMaxAnisotropy .capabilities.getMaxAnisotropy()} instead.
@@ -322,8 +324,6 @@ export class WebGLRenderer implements Renderer {
322
324
  resetGLState(): void;
323
325
  dispose(): void;
324
326
 
325
- renderBufferImmediate(object: Object3D, program: WebGLProgram): void;
326
-
327
327
  renderBufferDirect(
328
328
  camera: Camera,
329
329
  scene: Scene,
@@ -375,12 +375,12 @@ export class WebGLRenderer implements Renderer {
375
375
  /**
376
376
  * Returns the current render target. If no render target is set, null is returned.
377
377
  */
378
- getRenderTarget(): RenderTarget | null;
378
+ getRenderTarget(): WebGLRenderTarget | null;
379
379
 
380
380
  /**
381
381
  * @deprecated Use {@link WebGLRenderer#getRenderTarget .getRenderTarget()} instead.
382
382
  */
383
- getCurrentRenderTarget(): RenderTarget | null;
383
+ getCurrentRenderTarget(): WebGLRenderTarget | null;
384
384
 
385
385
  /**
386
386
  * Sets the active render target.
@@ -389,10 +389,14 @@ export class WebGLRenderer implements Renderer {
389
389
  * @param activeCubeFace Specifies the active cube side (PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5) of {@link WebGLCubeRenderTarget}.
390
390
  * @param activeMipmapLevel Specifies the active mipmap level.
391
391
  */
392
- setRenderTarget(renderTarget: RenderTarget | null, activeCubeFace?: number, activeMipmapLevel?: number): void;
392
+ setRenderTarget(
393
+ renderTarget: WebGLRenderTarget | WebGLMultipleRenderTargets | null,
394
+ activeCubeFace?: number,
395
+ activeMipmapLevel?: number,
396
+ ): void;
393
397
 
394
398
  readRenderTargetPixels(
395
- renderTarget: RenderTarget,
399
+ renderTarget: WebGLRenderTarget | WebGLMultipleRenderTargets,
396
400
  x: number,
397
401
  y: number,
398
402
  width: number,
@@ -7,9 +7,6 @@ import { Camera } from './../../cameras/Camera';
7
7
  import { BufferGeometry } from '../../core/BufferGeometry';
8
8
  import { WebGLProperties } from './WebGLProperties';
9
9
 
10
- // tslint:disable-next-line:no-empty-interface
11
- export interface RenderTarget {} // not defined in the code, used in LightShadow and WebGRenderer classes
12
-
13
10
  export interface RenderItem {
14
11
  id: number;
15
12
  object: Object3D;
@@ -158,6 +158,12 @@ export class Texture extends EventDispatcher {
158
158
  */
159
159
  isRenderTargetTexture: boolean;
160
160
 
161
+ /**
162
+ * An object that can be used to store custom data about the Material. It should not hold references to functions as these will not be cloned.
163
+ * @default {}
164
+ */
165
+ userData: any;
166
+
161
167
  /**
162
168
  * @default 0
163
169
  */
@@ -1,19 +0,0 @@
1
- import { Camera, EventDispatcher } from '../../../src/Three';
2
-
3
- export class DeviceOrientationControls extends EventDispatcher {
4
- constructor(object: Camera);
5
-
6
- object: Camera;
7
-
8
- // API
9
-
10
- alphaOffset: number;
11
- deviceOrientation: any;
12
- enabled: boolean;
13
- screenOrientation: number;
14
-
15
- connect(): void;
16
- disconnect(): void;
17
- dispose(): void;
18
- update(): void;
19
- }
@@ -1,14 +0,0 @@
1
- import { Shape } from './Shape';
2
-
3
- export class Font {
4
- constructor(jsondata: any);
5
-
6
- /**
7
- * @default 'Font'
8
- */
9
- type: string;
10
-
11
- data: string;
12
-
13
- generateShapes(text: string, size: number): Shape[];
14
- }
@@ -1,59 +0,0 @@
1
- import { Object3D } from './../../core/Object3D';
2
- import { Material } from './../../materials/Material';
3
-
4
- // Extras / Objects /////////////////////////////////////////////////////////////////////
5
-
6
- export class ImmediateRenderObject extends Object3D {
7
- constructor(material: Material);
8
-
9
- readonly isImmediateRenderObject: true;
10
-
11
- material: Material;
12
-
13
- /**
14
- * @default false
15
- */
16
- hasPositions: boolean;
17
-
18
- /**
19
- * @default false
20
- */
21
- hasNormals: boolean;
22
-
23
- /**
24
- * @default false
25
- */
26
- hasColors: boolean;
27
-
28
- /**
29
- * @default false
30
- */
31
- hasUvs: boolean;
32
-
33
- /**
34
- * @default null
35
- */
36
- positionArray: null | Float32Array;
37
-
38
- /**
39
- * @default null
40
- */
41
- normalArray: null | Float32Array;
42
-
43
- /**
44
- * @default null
45
- */
46
- colorArray: null | Float32Array;
47
-
48
- /**
49
- * @default null
50
- */
51
- uvArray: null | Float32Array;
52
-
53
- /**
54
- * @default 0
55
- */
56
- count: number;
57
-
58
- render(renderCallback: () => void): void;
59
- }