From 28ae4945726ded87dd070961eb2e33a35b83c96d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elis=C3=A9e=20Maurer?= Date: Wed, 4 Nov 2015 19:38:56 +0100 Subject: [PATCH] three: Update as much as possible to r73 --- .../canvas/canvas_camera_orthographic.ts | 2 +- .../tests/canvas/canvas_lights_pointlights.ts | 2 +- threejs/tests/canvas/canvas_materials.ts | 4 +- threejs/tests/webgl/webgl_materials.ts | 6 +- threejs/three.d.ts | 606 +++++++----------- 5 files changed, 236 insertions(+), 384 deletions(-) diff --git a/threejs/tests/canvas/canvas_camera_orthographic.ts b/threejs/tests/canvas/canvas_camera_orthographic.ts index c4f932820..21cade450 100644 --- a/threejs/tests/canvas/canvas_camera_orthographic.ts +++ b/threejs/tests/canvas/canvas_camera_orthographic.ts @@ -54,7 +54,7 @@ // Cubes var geometry2 = new THREE.BoxGeometry(50, 50, 50); - var material2 = new THREE.MeshLambertMaterial({ color: 0xffffff, shading: THREE.FlatShading, overdraw: 0.5 }); + var material2 = new THREE.MeshLambertMaterial({ color: 0xffffff, overdraw: 0.5 }); for (var i = 0; i < 100; i++) { diff --git a/threejs/tests/canvas/canvas_lights_pointlights.ts b/threejs/tests/canvas/canvas_lights_pointlights.ts index 8ca0bc22b..e9cb61cf1 100644 --- a/threejs/tests/canvas/canvas_lights_pointlights.ts +++ b/threejs/tests/canvas/canvas_lights_pointlights.ts @@ -54,7 +54,7 @@ loader = new THREE.JSONLoader(); loader.load('obj/WaltHeadLo.js', function (geometry) { - mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({ color: 0xffffff, shading: THREE.FlatShading, overdraw: 0.5 })); + mesh = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial({ color: 0xffffff, overdraw: 0.5 })); scene.add(mesh); }); diff --git a/threejs/tests/canvas/canvas_materials.ts b/threejs/tests/canvas/canvas_materials.ts index d5aa8bc65..e14178564 100644 --- a/threejs/tests/canvas/canvas_materials.ts +++ b/threejs/tests/canvas/canvas_materials.ts @@ -52,8 +52,8 @@ new THREE.MeshBasicMaterial({ color: 0x00ffff, wireframe: true, side: THREE.DoubleSide }), new THREE.MeshBasicMaterial({ color: 0xff0000, blending: THREE.AdditiveBlending }), - new THREE.MeshLambertMaterial({ color: 0xffffff, shading: THREE.FlatShading, overdraw: 0.5 }), - new THREE.MeshLambertMaterial({ color: 0xffffff, shading: THREE.SmoothShading, overdraw: 0.5 }), + new THREE.MeshLambertMaterial({ color: 0xffffff, overdraw: 0.5 }), + new THREE.MeshLambertMaterial({ color: 0xffffff, overdraw: 0.5 }), new THREE.MeshDepthMaterial({ overdraw: 0.5 }), new THREE.MeshNormalMaterial({ overdraw: 0.5 }), new THREE.MeshBasicMaterial({ map: THREE.ImageUtils.loadTexture('textures/land_ocean_ice_cloud_2048.jpg') }), diff --git a/threejs/tests/webgl/webgl_materials.ts b/threejs/tests/webgl/webgl_materials.ts index 9509768a6..a78ae152a 100644 --- a/threejs/tests/webgl/webgl_materials.ts +++ b/threejs/tests/webgl/webgl_materials.ts @@ -54,20 +54,20 @@ texture.needsUpdate = true; materials.push(new THREE.MeshLambertMaterial({ map: texture, transparent: true })); - materials.push(new THREE.MeshLambertMaterial({ color: 0xdddddd, shading: THREE.FlatShading })); + materials.push(new THREE.MeshLambertMaterial({ color: 0xdddddd })); materials.push(new THREE.MeshPhongMaterial({ color: 0xdddddd, specular: 0x009900, shininess: 30, shading: THREE.FlatShading })); materials.push(new THREE.MeshNormalMaterial()); materials.push(new THREE.MeshBasicMaterial({ color: 0xffaa00, transparent: true, blending: THREE.AdditiveBlending })); //materials.push( new THREE.MeshBasicMaterial( { color: 0xff0000, blending: THREE.SubtractiveBlending } ) ); - materials.push(new THREE.MeshLambertMaterial({ color: 0xdddddd, shading: THREE.SmoothShading })); + materials.push(new THREE.MeshLambertMaterial({ color: 0xdddddd })); materials.push(new THREE.MeshPhongMaterial({ color: 0xdddddd, specular: 0x009900, shininess: 30, shading: THREE.SmoothShading, map: texture, transparent: true })); materials.push(new THREE.MeshNormalMaterial({ shading: THREE.SmoothShading })); materials.push(new THREE.MeshBasicMaterial({ color: 0xffaa00, wireframe: true })); materials.push(new THREE.MeshDepthMaterial()); - materials.push(new THREE.MeshLambertMaterial({ color: 0x666666, emissive: 0xff0000, shading: THREE.SmoothShading })); + materials.push(new THREE.MeshLambertMaterial({ color: 0x666666, emissive: 0xff0000 })); materials.push(new THREE.MeshPhongMaterial({ color: 0x000000, specular: 0x666666, emissive: 0xff0000, shininess: 10, shading: THREE.SmoothShading, opacity: 0.9, transparent: true })); materials.push(new THREE.MeshBasicMaterial({ map: texture, transparent: true })); diff --git a/threejs/three.d.ts b/threejs/three.d.ts index fd165f936..ec353c507 100644 --- a/threejs/three.d.ts +++ b/threejs/three.d.ts @@ -1,15 +1,13 @@ -// Type definitions for three.js r71 +// Type definitions for three.js r73 // Project: http://mrdoob.github.com/three.js/ // Definitions by: Kon , Satoru Kimura // Definitions: https://github.com/borisyankov/DefinitelyTyped -interface WebGLRenderingContext {} - declare module THREE { export var REVISION: string; // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.button - export enum MOUSE {LEFT, MIDDLE, RIGHT} + export enum MOUSE { LEFT, MIDDLE, RIGHT } // GL STATE CONSTANTS export enum CullFace { } @@ -531,14 +529,17 @@ declare module THREE { name: string; type: string; attributes: BufferAttribute|InterleavedBufferAttribute[]; - attributesKeys: string[]; /** Deprecated. Use groups instead. */ drawcalls: { start: number; count: number; index: number; }[]; /** Deprecated. Use groups instead. */ offsets: { start: number; count: number; index: number; }[]; - groups: {start: number, count: number, materialIndex?: number}[] + groups: { start: number, count: number, materialIndex?: number }[]; boundingBox: Box3; boundingSphere: BoundingSphere; + + addIndex(index: BufferAttribute): void; + setIndex(index: BufferAttribute): void; + /** Deprecated. This overloaded method is deprecated. */ addAttribute(name: string, array: any, itemSize: number): any; addAttribute(name: string, attribute: BufferAttribute|InterleavedBufferAttribute): void; @@ -553,7 +554,7 @@ declare module THREE { addGroup(start: number, count: number, materialIndex?: number): void; clearGroups(): void; - setDrawRange(start:number, count:number): void; + setDrawRange(start: number, count: number): void; /** * Bakes matrix transform directly into vertex coordinates. @@ -563,9 +564,9 @@ declare module THREE { rotateX(angle: number): BufferGeometry; rotateY(angle: number): BufferGeometry; rotateZ(angle: number): BufferGeometry; - translate(x:number, y:number, z:number): BufferGeometry; - scale(x:number, y:number, z:number): BufferGeometry; - lookAt(v:Vector3): void; + translate(x: number, y: number, z: number): BufferGeometry; + scale(x: number, y: number, z: number): BufferGeometry; + lookAt(v: Vector3): void; center(): Vector3; @@ -594,19 +595,12 @@ declare module THREE { */ computeVertexNormals(): void; - /** - * Computes vertex tangents. - * Based on http://www.terathon.com/code/tangent.html - * Geometry must have vertex UVs (layer 0 will be used). - */ - computeTangents(): void; - computeOffsets(size: number): void; merge(geometry: BufferGeometry, offset: number): BufferGeometry; normalizeNormals(): void; - reorderBuffers(indexBuffer: number, indexMap: number[], vertexCount: number): void; toJSON(): any; clone(): BufferGeometry; + copy(source: BufferGeometry): BufferGeometry; /** * Disposes the object from memory. @@ -728,7 +722,7 @@ declare module THREE { /** * Deprecated. Use new THREE.BufferAttribute().setDynamic(true) instead. */ - export class DynamicBufferAttribute extends BufferAttribute{ + export class DynamicBufferAttribute extends BufferAttribute { constructor(array: any, itemSize: number); updateRange: { @@ -957,13 +951,6 @@ declare module THREE { */ morphTargets: MorphTarget[]; - /** - * Array of morph colors. Morph colors have similar structure as morph targets, each color set is a Javascript object: - * - * morphColor = { name: "colorName", colors: [ new THREE.Color(), ... ] } - */ - morphColors: MorphColor[]; - /** * Array of morph normals. Morph normals have similar structure as morph targets, each normal set is a Javascript object: * @@ -996,11 +983,6 @@ declare module THREE { */ boundingSphere: BoundingSphere; - /** - * True if geometry has tangents. Set in Geometry.computeTangents. - */ - hasTangents: boolean; - /** * Set to true if attribute buffers will need to change in runtime (using "dirty" flags). * Unless set to true internal typed arrays corresponding to buffers will be deleted once sent to GPU. @@ -1076,13 +1058,6 @@ declare module THREE { */ computeMorphNormals(): void; - /** - * Computes vertex tangents. - * Based on http://www.terathon.com/code/tangent.html - * Geometry must have vertex UVs (layer 0 will be used). - */ - computeTangents(): void; - computeLineDistances(): void; /** @@ -1106,6 +1081,8 @@ declare module THREE { */ mergeVertices(): number; + sortFacesByMaterialIndex(): void; + toJSON(): any; /** @@ -1246,7 +1223,7 @@ declare module THREE { * */ static DefaultUp: Vector3; - + static DefaultMatrixAutoUpdate: boolean; /** * Order of axis for Euler angles. @@ -1435,6 +1412,8 @@ declare module THREE { export interface RaycasterParameters { Sprite?: any; Mesh?: any; + Points?: any; + /** Deprecated, use Points */ PointCloud?: any; LOD?: any; Line?: any; @@ -1465,8 +1444,43 @@ declare module THREE { color: Color; + shadow: LightShadow; + + /** Deprecated, use shadow */ + shadowCameraFov: number; + shadowCameraNear: number; + shadowCameraFar: number; + shadowCameraLeft: number; + shadowCameraRight: number; + shadowCameraTop: number; + shadowCameraBottom: number; + shadowBias: number; + shadowDarkness: number; + shadowMapWidth: number; + shadowMapHeight: number; + shadowMap: RenderTarget; + shadowMapSize: number; + shadowCamera: Camera; + shadowMatrix: Matrix4; + clone(light?: Light): Light; } + + export class LightShadow { + constructor(camera: Camera); + + camera: THREE.Camera; + + bias: number; + darkness: number; + + mapSize: THREE.Vector2; + + map: any; + matrix: THREE.Matrix4; + + clone(): LightShadow; + } /** * This light's color gets applied to all the objects in the scene globally. @@ -1487,20 +1501,6 @@ declare module THREE { clone(): AmbientLight; } - export class AreaLight extends Light{ - constructor(hex: number, intensity?: number); - - normal: Vector3; - right: Vector3; - intensity: number; - width: number; - height: number; - constantAttenuation: number; - linearAttenuation: number; - quadraticAttenuation: number; - - } - /** * Affects objects using MeshLambertMaterial or MeshPhongMaterial. * @@ -1527,149 +1527,6 @@ declare module THREE { */ intensity: number; - /** - * If set to true light will cast dynamic shadows. Warning: This is expensive and requires tweaking to get shadows looking right. - * Default — false. - */ - castShadow: boolean; - - /** - * If set to true light will only cast shadow but not contribute any lighting (as if intensity was 0 but cheaper to compute). - * Default — false. - */ - onlyShadow: boolean; - - /** - * Orthographic shadow camera frustum parameter. - * Default — 50. - */ - shadowCameraNear: number; - - /** - * Orthographic shadow camera frustum parameter. - * Default — 5000. - */ - shadowCameraFar: number; - - /** - * Orthographic shadow camera frustum parameter. - * Default — -500. - */ - shadowCameraLeft: number; - - /** - * Orthographic shadow camera frustum parameter. - * Default — 500. - */ - shadowCameraRight: number; - - /** - * Orthographic shadow camera frustum parameter. - * Default — 500. - */ - shadowCameraTop: number; - - /** - * Orthographic shadow camera frustum parameter. - * Default — -500. - */ - shadowCameraBottom: number; - - /** - * Show debug shadow camera frustum. - * Default — false. - */ - shadowCameraVisible: boolean; - - /** - * Shadow map bias. - * Default — 0. - */ - shadowBias: number; - - /** - * Darkness of shadow casted by this light (from 0 to 1). - * Default — 0.5. - */ - shadowDarkness: number; - - /** - * Shadow map texture width in pixels. - * Default — 512. - */ - shadowMapWidth: number; - - /** - * Shadow map texture height in pixels. - * Default — 512. - */ - shadowMapHeight: number; - - /** - * Default — false. - */ - shadowCascade: boolean; - - /** - * Three.Vector3( 0, 0, -1000 ). - */ - shadowCascadeOffset: Vector3; - - /** - * Default — 2. - */ - shadowCascadeCount: number; - - /** - * Default — [ 0, 0, 0 ]. - */ - shadowCascadeBias: number[]; - - /** - * Default — [ 512, 512, 512 ]. - */ - shadowCascadeWidth: number[]; - - /** - * Default — [ 512, 512, 512 ]. - */ - shadowCascadeHeight: number[]; - - /** - * Default — [ -1.000, 0.990, 0.998 ]. - */ - shadowCascadeNearZ: number[]; - - /** - * Default — [ 0.990, 0.998, 1.000 ]. - */ - shadowCascadeFarZ: number[]; - - /** - * Default — [ ]. - */ - shadowCascadeArray: DirectionalLight[]; - - /** - * Default — null. - */ - shadowMap: RenderTarget; - - /** - * Default — null. - */ - shadowMapSize: number; - - /** - * Default — null. - */ - shadowCamera: Camera; - - /** - * Default — null. - */ - shadowMatrix: Matrix4; - clone(): DirectionalLight; } @@ -1712,18 +1569,6 @@ declare module THREE { /** * A point light that can cast shadow in one direction. - * - * @example - * // white spotlight shining from the side, casting shadow - * var spotLight = new THREE.SpotLight( 0xffffff ); - * spotLight.position.set( 100, 1000, 100 ); - * spotLight.castShadow = true; - * spotLight.shadowMapWidth = 1024; - * spotLight.shadowMapHeight = 1024; - * spotLight.shadowCameraNear = 500; - * spotLight.shadowCameraFar = 4000; - * spotLight.shadowCameraFov = 30; - * scene.add( spotLight ); */ export class SpotLight extends Light { constructor(hex?: number, intensity?: number, distance?: number, angle?: number, exponent?: number, decay?: number); @@ -1760,71 +1605,6 @@ declare module THREE { 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. - */ - castShadow: boolean; - - /** - * If set to true light will only cast shadow but not contribute any lighting (as if intensity was 0 but cheaper to compute). - * Default — false. - */ - onlyShadow: boolean; - - /** - * Perspective shadow camera frustum near parameter. - * Default — 50. - */ - shadowCameraNear: number; - - /** - * Perspective shadow camera frustum far parameter. - * Default — 5000. - */ - shadowCameraFar: number; - - /** - * Perspective shadow camera frustum field of view parameter. - * Default — 50. - */ - shadowCameraFov: number; - - /** - * Show debug shadow camera frustum. - * Default — false. - */ - shadowCameraVisible: boolean; - - /** - * Shadow map bias. - * Default — 0. - */ - shadowBias: number; - - /** - * Darkness of shadow casted by this light (from 0 to 1). - * Default — 0.5. - */ - shadowDarkness: number; - - /** - * Shadow map texture width in pixels. - * Default — 512. - */ - shadowMapWidth: number; - - /** - * Shadow map texture height in pixels. - * Default — 512. - */ - shadowMapHeight: number; - - shadowMap: RenderTarget; - shadowMapSize: Vector2; - shadowCamera: Camera; - shadowMatrix: Matrix4; - clone(): SpotLight; } @@ -1849,17 +1629,7 @@ declare module THREE { * message — error message */ export class Loader { - constructor(showStatus?: boolean); - - /** - * If true, show loading status in the statusDomElement. - */ - showStatus: boolean; - - /** - * This is the recipient of status messages. - */ - statusDomElement: HTMLElement; + constructor(); imageLoader: ImageLoader; @@ -1887,20 +1657,18 @@ declare module THREE { */ crossOrigin: string; - addStatusElement(): HTMLElement; - updateProgress(progress: Progress): void; extractUrlBase(url: string): string; initMaterials(materials: Material[], texturePath: string): Material[]; needsTangents(materials: Material[]): boolean; createMaterial(m: Material, texturePath: string): boolean; - static Handlers:LoaderHandler; + static Handlers: LoaderHandler; } - export interface LoaderHandler{ - handlers:any[]; - add(regex:string, loader:Loader):void; - get(file: string):Loader; + export interface LoaderHandler { + handlers: any[]; + add(regex: string, loader: Loader): void; + get(file: string): Loader; } export class BinaryTextureLoader { @@ -1918,7 +1686,8 @@ declare module THREE { parse(json: any): BufferGeometry; } - export interface Cache{ + export interface Cache { + enabled: boolean; files: any[]; add(key: string, file: any): void; @@ -1926,9 +1695,9 @@ declare module THREE { remove(key: string): void; clear(): void; } - export var Cache:Cache; + export var Cache: Cache; - export class CompressedTextureLoader{ + export class CompressedTextureLoader { constructor(); load(url: string, onLoad: (bufferGeometry: BufferGeometry) => void, onError?: (event: any) => void): void; @@ -1970,7 +1739,7 @@ declare module THREE { * A loader for loading objects in JSON format. */ export class JSONLoader extends Loader { - constructor(showStatus?: boolean); + constructor(); withCredentials: boolean; @@ -1992,6 +1761,8 @@ declare module THREE { export class LoadingManager { constructor(onLoad?: () => void, onProgress?: (url: string, loaded: number, total: number) => void, onError?: () => void); + onStart: () => void; + /** * Will be called when load starts. * The default is a function with empty body. @@ -2002,7 +1773,7 @@ declare module THREE { * Will be called while load progresses. * The default is a function with empty body. */ - onProgress: (item:any, loaded:number, total:number) => void; + onProgress: (item: any, loaded: number, total: number) => void; /** * Will be called when each element in the scene completes loading. @@ -2157,6 +1928,8 @@ declare module THREE { blendDstAlpha: number; blendEquationAlpha: number; + depthFunc: Function; + /** * Whether to have depth test enabled when rendering this material. Default is true. */ @@ -2271,7 +2044,8 @@ declare module THREE { export interface MeshBasicMaterialParameters extends MaterialParameters{ color?: number; map?: Texture; - lightMap?: Texture; + aoMap?: Texture; + aoMapIntensity?: number; specularMap?: Texture; alphaMap?: Texture; envMap?: Texture; @@ -2294,7 +2068,8 @@ declare module THREE { color: Color; map: Texture; - lightMap: Texture; + aoMap: Texture; + aoMapIntensity: number; specularMap: Texture; alphaMap: Texture; envMap: Texture; @@ -2341,10 +2116,7 @@ declare module THREE { export interface MeshLambertMaterialParameters extends MaterialParameters{ color?: number; emissive?: number; - wrapAround?: boolean; - wrapRGB?: Vector3; map?: Texture; - lightMap?: Texture; specularMap?: Texture; alphaMap?: Texture; envMap?: Texture; @@ -2352,7 +2124,6 @@ declare module THREE { reflectivity?: number; refractionRatio?: number; fog?: boolean; - shading?: Shading; wireframe?: boolean; wireframeLinewidth?: number; wireframeLinecap?: string; @@ -2367,10 +2138,7 @@ declare module THREE { constructor(parameters?: MeshLambertMaterialParameters); color: Color; emissive: Color; - wrapAround: boolean; - wrapRGB: Vector3; map: Texture; - lightMap: Texture; specularMap: Texture; alphaMap: Texture; envMap: Texture; @@ -2378,7 +2146,6 @@ declare module THREE { reflectivity: number; refractionRatio: number; fog: boolean; - shading: Shading; wireframe: boolean; wireframeLinewidth: number; wireframeLinecap: string; @@ -2441,6 +2208,12 @@ declare module THREE { map?: Texture; /** Set light map. Default is null */ lightMap?: Texture; + lightMapIntensity?: number; + + aoMap?: Texture; + aoMapIntensity?: number; + emissiveMap?: Texture; + /** Set specular map. Default is null */ specularMap?: Texture; /** Set alpha map. Default is null */ @@ -2471,12 +2244,13 @@ declare module THREE { specular?: number; shininess?: number; metal?: boolean; - wrapAround?: boolean; - wrapRGB?: Vector3; bumpMap?: Texture; bumpScale?: number; normalMap?: Texture; normalScale?: Vector2; + displacementMap?: Texture; + displacementScale?: number; + displacementBias?: number; combine?: Combine; reflectivity?: number; refractionRatio?: number; @@ -2491,14 +2265,19 @@ declare module THREE { specular: Color; shininess: number; metal: boolean; - wrapAround: boolean; - wrapRGB: Vector3; map: Texture; lightMap: Texture; + lightMapIntensity: number; + aoMap: Texture; + aoMapIntensity: number; + emissiveMap: Texture; bumpMap: Texture; bumpScale: number; normalMap: Texture; normalScale: Vector2; + displacementMap: Texture; + displacementScale: number; + displacementBias: number; specularMap: Texture; alphaMap: Texture; envMap: Texture; @@ -2556,10 +2335,9 @@ declare module THREE { } - export interface ShaderMaterialParameters extends MaterialParameters{ + export interface ShaderMaterialParameters extends MaterialParameters { defines?: any; uniforms?: any; - attributes?: any; vertexShader?: string; fragmentShader?: string; shading?: Shading; @@ -2579,7 +2357,6 @@ declare module THREE { defines: any; uniforms: any; - attributes: any; vertexShader: string; fragmentShader: string; shading: Shading; @@ -2596,7 +2373,7 @@ declare module THREE { clone(): ShaderMaterial; } - export interface SpriteMaterialParameters extends MaterialParameters{ + export interface SpriteMaterialParameters extends MaterialParameters { color?: number; map?: Texture; rotation?: number; @@ -3033,13 +2810,6 @@ declare module THREE { */ clamp(x: number, a: number, b: number): number; - /** - * Clamps the x to be larger than a. - * - * @param x — Value to be clamped. - * @param a — Minimum value - */ - clampBottom(x: number, a: number): number; /** * Linear mapping of x from range [a1, a2] to range [b1, b2]. @@ -3508,6 +3278,7 @@ declare module THREE { recast(t: number): Ray; closestPointToPoint(point: Vector3, optionalTarget?: Vector3): Vector3; distanceToPoint(point: Vector3): number; + distanceSqToPoint(point: Vector3): number; distanceSqToSegment(v0: Vector3, v1: Vector3, optionalPointOnRay?: Vector3, optionalPointOnSegment?: Vector3): number; isIntersectionSphere(sphere: Sphere): boolean; intersectSphere(sphere: Sphere, optionalTarget?: Vector3): Vector3; @@ -3625,7 +3396,7 @@ declare module THREE { /** * ( interface Vector<T> ) * - * Abstruct interface of Vector2, Vector3 and Vector4. + * Abstract interface of Vector2, Vector3 and Vector4. * Currently the members of Vector is NOT type safe because it accepts different typed vectors. * Those definitions will be changed when TypeScript innovates Generics to be type safe. * @@ -3784,6 +3555,7 @@ declare module THREE { */ addScalar(s: number): Vector2; addVectors(a: Vector2, b: Vector2): Vector2; + addScaledVector(v: Vector2, s: number): Vector2; /** * Subtracts v from this vector. @@ -3813,6 +3585,7 @@ declare module THREE { max(v: Vector2): Vector2; clamp(min: Vector2, max: Vector2): Vector2; clampScalar(min: number, max: number): Vector2; + clampLength(min: number, max: number): Vector2; floor(): Vector2; ceil(): Vector2; round(): Vector2; @@ -3838,6 +3611,11 @@ declare module THREE { */ length(): number; + /** + * Computes Manhattan length of this vector. + */ + lengthManhattan(): number; + /** * Normalizes this vector. */ @@ -3873,6 +3651,8 @@ declare module THREE { fromAttribute( attribute: BufferAttribute, index: number, offset?: number): Vector2; + rotateAround(center: Vector2, angle: number): Vector2; + /** * Clones this vector. */ @@ -3933,6 +3713,7 @@ declare module THREE { */ add(a: Vector3): Vector3; addScalar(s: number): Vector3; + addScaledVector(v: Vector3, s: number): Vector3; /** * Sets this vector to a + b. @@ -3977,6 +3758,7 @@ declare module THREE { max(v: Vector3): Vector3; clamp(min: Vector3, max: Vector3): Vector3; clampScalar(min: number, max: number): Vector3; + clampLength(min: number, max: number): Vector3; floor(): Vector3; ceil(): Vector3; round(): Vector3; @@ -4121,6 +3903,7 @@ declare module THREE { * Sets this vector to a + b. */ addVectors(a: Vector4, b: Vector4): Vector4; + addScaledVector(v: Vector4, s: number): Vector4; /** * Subtracts v from this vector. @@ -4269,9 +4052,8 @@ declare module THREE { constructor(geometry?: BufferGeometry, material?: LineBasicMaterial, mode?: number); constructor(geometry?: BufferGeometry, material?: ShaderMaterial, mode?: number); - geometry: any; // Geometry or BufferGeometry; + geometry: Geometry|BufferGeometry; material: Material; // LineDashedMaterial or LineBasicMaterial or ShaderMaterial - mode: LineMode; raycast(raycaster: Raycaster, intersects: any): void; clone(object?: Line): Line; @@ -4285,7 +4067,7 @@ declare module THREE { constructor(geometry?: BufferGeometry, material?: LineBasicMaterial); constructor(geometry?: BufferGeometry, material?: ShaderMaterial); - geometry: any; // Geometry or BufferGeometry; + geometry: Geometry|BufferGeometry; material: Material; // LineDashedMaterial or LineBasicMaterial or ShaderMaterial raycast(raycaster: Raycaster, intersects: any): void; @@ -4299,6 +4081,8 @@ declare module THREE { export class LOD extends Object3D { constructor(); + levels: any[]; + /** Deprecated, use levels instead */ objects: any[]; addLevel(object: Object3D, distance?: number): void; @@ -4312,7 +4096,7 @@ declare module THREE { constructor(geometry?: Geometry, material?: Material); constructor(geometry?: BufferGeometry, material?: Material); - geometry: Geometry; + geometry: Geometry|BufferGeometry; material: Material; updateMorphTargets(): void; @@ -4398,6 +4182,7 @@ declare module THREE { calculateInverses(bone: Bone): void; pose(): void; update(): void; + clone(): Skeleton; } export class SkinnedMesh extends Mesh { @@ -4512,9 +4297,7 @@ declare module THREE { /** * The HTML5 Canvas's 'webgl' context obtained from the canvas where the renderer will draw. */ - // If you are using three.d.ts with other complete definitions of webgl, context:WebGLRenderingContext is suitable. - //context:WebGLRenderingContext; - context: any; + context: WebGLRenderingContext; /** * Defines whether the renderer should automatically clear its output before rendering. @@ -4541,6 +4324,8 @@ declare module THREE { */ sortObjects: boolean; + extensions: WebGLExtensions; + gammaFactor: number; /** @@ -4574,11 +4359,6 @@ declare module THREE { */ shadowMapDebug: boolean; - /** - * Default is false. - */ - shadowMapCascade: boolean; - /** * Default is 8. */ @@ -4611,7 +4391,7 @@ declare module THREE { }; }; - shadowMapPlugin: ShadowMapPlugin; + shadowMap: WebGLShadowMap; /** * Return the WebGL context. @@ -4620,19 +4400,22 @@ declare module THREE { forceContextLoss(): void; - /** - * Return a Boolean true if the context supports vertex textures. - */ + capabilities: WebGLCapabilities; + + /** Deprecated, use capabilities instead */ supportsVertexTextures(): boolean; supportsFloatTextures(): boolean; supportsStandardDerivatives(): boolean; supportsCompressedTextureS3TC(): boolean; supportsCompressedTexturePVRTC(): boolean; supportsBlendMinMax(): boolean; - getMaxAnisotropy(): number; getPrecision(): string; + + getMaxAnisotropy(): number; getPixelRatio(): number; setPixelRatio(value: number): void; + + getSize(): { width: number; height: number; }; /** * Resizes the output canvas to (width, height), and also sets the viewport to fit that size, starting in (0, 0). @@ -4695,6 +4478,7 @@ declare module THREE { clearStencil(): void; clearTarget(renderTarget:WebGLRenderTarget, color: boolean, depth: boolean, stencil: boolean): void; resetGLState(): void; + dispose(): void; /** * Tells the shadow map plugin to update using the passed scene and camera parameters. @@ -4734,7 +4518,24 @@ declare module THREE { setRenderTarget(renderTarget: RenderTarget): void; readRenderTargetPixels( renderTarget: RenderTarget, x: number, y: number, width: number, height: number, buffer: any ): void; } - + + export interface WebGLCapabilities { + getMaxPrecision(precision: string): string; + precision: string; + logarithmicDepthBuffer: boolean; + maxTextures: number; + maxVertexTextures: number; + maxTextureSize: number; + maxCubemapSize: number; + maxAttributes: number; + maxVertexUniforms: number; + maxVaryings: number; + maxFragmentUniforms: number; + vertexTextures: boolean; + floatFragmentTextures: boolean; + floatVertexTextures: boolean; + } + export interface RenderTarget { } @@ -4886,17 +4687,23 @@ declare module THREE { }; // Renderers / WebGL ///////////////////////////////////////////////////////////////////// - export class WebGLExtensions{ - constructor(gl: any); // WebGLRenderingContext + export class WebGLExtensions { + constructor(gl: WebGLRenderingContext); get(name: string): any; } - export class WebGLProgram{ + export class WebGLProgram { constructor(renderer: WebGLRenderer, code: string, material: ShaderMaterial, parameters: WebGLRendererParameters); + + getUniforms(): any; + getAttributes(): any; + /** Deprecated, use getUniforms */ + uniforms: any; + /** Deprecated, use getAttributes */ attributes: any; - attributesKeys: string[]; + id: number; code: string; usedTimes: number; @@ -4905,27 +4712,27 @@ declare module THREE { fragmentShader: WebGLShader; } - export class WebGLShader{ - constructor(gl: any, type: string, string: string); + export class WebGLShader { + constructor(gl: WebGLRenderingContext, type: string, string: string); } - interface WebGLStateInstance{ - new ( gl: any, paramThreeToGL: Function ): void; + interface WebGLStateInstance { + new(gl: WebGLRenderingContext, 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; + 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; + interface WebGLStateStatic { + (gl: WebGLRenderingContext, paramThreeToGL: Function): WebGLStateInstance; } export var WebGLState: WebGLStateStatic; @@ -4956,9 +4763,13 @@ declare module THREE { render(scene: Scene, camera: Camera, viewportWidth: number, viewportHeight: number): void; } - export class ShadowMapPlugin implements RendererPlugin { + export class WebGLShadowMap implements RendererPlugin { constructor(); + enabled: boolean; + type: ShadowMapType; + cullFace: CullFace; + init(renderer: Renderer): void; render(scene: Scene, camera: Camera): void; update(scene: Scene, camera: Camera): void; @@ -5046,6 +4857,20 @@ declare module THREE { } // Textures ///////////////////////////////////////////////////////////////////// + export class CanvasTexture extends Texture { + constructor( + canvas?: HTMLCanvasElement, + mapping?: Mapping, + wrapS?: Wrapping, + wrapT?: Wrapping, + magFilter?: TextureFilter, + minFilter?: TextureFilter, + format?: PixelFormat, + type?: TextureDataType, + anisotropy?: number + ); + } + export class CompressedTexture extends Texture { constructor( mipmaps: ImageData[], @@ -5147,6 +4972,7 @@ declare module THREE { clone(): Texture; update(): void; + toJSON(): any; dispose(): void; // EventDispatcher mixins @@ -5416,16 +5242,16 @@ declare module THREE { */ getTangentAt(u: number): T; - static Utils: { - tangentQuadraticBezier(t: number, p0: number, p1: number, p2: number): number; - tangentCubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number; - tangentSpline(t: number, p0: number, p1: number, p2: number, p3: number): number; - interpolate(p0: number, p1: number, p2: number, p3: number, t: number): number; - }; - static create(constructorFunc: Function, getPointFunc: Function): Function; } + export var CurveUtils: { + tangentQuadraticBezier(t: number, p0: number, p1: number, p2: number): number; + tangentCubicBezier(t: number, p0: number, p1: number, p2: number, p3: number): number; + tangentSpline(t: number, p0: number, p1: number, p2: number, p3: number): number; + interpolate(p0: number, p1: number, p2: number, p3: number, t: number): number; + }; + export interface BoundingBox { minX: number; minY: number; @@ -5494,8 +5320,8 @@ declare module THREE { splineThru(pts: Vector2[]): void; arc(aX: number, aY: number, aRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean): void; absarc(aX: number, aY: number, aRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean): void; - ellipse(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean): void; - absellipse(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean): void; + ellipse(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean, aRotation: number): void; + absellipse(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean, aRotation: number): void; getSpacedPoints(divisions?: number, closedPath?: boolean): Vector2[]; getPoints(divisions?: number, closedPath?: boolean): Vector2[]; toShapes(): Shape[]; @@ -5527,17 +5353,23 @@ declare module THREE { // Extras / Curves ///////////////////////////////////////////////////////////////////// export class ArcCurve extends EllipseCurve { - constructor(aX: number, aY: number, aRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean ); + constructor(aX: number, aY: number, aRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean, aRotation: number); + } + + export class CatmullRomCurve3 extends Curve { + constructor(points?: Vector3[]); + + points: Vector3[]; } export class ClosedSplineCurve3 extends Curve { - constructor( points?:Vector3[] ); + constructor(points?: Vector3[]); - points:Vector3[]; + points: Vector3[]; } export class CubicBezierCurve extends Curve { - constructor( v0: Vector2, v1: Vector2, v2: Vector2, v3: Vector2 ); + constructor(v0: Vector2, v1: Vector2, v2: Vector2, v3: Vector2); v0: Vector2; v1: Vector2; @@ -5545,7 +5377,7 @@ declare module THREE { v3: Vector2; } export class CubicBezierCurve3 extends Curve { - constructor( v0: Vector3, v1: Vector3, v2: Vector3, v3: Vector3 ); + constructor(v0: Vector3, v1: Vector3, v2: Vector3, v3: Vector3); v0: Vector3; v1: Vector3; @@ -5553,7 +5385,7 @@ declare module THREE { v3: Vector3; } export class EllipseCurve extends Curve { - constructor( aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean ); + constructor(aX: number, aY: number, xRadius: number, yRadius: number, aStartAngle: number, aEndAngle: number, aClockwise: boolean, aRotation: number); aX: number; aY: number; @@ -5562,6 +5394,7 @@ declare module THREE { aStartAngle: number; aEndAngle: number; aClockwise: boolean; + aRotation: number; } export class LineCurve extends Curve { constructor( v1: Vector2, v2: Vector2 ); @@ -5626,6 +5459,17 @@ declare module THREE { }; } + export class CircleBufferGeometry extends BufferGeometry { + constructor(radius?: number, segments?: number, thetaStart?: number, thetaLength?: number); + + parameters: { + radius: number; + segments: number; + thetaStart: number; + thetaLength: number; + }; + } + export class CircleGeometry extends Geometry { constructor(radius?: number, segments?: number, thetaStart?: number, thetaLength?: number); @@ -5673,6 +5517,10 @@ declare module THREE { }; } + export class EdgesGeometry extends BufferGeometry { + constructor(geometry: Geometry|BufferGeometry, thresholdAngle?: number); + } + export class ExtrudeGeometry extends Geometry { constructor(shape?: Shape, options?: any); constructor(shapes?: Shape[], options?: any); @@ -5862,8 +5710,10 @@ declare module THREE { static NoTaper(u?: number): number; static SinusoidalTaper(u: number): number; - static FrenetFrames(path: Path, segments: number, closed: boolean): void; + } + export class WireframeGeometry extends BufferGeometry { + constructor(geometry: Geometry|BufferGeometry); } // Extras / Helpers ///////////////////////////////////////////////////////////////////// @@ -6008,9 +5858,11 @@ declare module THREE { // Extras / Objects ///////////////////////////////////////////////////////////////////// export class ImmediateRenderObject extends Object3D { - constructor(); + constructor(material: Material); - render(renderCallback:Function): void; + material: Material; + + render(renderCallback: Function): void; } export interface MorphBlendMeshAnimation { @@ -6052,5 +5904,5 @@ declare module THREE { } declare module 'three' { - export=THREE; + export = THREE; }