diff --git a/threejs/three.d.ts b/threejs/three.d.ts index 7c4aca5920..d87541145c 100644 --- a/threejs/three.d.ts +++ b/threejs/three.d.ts @@ -1,4 +1,4 @@ -// Type definitions for three.js r70 +// Type definitions for three.js r71 // Project: http://mrdoob.github.com/three.js/ // Definitions by: Kon , Satoru Kimura // Definitions: https://github.com/borisyankov/DefinitelyTyped @@ -129,6 +129,7 @@ declare module THREE { export var IntType: TextureDataType; export var UnsignedIntType: TextureDataType; export var FloatType: TextureDataType; + export var HalfFloatType: TextureDataType; // Pixel types export enum PixelType { } @@ -159,6 +160,12 @@ declare module THREE { export var RGBA_PVRTC_4BPPV1_Format: CompressedPixelFormat; export var RGBA_PVRTC_2BPPV1_Format: CompressedPixelFormat; + // log handlers + export function warn(message?: any, ...optionalParams: any[]): void; + export function error(message?: any, ...optionalParams: any[]): void; + export function log(message?: any, ...optionalParams: any[]): void; + + // Cameras //////////////////////////////////////////////////////////////////////////////////////// /** @@ -364,7 +371,7 @@ declare module THREE { length: number; copyAt(index1: number, attribute: BufferAttribute, index2: number): void; - set(value: number): BufferAttribute; + set(value: number, offset?: number): BufferAttribute; setX(index: number, x: number): BufferAttribute; setY(index: number, y: number): BufferAttribute; setZ(index: number, z: number): BufferAttribute; @@ -456,8 +463,7 @@ declare module THREE { */ applyMatrix(matrix: Matrix4): void; - // this method is currently empty. - center(): void; + center(): Vector3; fromGeometry( geometry: Geometry, settings?: any ): BufferGeometry; @@ -488,7 +494,7 @@ declare module THREE { */ computeTangents(): void; - computeOffsets(indexBufferSize: number): void; + computeOffsets(size: number): void; merge(geometry: BufferGeometry, offset: number): BufferGeometry; normalizeNormals(): void; reorderBuffers(indexBuffer: number, indexMap: number[], vertexCount: number): void; @@ -569,6 +575,17 @@ declare module THREE { getDelta(): number; } + export class DynamicBufferAttribute extends BufferAttribute{ + constructor(array: any, itemSize: number); + + updateRange: { + offset: number; + count: number; + } + + clone(): DynamicBufferAttribute; + } + /** * JavaScript events for custom objects * @@ -1065,6 +1082,8 @@ declare module THREE { */ frustumCulled: boolean; + renderOrder: number; + /** * An object that can be used to store custom data about the Object3d. It should not hold references to functions as these will not be cloned. */ @@ -1193,23 +1212,21 @@ declare module THREE { remove(object: Object3D): void; /* deprecated */ - getChildByName( name: string, recursive?: boolean ): Object3D; + getChildByName( name: string ): Object3D; /** * Searches through the object's children and returns the first with a matching id, optionally recursive. * @param id Unique number of the object instance - * @param recursive Boolean whether to search through the children's children. Default is false. */ - getObjectById(id: string, recursive: boolean): Object3D; + getObjectById(id: string): Object3D; /** * Searches through the object's children and returns the first with a matching name, optionally recursive. * @param name String to match to the children's Object3d.name property. - * @param recursive Boolean whether to search through the children's children. Default is false. */ - getObjectByName(name: string, recursive?: boolean): Object3D; + getObjectByName(name: string): Object3D; - getObjectByProperty( name: string, value: string, recursive?: boolean ): Object3D; + getObjectByProperty( name: string, value: string ): Object3D; getWorldPosition(optionalTarget?: Vector3): Vector3; getWorldQuaternion(optionalTarget?: Quaternion): Quaternion; @@ -1521,7 +1538,7 @@ declare module THREE { * scene.add( light ); */ export class PointLight extends Light { - constructor(hex?: number, intensity?: number, distance?: number); + constructor(hex?: number, intensity?: number, distance?: number, decay?: number); /* * Light's intensity. @@ -1535,6 +1552,8 @@ declare module THREE { */ distance: number; + decay: number; + clone(): PointLight; } @@ -1554,7 +1573,7 @@ declare module THREE { * scene.add( spotLight ); */ export class SpotLight extends Light { - constructor(hex?: number, intensity?: number, distance?: number, angle?: number, exponent?: number); + constructor(hex?: number, intensity?: number, distance?: number, angle?: number, exponent?: number, decay?: number); /** * Spotlight focus points at target.position. @@ -1586,6 +1605,8 @@ declare module THREE { */ exponent: number; + decay: number; + /** * If set to true light will cast dynamic shadows. Warning: This is expensive and requires tweaking to get shadows looking right. * Default — false. @@ -1744,9 +1765,7 @@ declare module THREE { parse(json: any): BufferGeometry; } - export class Cache{ - constructor(); - + export interface Cache{ files: any[]; add(key: string, file: any): void; @@ -1754,6 +1773,7 @@ declare module THREE { remove(key: string): void; clear(): void; } + export var Cache:Cache; export class CompressedTextureLoader{ constructor(); @@ -1856,14 +1876,18 @@ declare module THREE { constructor(manager?: LoadingManager); manager: LoadingManager; - crossOrigin: string; + texturePass: string; - load(url: string, onLoad: (object: Object3D) => void): void; + load(url: string, onLoad?: (object: Object3D) => void): void; + setTexturePath( value: string ): void; setCrossOrigin(crossOrigin: string): void; - parse(json: any): T; + parse(json: any, onLoad?: (object: Object3D) => void): T; parseGeometries(json: any): any[]; // Array of BufferGeometry or Geometry or Geometry2. - parseMaterials(json: any): Material[]; // Array of Classes that inherits from Matrial. + parseMaterials(json: any, textures: Texture[]): Material[]; // Array of Classes that inherits from Matrial. + parseImages( json: any, onLoad: () => void ): any[]; + parseTextures( json: any, images: any ): Texture[]; parseObject(data: any, geometries: any[], materials: Material[]): T; + } /** @@ -1976,6 +2000,10 @@ declare module THREE { */ blendEquation: BlendingEquation; + blendSrcAlpha: number; + blendDstAlpha: number; + blendEquationAlpha: number; + /** * Whether to have depth test enabled when rendering this material. Default is true. */ @@ -1987,6 +2015,8 @@ declare module THREE { */ depthWrite: boolean; + colorWrite: boolean; + /** * Whether to use polygon offset. Default is false. This corresponds to the POLYGON_OFFSET_FILL WebGL feature. */ @@ -2026,6 +2056,7 @@ declare module THREE { setValues(values: Object): void; toJSON(): any; clone(material?:Material): Material; + update(): void; dispose(): void; // EventDispatcher mixins @@ -2156,7 +2187,6 @@ declare module THREE { export interface MeshLambertMaterialParameters extends MaterialParameters{ color?: number; - ambient?: number; emissive?: number; wrapAround?: boolean; wrapRGB?: Vector3; @@ -2183,7 +2213,6 @@ declare module THREE { export class MeshLambertMaterial extends Material { constructor(parameters?: MeshLambertMaterialParameters); color: Color; - ambient: Color; emissive: Color; wrapAround: boolean; wrapRGB: Vector3; @@ -2210,7 +2239,6 @@ declare module THREE { } export interface MeshNormalMaterialParameters extends MaterialParameters{ - shading?: Shading; wireframe?: boolean; wireframeLinewidth?: number; morphTargets?: boolean; @@ -2219,7 +2247,6 @@ declare module THREE { export class MeshNormalMaterial extends Material { constructor(parameters?: MeshNormalMaterialParameters); - shading: Shading; wireframe: boolean; wireframeLinewidth: number; morphTargets: boolean; @@ -2229,7 +2256,6 @@ declare module THREE { export interface MeshPhongMaterialParameters extends MaterialParameters{ color?: number; // diffuse - ambient?: number; emissive?: number; specular?: number; shininess?: number; @@ -2264,7 +2290,6 @@ declare module THREE { constructor(parameters?: MeshPhongMaterialParameters); color: Color; // diffuse - ambient: Color; emissive: Color; specular: Color; shininess: number; @@ -2531,13 +2556,13 @@ declare module THREE { * Copies given color making conversion from gamma to linear space. * @param color Color to copy. */ - copyGammaToLinear(color: Color): Color; + copyGammaToLinear(color: Color, gammaFactor?: number): Color; /** * Copies given color making conversion from linear to gamma space. * @param color Color to copy. */ - copyLinearToGamma(color: Color): Color; + copyLinearToGamma(color: Color, gammaFactor?: number): Color; /** * Converts this color from gamma to linear space. @@ -2577,7 +2602,7 @@ declare module THREE { lerp(color: Color, alpha: number): Color; equals(color: Color): boolean; fromArray(rgb: number[]): Color; - toArray(): number[]; + toArray(array?: number[], offset?: number): number[]; /** * Clones this color. @@ -2751,7 +2776,7 @@ declare module THREE { reorder(newOrder: string): Euler; equals(euler: Euler): boolean; fromArray(xyzo: any[]): Euler; - toArray(): any[]; + toArray(array?: number[], offset?: number): number[]; toVector3(optionalResult?: Vector3): Vector3; onChange: () => void; @@ -2860,6 +2885,8 @@ declare module THREE { radToDeg(radians: number): number; isPowerOfTwo(value: number): boolean; + + nextPowerOfTwo(value: number): number; } /** @@ -3558,8 +3585,8 @@ declare module THREE { /** * Sets this vector to a + b. */ - addVectors(a: Vector2, b: Vector2): Vector2; addScalar(s: number): Vector2; + addVectors(a: Vector2, b: Vector2): Vector2; /** * Subtracts v from this vector. @@ -3635,6 +3662,9 @@ declare module THREE { setLength(l: number): Vector2; lerp(v: Vector2, alpha: number): Vector2; + + lerpVectors(v1: Vector2, v2: Vector2, alpha: number): Vector2; + /** * Checks for strict equality of this vector and v. */ @@ -3717,6 +3747,8 @@ declare module THREE { */ sub(a: Vector3): Vector3; + subScalar( s: number ): Vector3; + /** * Sets this vector to a - b. */ @@ -3790,6 +3822,8 @@ declare module THREE { setLength(l: number): Vector3; lerp(v: Vector3, alpha: number): Vector3; + lerpVectors(v1: Vector3, v2: Vector3, alpha: number): Vector3; + /** * Sets this vector to cross product of itself and v. */ @@ -3896,6 +3930,8 @@ declare module THREE { */ sub(v: Vector4): Vector4; + subScalar(s: number): Vector4; + /** * Sets this vector to a - b. */ @@ -3969,6 +4005,8 @@ declare module THREE { */ lerp(v: Vector4, alpha: number): Vector4; + lerpVectors(v1: Vector4, v2: Vector4, alpha: number): Vector4; + /** * Checks for strict equality of this vector and v. */ @@ -3989,7 +4027,7 @@ declare module THREE { // Objects ////////////////////////////////////////////////////////////////////////////////// export class Bone extends Object3D { - constructor(belongsToSkin: SkinnedMesh); + constructor(skin: SkinnedMesh); skin: SkinnedMesh; } @@ -4291,6 +4329,8 @@ declare module THREE { */ sortObjects: boolean; + gammaFactor: number; + /** * Default is false. */ @@ -4480,7 +4520,7 @@ declare module THREE { uploadTexture(texture: Texture): void; setTexture(texture: Texture, slot: number): void; setRenderTarget(renderTarget: RenderTarget): void; - + readRenderTargetPixels( renderTarget: RenderTarget, x: number, y: number, width: number, height: number, buffer: any ): void; } export interface RenderTarget { @@ -4539,6 +4579,7 @@ declare module THREE { export interface ShaderChunk { [name: string]: string; + common: string; alphamap_fragment: string; alphamap_pars_fragment: string; alphatest_fragment: string; @@ -4613,6 +4654,7 @@ declare module THREE { normal: Shader; normalmap: Shader; cube: Shader; + equirect: Shader; depthRGBA: Shader; }; @@ -4655,6 +4697,40 @@ declare module THREE { constructor(gl: any, type: string, string: string); } + interface WebGLStateInstance{ + new ( gl: any, paramThreeToGL: Function ): void; + initAttributes(): void; + enableAttribute(attribute: string): void; + disableUnusedAttributes(): void; + setBlending( blending: number, blendEquation: number, blendSrc: number, blendDst: number, blendEquationAlpha: number, blendSrcAlpha: number, blendDstAlpha: number ): void; + setDepthTest( depthTest: number ): void; + setDepthWrite( depthWrite: number ): void; + setColorWrite( colorWrite: number ): void; + setDoubleSided( doubleSided: number ): void; + setFlipSided( flipSided: number ): void; + setLineWidth( width: number ): void; + setPolygonOffset(polygonoffset: number, factor: number, units: number): void; + reset(): void; + } + interface WebGLStateStatic{ + ( gl: any, paramThreeToGL: Function ): WebGLStateInstance; + } + export var WebGLState: WebGLStateStatic; + + + interface WebGLTexturesInstance{ + new (webgglcontext: any): WebGLTexturesInstance; + + get(texture: Texture): any; // it will return result of gl.createTexture(). + create(texture: Texture): any; // it will return result of gl.createTexture(). + delete(texture: Texture): void; + } + interface WebGLTexturesStatic{ + (webgglcontext: any): WebGLTexturesInstance; + } + export var WebGLTextures: WebGLTexturesStatic; + + // Renderers / WebGL / Plugins ///////////////////////////////////////////////////////////////////// export interface RendererPlugin { init(renderer: WebGLRenderer): void; @@ -4821,29 +4897,7 @@ declare module THREE { export class Texture { constructor( - image: any, // HTMLImageElement or HTMLCanvasElement ( or HTMLVideoElement) - mapping?: Mapping, - wrapS?: Wrapping, - wrapT?: Wrapping, - magFilter?: TextureFilter, - minFilter?: TextureFilter, - format?: PixelFormat, - type?: TextureDataType, - anisotropy?: number - ); - constructor( - image: HTMLCanvasElement, - mapping?: Mapping, - wrapS?: Wrapping, - wrapT?: Wrapping, - magFilter?: TextureFilter, - minFilter?: TextureFilter, - format?: PixelFormat, - type?: TextureDataType, - anisotropy?: number - ); - constructor( - image: HTMLImageElement, + image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, mapping?: Mapping, wrapS?: Wrapping, wrapT?: Wrapping, @@ -4857,6 +4911,7 @@ declare module THREE { id: number; uuid: string; name: string; + sourceFile: string; image: any; // HTMLImageElement or ImageData ; mipmaps: ImageData[]; mapping: Mapping; @@ -4992,14 +5047,13 @@ declare module THREE { isPlaying: boolean; loop: boolean; weight: number; - keyTypes: string[]; interpolationType: number; play(startTime?: number, weight?: number): void; stop(): void; reset(): void; resetBlendWeights(): void; - update(deltaTimeMS: number): void; + update(delta: number): void; getNextKeyWith(type: string, h: number, key: number): KeyFrame; getPrevKeyWith(type: string, h: number, key: number): KeyFrame; } @@ -5022,7 +5076,7 @@ declare module THREE { constructor(data: any); root: Mesh; - data: Object; + data: AnimationData; hierarchy: KeyFrames[]; currentTime: number; timeScale: number; @@ -5051,7 +5105,7 @@ declare module THREE { play(): void; pause(): void; - update(deltaTimeMS: number): void; + update(delta: number): void; } // Extras / Audio ///////////////////////////////////////////////////////////////////// @@ -5063,11 +5117,18 @@ declare module THREE { source: AudioBufferSourceNode; gain: GainNode; panner: PannerNode; + autoplay: boolean; + startTime: number; + isPlaying: boolean; load(file: string): Audio; + play(): void; + pause(): void; + stop(): void; setLoop(value: boolean): void; setRefDistance(value: number): void; setRolloffFactor(value: number): void; + setVolume(value: number): void; updateMatrixWorld(force?: boolean): void; } @@ -5646,7 +5707,7 @@ declare module THREE { } export class EdgesHelper extends Line { - constructor(object: Object3D, hex?: number); + constructor(object: Object3D, hex?: number, thresholdAngle?: number); } @@ -5669,7 +5730,7 @@ declare module THREE { setColors(colorCenterLine: number, colorGrid: number): void; } export class HemisphereLightHelper extends Object3D { - constructor(light: Light, sphereSize: number, arrowLength: number, domeSize: number); + constructor(light: Light, sphereSize: number); light: Light; colors: Color[];