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[];