diff --git a/physijs/tests/body.ts b/physijs/tests/body.ts
index acf9df5004..649805c035 100644
--- a/physijs/tests/body.ts
+++ b/physijs/tests/body.ts
@@ -1,6 +1,6 @@
///
///
-
+///
Physijs.scripts.worker = '../physijs_worker.js';
Physijs.scripts.ammo = 'examples/js/ammo.js';
diff --git a/physijs/tests/constraints_car.ts b/physijs/tests/constraints_car.ts
index b74c444490..4202b0c041 100644
--- a/physijs/tests/constraints_car.ts
+++ b/physijs/tests/constraints_car.ts
@@ -1,6 +1,6 @@
///
///
-
+///
Physijs.scripts.worker = '../physijs_worker.js';
Physijs.scripts.ammo = 'examples/js/ammo.js';
diff --git a/physijs/tests/jenga.ts b/physijs/tests/jenga.ts
index 05bbd78613..e2eeecc94e 100644
--- a/physijs/tests/jenga.ts
+++ b/physijs/tests/jenga.ts
@@ -1,6 +1,6 @@
///
///
-
+///
Physijs.scripts.worker = '../physijs_worker.js';
Physijs.scripts.ammo = 'examples/js/ammo.js';
diff --git a/physijs/tests/vehicle.ts b/physijs/tests/vehicle.ts
index 1b11066fe0..ef064f0387 100644
--- a/physijs/tests/vehicle.ts
+++ b/physijs/tests/vehicle.ts
@@ -1,5 +1,6 @@
///
///
+///
var TWEEN: any;
var SimplexNoise: any;
diff --git a/threejs/tests/canvas/canvas_camera_orthographic.ts b/threejs/tests/canvas/canvas_camera_orthographic.ts
index 7391d978b0..54ac792d2b 100644
--- a/threejs/tests/canvas/canvas_camera_orthographic.ts
+++ b/threejs/tests/canvas/canvas_camera_orthographic.ts
@@ -50,7 +50,7 @@
var material1 = new THREE.LineBasicMaterial({ color: 0x000000, opacity: 0.2 });
var line = new THREE.Line(geometry, material1);
- line.type = THREE.LinePieces;
+ line.mode = THREE.LinePieces;
scene.add(line);
// Cubes
diff --git a/threejs/tests/canvas/canvas_materials.ts b/threejs/tests/canvas/canvas_materials.ts
index 0d8f8a631e..e65dfe3beb 100644
--- a/threejs/tests/canvas/canvas_materials.ts
+++ b/threejs/tests/canvas/canvas_materials.ts
@@ -45,7 +45,7 @@
var material = new THREE.LineBasicMaterial({ color: 0xffffff, opacity: 0.2 });
var line = new THREE.Line(geometry, material);
- line.type = THREE.LinePieces;
+ line.mode = THREE.LinePieces;
scene.add(line);
// Spheres
diff --git a/threejs/tests/three-tests-setup.ts b/threejs/tests/three-tests-setup.ts
index 235dd631db..edb913a3d3 100644
--- a/threejs/tests/three-tests-setup.ts
+++ b/threejs/tests/three-tests-setup.ts
@@ -4,7 +4,9 @@
///
///
+///
///
+///
///
///
///
diff --git a/threejs/three-canvasrenderer.d.ts b/threejs/three-canvasrenderer.d.ts
new file mode 100644
index 0000000000..c751d87228
--- /dev/null
+++ b/threejs/three-canvasrenderer.d.ts
@@ -0,0 +1,57 @@
+// Type definitions for CanvasRenderer.js
+// Project: https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CanvasRenderer.js
+// Definitions by: Satoru Kimura
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module THREE {
+ export interface SpriteCanvasMaterialParameters extends MaterialParameters{
+ color?: number;
+
+ }
+
+ export class SpriteCanvasMaterial extends Material {
+ constructor(parameters?: SpriteCanvasMaterialParameters);
+
+ color: Color;
+
+ program(context: any, color: Color): void;
+ clone(): SpriteCanvasMaterial;
+ }
+
+ export interface CanvasRendererParameters {
+ canvas?: HTMLCanvasElement;
+ devicePixelRatio?: number;
+ }
+
+ export class CanvasRenderer implements Renderer {
+ constructor(parameters?: CanvasRendererParameters);
+
+ domElement: HTMLCanvasElement;
+ devicePixelRatio: number;
+ autoClear: boolean;
+ sortObjects: boolean;
+ sortElements: boolean;
+ info: { render: { vertices: number; faces: number; }; };
+
+ supportsVertexTextures(): void;
+ setFaceCulling(): void;
+ setSize(width: number, height: number, updateStyle?: boolean): void;
+ setViewport(x: number, y: number, width: number, height: number): void;
+ setScissor(): void;
+ enableScissorTest(): void;
+ setClearColor(color: Color, opacity?: number): void;
+ setClearColor(color: string, opacity?: number): void;
+ setClearColor(color: number, opacity?: number): void;
+ setClearColorHex(hex: number, alpha?: number): void;
+ getClearColor(): Color;
+ getClearAlpha(): number;
+ getMaxAnisotropy(): number;
+ clear(): void;
+ clearColor(): void;
+ clearDepth(): void;
+ clearStencil(): void;
+ render(scene: Scene, camera: Camera): void;
+ }
+}
\ No newline at end of file
diff --git a/threejs/three-projector.d.ts b/threejs/three-projector.d.ts
new file mode 100644
index 0000000000..11d674188f
--- /dev/null
+++ b/threejs/three-projector.d.ts
@@ -0,0 +1,97 @@
+// Type definitions for Projector.js
+// Project: https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/Projector.js
+// Definitions by: Satoru Kimura
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module THREE {
+ // Renderers / Renderables /////////////////////////////////////////////////////////////////////
+ export class RenderableObject {
+ constructor();
+
+ id: number;
+ object: Object;
+ z: number;
+ }
+
+ export class RenderableFace {
+ constructor();
+
+ id: number;
+ v1: RenderableVertex;
+ v2: RenderableVertex;
+ v3: RenderableVertex;
+ normalModel: Vector3;
+ vertexNormalsModel: Vector3[];
+ vertexNormalsLength: number;
+ color: Color;
+ material: Material;
+ uvs: Vector2[][];
+ z: number;
+
+ }
+
+ export class RenderableVertex {
+ constructor();
+
+ position: Vector3;
+ positionWorld: Vector3;
+ positionScreen: Vector4;
+ visible: boolean;
+
+ copy(vertex: RenderableVertex): void;
+ }
+
+ export class RenderableLine {
+ constructor();
+
+ id: number;
+ v1: RenderableVertex;
+ v2: RenderableVertex;
+ vertexColors: Color[];
+ material: Material;
+ z: number;
+ }
+
+ export class RenderableSprite {
+ constructor();
+
+ id: number;
+ object: Object;
+ x: number;
+ y: number;
+ z: number;
+ rotation: number;
+ scale: Vector2;
+ material: Material;
+ }
+
+ /**
+ * Projects points between spaces.
+ */
+ export class Projector {
+ constructor();
+
+ // deprecated.
+ projectVector(vector: Vector3, camera: Camera): Vector3;
+
+ // deprecated.
+ unprojectVector(vector: Vector3, camera: Camera): Vector3;
+
+ /**
+ * Transforms a 3D scene object into 2D render data that can be rendered in a screen with your renderer of choice, projecting and clipping things out according to the used camera.
+ * If the scene were a real scene, this method would be the equivalent of taking a picture with the camera (and developing the film would be the next step, using a Renderer).
+ *
+ * @param scene scene to project.
+ * @param camera camera to use in the projection.
+ * @param sort select whether to sort elements using the Painter's algorithm.
+ */
+ projectScene(scene: Scene, camera: Camera, sortObjects: boolean, sortElements?: boolean): {
+ objects: Object3D[]; // Mesh, Line or other object
+ sprites: Object3D[]; // Sprite or Particle
+ lights: Light[];
+ elements: Face3[]; // Line, Particle, Face3 or Face4
+ };
+ }
+}
\ No newline at end of file
diff --git a/threejs/three.d.ts b/threejs/three.d.ts
index f114cd9583..2a5535cbb5 100644
--- a/threejs/three.d.ts
+++ b/threejs/three.d.ts
@@ -3,6 +3,8 @@
// Definitions by: Kon , Satoru Kimura
// Definitions: https://github.com/borisyankov/DefinitelyTyped
+///
+
interface WebGLRenderingContext {}
declare module THREE {
@@ -67,6 +69,8 @@ declare module THREE {
export var AddEquation: BlendingEquation;
export var SubtractEquation: BlendingEquation;
export var ReverseSubtractEquation: BlendingEquation;
+ export var MinEquation: BlendingEquation;
+ export var MaxEquation: BlendingEquation;
// custom blending destination factors
export enum BlendingDstFactor { }
@@ -143,12 +147,18 @@ declare module THREE {
export var LuminanceAlphaFormat: PixelFormat;
// Compressed texture formats
+ // DDS / ST3C Compressed texture formats
export enum CompressedPixelFormat { }
export var RGB_S3TC_DXT1_Format: CompressedPixelFormat;
export var RGBA_S3TC_DXT1_Format: CompressedPixelFormat;
export var RGBA_S3TC_DXT3_Format: CompressedPixelFormat;
export var RGBA_S3TC_DXT5_Format: CompressedPixelFormat;
+ // PVRTC compressed texture formats
+ export var RGB_PVRTC_4BPPV1_Format: CompressedPixelFormat;
+ export var RGB_PVRTC_2BPPV1_Format: CompressedPixelFormat;
+ export var RGBA_PVRTC_4BPPV1_Format: CompressedPixelFormat;
+ export var RGBA_PVRTC_2BPPV1_Format: CompressedPixelFormat;
// Cameras ////////////////////////////////////////////////////////////////////////////////////////
@@ -171,6 +181,8 @@ declare module THREE {
*/
projectionMatrix: Matrix4;
+ getWorldDirection(optionalTarget?: Vector3): Vector3;
+
/**
* This make the camera look at the vector position in local space.
* @param vector point to look at
@@ -209,6 +221,8 @@ declare module THREE {
*/
constructor(left: number, right: number, top: number, bottom: number, near?: number, far?: number);
+ zoom: number;
+
/**
* Camera frustum left plane.
*/
@@ -265,6 +279,8 @@ declare module THREE {
*/
constructor(fov?: number, aspect?: number, near?: number, far?: number);
+ zoom: number;
+
/**
* Camera frustum vertical field of view, from bottom to top of view, in degrees.
*/
@@ -345,8 +361,10 @@ declare module THREE {
array: number[];
itemSize: number;
+ needsUpdate: boolean;
length: number;
+ copyAt(index1: number, attribute: BufferAttribute, index2: number): void;
set(value: number): BufferAttribute;
setX(index: number, x: number): BufferAttribute;
setY(index: number, y: number): BufferAttribute;
@@ -354,6 +372,7 @@ declare module THREE {
setXY(index: number, x: number, y: number): BufferAttribute;
setXYZ(index: number, x: number, y: number, z: number): BufferAttribute;
setXYZW(index: number, x: number, y: number, z: number, w: number): BufferAttribute;
+ clone(): BufferAttribute;
}
// deprecated
@@ -420,7 +439,9 @@ declare module THREE {
id: number;
uuid: string;
name: string;
+ type: string;
attributes: BufferAttribute[];
+ attributesKeys: string[];
drawcalls: { start: number; count: number; index: number; }[];
offsets: { start: number; count: number; index: number; }[];
boundingBox: BoundingBox3D;
@@ -436,6 +457,9 @@ declare module THREE {
*/
applyMatrix(matrix: Matrix4): void;
+ // this method is currently empty.
+ center(): void;
+
fromGeometry( geometry: Geometry, settings?: any ): BufferGeometry;
/**
@@ -469,6 +493,7 @@ declare module THREE {
merge(): void;
normalizeNormals(): void;
reorderBuffers(indexBuffer: number, indexMap: number[], vertexCount: number): void;
+ toJSON(): any;
clone(): BufferGeometry;
/**
@@ -729,6 +754,8 @@ declare module THREE {
*/
name: string;
+ type: string;
+
/**
* The array of vertices hold every position of points of the model.
* To signal an update in this array, Geometry.verticesNeedUpdate needs to be set to true.
@@ -852,11 +879,6 @@ declare module THREE {
*/
lineDistancesNeedUpdate: boolean;
- /**
- * Set to true if an array has changed in length.
- */
- buffersNeedUpdate: boolean;
-
/**
*
*/
@@ -867,6 +889,8 @@ declare module THREE {
*/
applyMatrix(matrix: Matrix4): void;
+ fromBufferGeometry(geometry: BufferGeometry): Geometry;
+
/**
*
*/
@@ -916,7 +940,7 @@ declare module THREE {
*/
mergeVertices(): number;
- makeGroups(usesFaceMaterial: boolean, maxVerticesInGroup: number): void;
+ toJSON(): any;
/**
* Creates a new clone of the Geometry.
@@ -929,6 +953,7 @@ declare module THREE {
*/
dispose(): void;
+
//These properties do not exist in a normal Geometry class, but if you use the instance that was passed by JSONLoader, it will be added.
bones: Bone[];
animation: AnimationData;
@@ -962,6 +987,8 @@ declare module THREE {
*/
name: string;
+ type: string;
+
/**
* Object's parent in the scene graph.
*/
@@ -1174,17 +1201,7 @@ declare module THREE {
*/
remove(object: Object3D): void;
- /**
- *
- */
- raycast(raycaster: Raycaster, intersects: any): void;
-
- /**
- * Translates object along arbitrary axis by distance.
- * @param distance Distance.
- * @param axis Translation direction.
- */
- traverse(callback: (object: Object3D) => any): void;
+ getChildByName( name: string, recursive?: boolean ): Object3D;
/**
* Searches through the object's children and returns the first with a matching id, optionally recursive.
@@ -1193,7 +1210,6 @@ declare module THREE {
*/
getObjectById(id: string, recursive: boolean): 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.
@@ -1201,8 +1217,20 @@ declare module THREE {
*/
getObjectByName(name: string, recursive?: boolean): Object3D;
+ getWorldPosition(optionalTarget: Vector3): Vector3;
+ getWorldQuaternion(optionalTarget: Quaternion): Quaternion;
+ getWorldRotation(optionalTarget: Euler): Euler;
+ getWorldScale(optionalTarget: Vector3): Vector3;
+ getWorldDirection(optionalTarget: Vector3): Vector3;
- getChildByName( name: string, recursive?: boolean ): Object3D;
+ /**
+ * Translates object along arbitrary axis by distance.
+ * @param distance Distance.
+ * @param axis Translation direction.
+ */
+ traverse(callback: (object: Object3D) => any): void;
+
+ traverseVisible(callback: (object: Object3D) => any): void;
/**
* Updates local transform.
@@ -1214,6 +1242,8 @@ declare module THREE {
*/
updateMatrixWorld(force: boolean): void;
+ toJSON(): any;
+
/**
*
* @param object
@@ -1229,37 +1259,6 @@ declare module THREE {
}
- /**
- * Projects points between spaces.
- */
- export class Projector {
- constructor();
-
- projectVector(vector: Vector3, camera: Camera): Vector3;
-
- unprojectVector(vector: Vector3, camera: Camera): Vector3;
-
- /**
- * Translates a 2D point from NDC (Normalized Device Coordinates) to a Raycaster that can be used for picking. NDC range from [-1..1] in x (left to right) and [1.0 .. -1.0] in y (top to bottom).
- */
- pickingRay(vector: Vector3, camera: Camera): Raycaster;
-
- /**
- * Transforms a 3D scene object into 2D render data that can be rendered in a screen with your renderer of choice, projecting and clipping things out according to the used camera.
- * If the scene were a real scene, this method would be the equivalent of taking a picture with the camera (and developing the film would be the next step, using a Renderer).
- *
- * @param scene scene to project.
- * @param camera camera to use in the projection.
- * @param sort select whether to sort elements using the Painter's algorithm.
- */
- projectScene(scene: Scene, camera: Camera, sortObjects: boolean, sortElements?: boolean): {
- objects: Object3D[]; // Mesh, Line or other object
- sprites: Object3D[]; // Sprite or Particle
- lights: Light[];
- elements: Face3[]; // Line, Particle, Face3 or Face4
- };
- }
-
export interface Intersection {
distance: number;
point: Vector3;
@@ -1296,6 +1295,7 @@ declare module THREE {
*/
export class Light extends Object3D {
constructor(hex?: number);
+
color: Color;
clone(light?: Light): Light;
@@ -1749,6 +1749,12 @@ declare module THREE {
clear(): void;
}
+ export class CompressedTextureLoader{
+ constructor();
+
+ load(url: string, onLoad: (bufferGeometry: BufferGeometry) => void, onError?: (event: any) => void): void;
+ }
+
/*
* GeometryLoader class is experimental, and it is not yet included in the compiled source code.
*
@@ -1909,6 +1915,8 @@ declare module THREE {
*/
name: string;
+ type: string;
+
/**
* Defines which of the face sides will be rendered - front, back or both.
* Default is THREE.FrontSide. Other options are THREE.BackSide and THREE.DoubleSide.
@@ -1994,6 +2002,7 @@ declare module THREE {
needsUpdate: boolean;
setValues(values: Object): void;
+ toJSON(): any;
clone(material?:Material): Material;
dispose(): void;
@@ -2119,6 +2128,7 @@ declare module THREE {
constructor(materials?: Material[]);
materials: Material[];
+ toJSON(): any;
clone(): MeshFaceMaterial;
}
@@ -2342,20 +2352,6 @@ declare module THREE {
clone(): ShaderMaterial;
}
- export interface SpriteCanvasMaterialParameters extends MaterialParameters{
- color?: number;
-
- }
-
- export class SpriteCanvasMaterial extends Material {
- constructor(parameters?: SpriteCanvasMaterialParameters);
-
- color: Color;
-
- program(context: any, color: Color): void;
- clone(): SpriteCanvasMaterial;
- }
-
export interface SpriteMaterialParameters extends MaterialParameters{
color?: number;
map?: Texture;
@@ -2835,11 +2831,6 @@ declare module THREE {
*/
randFloatSpread(range: number): number;
- /**
- * Returns -1 if x is less than 0, 1 if x is greater than 0, and 0 if x is zero.
- */
- sign(x: number): number;
-
degToRad(degrees: number): number;
radToDeg(radians: number): number;
@@ -3237,6 +3228,10 @@ declare module THREE {
equals(v: Quaternion): boolean;
fromArray(n: number[]): Quaternion;
toArray(): number[];
+
+ fromArray(xyzw: number[], offset?: number): Quaternion;
+ toArray(xyzw?: number[], offset?: number): number[];
+
onChange: () => void;
/**
@@ -3617,9 +3612,10 @@ declare module THREE {
* Checks for strict equality of this vector and v.
*/
equals(v: Vector2): boolean;
- fromArray(xy: number[]): Vector2;
- toArray(): number[];
+ fromArray(xy: number[], offset?: number): Vector2;
+
+ toArray(xy?: number[], offset?: number): number[];
/**
* Clones this vector.
*/
@@ -3708,6 +3704,8 @@ declare module THREE {
applyMatrix4(m: Matrix4): Vector3;
applyProjection(m: Matrix4): Vector3;
applyQuaternion(q: Quaternion): Vector3;
+ project(camrea: Camera): Vector3;
+ unproject(camera: Camera): Vector3;
transformDirection(m: Matrix4): Vector3;
divide(v: Vector3): Vector3;
@@ -3794,8 +3792,10 @@ declare module THREE {
* Checks for strict equality of this vector and v.
*/
equals(v: Vector3): boolean;
- fromArray(xyz: number[]): Vector3;
- toArray(): number[];
+
+ fromArray(xyz: number[], offset?: number): Vector3;
+
+ toArray(xyz?: number[], offset?: number): number[];
/**
* Clones this vector.
@@ -3942,8 +3942,9 @@ declare module THREE {
*/
equals(v: Vector4): boolean;
- fromArray(xyzw: number[]): number[];
- toArray(): number[];
+ fromArray(xyzw: number[], offset?: number): Vector4;
+
+ toArray(xyzw?: number[], offset?: number): number[];
/**
* Clones this vector.
@@ -3957,33 +3958,59 @@ declare module THREE {
constructor(belongsToSkin: SkinnedMesh);
skin: SkinnedMesh;
+ }
- accumulatedRotWeight: number;
- accumulatedPosWeight: number;
- accumulatedSclWeight: number;
+ export class Group extends Object3D {
+ constructor();
+ }
- updateMatrixWorld(forceUpdate?: boolean): void;
+ export interface LensFlareProperty {
+ texture: Texture; // Texture
+ size: number; // size in pixels (-1 = use texture.width)
+ distance: number; // distance (0-1) from light source (0=at light source)
+ x: number;
+ y: number;
+ z: number; // screen position (-1 => 1) z = 0 is ontop z = 1 is back
+ scale: number; // scale
+ rotation: number; // rotation
+ opacity: number; // opacity
+ color: Color; // color
+ blending: Blending;
+ }
+
+ export class LensFlare extends Object3D {
+ constructor(texture?: Texture, size?: number, distance?: number, blending?: Blending, color?: Color);
+
+ lensFlares: LensFlareProperty[];
+ positionScreen: Vector3;
+ customUpdateCallback: (object: LensFlare) => void;
+
+ add(texture: Texture, size?: number, distance?: number, blending?: Blending, color?: Color): void;
+ add(obj: Object3D): void;
+
+
+ updateLensFlares(): void;
}
export class Line extends Object3D {
- constructor(geometry?: Geometry, material?: LineDashedMaterial, type?: number);
- constructor(geometry?: Geometry, material?: LineBasicMaterial, type?: number);
- constructor(geometry?: Geometry, material?: ShaderMaterial, type?: number);
- constructor(geometry?: BufferGeometry, material?: LineDashedMaterial, type?: number);
- constructor(geometry?: BufferGeometry, material?: LineBasicMaterial, type?: number);
- constructor(geometry?: BufferGeometry, material?: ShaderMaterial, type?: number);
+ constructor(geometry?: Geometry, material?: LineDashedMaterial, mode?: number);
+ constructor(geometry?: Geometry, material?: LineBasicMaterial, mode?: number);
+ constructor(geometry?: Geometry, material?: ShaderMaterial, mode?: number);
+ constructor(geometry?: BufferGeometry, material?: LineDashedMaterial, mode?: number);
+ constructor(geometry?: BufferGeometry, material?: LineBasicMaterial, mode?: number);
+ constructor(geometry?: BufferGeometry, material?: ShaderMaterial, mode?: number);
geometry: Geometry;
material: LineBasicMaterial;
- type: LineType;
+ mode: LineMode;
raycast(raycaster: Raycaster, intersects: any): void;
clone(object?: Line): Line;
}
- enum LineType{}
- var LineStrip: LineType;
- var LinePieces: LineType;
+ enum LineMode{}
+ var LineStrip: LineMode;
+ var LinePieces: LineMode;
export class LOD extends Object3D {
constructor();
@@ -4119,7 +4146,6 @@ declare module THREE {
material: SpriteMaterial;
raycast(raycaster: Raycaster, intersects: any): void;
- updateMatrix(): void;
clone(object?: Sprite): Sprite;
}
@@ -4132,46 +4158,6 @@ declare module THREE {
domElement: HTMLCanvasElement;
}
- export interface CanvasRendererParameters {
- canvas?: HTMLCanvasElement;
- devicePixelRatio?: number;
- }
-
- export class CanvasRenderer implements Renderer {
- constructor(parameters?: CanvasRendererParameters);
-
- domElement: HTMLCanvasElement;
- devicePixelRatio: number;
- autoClear: boolean;
- sortObjects: boolean;
- sortElements: boolean;
- info: { render: { vertices: number; faces: number; }; };
-
- supportsVertexTextures(): void;
- setFaceCulling(): void;
- setSize(width: number, height: number, updateStyle?: boolean): void;
- setViewport(x: number, y: number, width: number, height: number): void;
- setScissor(): void;
- enableScissorTest(): void;
- setClearColor(color: Color, opacity?: number): void;
- setClearColor(color: string, opacity?: number): void;
- setClearColor(color: number, opacity?: number): void;
- setClearColorHex(hex: number, alpha?: number): void;
- getClearColor(): Color;
- getClearAlpha(): number;
- getMaxAnisotropy(): number;
- clear(): void;
- clearColor(): void;
- clearDepth(): void;
- clearStencil(): void;
- render(scene: Scene, camera: Camera): void;
- }
-
- export interface RendererPlugin {
- init(renderer: WebGLRenderer): void;
- render(scene: Scene, camera: Camera, currentWidth: number, currentHeight: number): void;
- }
-
export interface WebGLRendererParameters {
/**
* A Canvas where the renderer draws its output.
@@ -4289,11 +4275,6 @@ declare module THREE {
*/
shadowMapEnabled: boolean;
- /**
- * Default is true.
- */
- shadowMapAutoUpdate: boolean;
-
/**
* Defines shadow map type (unfiltered, percentage close filtering, percentage close filtering with bilinear filtering in shader)
* Options are THREE.BasicShadowMap, THREE.PCFShadowMap, THREE.PCFSoftShadowMap. Default is THREE.PCFShadowMap.
@@ -4330,18 +4311,6 @@ declare module THREE {
*/
autoScaleCubemaps: boolean;
- /**
- * An array with render plugins to be applied before rendering.
- * Default is an empty array, or [].
- */
- renderPluginsPre: RendererPlugin[];
-
- /**
- * An array with render plugins to be applied after rendering.
- * Default is an empty array, or [].
- */
- renderPluginsPost: RendererPlugin[];
-
/**
* An object with a series of statistical information about the graphics board memory and the rendering process. Useful for debugging or just for the sake of curiosity. The object contains the following fields:
*/
@@ -4373,6 +4342,8 @@ declare module THREE {
supportsFloatTextures(): boolean;
supportsStandardDerivatives(): boolean;
supportsCompressedTextureS3TC(): boolean;
+ supportsCompressedTexturePVRTC(): boolean;
+ supportsBlendMinMax(): boolean;
getMaxAnisotropy(): number;
getPrecision(): string;
@@ -4434,16 +4405,7 @@ declare module THREE {
clearDepth(): void;
clearStencil(): void;
clearTarget(renderTarget:WebGLRenderTarget, color: boolean, depth: boolean, stencil: boolean): void;
-
- /**
- * Initialises the postprocessing plugin, and adds it to the renderPluginsPost array.
- */
- addPostPlugin(plugin: RendererPlugin): void;
-
- /**
- * Initialises the preprocessing plugin, and adds it to the renderPluginsPre array.
- */
- addPrePlugin(plugin: RendererPlugin): void;
+ resetGLState(): void;
/**
* Tells the shadow map plugin to update using the passed scene and camera parameters.
@@ -4466,7 +4428,6 @@ declare module THREE {
*/
render(scene: Scene, camera: Camera, renderTarget?: RenderTarget, forceClear?: boolean): void;
renderImmediateObject(camera: Camera, lights: Light[], fog: Fog, material: Material, object: Object3D): void;
- initMaterial(material: Material, lights: Light[], fog: Fog, object: Object3D): void;
/**
* Used for setting the gl frontFace, cullFace states in the GPU, thus enabling/disabling face culling when rendering.
@@ -4479,8 +4440,10 @@ declare module THREE {
setDepthTest(depthTest: boolean): void;
setDepthWrite(depthWrite: boolean): void;
setBlending(blending: Blending, blendEquation: BlendingEquation, blendSrc: BlendingSrcFactor, blendDst: BlendingDstFactor): void;
+ uploadTexture(texture: Texture): void;
setTexture(texture: Texture, slot: number): void;
setRenderTarget(renderTarget: RenderTarget): void;
+
}
export interface RenderTarget {
@@ -4534,67 +4497,6 @@ declare module THREE {
activeCubeFace: number; // PX 0, NX 1, PY 2, NY 3, PZ 4, NZ 5
}
- // Renderers / Renderables /////////////////////////////////////////////////////////////////////
- export class RenderableFace {
- constructor();
-
- id: number;
- v1: RenderableVertex;
- v2: RenderableVertex;
- v3: RenderableVertex;
- normalModel: Vector3;
- vertexNormalsModel: Vector3[];
- vertexNormalsLength: number;
- color: Color;
- material: Material;
- uvs: Vector2[][];
- z: number;
-
- }
-
- export class RenderableLine {
- constructor();
-
- id: number;
- v1: RenderableVertex;
- v2: RenderableVertex;
- vertexColors: Color[];
- material: Material;
- z: number;
- }
-
- export class RenderableObject {
- constructor();
-
- id: number;
- object: Object;
- z: number;
- }
-
- export class RenderableSprite {
- constructor();
-
- id: number;
- object: Object;
- x: number;
- y: number;
- z: number;
- rotation: number;
- scale: Vector2;
- material: Material;
- }
-
- export class RenderableVertex {
- constructor();
-
- position: Vector3;
- positionWorld: Vector3;
- positionScreen: Vector4;
- visible: boolean;
-
- copy(vertex: RenderableVertex): void;
- }
-
// Renderers / Shaders /////////////////////////////////////////////////////////////////////
export interface ShaderChunk {
[name: string]: string;
@@ -4692,14 +4594,57 @@ declare module THREE {
};
// Renderers / WebGL /////////////////////////////////////////////////////////////////////
+ export class WebGLExtensions{
+ constructor(gl: any); // WebGLRenderingContext
+
+ get(name: string): any;
+ }
+
export class WebGLProgram{
constructor(renderer: WebGLRenderer, code: string, material: ShaderMaterial, parameters: WebGLRendererParameters);
+
+ attributes: any;
+ attributesKeys: string[];
+ id: number;
+ code: string;
+ usedTimes: number;
+ program: any;
+ vertexShader: WebGLShader;
+ fragmentShader: WebGLShader;
}
export class WebGLShader{
constructor(gl: any, type: string, string: string);
}
+ // Renderers / WebGL / Plugins /////////////////////////////////////////////////////////////////////
+ export interface RendererPlugin {
+ init(renderer: WebGLRenderer): void;
+ render(scene: Scene, camera: Camera, currentWidth: number, currentHeight: number): void;
+ }
+
+ export class LensFlarePlugin implements RendererPlugin {
+ constructor();
+
+ init(renderer: Renderer): void;
+ render(scene: Scene, camera: Camera, viewportWidth: number, viewportHeight: number): void;
+ }
+
+ export class ShadowMapPlugin implements RendererPlugin {
+ constructor();
+
+ init(renderer: Renderer): void;
+ render(scene: Scene, camera: Camera): void;
+ update(scene: Scene, camera: Camera): void;
+ }
+
+ export class SpritePlugin implements RendererPlugin {
+ constructor();
+
+ init(renderer: Renderer): void;
+ render(scene: Scene, camera: Camera, viewportWidth: number, viewportHeight: number): void;
+ }
+
// Scenes /////////////////////////////////////////////////////////////////////
export interface IFog {
@@ -4771,10 +4716,7 @@ declare module THREE {
overrideMaterial: Material;
autoUpdate: boolean;
- /**
- * Default is false.
- */
- matrixAutoUpdate: boolean;
+ clone(): Scene;
}
// Textures /////////////////////////////////////////////////////////////////////
@@ -4795,6 +4737,7 @@ declare module THREE {
image: { width: number; height: number; };
mipmaps: ImageData[];
+ flipY: boolean;
generateMipmaps: boolean;
clone(): CompressedTexture;
@@ -4840,7 +4783,7 @@ declare module THREE {
export class Texture {
constructor(
- image: any, // HTMLImageElement or HTMLCanvasElement
+ image: any, // HTMLImageElement or HTMLCanvasElement ( or HTMLVideoElement)
mapping?: Mapping,
wrapS?: Wrapping,
wrapT?: Wrapping,
@@ -4919,6 +4862,22 @@ declare module THREE {
dispatchEvent(event: { type: string; target: any; }): void;
}
+ class VideoTexture extends Texture {
+ constructor(
+ video: HTMLVideoElement,
+ mapping?: MappingConstructor,
+ wrapS?: Wrapping,
+ wrapT?: Wrapping,
+ magFilter?: TextureFilter,
+ minFilter?: TextureFilter,
+ format?: PixelFormat,
+ type?: TextureDataType,
+ anisotropy?: number
+ );
+
+ generateMipmaps: boolean;
+ }
+
// Extras /////////////////////////////////////////////////////////////////////
export interface TypefaceData {
@@ -5012,6 +4971,7 @@ declare module THREE {
play(startTime?: number, weight?: number): void;
stop(): void;
reset(): void;
+ resetBlendWeights(): void;
update(deltaTimeMS: number): void;
getNextKeyWith(type: string, h: number, key: number): KeyFrame;
getPrevKeyWith(type: string, h: number, key: number): KeyFrame;
@@ -5065,6 +5025,32 @@ declare module THREE {
update(deltaTimeMS: number): void;
}
+ // Extras / Audio /////////////////////////////////////////////////////////////////////
+
+ export class Audio extends Object3D {
+ constructor(listener: AudioListener);
+ type: string;
+ context: AudioContext;
+ source: AudioBufferSourceNode;
+ gain: GainNode;
+ panner: PannerNode;
+
+ load(file: string): Audio;
+ setLoop(value: boolean): void;
+ setRefDistance(value: number): void;
+ setRolloffFactor(value: number): void;
+ updateMatrixWorld(force?: boolean): void;
+ }
+
+ export class AudioListener extends Object3D {
+ constructor();
+
+ type: string;
+ context: AudioContext;
+
+ updateMatrixWorld(force?: boolean): void;
+ }
+
// Extras / Core /////////////////////////////////////////////////////////////////////
/**
@@ -5172,13 +5158,6 @@ declare module THREE {
export class Gyroscope extends Object3D {
constructor();
- translationWorld: Vector3;
- translationObject: Vector3;
- quaternionWorld: Quaternion;
- quaternionObject: Quaternion;
- scaleWorld: Vector3;
- scaleObject: Vector3;
-
updateMatrixWorld(force?: boolean): void;
}
@@ -5366,9 +5345,6 @@ declare module THREE {
heightSegments: number;
depthSegments: number;
};
- widthSegments: number;
- heightSegments: number;
- depthSegments: number;
}
export class CircleGeometry extends Geometry {
@@ -5380,10 +5356,6 @@ declare module THREE {
thetaStart: number;
thetaLength: number;
};
- radius: number;
- segments: number;
- thetaStart: number;
- thetaLength: number;
}
// deprecated
@@ -5409,54 +5381,60 @@ declare module THREE {
heightSegments: number;
openEnded: boolean;
};
- radiusTop: number;
- radiusBottom: number;
- height: number;
- radialSegments: number;
- heightSegments: number;
- openEnded: boolean;
+ }
+
+ export class DodecahedronGeometry extends Geometry {
+ constructor(radius: number, detail: number);
+
+ parameters: {
+ radius: number;
+ detail: number;
+ };
}
export class ExtrudeGeometry extends Geometry {
constructor(shape?: Shape, options?: any);
constructor(shapes?: Shape[], options?: any);
+ WorldUVGenerator: {
+ generateTopUV(geometry: Geometry, indexA: number, indexB: number, indexC: number): Vector2[];
+ generateSideWallUV(geometry: Geometry, indexA: number, indexB: number, indexC: number, indexD: number): Vector2[];
+ };
+
addShapeList(shapes: Shape[], options?: any): void;
addShape(shape: Shape, options?: any): void;
}
export class IcosahedronGeometry extends PolyhedronGeometry {
constructor(radius: number, detail: number);
-
- parameters: {
- radius: number;
- detail: number;
- };
- radius: number;
- detail: number;
}
export class LatheGeometry extends Geometry {
constructor(points: Vector3[], segments?: number, phiStart?: number, phiLength?: number);
-
+
+ parameters: {
+ points: Vector3[];
+ segments: number;
+ phiStart: number;
+ phiLength: number;
+ };
}
export class OctahedronGeometry extends PolyhedronGeometry {
constructor(radius: number, detail: number);
-
- parameters: {
- radius: number;
- detail: number;
- };
- radius: number;
- detail: number;
}
export class ParametricGeometry extends Geometry {
- constructor(func: (u: number, v: number) => Vector3, slices: number, stacks: number, useTris?: boolean);
+ constructor(func: (u: number, v: number) => Vector3, slices: number, stacks: number);
+
+ parameters: {
+ func: (u: number, v: number) => Vector3;
+ slices: number;
+ stacks: number;
+ };
}
- export class PlaneGeometry extends Geometry {
+ export class PlaneBufferGeometry extends Geometry {
constructor(width: number, height: number, widthSegments?: number, heightSegments?: number);
parameters: {
@@ -5465,24 +5443,40 @@ declare module THREE {
widthSegments: number;
heightSegments: number;
};
- width: number;
- height: number;
- widthSegments: number;
- heightSegments: number;
+ }
+
+ export class PlaneGeometry extends PlaneBufferGeometry {
}
export class PolyhedronGeometry extends Geometry {
constructor(vertices: Vector3[], faces: Face3[], radius?: number, detail?: number);
+
+ parameters: {
+ vertices: Vector3[];
+ faces: Face3[];
+ radius: number;
+ detail: number;
+ };
}
export class RingGeometry extends Geometry {
constructor(innerRadius?: number, outerRadius?: number, thetaSegments?: number, phiSegments?: number, thetaStart?: number, thetaLength?: number);
+
+ parameters: {
+ innerRadius: number;
+ outerRadius: number;
+ thetaSegments: number;
+ phiSegments: number;
+ thetaStart: number;
+ thetaLength: number;
+ };
}
export class ShapeGeometry extends Geometry {
constructor(shape: Shape, options?: any);
constructor(shapes: Shape[], options?: any);
+
addShapeList(shapes: Shape[], options: any): ShapeGeometry;
addShape(shape: Shape, options?: any): void;
}
@@ -5513,13 +5507,6 @@ declare module THREE {
thetaStart: number;
thetaLength: number;
};
- radius: number;
- widthSegments: number;
- heightSegments: number;
- phiStart: number;
- phiLength: number;
- thetaStart: number;
- thetaLength: number;
}
export class TetrahedronGeometry extends PolyhedronGeometry {
@@ -5552,11 +5539,6 @@ declare module THREE {
tubularSegments: number;
arc: number;
};
- radius: number;
- tube: number;
- radialSegments: number;
- tubularSegments: number;
- arc: number;
}
export class TorusKnotGeometry extends Geometry {
@@ -5571,13 +5553,6 @@ declare module THREE {
q: number;
heightScale: number;
};
- radius: number;
- tube: number;
- radialSegments: number;
- tubularSegments: number;
- p: number;
- q: number;
- heightScale: number;
}
export class TubeGeometry extends Geometry {
@@ -5590,11 +5565,6 @@ declare module THREE {
radialSegments: number;
closed: boolean;
};
- path: Path;
- segments: number;
- radius: number;
- radialSegments: number;
- closed: boolean;
tangents: Vector3[];
normals: Vector3[];
binormals: Vector3[];
@@ -5749,34 +5719,6 @@ declare module THREE {
render(renderCallback:Function): void;
}
- export interface LensFlareProperty {
- texture: Texture; // Texture
- size: number; // size in pixels (-1 = use texture.width)
- distance: number; // distance (0-1) from light source (0=at light source)
- x: number;
- y: number;
- z: number; // screen position (-1 => 1) z = 0 is ontop z = 1 is back
- scale: number; // scale
- rotation: number; // rotation
- opacity: number; // opacity
- color: Color; // color
- blending: Blending;
- }
-
- export class LensFlare extends Object3D {
- constructor(texture?: Texture, size?: number, distance?: number, blending?: Blending, color?: Color);
-
- lensFlares: LensFlareProperty[];
- positionScreen: Vector3;
- customUpdateCallback: (object: LensFlare) => void;
-
- add(texture: Texture, size?: number, distance?: number, blending?: Blending, color?: Color): void;
- add(obj: Object3D): void;
-
-
- updateLensFlares(): void;
- }
-
export interface MorphBlendMeshAnimation {
startFrame: number;
endFrame: number;
@@ -5813,54 +5755,6 @@ declare module THREE {
stopAnimation(name: string): void;
update(delta: number): void;
}
-
- // Extras / Renderers / Plugins /////////////////////////////////////////////////////////////////////
-
- export class DepthPassPlugin implements RendererPlugin {
- constructor();
-
- enabled: boolean;
- renderTarget: RenderTarget;
-
- init(renderer: Renderer): void;
- render(scene: Scene, camera: Camera): void;
- update(scene: Scene, camera: Camera): void;
- }
-
- export class LensFlarePlugin implements RendererPlugin {
- constructor();
-
- init(renderer: Renderer): void;
- render(scene: Scene, camera: Camera, viewportWidth: number, viewportHeight: number): void;
- }
-
- export class ShadowMapPlugin implements RendererPlugin {
- constructor();
-
- init(renderer: Renderer): void;
- render(scene: Scene, camera: Camera): void;
- update(scene: Scene, camera: Camera): void;
- }
-
- export class SpritePlugin implements RendererPlugin {
- constructor();
-
- init(renderer: Renderer): void;
- render(scene: Scene, camera: Camera, viewportWidth: number, viewportHeight: number): void;
- }
-
- // Extras / Shaders /////////////////////////////////////////////////////////////////////
-
- export var ShaderFlares: {
- 'lensFlareVertexTexture': {
- vertexShader: string;
- fragmentShader: string;
- };
- 'lensFlare': {
- vertexShader: string;
- fragmentShader: string;
- };
- };
}
declare module 'three' {