From 3cbfee6153de088ae6f3c9e60633e60e972d1040 Mon Sep 17 00:00:00 2001 From: ycw Date: Thu, 3 Jun 2021 15:08:05 +0800 Subject: [PATCH 1/8] fix: export `Pass` and `FullScreenQuad` from EffectComposer (#89) * chore: remove push * #88 * prettier --write * import `FullScreenQuad` * add test file * prettier --write test file * contributors:add Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com> --- .all-contributorsrc | 9 ++++ .github/workflows/CI.yml | 4 -- README.md | 5 ++- .../jsm/postprocessing/EffectComposer.d.ts | 3 ++ .../examples/jsm/postprocessing/Pass.d.ts | 12 +++-- .../examples/jsm/postprocessing/SSRPass.d.ts | 4 +- .../examples/jsm/postprocessing/SSRrPass.d.ts | 4 +- .../postprocessing-effectcomposer-pass.ts | 44 +++++++++++++++++++ types/three/tsconfig.json | 1 + 9 files changed, 70 insertions(+), 16 deletions(-) create mode 100644 types/three/test/postprocessing/postprocessing-effectcomposer-pass.ts diff --git a/.all-contributorsrc b/.all-contributorsrc index ff8815de3..942848ca8 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -160,6 +160,15 @@ "contributions": [ "code" ] + }, + { + "login": "ycw", + "name": "ycw", + "avatar_url": "https://avatars.githubusercontent.com/u/1063018?v=4", + "profile": "https://github.com/ycw", + "contributions": [ + "code" + ] } ], "skipCi": true, diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 8daea50bf..bd41f3c12 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,9 +1,5 @@ name: CI on: - push: - branches: - - 'master' - - 'dev' pull_request: {} jobs: diff --git a/README.md b/README.md index 9a23d95eb..f3b61b534 100644 --- a/README.md +++ b/README.md @@ -42,9 +42,12 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
efokschaner

πŸ’»
Jonghun Park

πŸ’»
sjpt

πŸ’» -
puxiao

πŸ’»
MichaΕ‚ Mrozek

πŸ’» + +
puxiao

πŸ’» +
ycw

πŸ’» + diff --git a/types/three/examples/jsm/postprocessing/EffectComposer.d.ts b/types/three/examples/jsm/postprocessing/EffectComposer.d.ts index 9f6f865bf..b75570082 100644 --- a/types/three/examples/jsm/postprocessing/EffectComposer.d.ts +++ b/types/three/examples/jsm/postprocessing/EffectComposer.d.ts @@ -3,6 +3,9 @@ import { Clock, WebGLRenderer, WebGLRenderTarget } from '../../../src/Three'; import { Pass } from './Pass'; import { ShaderPass } from './ShaderPass'; +export { FullScreenQuad } from './Pass'; +export { Pass }; + export class EffectComposer { constructor(renderer: WebGLRenderer, renderTarget?: WebGLRenderTarget); renderer: WebGLRenderer; diff --git a/types/three/examples/jsm/postprocessing/Pass.d.ts b/types/three/examples/jsm/postprocessing/Pass.d.ts index 4b4eab561..1e8721e78 100644 --- a/types/three/examples/jsm/postprocessing/Pass.d.ts +++ b/types/three/examples/jsm/postprocessing/Pass.d.ts @@ -17,13 +17,11 @@ export class Pass { ): void; } -export namespace Pass { - class FullScreenQuad { - constructor(material?: Material); +export class FullScreenQuad { + constructor(material?: Material); - render(renderer: WebGLRenderer): void; - dispose(): void; + render(renderer: WebGLRenderer): void; + dispose(): void; - material: Material; - } + material: Material; } diff --git a/types/three/examples/jsm/postprocessing/SSRPass.d.ts b/types/three/examples/jsm/postprocessing/SSRPass.d.ts index 43ad7886a..6036c653a 100644 --- a/types/three/examples/jsm/postprocessing/SSRPass.d.ts +++ b/types/three/examples/jsm/postprocessing/SSRPass.d.ts @@ -11,7 +11,7 @@ import { Mesh, Material, } from '../../../src/Three'; -import { Pass } from '../postprocessing/Pass'; +import { Pass, FullScreenQuad } from '../postprocessing/Pass'; import { Reflector } from '../objects/ReflectorForSSRPass'; export interface SSRPassParams { @@ -84,7 +84,7 @@ export class SSRPass extends Pass { copyMaterial: ShaderMaterial; - fsQuad: Pass.FullScreenQuad; + fsQuad: FullScreenQuad; originalClearColor: Color; diff --git a/types/three/examples/jsm/postprocessing/SSRrPass.d.ts b/types/three/examples/jsm/postprocessing/SSRrPass.d.ts index 88920e2a3..a2928191f 100644 --- a/types/three/examples/jsm/postprocessing/SSRrPass.d.ts +++ b/types/three/examples/jsm/postprocessing/SSRrPass.d.ts @@ -23,7 +23,7 @@ import { TextureEncoding, Material, } from '../../../src/Three'; -import { Pass } from './Pass'; +import { Pass, FullScreenQuad } from './Pass'; import { SSRrShader, SSRrDepthShader } from '../shaders/SSRrShader'; import { CopyShader } from '../shaders/CopyShader'; @@ -87,7 +87,7 @@ export class SSRrPass extends Pass { depthRenderMaterial: ShaderMaterial; copyMaterial: ShaderMaterial; - fsQuad: Pass.FullScreenQuad; + fsQuad: FullScreenQuad; originalClearColor: Color; diff --git a/types/three/test/postprocessing/postprocessing-effectcomposer-pass.ts b/types/three/test/postprocessing/postprocessing-effectcomposer-pass.ts new file mode 100644 index 000000000..796347892 --- /dev/null +++ b/types/three/test/postprocessing/postprocessing-effectcomposer-pass.ts @@ -0,0 +1,44 @@ +import * as THREE from 'three'; +import { EffectComposer, Pass, FullScreenQuad } from 'three/examples/jsm/postprocessing/EffectComposer'; + +class FooPass extends Pass { + fsQuad: FullScreenQuad; + constructor() { + super(); + this.fsQuad = new FullScreenQuad( + new THREE.ShaderMaterial({ + vertexShader: ` + varying vec2 vUv; + void main() { + vUv = uv; + gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.); + }`, + fragmentShader: ` + varying vec2 vUv; + void main() { + gl_FragColor = vec4(vUv, 1., 1.); + }`, + }), + ); + } + render(renderer: THREE.WebGLRenderer, writeBuffer: THREE.WebGLRenderTarget) { + renderer.setRenderTarget(this.renderToScreen ? null : writeBuffer); + if (this.clear) renderer.clear(); + this.fsQuad.render(renderer); + } +} + +const renderer = new THREE.WebGLRenderer(); +const composer = new EffectComposer(renderer); +composer.addPass(new FooPass()); +renderer.setAnimationLoop(() => composer.render()); + +function resize(w = 0, h = 0, dpr = devicePixelRatio) { + renderer.setPixelRatio(dpr); + renderer.setSize(w, h, false); + composer.setPixelRatio(dpr); + composer.setSize(w, h); +} +addEventListener('resize', () => resize(innerWidth, innerHeight)); +dispatchEvent(new Event('resize')); +document.body.prepend(renderer.domElement); diff --git a/types/three/tsconfig.json b/types/three/tsconfig.json index a6969c8e2..b5ba94077 100644 --- a/types/three/tsconfig.json +++ b/types/three/tsconfig.json @@ -46,6 +46,7 @@ "test/materials/materials-variations-standard.ts", "test/postprocessing/postprocessing-ssrr.ts", "test/postprocessing/postprocessing-ssr.ts", + "test/postprocessing/postprocessing-effectcomposer-pass.ts", "test/renderers/renderers-renderTarget-multiple.ts", "test/renderers/renderers-renderTarget-texture2DArray.ts", "test/renderers/webxr/webxr-vr-cube.ts", From 02d6f368fb1558a7e6d50699caefdc4f6b6c35df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Gonz=C3=A1lez=20Viegas?= Date: Sun, 13 Jun 2021 12:17:52 +0200 Subject: [PATCH 2/8] feat: Update IFCLoader declaration file (#91) * Update IFCLoader declaration file * Correct return type * chore: run prettier * fix: imports Co-authored-by: Josh <37798644+joshuaellis@users.noreply.github.com> --- .../three/examples/jsm/loaders/IFCLoader.d.ts | 91 ++++++++++++++++++- 1 file changed, 89 insertions(+), 2 deletions(-) diff --git a/types/three/examples/jsm/loaders/IFCLoader.d.ts b/types/three/examples/jsm/loaders/IFCLoader.d.ts index 2594b0f4a..f4ac4f951 100644 --- a/types/three/examples/jsm/loaders/IFCLoader.d.ts +++ b/types/three/examples/jsm/loaders/IFCLoader.d.ts @@ -1,4 +1,12 @@ -import { Loader, LoadingManager, Object3D } from '../../../src/Three'; +import { BufferGeometry, Intersection, Loader, Mesh, Scene, LoadingManager, Object3D } from '../../../src/Three'; + +export interface Display { + r: number; + g: number; + b: number; + a: number; + h: 0 | 1; +} // tslint:disable-next-line:interface-name export interface IFC extends Object3D { @@ -12,7 +20,86 @@ export class IFCLoader extends Loader { onLoad: (ifc: IFC) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void, - ): IFC; + ): void; parse(data: ArrayBuffer | string): void; + /** + * Sets the relative path of web-ifc.wasm file in the project. + * Beware: you **must** serve this file in your page; this means + * that you have to copy this files from *node_modules/web-ifc* + * to your deployment directory. + * + * If you don't use this methods, + * IFC.js assumes that you are serving it in the root directory. + * + * Example if web-ifc.wasm is in dist/wasmDir: + * ```js + * ifcLoader.setWasmPath("dist/wasmDir/"); + * ``` + * + * @path The relative path to web-ifc.wasm. + */ + setWasmPath(path: string): void; + /** + * Gets the **Express ID** to which the given face belongs. + * This ID uniquely identifies this entity within this IFC file. + * @faceIndex The index of the face of a geometry.You can easily get this index using the [Raycaster](https://threejs.org/docs/#api/en/core/Raycaster). + */ + getExpressId(faceIndex: number): number; + /** + * Returns the first visible or transparent Intersection of the given array. + * If you you use the + * [Raycaster](https://threejs.org/docs/#api/en/core/Raycaster), you will + * get an array of Intersections, and you probably want to get the closest + * intersection to the camera. This is complex because due to the geometry + * optimizations of IFC.js. Use this method to get it right away. + * @items The items you get with [raycaster.intersectObjects()](https://threejs.org/docs/#api/en/core/Raycaster.intersectObjects). + * @geometry The geometry of the IFC model. + * @all If true, it picks the translucent items as well. + * + */ + pickItem(items: Intersection[], geometry: BufferGeometry, transparent?: boolean): Intersection | null | undefined; + /** + * Sets the RGB color and transparency of the specified items. + * @ids The items whose visibility to change. + * @mesh The mesh of the IFC model. + * @state The state of view to apply. This is an object of type `Display`, which has the + * properties `r`, `g` and `b`(red, green and blue), which can have a value between 0 (pure black) + * and 1 (pure color); `a` (alfa), which can have a value between 0 * (transparent) and 1 (opaque), + * and `h` (highlighted), which can be either 0 (not highlighted) * or 1 (highlighted). + * Only highlighted elements will display the specified color + transparency. + * @scene The current Three scene. + */ + setItemsDisplay(ids: number[], mesh: Mesh, state: Display, scene: Scene): void; + /** + * Gets the native properties of the given element. + * @id The express ID of the element. + * @recursive Wether you want to get the information of the referenced elements recursively. + */ + getItemProperties(id: number, recursive?: boolean): any; + /** + * Gets the [property sets](https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifckernel/lexical/ifcpropertyset.htm) + * assigned to the given element. + * @id The express ID of the element. + * @recursive Wether you want to get the information of the referenced elements recursively. + */ + getPropertySets(id: number, recursive?: boolean): any[]; + /** + * Gets the properties of the type assigned to the element. + * For example, if applied to a wall (IfcWall), this would get back the information + * contained in the IfcWallType assigned to it, if any. + * @id The express ID of the element. + * @recursive Wether you want to get the information of the referenced elements recursively. + */ + getTypeProperties(id: number, recursive?: boolean): any[]; + /** + * Gets the spatial structure of the project. The + * [spatial structure](https://standards.buildingsmart.org/IFC/DEV/IFC4_2/FINAL/HTML/schema/ifcproductextension/lexical/ifcspatialstructureelement.htm) + * is the hierarchical structure that organizes every IFC project (all physical items + * are referenced to an element of the spatial structure). It is formed by + * one IfcProject that contains one or more IfcSites, that contain one or more + * IfcBuildings, that contain one or more IfcBuildingStoreys, that contain + * one or more IfcSpaces. + */ + getSpatialStructure(): any; } From b33b057db1bed0e7d7ddc89f239362681c03e640 Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:29:36 +0100 Subject: [PATCH 3/8] feat: add AxisOrder to jsm/misc/Volume --- types/three/examples/jsm/misc/Volume.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/types/three/examples/jsm/misc/Volume.d.ts b/types/three/examples/jsm/misc/Volume.d.ts index f49f7e409..54c200d30 100644 --- a/types/three/examples/jsm/misc/Volume.d.ts +++ b/types/three/examples/jsm/misc/Volume.d.ts @@ -9,6 +9,8 @@ export class Volume { yLength: number; zLength: number; + axisOrder: Array<'x' | 'y' | 'z'>; + data: ArrayLike; spacing: number[]; From 404e3c9e48617c8fbbaa0b6fd52ae408cac55dca Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:32:25 +0100 Subject: [PATCH 4/8] feat: add async API to ObjectLoader --- types/three/src/loaders/ObjectLoader.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/types/three/src/loaders/ObjectLoader.d.ts b/types/three/src/loaders/ObjectLoader.d.ts index ec6f1efa0..d224f4806 100644 --- a/types/three/src/loaders/ObjectLoader.d.ts +++ b/types/three/src/loaders/ObjectLoader.d.ts @@ -22,10 +22,13 @@ export class ObjectLoader extends Loader { Promise; // tslint:disable-next-line:no-unnecessary-generics parse(json: any, onLoad?: (object: Object3D) => void): T; + // tslint:disable-next-line:no-unnecessary-generics + parseAsync(json: any): Promise; parseGeometries(json: any): any[]; // Array of BufferGeometry or Geometry or Geometry2. parseMaterials(json: any, textures: Texture[]): Material[]; // Array of Classes that inherits from Matrial. parseAnimations(json: any): AnimationClip[]; parseImages(json: any, onLoad: () => void): { [key: string]: HTMLImageElement }; + parseImagesAsync(json: any): Promise<{ [key: string]: HTMLImageElement }>; parseTextures(json: any, images: any): Texture[]; parseObject( data: any, From 878faa35cc2f7696a87c22b7c44b61c1eff521c6 Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:38:25 +0100 Subject: [PATCH 5/8] feat: ObjectLoader: Moved json handling to geometries --- types/three/src/geometries/BoxGeometry.d.ts | 2 ++ types/three/src/geometries/CircleGeometry.d.ts | 2 ++ types/three/src/geometries/ConeGeometry.d.ts | 2 ++ types/three/src/geometries/CylinderGeometry.d.ts | 2 ++ types/three/src/geometries/DodecahedronGeometry.d.ts | 2 ++ types/three/src/geometries/ExtrudeGeometry.d.ts | 2 ++ types/three/src/geometries/IcosahedronGeometry.d.ts | 2 ++ types/three/src/geometries/LatheGeometry.d.ts | 2 ++ types/three/src/geometries/OctahedronGeometry.d.ts | 2 ++ types/three/src/geometries/PlaneGeometry.d.ts | 2 ++ types/three/src/geometries/PolyhedronGeometry.d.ts | 2 ++ types/three/src/geometries/RingGeometry.d.ts | 2 ++ types/three/src/geometries/ShapeGeometry.d.ts | 2 ++ types/three/src/geometries/SphereGeometry.d.ts | 2 ++ types/three/src/geometries/TetrahedronGeometry.d.ts | 2 ++ types/three/src/geometries/TorusGeometry.d.ts | 2 ++ types/three/src/geometries/TorusKnotGeometry.d.ts | 2 ++ types/three/src/geometries/TubeGeometry.d.ts | 2 ++ types/three/src/loaders/ObjectLoader.d.ts | 4 +++- 19 files changed, 39 insertions(+), 1 deletion(-) diff --git a/types/three/src/geometries/BoxGeometry.d.ts b/types/three/src/geometries/BoxGeometry.d.ts index fc5a0bab9..88110b38a 100644 --- a/types/three/src/geometries/BoxGeometry.d.ts +++ b/types/three/src/geometries/BoxGeometry.d.ts @@ -31,6 +31,8 @@ export class BoxGeometry extends BufferGeometry { heightSegments: number; depthSegments: number; }; + + static fromJSON(data: any): BoxGeometry; } export { BoxGeometry as BoxBufferGeometry }; diff --git a/types/three/src/geometries/CircleGeometry.d.ts b/types/three/src/geometries/CircleGeometry.d.ts index 3abb4cb9c..5c557d054 100644 --- a/types/three/src/geometries/CircleGeometry.d.ts +++ b/types/three/src/geometries/CircleGeometry.d.ts @@ -20,6 +20,8 @@ export class CircleGeometry extends BufferGeometry { thetaStart: number; thetaLength: number; }; + + static fromJSON(data: any): CircleGeometry; } export { CircleGeometry as CircleBufferGeometry }; diff --git a/types/three/src/geometries/ConeGeometry.d.ts b/types/three/src/geometries/ConeGeometry.d.ts index 8c779553e..18c6988d8 100644 --- a/types/three/src/geometries/ConeGeometry.d.ts +++ b/types/three/src/geometries/ConeGeometry.d.ts @@ -24,6 +24,8 @@ export class ConeGeometry extends CylinderGeometry { * @default 'ConeGeometry' */ type: string; + + static fromJSON(data: any): ConeGeometry; } export { ConeGeometry as ConeBufferGeometry }; diff --git a/types/three/src/geometries/CylinderGeometry.d.ts b/types/three/src/geometries/CylinderGeometry.d.ts index 887c00a82..5e85c86cb 100644 --- a/types/three/src/geometries/CylinderGeometry.d.ts +++ b/types/three/src/geometries/CylinderGeometry.d.ts @@ -37,6 +37,8 @@ export class CylinderGeometry extends BufferGeometry { thetaStart: number; thetaLength: number; }; + + static fromJSON(data: any): CylinderGeometry; } export { CylinderGeometry as CylinderBufferGeometry }; diff --git a/types/three/src/geometries/DodecahedronGeometry.d.ts b/types/three/src/geometries/DodecahedronGeometry.d.ts index 3f43d2353..07faafb35 100644 --- a/types/three/src/geometries/DodecahedronGeometry.d.ts +++ b/types/three/src/geometries/DodecahedronGeometry.d.ts @@ -11,6 +11,8 @@ export class DodecahedronGeometry extends PolyhedronGeometry { * @default 'DodecahedronGeometry' */ type: string; + + static fromJSON(data: any): DodecahedronGeometry; } export { DodecahedronGeometry as DodecahedronBufferGeometry }; diff --git a/types/three/src/geometries/ExtrudeGeometry.d.ts b/types/three/src/geometries/ExtrudeGeometry.d.ts index 6455b4baa..45c7f6654 100644 --- a/types/three/src/geometries/ExtrudeGeometry.d.ts +++ b/types/three/src/geometries/ExtrudeGeometry.d.ts @@ -66,6 +66,8 @@ export class ExtrudeGeometry extends BufferGeometry { addShapeList(shapes: Shape[], options?: any): void; addShape(shape: Shape, options?: any): void; + + static fromJSON(data: any): ExtrudeGeometry; } export { ExtrudeGeometry as ExtrudeBufferGeometry }; diff --git a/types/three/src/geometries/IcosahedronGeometry.d.ts b/types/three/src/geometries/IcosahedronGeometry.d.ts index cd8a639ab..ebff37fab 100644 --- a/types/three/src/geometries/IcosahedronGeometry.d.ts +++ b/types/three/src/geometries/IcosahedronGeometry.d.ts @@ -11,6 +11,8 @@ export class IcosahedronGeometry extends PolyhedronGeometry { * @default 'IcosahedronGeometry' */ type: string; + + static fromJSON(data: any): IcosahedronGeometry; } export { IcosahedronGeometry as IcosahedronBufferGeometry }; diff --git a/types/three/src/geometries/LatheGeometry.d.ts b/types/three/src/geometries/LatheGeometry.d.ts index 3b25a5e05..e05536241 100644 --- a/types/three/src/geometries/LatheGeometry.d.ts +++ b/types/three/src/geometries/LatheGeometry.d.ts @@ -21,6 +21,8 @@ export class LatheGeometry extends BufferGeometry { phiStart: number; phiLength: number; }; + + static fromJSON(data: any): LatheGeometry; } export { LatheGeometry as LatheBufferGeometry }; diff --git a/types/three/src/geometries/OctahedronGeometry.d.ts b/types/three/src/geometries/OctahedronGeometry.d.ts index 97cfe1955..6b2da8ad5 100644 --- a/types/three/src/geometries/OctahedronGeometry.d.ts +++ b/types/three/src/geometries/OctahedronGeometry.d.ts @@ -11,6 +11,8 @@ export class OctahedronGeometry extends PolyhedronGeometry { * @default 'OctahedronGeometry' */ type: string; + + static fromJSON(data: any): OctahedronGeometry; } export { OctahedronGeometry as OctahedronBufferGeometry }; diff --git a/types/three/src/geometries/PlaneGeometry.d.ts b/types/three/src/geometries/PlaneGeometry.d.ts index 358d00b8f..7d4e71e83 100644 --- a/types/three/src/geometries/PlaneGeometry.d.ts +++ b/types/three/src/geometries/PlaneGeometry.d.ts @@ -20,6 +20,8 @@ export class PlaneGeometry extends BufferGeometry { widthSegments: number; heightSegments: number; }; + + static fromJSON(data: any): PlaneGeometry; } export { PlaneGeometry as PlaneBufferGeometry }; diff --git a/types/three/src/geometries/PolyhedronGeometry.d.ts b/types/three/src/geometries/PolyhedronGeometry.d.ts index 7ad9d396d..2fc3c86ce 100644 --- a/types/three/src/geometries/PolyhedronGeometry.d.ts +++ b/types/three/src/geometries/PolyhedronGeometry.d.ts @@ -20,6 +20,8 @@ export class PolyhedronGeometry extends BufferGeometry { radius: number; detail: number; }; + + static fromJSON(data: any): PolyhedronGeometry; } export { PolyhedronGeometry as PolyhedronBufferGeometry }; diff --git a/types/three/src/geometries/RingGeometry.d.ts b/types/three/src/geometries/RingGeometry.d.ts index 5d9434ebf..89fa9c8c1 100644 --- a/types/three/src/geometries/RingGeometry.d.ts +++ b/types/three/src/geometries/RingGeometry.d.ts @@ -31,6 +31,8 @@ export class RingGeometry extends BufferGeometry { thetaStart: number; thetaLength: number; }; + + static fromJSON(data: any): RingGeometry; } export { RingGeometry as RingBufferGeometry }; diff --git a/types/three/src/geometries/ShapeGeometry.d.ts b/types/three/src/geometries/ShapeGeometry.d.ts index ebb9e9825..c31b962cc 100644 --- a/types/three/src/geometries/ShapeGeometry.d.ts +++ b/types/three/src/geometries/ShapeGeometry.d.ts @@ -8,6 +8,8 @@ export class ShapeGeometry extends BufferGeometry { type: string; constructor(shapes: Shape | Shape[], curveSegments?: number); + + static fromJSON(data: any): ShapeGeometry; } export { ShapeGeometry as ShapeBufferGeometry }; diff --git a/types/three/src/geometries/SphereGeometry.d.ts b/types/three/src/geometries/SphereGeometry.d.ts index 8dd400d48..2c4019d01 100644 --- a/types/three/src/geometries/SphereGeometry.d.ts +++ b/types/three/src/geometries/SphereGeometry.d.ts @@ -34,6 +34,8 @@ export class SphereGeometry extends BufferGeometry { thetaStart: number; thetaLength: number; }; + + static fromJSON(data: any): SphereGeometry; } export { SphereGeometry as SphereBufferGeometry }; diff --git a/types/three/src/geometries/TetrahedronGeometry.d.ts b/types/three/src/geometries/TetrahedronGeometry.d.ts index 963fdb7a4..868508957 100644 --- a/types/three/src/geometries/TetrahedronGeometry.d.ts +++ b/types/three/src/geometries/TetrahedronGeometry.d.ts @@ -11,6 +11,8 @@ export class TetrahedronGeometry extends PolyhedronGeometry { * @default 'TetrahedronGeometry' */ type: string; + + static fromJSON(data: any): TetrahedronGeometry; } export { TetrahedronGeometry as TetrahedronBufferGeometry }; diff --git a/types/three/src/geometries/TorusGeometry.d.ts b/types/three/src/geometries/TorusGeometry.d.ts index 4a24ab446..6a6406104 100644 --- a/types/three/src/geometries/TorusGeometry.d.ts +++ b/types/three/src/geometries/TorusGeometry.d.ts @@ -22,6 +22,8 @@ export class TorusGeometry extends BufferGeometry { tubularSegments: number; arc: number; }; + + static fromJSON(data: any): TorusGeometry; } export { TorusGeometry as TorusBufferGeometry }; diff --git a/types/three/src/geometries/TorusKnotGeometry.d.ts b/types/three/src/geometries/TorusKnotGeometry.d.ts index 3f409f191..aae989c93 100644 --- a/types/three/src/geometries/TorusKnotGeometry.d.ts +++ b/types/three/src/geometries/TorusKnotGeometry.d.ts @@ -31,6 +31,8 @@ export class TorusKnotGeometry extends BufferGeometry { p: number; q: number; }; + + static fromJSON(data: any): TorusKnotGeometry; } export { TorusKnotGeometry as TorusKnotBufferGeometry }; diff --git a/types/three/src/geometries/TubeGeometry.d.ts b/types/three/src/geometries/TubeGeometry.d.ts index 73c73c900..398ff9cae 100644 --- a/types/three/src/geometries/TubeGeometry.d.ts +++ b/types/three/src/geometries/TubeGeometry.d.ts @@ -33,6 +33,8 @@ export class TubeGeometry extends BufferGeometry { tangents: Vector3[]; normals: Vector3[]; binormals: Vector3[]; + + static fromJSON(data: any): TubeGeometry; } export { TubeGeometry as TubeBufferGeometry }; diff --git a/types/three/src/loaders/ObjectLoader.d.ts b/types/three/src/loaders/ObjectLoader.d.ts index d224f4806..3c9db483b 100644 --- a/types/three/src/loaders/ObjectLoader.d.ts +++ b/types/three/src/loaders/ObjectLoader.d.ts @@ -4,6 +4,8 @@ import { Object3D } from './../core/Object3D'; import { Texture } from './../textures/Texture'; import { Material } from './../materials/Material'; import { AnimationClip } from './../animation/AnimationClip'; +import { InstancedBufferGeometry } from '../core/InstancedBufferGeometry'; +import { BufferGeometry } from '../core/BufferGeometry'; export class ObjectLoader extends Loader { constructor(manager?: LoadingManager); @@ -24,7 +26,7 @@ export class ObjectLoader extends Loader { parse(json: any, onLoad?: (object: Object3D) => void): T; // tslint:disable-next-line:no-unnecessary-generics parseAsync(json: any): Promise; - parseGeometries(json: any): any[]; // Array of BufferGeometry or Geometry or Geometry2. + parseGeometries(json: any): { [key: string]: InstancedBufferGeometry | BufferGeometry }; // Array of BufferGeometry or Geometry or Geometry2. parseMaterials(json: any, textures: Texture[]): Material[]; // Array of Classes that inherits from Matrial. parseAnimations(json: any): AnimationClip[]; parseImages(json: any, onLoad: () => void): { [key: string]: HTMLImageElement }; From 719d81ef47d6c530c25c92b39ed832c5852147df Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:40:13 +0100 Subject: [PATCH 6/8] feat: add setColor to AxesHelper --- types/three/src/helpers/AxesHelper.d.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/types/three/src/helpers/AxesHelper.d.ts b/types/three/src/helpers/AxesHelper.d.ts index 610aeba57..fa1633eff 100644 --- a/types/three/src/helpers/AxesHelper.d.ts +++ b/types/three/src/helpers/AxesHelper.d.ts @@ -1,3 +1,4 @@ +import { Color } from '../math/Color'; import { LineSegments } from './../objects/LineSegments'; export class AxesHelper extends LineSegments { @@ -10,4 +11,6 @@ export class AxesHelper extends LineSegments { * @default 'AxesHelper' */ type: string; + + setColors(xAxisColor: Color, yAxisColor: Color, zAxisColor: Color): this; } From 280eff9c4fcb2d50b57616addb4e0c9bea5d14a8 Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:41:08 +0100 Subject: [PATCH 7/8] r130 --- types/three/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/three/index.d.ts b/types/three/index.d.ts index 148836df4..1e5b8f874 100644 --- a/types/three/index.d.ts +++ b/types/three/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for three 0.129 +// Type definitions for three 0.130 // Project: https://threejs.org/ // Definitions by: Josh Ellis // Nathan Bierema From 685896cc1f6fe3f70fe662f56e939eed45115e20 Mon Sep 17 00:00:00 2001 From: Josh <37798644+joshuaellis@users.noreply.github.com> Date: Mon, 5 Jul 2021 11:55:50 +0100 Subject: [PATCH 8/8] chore: Merge upstream changes (#103) * chore: merge upstream * chore: run prettier * chore: update deps to match DT repo fixes lint issues with undefined being declared from upstream * chore: run prettier * chore: run prettier --- package.json | 4 +- .../jsm/animation/MMDAnimationHelper.d.ts | 34 ++++---- .../examples/jsm/animation/MMDPhysics.d.ts | 6 +- .../examples/jsm/effects/OutlineEffect.d.ts | 8 +- .../examples/jsm/libs/fflate.module.min.d.ts | 64 +++++++-------- .../examples/jsm/lines/LineMaterial.d.ts | 16 ++-- .../examples/jsm/loaders/GLTFLoader.d.ts | 32 ++++---- .../three/examples/jsm/loaders/MTLLoader.d.ts | 36 ++++----- .../three/examples/jsm/loaders/SVGLoader.d.ts | 8 +- .../jsm/objects/ReflectorForSSRPass.d.ts | 12 +-- .../examples/jsm/postprocessing/SSRPass.d.ts | 10 +-- .../examples/jsm/postprocessing/SSRrPass.d.ts | 6 +- .../jsm/webxr/XRHandPrimitiveModel.d.ts | 2 +- types/three/src/core/BufferGeometry.d.ts | 2 +- types/three/src/core/Raycaster.d.ts | 16 ++-- .../three/src/geometries/ExtrudeGeometry.d.ts | 20 ++--- types/three/src/geometries/TextGeometry.d.ts | 16 ++-- types/three/src/loaders/LoadingManager.d.ts | 2 +- .../src/materials/LineBasicMaterial.d.ts | 10 +-- .../src/materials/LineDashedMaterial.d.ts | 6 +- types/three/src/materials/Material.d.ts | 78 +++++++++---------- .../src/materials/MeshBasicMaterial.d.ts | 32 ++++---- .../src/materials/MeshDepthMaterial.d.ts | 22 ++---- .../src/materials/MeshDistanceMaterial.d.ts | 16 ++-- .../src/materials/MeshLambertMaterial.d.ts | 42 +++++----- .../src/materials/MeshMatcapMaterial.d.ts | 30 +++---- .../src/materials/MeshNormalMaterial.d.ts | 26 +++---- .../src/materials/MeshPhongMaterial.d.ts | 66 ++++++++-------- .../src/materials/MeshPhysicalMaterial.d.ts | 22 +++--- .../src/materials/MeshStandardMaterial.d.ts | 62 +++++++-------- .../three/src/materials/MeshToonMaterial.d.ts | 52 ++++++------- types/three/src/materials/PointsMaterial.d.ts | 12 +-- types/three/src/materials/ShaderMaterial.d.ts | 36 +++++---- types/three/src/materials/ShadowMaterial.d.ts | 2 +- types/three/src/materials/SpriteMaterial.d.ts | 10 +-- types/three/src/objects/Line.d.ts | 4 +- types/three/src/objects/Mesh.d.ts | 4 +- types/three/src/objects/Points.d.ts | 4 +- .../src/renderers/WebGLRenderTarget.d.ts | 24 +++--- types/three/src/renderers/WebGLRenderer.d.ts | 24 +++--- .../renderers/webgl/WebGLCapabilities.d.ts | 4 +- types/three/src/renderers/webxr/WebXR.d.ts | 72 ++++++++--------- .../src/renderers/webxr/WebXRController.d.ts | 2 +- .../loaders/loaders-gltfloader-extensions.ts | 18 ++--- yarn.lock | 17 ++-- 45 files changed, 496 insertions(+), 495 deletions(-) diff --git a/package.json b/package.json index f90feedbd..079dfc421 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "devDependencies": { "@definitelytyped/dtslint-runner": "^0.0.66", "all-contributors-cli": "^6.19.0", - "dtslint": "^4.0.6", + "dtslint": "latest", "prettier": "2.3.2", - "typescript": "^4.1.3" + "typescript": "next" } } diff --git a/types/three/examples/jsm/animation/MMDAnimationHelper.d.ts b/types/three/examples/jsm/animation/MMDAnimationHelper.d.ts index a5f477582..b3afed284 100644 --- a/types/three/examples/jsm/animation/MMDAnimationHelper.d.ts +++ b/types/three/examples/jsm/animation/MMDAnimationHelper.d.ts @@ -14,34 +14,34 @@ import { CCDIKSolver } from './CCDIKSolver'; import { MMDPhysics } from './MMDPhysics'; export interface MMDAnimationHelperParameter { - sync?: boolean; - afterglow?: number; - resetPhysicsOnLoop?: boolean; + sync?: boolean | undefined; + afterglow?: number | undefined; + resetPhysicsOnLoop?: boolean | undefined; } export interface MMDAnimationHelperAddParameter { - animation?: AnimationClip | AnimationClip[]; - physics?: boolean; - warmup?: number; - unitStep?: number; - maxStepNum?: number; - gravity?: number; - delayTime?: number; + animation?: AnimationClip | AnimationClip[] | undefined; + physics?: boolean | undefined; + warmup?: number | undefined; + unitStep?: number | undefined; + maxStepNum?: number | undefined; + gravity?: number | undefined; + delayTime?: number | undefined; } export interface MMDAnimationHelperPoseParameter { - resetPose?: boolean; - ik?: boolean; - grant?: boolean; + resetPose?: boolean | undefined; + ik?: boolean | undefined; + grant?: boolean | undefined; } export interface MMDAnimationHelperMixer { looped: boolean; - mixer?: AnimationMixer; + mixer?: AnimationMixer | undefined; ikSolver: CCDIKSolver; grantSolver: GrantSolver; - physics?: MMDPhysics; - duration?: number; + physics?: MMDPhysics | undefined; + duration?: number | undefined; } export class MMDAnimationHelper { @@ -77,7 +77,7 @@ export class MMDAnimationHelper { } export interface AudioManagerParameter { - delayTime?: number; + delayTime?: number | undefined; } export class AudioManager { diff --git a/types/three/examples/jsm/animation/MMDPhysics.d.ts b/types/three/examples/jsm/animation/MMDPhysics.d.ts index efc922696..59bfb7eb4 100644 --- a/types/three/examples/jsm/animation/MMDPhysics.d.ts +++ b/types/three/examples/jsm/animation/MMDPhysics.d.ts @@ -1,9 +1,9 @@ import { Bone, Euler, Matrix4, Object3D, Quaternion, SkinnedMesh, Vector3 } from '../../../src/Three'; export interface MMDPhysicsParameter { - unitStep?: number; - maxStepNum?: number; - gravity?: Vector3; + unitStep?: number | undefined; + maxStepNum?: number | undefined; + gravity?: Vector3 | undefined; } export class MMDPhysics { diff --git a/types/three/examples/jsm/effects/OutlineEffect.d.ts b/types/three/examples/jsm/effects/OutlineEffect.d.ts index b0e0da7b3..30a4b1068 100644 --- a/types/three/examples/jsm/effects/OutlineEffect.d.ts +++ b/types/three/examples/jsm/effects/OutlineEffect.d.ts @@ -1,10 +1,10 @@ import { Camera, Scene, Vector2, Vector4, WebGLRenderer, WebGLRenderTarget, WebGLShadowMap } from '../../../src/Three'; export interface OutlineEffectParameters { - defaultThickness?: number; - defaultColor?: number[]; - defaultAlpha?: number; - defaultKeepAlive?: boolean; + defaultThickness?: number | undefined; + defaultColor?: number[] | undefined; + defaultAlpha?: number | undefined; + defaultKeepAlive?: boolean | undefined; } export class OutlineEffect { diff --git a/types/three/examples/jsm/libs/fflate.module.min.d.ts b/types/three/examples/jsm/libs/fflate.module.min.d.ts index d5b9eedbb..04dc1df56 100644 --- a/types/three/examples/jsm/libs/fflate.module.min.d.ts +++ b/types/three/examples/jsm/libs/fflate.module.min.d.ts @@ -17,7 +17,7 @@ export interface DeflateOptions { * - become 400 kB with level 1 in 10ms * - become 320 kB with level 9 in 100ms */ - level?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; + level?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | undefined; /** * The memory level to use, ranging from 0-12. Increasing this increases speed and compression ratio at the cost of memory. * @@ -27,7 +27,7 @@ export interface DeflateOptions { * * The default value is automatically determined based on the size of the input data. */ - mem?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12; + mem?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | undefined; } /** * Options for compressing data into a GZIP format @@ -37,12 +37,12 @@ export interface GzipOptions extends DeflateOptions { * When the file was last modified. Defaults to the current time. * Set this to 0 to avoid revealing a modification date entirely. */ - mtime?: Date | string | number; + mtime?: Date | string | number | undefined; /** * The filename of the data. If the `gunzip` command is used to decompress the data, it will output a file * with this name instead of the name of the compressed file. */ - filename?: string; + filename?: string | undefined; } /** * Options for compressing data into a Zlib format @@ -72,7 +72,7 @@ interface AsyncOptions { * Whether or not to "consume" the source data. This will make the typed array/buffer you pass in * unusable but will increase performance and reduce memory usage. */ - consume?: boolean; + consume?: boolean | undefined; } /** * Options for compressing data asynchronously into a DEFLATE format @@ -87,7 +87,7 @@ export interface AsyncInflateOptions extends AsyncOptions { * writing into a buffer you provide; the best you can do is provide the * size in bytes and be given back a new typed array. */ - size?: number; + size?: number | undefined; } /** * Options for compressing data asynchronously into a GZIP format @@ -649,7 +649,7 @@ export interface ZipAttributes { * by PKZIP's APPNOTE.txt, section 4.4.2.2. For example, 0 (the default) * is MS/DOS, 3 is UNIX, 19 is macOS. */ - os?: number; + os?: number | undefined; /** * The file's attributes. These are traditionally somewhat complicated * and platform-dependent, so using them is scarcely necessary. However, @@ -669,7 +669,7 @@ export interface ZipAttributes { * * If you want to set the Unix permissions, for instance, just bit shift by 16, e.g. 0644 << 16 */ - attrs?: number; + attrs?: number | undefined; /** * Extra metadata to add to the file. This field is defined by PKZIP's APPNOTE.txt, * section 4.4.28. At most 65,535 bytes may be used in each ID. The ID must be an @@ -678,17 +678,17 @@ export interface ZipAttributes { * This field is incredibly rare and almost never needed except for compliance with * proprietary standards and software. */ - extra?: Record; + extra?: Record | undefined; /** * The comment to attach to the file. This field is defined by PKZIP's APPNOTE.txt, * section 4.4.26. The comment must be at most 65,535 bytes long UTF-8 encoded. This * field is not read by consumer software. */ - comment?: string; + comment?: string | undefined; /** * When the file was last modified. Defaults to the current time. */ - mtime?: GzipOptions['mtime']; + mtime?: GzipOptions['mtime'] | undefined; } /** * Options for creating a ZIP archive @@ -845,7 +845,7 @@ export interface ZipInputFile extends ZipAttributes { * APPNOTE.txt, section 4.4.4. Should be between 0 and 3. This is unlikely * to be necessary. */ - flag?: number; + flag?: number | undefined; /** * The handler to be called when data is added. After passing this stream to * the ZIP file object, this handler will always be defined. To call it: @@ -859,14 +859,14 @@ export interface ZipInputFile extends ZipAttributes { * * final = boolean, whether this is the final chunk in the stream */ - ondata?: AsyncFlateStreamHandler; + ondata?: AsyncFlateStreamHandler | undefined; /** * A method called when the stream is no longer needed, for clean-up * purposes. This will not always be called after the stream completes, * so you may wish to call this.terminate() after the final chunk is * processed if you have clean-up logic. */ - terminate?: AsyncTerminable; + terminate?: AsyncTerminable | undefined; } /** * A pass-through stream to keep data uncompressed in a ZIP archive. @@ -876,11 +876,11 @@ export class ZipPassThrough implements ZipInputFile { crc: number; size: number; compression: number; - os?: number; - attrs?: number; - comment?: string; - extra?: Record; - mtime?: GzipOptions['mtime']; + os?: number | undefined; + attrs?: number | undefined; + comment?: string | undefined; + extra?: Record | undefined; + mtime?: GzipOptions['mtime'] | undefined; ondata: AsyncFlateStreamHandler; private c; /** @@ -916,11 +916,11 @@ export class ZipDeflate implements ZipInputFile { size: number; compression: number; flag: 0 | 1 | 2 | 3; - os?: number; - attrs?: number; - comment?: string; - extra?: Record; - mtime?: GzipOptions['mtime']; + os?: number | undefined; + attrs?: number | undefined; + comment?: string | undefined; + extra?: Record | undefined; + mtime?: GzipOptions['mtime'] | undefined; ondata: AsyncFlateStreamHandler; private d; /** @@ -946,11 +946,11 @@ export class AsyncZipDeflate implements ZipInputFile { size: number; compression: number; flag: 0 | 1 | 2 | 3; - os?: number; - attrs?: number; - comment?: string; - extra?: Record; - mtime?: GzipOptions['mtime']; + os?: number | undefined; + attrs?: number | undefined; + comment?: string | undefined; + extra?: Record | undefined; + mtime?: GzipOptions['mtime'] | undefined; ondata: AsyncFlateStreamHandler; private d; terminate: AsyncTerminable; @@ -1043,7 +1043,7 @@ export interface UnzipDecoder { * A method to terminate any internal workers used by the stream. Subsequent * calls to push() should silently fail. */ - terminate?: AsyncTerminable; + terminate?: AsyncTerminable | undefined; } /** * A constructor for a decoder for unzip streams @@ -1085,11 +1085,11 @@ export interface UnzipFile { /** * The compressed size of the file */ - size?: number; + size?: number | undefined; /** * The original size of the file */ - originalSize?: number; + originalSize?: number | undefined; /** * Starts reading from the stream. Calling this function will always enable * this stream, but ocassionally the stream will be enabled even without diff --git a/types/three/examples/jsm/lines/LineMaterial.d.ts b/types/three/examples/jsm/lines/LineMaterial.d.ts index f331dda80..a2d349137 100644 --- a/types/three/examples/jsm/lines/LineMaterial.d.ts +++ b/types/three/examples/jsm/lines/LineMaterial.d.ts @@ -1,14 +1,14 @@ import { Color, MaterialParameters, ShaderMaterial, Vector2 } from '../../../src/Three'; export interface LineMaterialParameters extends MaterialParameters { - color?: number; - dashed?: boolean; - dashScale?: number; - dashSize?: number; - dashOffset?: number; - gapSize?: number; - linewidth?: number; - resolution?: Vector2; + color?: number | undefined; + dashed?: boolean | undefined; + dashScale?: number | undefined; + dashSize?: number | undefined; + dashOffset?: number | undefined; + gapSize?: number | undefined; + linewidth?: number | undefined; + resolution?: Vector2 | undefined; } export class LineMaterial extends ShaderMaterial { diff --git a/types/three/examples/jsm/loaders/GLTFLoader.d.ts b/types/three/examples/jsm/loaders/GLTFLoader.d.ts index d86f32413..27d8e7f74 100644 --- a/types/three/examples/jsm/loaders/GLTFLoader.d.ts +++ b/types/three/examples/jsm/loaders/GLTFLoader.d.ts @@ -24,10 +24,10 @@ export interface GLTF { scenes: Group[]; cameras: Camera[]; asset: { - copyright?: string; - generator?: string; - version?: string; - minVersion?: string; + copyright?: string | undefined; + generator?: string | undefined; + version?: string | undefined; + minVersion?: string | undefined; extensions?: any; extras?: any; }; @@ -93,7 +93,7 @@ export class GLTFParser { mapName: string, mapDef: { index: number; - texCoord?: number; + texCoord?: number | undefined; extensions?: any; }, ) => Promise; @@ -113,7 +113,7 @@ export class GLTFParser { loadCamera: (cameraIndex: number) => Promise; loadSkin: (skinIndex: number) => Promise<{ joints: number[]; - inverseBindMatrices?: BufferAttribute | InterleavedBufferAttribute; + inverseBindMatrices?: BufferAttribute | InterleavedBufferAttribute | undefined; }>; loadAnimation: (animationIndex: number) => Promise; loadNode: (nodeIndex: number) => Promise; @@ -121,13 +121,15 @@ export class GLTFParser { } export interface GLTFLoaderPlugin { - beforeRoot?: () => Promise | null; - afterRoot?: (result: GLTF) => Promise | null; - loadMesh?: (meshIndex: number) => Promise | null; - loadBufferView?: (bufferViewIndex: number) => Promise | null; - loadMaterial?: (materialIndex: number) => Promise | null; - loadTexture?: (textureIndex: number) => Promise | null; - getMaterialType?: (materialIndex: number) => typeof Material | null; - extendMaterialParams?: (materialIndex: number, materialParams: { [key: string]: any }) => Promise | null; - createNodeAttachment?: (nodeIndex: number) => Promise | null; + beforeRoot?: (() => Promise | null) | undefined; + afterRoot?: ((result: GLTF) => Promise | null) | undefined; + loadMesh?: ((meshIndex: number) => Promise | null) | undefined; + loadBufferView?: ((bufferViewIndex: number) => Promise | null) | undefined; + loadMaterial?: ((materialIndex: number) => Promise | null) | undefined; + loadTexture?: ((textureIndex: number) => Promise | null) | undefined; + getMaterialType?: ((materialIndex: number) => typeof Material | null) | undefined; + extendMaterialParams?: + | ((materialIndex: number, materialParams: { [key: string]: any }) => Promise | null) + | undefined; + createNodeAttachment?: ((nodeIndex: number) => Promise | null) | undefined; } diff --git a/types/three/examples/jsm/loaders/MTLLoader.d.ts b/types/three/examples/jsm/loaders/MTLLoader.d.ts index 70eae54c8..c66c60948 100644 --- a/types/three/examples/jsm/loaders/MTLLoader.d.ts +++ b/types/three/examples/jsm/loaders/MTLLoader.d.ts @@ -15,28 +15,28 @@ export interface MaterialCreatorOptions { * side: Which side to apply the material * THREE.FrontSide (default), THREE.BackSide, THREE.DoubleSide */ - side?: Side; + side?: Side | undefined; /* * wrap: What type of wrapping to apply for textures * THREE.RepeatWrapping (default), THREE.ClampToEdgeWrapping, THREE.MirroredRepeatWrapping */ - wrap?: Wrapping; + wrap?: Wrapping | undefined; /* * normalizeRGB: RGBs need to be normalized to 0-1 from 0-255 * Default: false, assumed to be already normalized */ - normalizeRGB?: boolean; + normalizeRGB?: boolean | undefined; /* * ignoreZeroRGBs: Ignore values of RGBs (Ka,Kd,Ks) that are all 0's * Default: false */ - ignoreZeroRGBs?: boolean; + ignoreZeroRGBs?: boolean | undefined; /* * invertTrProperty: Use values 1 of Tr field for fully opaque. This option is useful for obj * exported from 3ds MAX, vcglib or meshlab. * Default: false */ - invertTrProperty?: boolean; + invertTrProperty?: boolean | undefined; } export class MTLLoader extends Loader { @@ -56,19 +56,19 @@ export class MTLLoader extends Loader { } export interface MaterialInfo { - ks?: number[]; - kd?: number[]; - ke?: number[]; - map_kd?: string; - map_ks?: string; - map_ke?: string; - norm?: string; - map_bump?: string; - bump?: string; - map_d?: string; - ns?: number; - d?: number; - tr?: number; + ks?: number[] | undefined; + kd?: number[] | undefined; + ke?: number[] | undefined; + map_kd?: string | undefined; + map_ks?: string | undefined; + map_ke?: string | undefined; + norm?: string | undefined; + map_bump?: string | undefined; + bump?: string | undefined; + map_d?: string | undefined; + ns?: number | undefined; + d?: number | undefined; + tr?: number | undefined; } export interface TexParams { diff --git a/types/three/examples/jsm/loaders/SVGLoader.d.ts b/types/three/examples/jsm/loaders/SVGLoader.d.ts index 988ad2ac9..715c1f3ef 100644 --- a/types/three/examples/jsm/loaders/SVGLoader.d.ts +++ b/types/three/examples/jsm/loaders/SVGLoader.d.ts @@ -1,9 +1,11 @@ import { Loader, LoadingManager, ShapePath, BufferGeometry, Vector3, Shape } from '../../../src/Three'; export interface SVGResultPaths extends ShapePath { - userData?: { - [key: string]: any; - }; + userData?: + | { + [key: string]: any; + } + | undefined; } export interface SVGResult { diff --git a/types/three/examples/jsm/objects/ReflectorForSSRPass.d.ts b/types/three/examples/jsm/objects/ReflectorForSSRPass.d.ts index f4ce84a17..510912467 100644 --- a/types/three/examples/jsm/objects/ReflectorForSSRPass.d.ts +++ b/types/three/examples/jsm/objects/ReflectorForSSRPass.d.ts @@ -22,12 +22,12 @@ export interface ReflectorShader { } export interface ReflectorOptions { - clipBias?: number; - textureWidth?: number; - textureHeight?: number; - color?: number; - useDepthTexture?: boolean; - shader?: ReflectorShader; + clipBias?: number | undefined; + textureWidth?: number | undefined; + textureHeight?: number | undefined; + color?: number | undefined; + useDepthTexture?: boolean | undefined; + shader?: ReflectorShader | undefined; } export class Reflector extends Mesh { diff --git a/types/three/examples/jsm/postprocessing/SSRPass.d.ts b/types/three/examples/jsm/postprocessing/SSRPass.d.ts index 6036c653a..8238a8e36 100644 --- a/types/three/examples/jsm/postprocessing/SSRPass.d.ts +++ b/types/three/examples/jsm/postprocessing/SSRPass.d.ts @@ -18,13 +18,13 @@ export interface SSRPassParams { renderer: WebGLRenderer; scene: Scene; camera: Camera; - width?: number; - height?: number; + width?: number | undefined; + height?: number | undefined; selects: Mesh[] | null; encoding: TextureEncoding; - isPerspectiveCamera?: boolean; - isBouncing?: boolean; - morphTargets?: boolean; + isPerspectiveCamera?: boolean | undefined; + isBouncing?: boolean | undefined; + morphTargets?: boolean | undefined; groundReflector: Reflector | null; } diff --git a/types/three/examples/jsm/postprocessing/SSRrPass.d.ts b/types/three/examples/jsm/postprocessing/SSRrPass.d.ts index a2928191f..ab45978c7 100644 --- a/types/three/examples/jsm/postprocessing/SSRrPass.d.ts +++ b/types/three/examples/jsm/postprocessing/SSRrPass.d.ts @@ -31,11 +31,11 @@ export interface SSRrPassParams { renderer: WebGLRenderer; scene: Scene; camera: Camera; - width?: number; - height?: number; + width?: number | undefined; + height?: number | undefined; selects: Mesh[] | null; encoding: TextureEncoding; - morphTargets?: boolean; + morphTargets?: boolean | undefined; } export class SSRrPass extends Pass { diff --git a/types/three/examples/jsm/webxr/XRHandPrimitiveModel.d.ts b/types/three/examples/jsm/webxr/XRHandPrimitiveModel.d.ts index ae7b78963..82c54c7d2 100644 --- a/types/three/examples/jsm/webxr/XRHandPrimitiveModel.d.ts +++ b/types/three/examples/jsm/webxr/XRHandPrimitiveModel.d.ts @@ -3,7 +3,7 @@ import { Group, Texture } from '../../../src/Three'; import { XRHandModel, XRHandModelHandedness } from './XRHandModelFactory'; export interface XRHandPrimitiveModelOptions { - primitive?: 'sphere' | 'box'; + primitive?: 'sphere' | 'box' | undefined; } export class XRHandPrimitiveModel { diff --git a/types/three/src/core/BufferGeometry.d.ts b/types/three/src/core/BufferGeometry.d.ts index 8ecd3cfb6..202238cd4 100644 --- a/types/three/src/core/BufferGeometry.d.ts +++ b/types/three/src/core/BufferGeometry.d.ts @@ -67,7 +67,7 @@ export class BufferGeometry extends EventDispatcher { /** * @default [] */ - groups: Array<{ start: number; count: number; materialIndex?: number }>; + groups: Array<{ start: number; count: number; materialIndex?: number | undefined }>; /** * @default null diff --git a/types/three/src/core/Raycaster.d.ts b/types/three/src/core/Raycaster.d.ts index 06ab5a9a8..819c194a5 100644 --- a/types/three/src/core/Raycaster.d.ts +++ b/types/three/src/core/Raycaster.d.ts @@ -15,21 +15,21 @@ export interface Face { export interface Intersection { distance: number; - distanceToRay?: number; + distanceToRay?: number | undefined; point: Vector3; - index?: number; - face?: Face | null; - faceIndex?: number; + index?: number | undefined; + face?: Face | null | undefined; + faceIndex?: number | undefined; object: Object3D; - uv?: Vector2; - instanceId?: number; + uv?: Vector2 | undefined; + instanceId?: number | undefined; } export interface RaycasterParameters { Mesh?: any; - Line?: { threshold: number }; + Line?: { threshold: number } | undefined; LOD?: any; - Points?: { threshold: number }; + Points?: { threshold: number } | undefined; Sprite?: any; } diff --git a/types/three/src/geometries/ExtrudeGeometry.d.ts b/types/three/src/geometries/ExtrudeGeometry.d.ts index 45c7f6654..da74060e4 100644 --- a/types/three/src/geometries/ExtrudeGeometry.d.ts +++ b/types/three/src/geometries/ExtrudeGeometry.d.ts @@ -8,34 +8,34 @@ export interface ExtrudeGeometryOptions { /** * @default 12 */ - curveSegments?: number; + curveSegments?: number | undefined; /** * @default 1 */ - steps?: number; + steps?: number | undefined; /** * @default 100 */ - depth?: number; + depth?: number | undefined; /** * @default true */ - bevelEnabled?: boolean; + bevelEnabled?: boolean | undefined; /** * @default 6 */ - bevelThickness?: number; - bevelSize?: number; + bevelThickness?: number | undefined; + bevelSize?: number | undefined; /** * @default 0 */ - bevelOffset?: number; + bevelOffset?: number | undefined; /** * @default 3 */ - bevelSegments?: number; - extrudePath?: Curve; - UVGenerator?: UVGenerator; + bevelSegments?: number | undefined; + extrudePath?: Curve | undefined; + UVGenerator?: UVGenerator | undefined; } export interface UVGenerator { diff --git a/types/three/src/geometries/TextGeometry.d.ts b/types/three/src/geometries/TextGeometry.d.ts index 152eefa36..342e5917e 100644 --- a/types/three/src/geometries/TextGeometry.d.ts +++ b/types/three/src/geometries/TextGeometry.d.ts @@ -3,14 +3,14 @@ import { ExtrudeGeometry } from './ExtrudeGeometry'; export interface TextGeometryParameters { font: Font; - size?: number; - height?: number; - curveSegments?: number; - bevelEnabled?: boolean; - bevelThickness?: number; - bevelSize?: number; - bevelOffset?: number; - bevelSegments?: number; + size?: number | undefined; + height?: number | undefined; + curveSegments?: number | undefined; + bevelEnabled?: boolean | undefined; + bevelThickness?: number | undefined; + bevelSize?: number | undefined; + bevelOffset?: number | undefined; + bevelSegments?: number | undefined; } export class TextGeometry extends ExtrudeGeometry { diff --git a/types/three/src/loaders/LoadingManager.d.ts b/types/three/src/loaders/LoadingManager.d.ts index 493143d63..e088bf705 100644 --- a/types/three/src/loaders/LoadingManager.d.ts +++ b/types/three/src/loaders/LoadingManager.d.ts @@ -18,7 +18,7 @@ export class LoadingManager { * @param loaded The number of items already loaded so far. * @param total The total amount of items to be loaded. */ - onStart?: (url: string, loaded: number, total: number) => void; + onStart?: ((url: string, loaded: number, total: number) => void) | undefined; /** * Will be called when all items finish loading. diff --git a/types/three/src/materials/LineBasicMaterial.d.ts b/types/three/src/materials/LineBasicMaterial.d.ts index 6d012444e..03b1e8ac0 100644 --- a/types/three/src/materials/LineBasicMaterial.d.ts +++ b/types/three/src/materials/LineBasicMaterial.d.ts @@ -2,11 +2,11 @@ import { Color } from './../math/Color'; import { MaterialParameters, Material } from './Material'; export interface LineBasicMaterialParameters extends MaterialParameters { - color?: Color | string | number; - linewidth?: number; - linecap?: string; - linejoin?: string; - morphTargets?: boolean; + color?: Color | string | number | undefined; + linewidth?: number | undefined; + linecap?: string | undefined; + linejoin?: string | undefined; + morphTargets?: boolean | undefined; } export class LineBasicMaterial extends Material { diff --git a/types/three/src/materials/LineDashedMaterial.d.ts b/types/three/src/materials/LineDashedMaterial.d.ts index 119449acb..0ea95dd7e 100644 --- a/types/three/src/materials/LineDashedMaterial.d.ts +++ b/types/three/src/materials/LineDashedMaterial.d.ts @@ -1,9 +1,9 @@ import { LineBasicMaterial, LineBasicMaterialParameters } from './LineBasicMaterial'; export interface LineDashedMaterialParameters extends LineBasicMaterialParameters { - scale?: number; - dashSize?: number; - gapSize?: number; + scale?: number | undefined; + dashSize?: number | undefined; + gapSize?: number | undefined; } export class LineDashedMaterial extends LineBasicMaterial { diff --git a/types/three/src/materials/Material.d.ts b/types/three/src/materials/Material.d.ts index 3ae230617..12e145247 100644 --- a/types/three/src/materials/Material.d.ts +++ b/types/three/src/materials/Material.d.ts @@ -14,46 +14,46 @@ import { } from '../constants'; export interface MaterialParameters { - alphaTest?: number; - alphaToCoverage?: boolean; - blendDst?: BlendingDstFactor; - blendDstAlpha?: number; - blendEquation?: BlendingEquation; - blendEquationAlpha?: number; - blending?: Blending; - blendSrc?: BlendingSrcFactor | BlendingDstFactor; - blendSrcAlpha?: number; - clipIntersection?: boolean; - clippingPlanes?: Plane[]; - clipShadows?: boolean; - colorWrite?: boolean; + alphaTest?: number | undefined; + alphaToCoverage?: boolean | undefined; + blendDst?: BlendingDstFactor | undefined; + blendDstAlpha?: number | undefined; + blendEquation?: BlendingEquation | undefined; + blendEquationAlpha?: number | undefined; + blending?: Blending | undefined; + blendSrc?: BlendingSrcFactor | BlendingDstFactor | undefined; + blendSrcAlpha?: number | undefined; + clipIntersection?: boolean | undefined; + clippingPlanes?: Plane[] | undefined; + clipShadows?: boolean | undefined; + colorWrite?: boolean | undefined; defines?: any; - depthFunc?: DepthModes; - depthTest?: boolean; - depthWrite?: boolean; - fog?: boolean; - name?: string; - opacity?: number; - polygonOffset?: boolean; - polygonOffsetFactor?: number; - polygonOffsetUnits?: number; - precision?: 'highp' | 'mediump' | 'lowp' | null; - premultipliedAlpha?: boolean; - dithering?: boolean; - side?: Side; - shadowSide?: Side; - toneMapped?: boolean; - transparent?: boolean; - vertexColors?: boolean; - visible?: boolean; - stencilWrite?: boolean; - stencilFunc?: StencilFunc; - stencilRef?: number; - stencilWriteMask?: number; - stencilFuncMask?: number; - stencilFail?: StencilOp; - stencilZFail?: StencilOp; - stencilZPass?: StencilOp; + depthFunc?: DepthModes | undefined; + depthTest?: boolean | undefined; + depthWrite?: boolean | undefined; + fog?: boolean | undefined; + name?: string | undefined; + opacity?: number | undefined; + polygonOffset?: boolean | undefined; + polygonOffsetFactor?: number | undefined; + polygonOffsetUnits?: number | undefined; + precision?: 'highp' | 'mediump' | 'lowp' | null | undefined; + premultipliedAlpha?: boolean | undefined; + dithering?: boolean | undefined; + side?: Side | undefined; + shadowSide?: Side | undefined; + toneMapped?: boolean | undefined; + transparent?: boolean | undefined; + vertexColors?: boolean | undefined; + visible?: boolean | undefined; + stencilWrite?: boolean | undefined; + stencilFunc?: StencilFunc | undefined; + stencilRef?: number | undefined; + stencilWriteMask?: number | undefined; + stencilFuncMask?: number | undefined; + stencilFail?: StencilOp | undefined; + stencilZFail?: StencilOp | undefined; + stencilZPass?: StencilOp | undefined; userData?: any; } diff --git a/types/three/src/materials/MeshBasicMaterial.d.ts b/types/three/src/materials/MeshBasicMaterial.d.ts index 9763c0a37..82764fcff 100644 --- a/types/three/src/materials/MeshBasicMaterial.d.ts +++ b/types/three/src/materials/MeshBasicMaterial.d.ts @@ -6,22 +6,22 @@ import { Combine } from '../constants'; * parameters is an object with one or more properties defining the material's appearance. */ export interface MeshBasicMaterialParameters extends MaterialParameters { - color?: Color | string | number; - opacity?: number; - map?: Texture | null; - aoMap?: Texture | null; - aoMapIntensity?: number; - specularMap?: Texture | null; - alphaMap?: Texture | null; - envMap?: Texture | null; - combine?: Combine; - reflectivity?: number; - refractionRatio?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - wireframeLinecap?: string; - wireframeLinejoin?: string; - morphTargets?: boolean; + color?: Color | string | number | undefined; + opacity?: number | undefined; + map?: Texture | null | undefined; + aoMap?: Texture | null | undefined; + aoMapIntensity?: number | undefined; + specularMap?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + envMap?: Texture | null | undefined; + combine?: Combine | undefined; + reflectivity?: number | undefined; + refractionRatio?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + wireframeLinecap?: string | undefined; + wireframeLinejoin?: string | undefined; + morphTargets?: boolean | undefined; } export class MeshBasicMaterial extends Material { diff --git a/types/three/src/materials/MeshDepthMaterial.d.ts b/types/three/src/materials/MeshDepthMaterial.d.ts index 595e074af..ae05e77c6 100644 --- a/types/three/src/materials/MeshDepthMaterial.d.ts +++ b/types/three/src/materials/MeshDepthMaterial.d.ts @@ -3,15 +3,14 @@ import { MaterialParameters, Material } from './Material'; import { Texture } from './../textures/Texture'; export interface MeshDepthMaterialParameters extends MaterialParameters { - map?: Texture | null; - alphaMap?: Texture | null; - depthPacking?: DepthPackingStrategies; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - morphTargets?: boolean; + map?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + depthPacking?: DepthPackingStrategies | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; } export class MeshDepthMaterial extends Material { @@ -67,10 +66,5 @@ export class MeshDepthMaterial extends Material { */ fog: boolean; - /** - * @default false - */ - morphTargets: boolean; - setValues(parameters: MeshDepthMaterialParameters): void; } diff --git a/types/three/src/materials/MeshDistanceMaterial.d.ts b/types/three/src/materials/MeshDistanceMaterial.d.ts index cb109235a..3291b894c 100644 --- a/types/three/src/materials/MeshDistanceMaterial.d.ts +++ b/types/three/src/materials/MeshDistanceMaterial.d.ts @@ -3,14 +3,14 @@ import { Vector3 } from './../math/Vector3'; import { Texture } from './../textures/Texture'; export interface MeshDistanceMaterialParameters extends MaterialParameters { - map?: Texture | null; - alphaMap?: Texture | null; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - farDistance?: number; - nearDistance?: number; - referencePosition?: Vector3; + map?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + farDistance?: number | undefined; + nearDistance?: number | undefined; + referencePosition?: Vector3 | undefined; } export class MeshDistanceMaterial extends Material { diff --git a/types/three/src/materials/MeshLambertMaterial.d.ts b/types/three/src/materials/MeshLambertMaterial.d.ts index 7ec42ad89..c41794bc7 100644 --- a/types/three/src/materials/MeshLambertMaterial.d.ts +++ b/types/three/src/materials/MeshLambertMaterial.d.ts @@ -4,27 +4,27 @@ import { MaterialParameters, Material } from './Material'; import { Combine } from '../constants'; export interface MeshLambertMaterialParameters extends MaterialParameters { - color?: Color | string | number; - emissive?: Color | string | number; - emissiveIntensity?: number; - emissiveMap?: Texture | null; - map?: Texture | null; - lightMap?: Texture | null; - lightMapIntensity?: number; - aoMap?: Texture | null; - aoMapIntensity?: number; - specularMap?: Texture | null; - alphaMap?: Texture | null; - envMap?: Texture | null; - combine?: Combine; - reflectivity?: number; - refractionRatio?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - wireframeLinecap?: string; - wireframeLinejoin?: string; - morphTargets?: boolean; - morphNormals?: boolean; + color?: Color | string | number | undefined; + emissive?: Color | string | number | undefined; + emissiveIntensity?: number | undefined; + emissiveMap?: Texture | null | undefined; + map?: Texture | null | undefined; + lightMap?: Texture | null | undefined; + lightMapIntensity?: number | undefined; + aoMap?: Texture | null | undefined; + aoMapIntensity?: number | undefined; + specularMap?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + envMap?: Texture | null | undefined; + combine?: Combine | undefined; + reflectivity?: number | undefined; + refractionRatio?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + wireframeLinecap?: string | undefined; + wireframeLinejoin?: string | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; } export class MeshLambertMaterial extends Material { diff --git a/types/three/src/materials/MeshMatcapMaterial.d.ts b/types/three/src/materials/MeshMatcapMaterial.d.ts index 0c230593a..1e774f1df 100644 --- a/types/three/src/materials/MeshMatcapMaterial.d.ts +++ b/types/three/src/materials/MeshMatcapMaterial.d.ts @@ -5,21 +5,21 @@ import { MaterialParameters, Material } from './Material'; import { NormalMapTypes } from '../constants'; export interface MeshMatcapMaterialParameters extends MaterialParameters { - color?: Color | string | number; - matcap?: Texture | null; - map?: Texture | null; - bumpMap?: Texture | null; - bumpScale?: number; - normalMap?: Texture | null; - normalMapType?: NormalMapTypes; - normalScale?: Vector2; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - alphaMap?: Texture | null; - morphTargets?: boolean; - morphNormals?: boolean; - flatShading?: boolean; + color?: Color | string | number | undefined; + matcap?: Texture | null | undefined; + map?: Texture | null | undefined; + bumpMap?: Texture | null | undefined; + bumpScale?: number | undefined; + normalMap?: Texture | null | undefined; + normalMapType?: NormalMapTypes | undefined; + normalScale?: Vector2 | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + alphaMap?: Texture | null | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; + flatShading?: boolean | undefined; } export class MeshMatcapMaterial extends Material { diff --git a/types/three/src/materials/MeshNormalMaterial.d.ts b/types/three/src/materials/MeshNormalMaterial.d.ts index 2629e0e9c..4a6cdc56d 100644 --- a/types/three/src/materials/MeshNormalMaterial.d.ts +++ b/types/three/src/materials/MeshNormalMaterial.d.ts @@ -4,19 +4,19 @@ import { Vector2 } from './../math/Vector2'; import { NormalMapTypes } from '../constants'; export interface MeshNormalMaterialParameters extends MaterialParameters { - bumpMap?: Texture | null; - bumpScale?: number; - normalMap?: Texture | null; - normalMapType?: NormalMapTypes; - normalScale?: Vector2; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - morphTargets?: boolean; - morphNormals?: boolean; - flatShading?: boolean; + bumpMap?: Texture | null | undefined; + bumpScale?: number | undefined; + normalMap?: Texture | null | undefined; + normalMapType?: NormalMapTypes | undefined; + normalScale?: Vector2 | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; + flatShading?: boolean | undefined; } export class MeshNormalMaterial extends Material { diff --git a/types/three/src/materials/MeshPhongMaterial.d.ts b/types/three/src/materials/MeshPhongMaterial.d.ts index 3f264b432..7870f5f6a 100644 --- a/types/three/src/materials/MeshPhongMaterial.d.ts +++ b/types/three/src/materials/MeshPhongMaterial.d.ts @@ -6,39 +6,39 @@ import { Combine, NormalMapTypes } from '../constants'; export interface MeshPhongMaterialParameters extends MaterialParameters { /** geometry color in hexadecimal. Default is 0xffffff. */ - color?: Color | string | number; - specular?: Color | string | number; - shininess?: number; - opacity?: number; - map?: Texture | null; - lightMap?: Texture | null; - lightMapIntensity?: number; - aoMap?: Texture | null; - aoMapIntensity?: number; - emissive?: Color | string | number; - emissiveIntensity?: number; - emissiveMap?: Texture | null; - bumpMap?: Texture | null; - bumpScale?: number; - normalMap?: Texture | null; - normalMapType?: NormalMapTypes; - normalScale?: Vector2; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - specularMap?: Texture | null; - alphaMap?: Texture | null; - envMap?: Texture | null; - combine?: Combine; - reflectivity?: number; - refractionRatio?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - wireframeLinecap?: string; - wireframeLinejoin?: string; - morphTargets?: boolean; - morphNormals?: boolean; - flatShading?: boolean; + color?: Color | string | number | undefined; + specular?: Color | string | number | undefined; + shininess?: number | undefined; + opacity?: number | undefined; + map?: Texture | null | undefined; + lightMap?: Texture | null | undefined; + lightMapIntensity?: number | undefined; + aoMap?: Texture | null | undefined; + aoMapIntensity?: number | undefined; + emissive?: Color | string | number | undefined; + emissiveIntensity?: number | undefined; + emissiveMap?: Texture | null | undefined; + bumpMap?: Texture | null | undefined; + bumpScale?: number | undefined; + normalMap?: Texture | null | undefined; + normalMapType?: NormalMapTypes | undefined; + normalScale?: Vector2 | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + specularMap?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + envMap?: Texture | null | undefined; + combine?: Combine | undefined; + reflectivity?: number | undefined; + refractionRatio?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + wireframeLinecap?: string | undefined; + wireframeLinejoin?: string | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; + flatShading?: boolean | undefined; } export class MeshPhongMaterial extends Material { diff --git a/types/three/src/materials/MeshPhysicalMaterial.d.ts b/types/three/src/materials/MeshPhysicalMaterial.d.ts index 0b02dbedd..41a62ce62 100644 --- a/types/three/src/materials/MeshPhysicalMaterial.d.ts +++ b/types/three/src/materials/MeshPhysicalMaterial.d.ts @@ -4,20 +4,20 @@ import { MeshStandardMaterialParameters, MeshStandardMaterial } from './MeshStan import { Color } from './../math/Color'; export interface MeshPhysicalMaterialParameters extends MeshStandardMaterialParameters { - clearcoat?: number; - clearcoatMap?: Texture | null; - clearcoatRoughness?: number; - clearcoatRoughnessMap?: Texture | null; - clearcoatNormalScale?: Vector2; - clearcoatNormalMap?: Texture | null; + clearcoat?: number | undefined; + clearcoatMap?: Texture | null | undefined; + clearcoatRoughness?: number | undefined; + clearcoatRoughnessMap?: Texture | null | undefined; + clearcoatNormalScale?: Vector2 | undefined; + clearcoatNormalMap?: Texture | null | undefined; - reflectivity?: number; - ior?: number; + reflectivity?: number | undefined; + ior?: number | undefined; - sheen?: Color; + sheen?: Color | undefined; - transmission?: number; - transmissionMap?: Texture | null; + transmission?: number | undefined; + transmissionMap?: Texture | null | undefined; } export class MeshPhysicalMaterial extends MeshStandardMaterial { diff --git a/types/three/src/materials/MeshStandardMaterial.d.ts b/types/three/src/materials/MeshStandardMaterial.d.ts index 564e4eb13..3cbc7dd79 100644 --- a/types/three/src/materials/MeshStandardMaterial.d.ts +++ b/types/three/src/materials/MeshStandardMaterial.d.ts @@ -5,37 +5,37 @@ import { MaterialParameters, Material } from './Material'; import { NormalMapTypes } from '../constants'; export interface MeshStandardMaterialParameters extends MaterialParameters { - color?: Color | string | number; - roughness?: number; - metalness?: number; - map?: Texture | null; - lightMap?: Texture | null; - lightMapIntensity?: number; - aoMap?: Texture | null; - aoMapIntensity?: number; - emissive?: Color | string | number; - emissiveIntensity?: number; - emissiveMap?: Texture | null; - bumpMap?: Texture | null; - bumpScale?: number; - normalMap?: Texture | null; - normalMapType?: NormalMapTypes; - normalScale?: Vector2; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - roughnessMap?: Texture | null; - metalnessMap?: Texture | null; - alphaMap?: Texture | null; - envMap?: Texture | null; - envMapIntensity?: number; - refractionRatio?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - vertexTangents?: boolean; - morphTargets?: boolean; - morphNormals?: boolean; - flatShading?: boolean; + color?: Color | string | number | undefined; + roughness?: number | undefined; + metalness?: number | undefined; + map?: Texture | null | undefined; + lightMap?: Texture | null | undefined; + lightMapIntensity?: number | undefined; + aoMap?: Texture | null | undefined; + aoMapIntensity?: number | undefined; + emissive?: Color | string | number | undefined; + emissiveIntensity?: number | undefined; + emissiveMap?: Texture | null | undefined; + bumpMap?: Texture | null | undefined; + bumpScale?: number | undefined; + normalMap?: Texture | null | undefined; + normalMapType?: NormalMapTypes | undefined; + normalScale?: Vector2 | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + roughnessMap?: Texture | null | undefined; + metalnessMap?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + envMap?: Texture | null | undefined; + envMapIntensity?: number | undefined; + refractionRatio?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + vertexTangents?: boolean | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; + flatShading?: boolean | undefined; } export class MeshStandardMaterial extends Material { diff --git a/types/three/src/materials/MeshToonMaterial.d.ts b/types/three/src/materials/MeshToonMaterial.d.ts index 5ba155396..83d270a99 100644 --- a/types/three/src/materials/MeshToonMaterial.d.ts +++ b/types/three/src/materials/MeshToonMaterial.d.ts @@ -6,32 +6,32 @@ import { NormalMapTypes } from '../constants'; export interface MeshToonMaterialParameters extends MaterialParameters { /** geometry color in hexadecimal. Default is 0xffffff. */ - color?: Color | string | number; - opacity?: number; - gradientMap?: Texture | null; - map?: Texture | null; - lightMap?: Texture | null; - lightMapIntensity?: number; - aoMap?: Texture | null; - aoMapIntensity?: number; - emissive?: Color | string | number; - emissiveIntensity?: number; - emissiveMap?: Texture | null; - bumpMap?: Texture | null; - bumpScale?: number; - normalMap?: Texture | null; - normalMapType?: NormalMapTypes; - normalScale?: Vector2; - displacementMap?: Texture | null; - displacementScale?: number; - displacementBias?: number; - alphaMap?: Texture | null; - wireframe?: boolean; - wireframeLinewidth?: number; - wireframeLinecap?: string; - wireframeLinejoin?: string; - morphTargets?: boolean; - morphNormals?: boolean; + color?: Color | string | number | undefined; + opacity?: number | undefined; + gradientMap?: Texture | null | undefined; + map?: Texture | null | undefined; + lightMap?: Texture | null | undefined; + lightMapIntensity?: number | undefined; + aoMap?: Texture | null | undefined; + aoMapIntensity?: number | undefined; + emissive?: Color | string | number | undefined; + emissiveIntensity?: number | undefined; + emissiveMap?: Texture | null | undefined; + bumpMap?: Texture | null | undefined; + bumpScale?: number | undefined; + normalMap?: Texture | null | undefined; + normalMapType?: NormalMapTypes | undefined; + normalScale?: Vector2 | undefined; + displacementMap?: Texture | null | undefined; + displacementScale?: number | undefined; + displacementBias?: number | undefined; + alphaMap?: Texture | null | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + wireframeLinecap?: string | undefined; + wireframeLinejoin?: string | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; } export class MeshToonMaterial extends Material { diff --git a/types/three/src/materials/PointsMaterial.d.ts b/types/three/src/materials/PointsMaterial.d.ts index 01c3a7ef6..e8eae07b2 100644 --- a/types/three/src/materials/PointsMaterial.d.ts +++ b/types/three/src/materials/PointsMaterial.d.ts @@ -3,12 +3,12 @@ import { Color } from './../math/Color'; import { Texture } from './../textures/Texture'; export interface PointsMaterialParameters extends MaterialParameters { - color?: Color | string | number; - map?: Texture | null; - alphaMap?: Texture | null; - size?: number; - sizeAttenuation?: boolean; - morphTargets?: boolean; + color?: Color | string | number | undefined; + map?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + size?: number | undefined; + sizeAttenuation?: boolean | undefined; + morphTargets?: boolean | undefined; } export class PointsMaterial extends Material { diff --git a/types/three/src/materials/ShaderMaterial.d.ts b/types/three/src/materials/ShaderMaterial.d.ts index a968e0bf2..42ea66748 100644 --- a/types/three/src/materials/ShaderMaterial.d.ts +++ b/types/three/src/materials/ShaderMaterial.d.ts @@ -3,23 +3,25 @@ import { MaterialParameters, Material } from './Material'; import { GLSLVersion } from '../constants'; export interface ShaderMaterialParameters extends MaterialParameters { - uniforms?: { [uniform: string]: IUniform }; - vertexShader?: string; - fragmentShader?: string; - linewidth?: number; - wireframe?: boolean; - wireframeLinewidth?: number; - lights?: boolean; - clipping?: boolean; - morphTargets?: boolean; - morphNormals?: boolean; - extensions?: { - derivatives?: boolean; - fragDepth?: boolean; - drawBuffers?: boolean; - shaderTextureLOD?: boolean; - }; - glslVersion?: GLSLVersion; + uniforms?: { [uniform: string]: IUniform } | undefined; + vertexShader?: string | undefined; + fragmentShader?: string | undefined; + linewidth?: number | undefined; + wireframe?: boolean | undefined; + wireframeLinewidth?: number | undefined; + lights?: boolean | undefined; + clipping?: boolean | undefined; + morphTargets?: boolean | undefined; + morphNormals?: boolean | undefined; + extensions?: + | { + derivatives?: boolean | undefined; + fragDepth?: boolean | undefined; + drawBuffers?: boolean | undefined; + shaderTextureLOD?: boolean | undefined; + } + | undefined; + glslVersion?: GLSLVersion | undefined; } export class ShaderMaterial extends Material { diff --git a/types/three/src/materials/ShadowMaterial.d.ts b/types/three/src/materials/ShadowMaterial.d.ts index ddccb5cea..44a424f13 100644 --- a/types/three/src/materials/ShadowMaterial.d.ts +++ b/types/three/src/materials/ShadowMaterial.d.ts @@ -2,7 +2,7 @@ import { Color } from './../math/Color'; import { MaterialParameters, Material } from './Material'; export interface ShadowMaterialParameters extends MaterialParameters { - color?: Color | string | number; + color?: Color | string | number | undefined; } export class ShadowMaterial extends Material { diff --git a/types/three/src/materials/SpriteMaterial.d.ts b/types/three/src/materials/SpriteMaterial.d.ts index 723454380..18c10cd94 100644 --- a/types/three/src/materials/SpriteMaterial.d.ts +++ b/types/three/src/materials/SpriteMaterial.d.ts @@ -3,11 +3,11 @@ import { Texture } from './../textures/Texture'; import { MaterialParameters, Material } from './Material'; export interface SpriteMaterialParameters extends MaterialParameters { - color?: Color | string | number; - map?: Texture | null; - alphaMap?: Texture | null; - rotation?: number; - sizeAttenuation?: boolean; + color?: Color | string | number | undefined; + map?: Texture | null | undefined; + alphaMap?: Texture | null | undefined; + rotation?: number | undefined; + sizeAttenuation?: boolean | undefined; } export class SpriteMaterial extends Material { diff --git a/types/three/src/objects/Line.d.ts b/types/three/src/objects/Line.d.ts index f289b8cb3..2f9e021a5 100644 --- a/types/three/src/objects/Line.d.ts +++ b/types/three/src/objects/Line.d.ts @@ -16,8 +16,8 @@ export class Line< type: 'Line' | 'LineLoop' | 'LineSegments' | string; readonly isLine: true; - morphTargetInfluences?: number[]; - morphTargetDictionary?: { [key: string]: number }; + morphTargetInfluences?: number[] | undefined; + morphTargetDictionary?: { [key: string]: number } | undefined; computeLineDistances(): this; raycast(raycaster: Raycaster, intersects: Intersection[]): void; diff --git a/types/three/src/objects/Mesh.d.ts b/types/three/src/objects/Mesh.d.ts index a1b0cc7f4..92b1ddb68 100644 --- a/types/three/src/objects/Mesh.d.ts +++ b/types/three/src/objects/Mesh.d.ts @@ -12,8 +12,8 @@ export class Mesh< geometry: TGeometry; material: TMaterial; - morphTargetInfluences?: number[]; - morphTargetDictionary?: { [key: string]: number }; + morphTargetInfluences?: number[] | undefined; + morphTargetDictionary?: { [key: string]: number } | undefined; readonly isMesh: true; type: string; diff --git a/types/three/src/objects/Points.d.ts b/types/three/src/objects/Points.d.ts index ac7258976..d84671fe6 100644 --- a/types/three/src/objects/Points.d.ts +++ b/types/three/src/objects/Points.d.ts @@ -18,8 +18,8 @@ export class Points< constructor(geometry?: TGeometry, material?: TMaterial); type: 'Points'; - morphTargetInfluences?: number[]; - morphTargetDictionary?: { [key: string]: number }; + morphTargetInfluences?: number[] | undefined; + morphTargetDictionary?: { [key: string]: number } | undefined; readonly isPoints: true; /** diff --git a/types/three/src/renderers/WebGLRenderTarget.d.ts b/types/three/src/renderers/WebGLRenderTarget.d.ts index 703dd27a2..c2f22041d 100644 --- a/types/three/src/renderers/WebGLRenderTarget.d.ts +++ b/types/three/src/renderers/WebGLRenderTarget.d.ts @@ -5,18 +5,18 @@ import { EventDispatcher } from './../core/EventDispatcher'; import { Wrapping, TextureFilter, TextureDataType, TextureEncoding } from '../constants'; export interface WebGLRenderTargetOptions { - wrapS?: Wrapping; - wrapT?: Wrapping; - magFilter?: TextureFilter; - minFilter?: TextureFilter; - format?: number; // RGBAFormat; - type?: TextureDataType; // UnsignedByteType; - anisotropy?: number; // 1; - depthBuffer?: boolean; // true; - stencilBuffer?: boolean; // false; - generateMipmaps?: boolean; // true; - depthTexture?: DepthTexture; - encoding?: TextureEncoding; + wrapS?: Wrapping | undefined; + wrapT?: Wrapping | undefined; + magFilter?: TextureFilter | undefined; + minFilter?: TextureFilter | undefined; + format?: number | undefined; // RGBAFormat; + type?: TextureDataType | undefined; // UnsignedByteType; + anisotropy?: number | undefined; // 1; + depthBuffer?: boolean | undefined; // true; + stencilBuffer?: boolean | undefined; // false; + generateMipmaps?: boolean | undefined; // true; + depthTexture?: DepthTexture | undefined; + encoding?: TextureEncoding | undefined; } export class WebGLRenderTarget extends EventDispatcher { diff --git a/types/three/src/renderers/WebGLRenderer.d.ts b/types/three/src/renderers/WebGLRenderer.d.ts index 0315dd5ab..84b9f9dfc 100644 --- a/types/three/src/renderers/WebGLRenderer.d.ts +++ b/types/three/src/renderers/WebGLRenderer.d.ts @@ -35,64 +35,64 @@ export interface WebGLRendererParameters { /** * A Canvas where the renderer draws its output. */ - canvas?: HTMLCanvasElement | OffscreenCanvas; + canvas?: HTMLCanvasElement | OffscreenCanvas | undefined; /** * A WebGL Rendering Context. * (https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext) * Default is null */ - context?: WebGLRenderingContext; + context?: WebGLRenderingContext | undefined; /** * shader precision. Can be "highp", "mediump" or "lowp". */ - precision?: string; + precision?: string | undefined; /** * default is false. */ - alpha?: boolean; + alpha?: boolean | undefined; /** * default is true. */ - premultipliedAlpha?: boolean; + premultipliedAlpha?: boolean | undefined; /** * default is false. */ - antialias?: boolean; + antialias?: boolean | undefined; /** * default is true. */ - stencil?: boolean; + stencil?: boolean | undefined; /** * default is false. */ - preserveDrawingBuffer?: boolean; + preserveDrawingBuffer?: boolean | undefined; /** * Can be "high-performance", "low-power" or "default" */ - powerPreference?: string; + powerPreference?: string | undefined; /** * default is true. */ - depth?: boolean; + depth?: boolean | undefined; /** * default is false. */ - logarithmicDepthBuffer?: boolean; + logarithmicDepthBuffer?: boolean | undefined; /** * default is false. */ - failIfMajorPerformanceCaveat?: boolean; + failIfMajorPerformanceCaveat?: boolean | undefined; } export interface WebGLDebug { diff --git a/types/three/src/renderers/webgl/WebGLCapabilities.d.ts b/types/three/src/renderers/webgl/WebGLCapabilities.d.ts index 07488b214..7b0151cfb 100644 --- a/types/three/src/renderers/webgl/WebGLCapabilities.d.ts +++ b/types/three/src/renderers/webgl/WebGLCapabilities.d.ts @@ -1,6 +1,6 @@ export interface WebGLCapabilitiesParameters { - precision?: string; - logarithmicDepthBuffer?: boolean; + precision?: string | undefined; + logarithmicDepthBuffer?: boolean | undefined; } export class WebGLCapabilities { diff --git a/types/three/src/renderers/webxr/WebXR.d.ts b/types/three/src/renderers/webxr/WebXR.d.ts index b7bffc0e5..3a8fc6558 100644 --- a/types/three/src/renderers/webxr/WebXR.d.ts +++ b/types/three/src/renderers/webxr/WebXR.d.ts @@ -32,12 +32,12 @@ export interface XR extends EventTarget { } export interface Window { - XRSession?: Constructor; - XR?: Constructor; + XRSession?: Constructor | undefined; + XR?: Constructor | undefined; } export interface Navigator { - xr?: XR; + xr?: XR | undefined; } export interface XRReferenceSpace extends EventTarget { @@ -45,12 +45,12 @@ export interface XRReferenceSpace extends EventTarget { } export interface XRHitTestOptionsInit { space: EventTarget; - offsetRay?: XRRay; + offsetRay?: XRRay | undefined; } export interface XRTransientInputHitTestOptionsInit { profile: string; - offsetRay?: XRRay; + offsetRay?: XRRay | undefined; } export interface XRViewport { @@ -67,15 +67,15 @@ export interface WebGLRenderingContext { export interface XRRenderState { readonly depthNear: number; readonly depthFar: number; - readonly inlineVerticalFieldOfView?: number; - readonly baseLayer?: XRWebGLLayer; + readonly inlineVerticalFieldOfView?: number | undefined; + readonly baseLayer?: XRWebGLLayer | undefined; } export interface XRRenderStateInit { - depthNear?: number; - depthFar?: number; - inlineVerticalFieldOfView?: number; - baseLayer?: XRWebGLLayer; + depthNear?: number | undefined; + depthFar?: number | undefined; + inlineVerticalFieldOfView?: number | undefined; + baseLayer?: XRWebGLLayer | undefined; } export interface XRGamepad { @@ -92,15 +92,15 @@ export interface XRInputSource { readonly handedness: XRHandedness; readonly targetRayMode: XRTargetRayMode; readonly targetRaySpace: EventTarget; - readonly gripSpace?: EventTarget; + readonly gripSpace?: EventTarget | undefined; readonly profiles: string[]; readonly gamepad: XRGamepad; - readonly hand?: XRHand; + readonly hand?: XRHand | undefined; } export interface XRSessionInit { - optionalFeatures?: string[]; - requiredFeatures?: string[]; + optionalFeatures?: string[] | undefined; + requiredFeatures?: string[] | undefined; } export interface XRSession extends EventTarget { @@ -124,7 +124,7 @@ export interface XRSession extends EventTarget { requestHitTest(ray: XRRay, referenceSpace: XRReferenceSpace): Promise; // legacy plane detection - updateWorldTrackingState(options: { planeDetectionState?: { enabled: boolean } }): void; + updateWorldTrackingState(options: { planeDetectionState?: { enabled: boolean } | undefined }): void; } export interface XRReferenceSpace extends EventTarget { @@ -144,11 +144,11 @@ export interface XRFrame { getHitTestResults(hitTestSource: XRHitTestSource): XRHitTestResult[]; getHitTestResultsForTransientInput(hitTestSource: XRTransientInputHitTestSource): XRTransientInputHitTestResult[]; // Anchors - trackedAnchors?: XRAnchorSet; + trackedAnchors?: XRAnchorSet | undefined; createAnchor(pose: XRRigidTransform, space: EventTarget): Promise; // Planes worldInformation: { - detectedPlanes?: XRPlaneSet; + detectedPlanes?: XRPlaneSet | undefined; }; // Hand tracking getJointPose(joint: XRJointSpace, baseSpace: EventTarget): XRJointPose; @@ -165,12 +165,12 @@ export interface XRPose { } export interface XRWebGLLayerInit { - antialias?: boolean; - depth?: boolean; - stencil?: boolean; - alpha?: boolean; - ignoreDepthValues?: boolean; - framebufferScaleFactor?: number; + antialias?: boolean | undefined; + depth?: boolean | undefined; + stencil?: boolean | undefined; + alpha?: boolean | undefined; + ignoreDepthValues?: boolean | undefined; + framebufferScaleFactor?: number | undefined; } export class XRWebGLLayer { @@ -182,10 +182,10 @@ export class XRWebGLLayer { } export interface DOMPointInit { - w?: number; - x?: number; - y?: number; - z?: number; + w?: number | undefined; + x?: number | undefined; + y?: number | undefined; + z?: number | undefined; } export class XRRigidTransform { @@ -204,10 +204,10 @@ export interface XRView { } export interface XRRayDirectionInit { - x?: number; - y?: number; - z?: number; - w?: number; + x?: number | undefined; + y?: number | undefined; + z?: number | undefined; + w?: number | undefined; } export class XRRay { @@ -249,14 +249,14 @@ export interface XRTransientInputHitTestSource { export interface XRHitTestOptionsInit { space: EventTarget; - entityTypes?: XRHitTestTrackableType[]; - offsetRay?: XRRay; + entityTypes?: XRHitTestTrackableType[] | undefined; + offsetRay?: XRRay | undefined; } export interface XRTransientInputHitTestOptionsInit { profile: string; - entityTypes?: XRHitTestTrackableType[]; - offsetRay?: XRRay; + entityTypes?: XRHitTestTrackableType[] | undefined; + offsetRay?: XRRay | undefined; } export interface XRAnchor { diff --git a/types/three/src/renderers/webxr/WebXRController.d.ts b/types/three/src/renderers/webxr/WebXRController.d.ts index e4c5eb907..061c0ce28 100644 --- a/types/three/src/renderers/webxr/WebXRController.d.ts +++ b/types/three/src/renderers/webxr/WebXRController.d.ts @@ -8,7 +8,7 @@ export class WebXRController { getTargetRaySpace(): Group; getGripSpace(): Group; - dispatchEvent(event: { type: XRControllerEventType; data?: XRInputSource }): this; + dispatchEvent(event: { type: XRControllerEventType; data?: XRInputSource | undefined }): this; disconnect(inputSource: XRInputSource): this; update(inputSource: XRInputSource, frame: XRFrame, referenceSpace: XRReferenceSpace): this; } diff --git a/types/three/test/loaders/loaders-gltfloader-extensions.ts b/types/three/test/loaders/loaders-gltfloader-extensions.ts index 205ced76c..e3ae614c9 100644 --- a/types/three/test/loaders/loaders-gltfloader-extensions.ts +++ b/types/three/test/loaders/loaders-gltfloader-extensions.ts @@ -24,15 +24,15 @@ interface SceneInfo { authorURL: string; cameraPos: THREE.Vector3; extensions: string[]; - addEnvMap?: boolean; - objectRotation?: THREE.Euler; - objectScale?: THREE.Vector3; - objectPosition?: THREE.Vector3; - center?: THREE.Vector3; - addLights?: boolean; - addGround?: boolean; - shadows?: boolean; - animationTime?: number; + addEnvMap?: boolean | undefined; + objectRotation?: THREE.Euler | undefined; + objectScale?: THREE.Vector3 | undefined; + objectPosition?: THREE.Vector3 | undefined; + center?: THREE.Vector3 | undefined; + addLights?: boolean | undefined; + addGround?: boolean | undefined; + shadows?: boolean | undefined; + animationTime?: number | undefined; } const scenes: Record = { diff --git a/yarn.lock b/yarn.lock index 80fe212bc..9301b1aaf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -452,10 +452,10 @@ dts-critic@latest: tmp "^0.2.1" yargs "^15.3.1" -dtslint@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-4.0.6.tgz#47a939365ff1fbbff2345b3858fb81c42e10fddd" - integrity sha512-bj5EaTeAqVXDHo/ut8oTRN/hZNTVKTAsNkavyH/T7XeDU/bqrctlYJmQo2HWJzPDoNCjq6NdVgvOnmQBGmSHsg== +dtslint@latest: + version "4.1.1" + resolved "https://registry.yarnpkg.com/dtslint/-/dtslint-4.1.1.tgz#ec2c9849fed5d66a5b17817be80189201a846e27" + integrity sha512-8SD3My7Cf1OnldIBFIwOPCaIg9PqgRumX0Xf/bbcOop5VG66iwok787DiuoJVhlvInoP5uFr8cBKGFNtwi25Ww== dependencies: "@definitelytyped/header-parser" latest "@definitelytyped/typescript-versions" latest @@ -465,6 +465,7 @@ dtslint@^4.0.6: json-stable-stringify "^1.0.1" strip-json-comments "^2.0.1" tslint "5.14.0" + tsutils "^2.29.0" yargs "^15.1.0" ecc-jsbn@~0.1.1: @@ -1513,10 +1514,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= -typescript@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" - integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== +typescript@next: + version "4.4.0-dev.20210705" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.4.0-dev.20210705.tgz#8c0b056879ce92294846a3df3dcfdf6a3290b24a" + integrity sha512-s3TmUrDUw3pnZgNCMnMngYBfZgWbLnF69JlYLxuv9sUCW9pjit/5Ncr/4BcjaW3qx203wLf9mVlWE/vdGpYwcg== universalify@^0.1.0: version "0.1.2"