diff --git a/three/index.d.ts b/three/index.d.ts index b4b4995ee8..100e3ecf8c 100644 --- a/three/index.d.ts +++ b/three/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for three.js 0.83 // Project: http://mrdoob.github.com/three.js/ -// Definitions by: Kon , Satoru Kimura , Florent Poujol , SereznoKot +// Definitions by: Kon , Satoru Kimura , Florent Poujol , SereznoKot , HouChunlei // Definitions: https://github.com/borisyankov/DefinitelyTyped /// @@ -20,6 +20,8 @@ /// /// /// +/// +/// declare namespace THREE { export const REVISION: string; @@ -1996,7 +1998,7 @@ declare namespace THREE { mimeType: MimeType; path: string; responseType: string; - withCredentials: string + withCredentials: string; load(url: string, onLoad?: (responseText: string) => void, onProgress?: (request: ProgressEvent) => void, onError?:(event: ErrorEvent) => void): any; setMimeType(mimeType: MimeType): FileLoader; @@ -3589,7 +3591,7 @@ declare namespace THREE { radius: number; phi: number; theta: number; - + set(radius: number, phi: number, theta: number): Spherical; clone(): this; copy(other: this): this; diff --git a/three/test/examples/ctm/ctmloader.ts b/three/test/examples/ctm/ctmloader.ts new file mode 100644 index 0000000000..e35cffb6a4 --- /dev/null +++ b/three/test/examples/ctm/ctmloader.ts @@ -0,0 +1,7 @@ +/// + +let _ctmloader = new THREE.CTMLoader(); +_ctmloader.load('https://github.com/mrdoob/three.js/blob/master/examples/models/ctm/ben.ctm', (geo: any) => { + console.log(geo.position); +}); + diff --git a/three/test/examples/octree.ts b/three/test/examples/octree.ts new file mode 100644 index 0000000000..de7de86ac7 --- /dev/null +++ b/three/test/examples/octree.ts @@ -0,0 +1,11 @@ +/// + +let _octree = new THREE.Octree({ + underferred: false, + depthMax: Infinity, + objectsThreshold: 8, + overlapPct: 0.15, +}); + +console.log(_octree.getDepthEnd()); + diff --git a/three/three-FirstPersonControls.d.ts b/three/three-FirstPersonControls.d.ts index e66e728459..0f85f90bdd 100644 --- a/three/three-FirstPersonControls.d.ts +++ b/three/three-FirstPersonControls.d.ts @@ -8,6 +8,7 @@ declare namespace THREE { class FirstPersonControls { constructor(object: Camera, domElement?: HTMLElement); + object: THREE.Object3D; target: THREE.Vector3; domElement: HTMLCanvasElement | HTMLDocument; @@ -38,7 +39,9 @@ declare namespace THREE { moveRight: boolean; freeze: boolean; mouseDragOn: boolean; + update(delta: number): void; + dispose(): void; } } diff --git a/three/three-canvasrenderer.d.ts b/three/three-canvasrenderer.d.ts index 159c606273..c37f223c56 100644 --- a/three/three-canvasrenderer.d.ts +++ b/three/three-canvasrenderer.d.ts @@ -1,10 +1,10 @@ // Type definitions for three.js (CanvasRenderer.js) // Project: https://github.com/mrdoob/three.js/blob/master/examples/js/renderers/CanvasRenderer.js -// Definitions by: Satoru Kimura +// Definitions by: Satoru Kimura < https://github.com/gyohk > // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace THREE { - export interface SpriteCanvasMaterialParameters extends MaterialParameters{ + export interface SpriteCanvasMaterialParameters extends MaterialParameters { color?: number; program?: (context: any, color: Color) => void; } @@ -30,27 +30,45 @@ declare namespace THREE { autoClear: boolean; sortObjects: boolean; sortElements: boolean; - info: { render: { vertices: number; faces: number; }; }; + info: {render: {vertices: number; faces: number;};}; supportsVertexTextures(): void; + setFaceCulling(): void; + getPixelRatio(): number; + setPixelRatio(value: number): 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; + + setClearColor(color: Color | string | number, 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; } } diff --git a/three/three-copyshader.d.ts b/three/three-copyshader.d.ts index ff28c682ee..05ff6a5f04 100644 --- a/three/three-copyshader.d.ts +++ b/three/three-copyshader.d.ts @@ -4,7 +4,6 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { - export var CopyShader: Shader; + export var CopyShader: Shader; } diff --git a/three/three-css3drenderer.d.ts b/three/three-css3drenderer.d.ts index 7f015d4e69..94acb9f5cc 100644 --- a/three/three-css3drenderer.d.ts +++ b/three/three-css3drenderer.d.ts @@ -7,7 +7,6 @@ // https://github.com/mrdoob/three.js/issues/4783 - declare namespace THREE { class CSS3DObject extends Object3D { constructor(element: any); @@ -24,9 +23,10 @@ declare namespace THREE { class CSS3DRenderer { constructor(); - domElement:HTMLElement; + domElement: HTMLElement; setSize(width: number, height: number): void; + render(scene: THREE.Scene, camera: THREE.Camera): void; } } diff --git a/three/three-ctmloader.d.ts b/three/three-ctmloader.d.ts new file mode 100644 index 0000000000..0dd56a3b9a --- /dev/null +++ b/three/three-ctmloader.d.ts @@ -0,0 +1,36 @@ +// Type definitions for three.js (CTMLoader.js) +// Project: https://github.com/mrdoob/three.js/blob/master/examples/js/loaders/ctm/CTMLoader.js +// Definitions by: Hou Chunlei +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace THREE { + export class CTMLoader extends THREE.Loader { + constructor(); + + /** + * load multiple CTM parts defined in JSON. + * @param url(required) + * @param callback(required) + * @param parameters + */ + loadParts(url: string, callback: () => any, parameters?: any): any; + + /** + * Load CTMLoader compressed models + * @param url(required) + * @param callback(required) + * @param parameters + */ + load(url: string, callback: (geo: any) => any, parameters?: any): any; + + /** + * create buffergeometry by ctm file. + * @param file(required) + * @param callback(required) + */ + createModel(file: string, callback: () => any): any; + + } +} diff --git a/three/three-editorcontrols.d.ts b/three/three-editorcontrols.d.ts index 9ed2a0ceb5..6f2e6402ed 100644 --- a/three/three-editorcontrols.d.ts +++ b/three/three-editorcontrols.d.ts @@ -4,22 +4,25 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { - class EditorControls extends EventDispatcher { + class EditorControls extends EventDispatcher { - constructor(object: Camera, domElement?:HTMLElement); + constructor(object: Camera, domElement?: HTMLElement); - enabled: boolean; - center: THREE.Vector3; + enabled: boolean; + center: THREE.Vector3; - focus(target: THREE.Object3D, frame: boolean): void; - pan(delta: THREE.Vector3): void; - zoom(delta: THREE.Vector3): void; - rotate(delta: THREE.Vector3): void; - dispose(): void; + focus(target: THREE.Object3D, frame: boolean): void; - } + pan(delta: THREE.Vector3): void; + + zoom(delta: THREE.Vector3): void; + + rotate(delta: THREE.Vector3): void; + + dispose(): void; + + } } diff --git a/three/three-effectcomposer.d.ts b/three/three-effectcomposer.d.ts index 16ed7d33a5..45b586aa55 100644 --- a/three/three-effectcomposer.d.ts +++ b/three/three-effectcomposer.d.ts @@ -4,25 +4,27 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - - - declare namespace THREE { - export class EffectComposer { - constructor( renderer: WebGLRenderer, renderTarget?: WebGLRenderTarget); + export class EffectComposer { + constructor(renderer: WebGLRenderer, renderTarget?: WebGLRenderTarget); - renderTarget1: WebGLRenderTarget; - renderTarget2: WebGLRenderTarget; - writeBuffer: WebGLRenderTarget; - readBuffer: WebGLRenderTarget; - passes: any[]; - copyPass: ShaderPass; + renderTarget1: WebGLRenderTarget; + renderTarget2: WebGLRenderTarget; + writeBuffer: WebGLRenderTarget; + readBuffer: WebGLRenderTarget; + passes: any[]; + copyPass: ShaderPass; - swapBuffers(): void; - addPass(pass: any): void; - insertPass(pass: any, index: number): void; - render(delta?: number): void; - reset(renderTarget?: WebGLRenderTarget): void; - setSize( width: number, height: number ): void; - } + swapBuffers(): void; + + addPass(pass: any): void; + + insertPass(pass: any, index: number): void; + + render(delta?: number): void; + + reset(renderTarget?: WebGLRenderTarget): void; + + setSize(width: number, height: number): void; + } } diff --git a/three/three-maskpass.d.ts b/three/three-maskpass.d.ts index 8cabf2b8ad..15847324dd 100644 --- a/three/three-maskpass.d.ts +++ b/three/three-maskpass.d.ts @@ -4,26 +4,25 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { - export class MaskPass { - constructor( scene: Scene, camera: Camera); + export class MaskPass { + constructor(scene: Scene, camera: Camera); - scene: Scene; - camera: Camera; - enabled: boolean; - clear: boolean; - needsSwap: boolean; - inverse: boolean; + scene: Scene; + camera: Camera; + enabled: boolean; + clear: boolean; + needsSwap: boolean; + inverse: boolean; render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, delta: number): void; - } + } - export class ClearMaskPass { - constructor(); + export class ClearMaskPass { + constructor(); - enabled: boolean; + enabled: boolean; render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, delta: number): void; - } + } } diff --git a/three/three-octree.d.ts b/three/three-octree.d.ts new file mode 100644 index 0000000000..dc534f98bc --- /dev/null +++ b/three/three-octree.d.ts @@ -0,0 +1,42 @@ +// Type definitions for three.js (Octree.js) +// Project: https://github.com/mrdoob/three.js/blob/master/examples/js/Octree.js +// Definitions by: Hou Chunlei +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +declare namespace THREE { + export class Octree { + constructor(parameters?: any); + + update(): void; + + add(object: any, options?: any): any; + + addDeferred(object: any, options?: any): any; + + addObjectData(object: any, part: any): any; + + remove(object: any): any; + + extend(octree: Octree): any; + + rebuild(): any; + + updateObject(object: any): any; + + search(position: THREE.Vector3, radius: number, organizeByObject: boolean, direction: THREE.Vector3): any; + + setRoot(root: any): any; + + getDepthEnd(): number; + + getNodeCountEnd(): number; + + getObjectCountEnd(): number; + + toConsole(): any; + + + } +} diff --git a/three/three-orbitcontrols.d.ts b/three/three-orbitcontrols.d.ts index 6ed41b4bf4..6f098d320d 100644 --- a/three/three-orbitcontrols.d.ts +++ b/three/three-orbitcontrols.d.ts @@ -4,7 +4,6 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { class OrbitControls { constructor(object: Camera, domElement?: HTMLElement); @@ -34,29 +33,43 @@ declare namespace THREE { minAzimuthAngle: number; maxAzimuthAngle: number; enableKeys: boolean; - keys: { LEFT: number; UP: number; RIGHT: number; BOTTOM: number; }; - mouseButtons: { ORBIT: MOUSE; ZOOM: MOUSE; PAN: MOUSE; }; + keys: {LEFT: number; UP: number; RIGHT: number; BOTTOM: number;}; + mouseButtons: {ORBIT: MOUSE; ZOOM: MOUSE; PAN: MOUSE;}; enableDamping: boolean; dampingFactor: number; rotateLeft(angle?: number): void; + rotateUp(angle?: number): void; + panLeft(distance?: number): void; + panUp(distance?: number): void; + pan(deltaX: number, deltaY: number): void; + dollyIn(dollyScale: number): void; + dollyOut(dollyScale: number): void; + update(): void; + reset(): void; + dispose(): void; + getPolarAngle(): number; + getAzimuthalAngle(): number; // EventDispatcher mixins addEventListener(type: string, listener: (event: any) => void): void; + hasEventListener(type: string, listener: (event: any) => void): void; + removeEventListener(type: string, listener: (event: any) => void): void; - dispatchEvent(event: { type: string; target: any; }): void; + + dispatchEvent(event: {type: string; target: any;}): void; } } diff --git a/three/three-orthographictrackballcontrols.d.ts b/three/three-orthographictrackballcontrols.d.ts index ea19c2a73d..0051ac9095 100644 --- a/three/three-orthographictrackballcontrols.d.ts +++ b/three/three-orthographictrackballcontrols.d.ts @@ -4,48 +4,53 @@ // Definitions: https://github.com/borisyankov/DefinitelyTyped +declare namespace THREE { + export class OrthographicTrackballControls extends EventDispatcher { + constructor(object: Camera, domElement?: HTMLElement); -declare module THREE { - class OrthographicTrackballControls extends EventDispatcher { - constructor(object:Camera, domElement?:HTMLElement); + object: Camera; + domElement: HTMLElement; - object:Camera; - domElement:HTMLElement; + // API + enabled: boolean; + screen: {left: number; top: number; width: number; height: number}; + radius: number; + rotateSpeed: number; + zoomSpeed: number; + panSpeed: number; + noRotate: boolean; + noZoom: boolean; + noPan: boolean; + noRoll: boolean; + staticMoving: boolean; + dynamicDampingFactor: number; + keys: number[]; - // API - enabled:boolean; - screen:{ left: number; top: number; width: number; height: number }; - radius:number; - rotateSpeed:number; - zoomSpeed:number; - panSpeed:number; - noRotate:boolean; - noZoom:boolean; - noPan:boolean; - noRoll:boolean; - staticMoving:boolean; - dynamicDampingFactor:number; - keys:number[]; + target: THREE.Vector3; - target: THREE.Vector3; + position0: THREE.Vector3; + target0: THREE.Vector3; + up0: THREE.Vector3; - position0: THREE.Vector3; - target0: THREE.Vector3; - up0: THREE.Vector3; + left0: number; + right0: number; + top0: number; + bottom0: number; - left0: number; - right0: number; - top0: number; - bottom0: number; + update(): void; - update():void; - reset():void; - checkDistances():void; - zoomCamera():void; - panCamera():void; - rotateCamera():void; + reset(): void; - handleResize():void; - handleEvent(event: any):void; - } + checkDistances(): void; + + zoomCamera(): void; + + panCamera(): void; + + rotateCamera(): void; + + handleResize(): void; + + handleEvent(event: any): void; + } } diff --git a/three/three-projector.d.ts b/three/three-projector.d.ts index ef339b25e3..574d3f969f 100644 --- a/three/three-projector.d.ts +++ b/three/three-projector.d.ts @@ -4,14 +4,13 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { // Renderers / Renderables ///////////////////////////////////////////////////////////////////// export class RenderableObject { constructor(); id: number; - object: Object; + object: any; z: number; } @@ -58,7 +57,7 @@ declare namespace THREE { constructor(); id: number; - object: Object; + object: any; x: number; y: number; z: number; diff --git a/three/three-renderpass.d.ts b/three/three-renderpass.d.ts index 842ad7faf1..01022fd854 100644 --- a/three/three-renderpass.d.ts +++ b/three/three-renderpass.d.ts @@ -4,24 +4,23 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { - export class RenderPass { - constructor( scene: Scene, camera: Camera, overrideMaterial?: Material, clearColor?: Color, clearAlpha?: number ); - constructor( scene: Scene, camera: Camera, overrideMaterial?: Material, clearColor?: string, clearAlpha?: number ); - constructor( scene: Scene, camera: Camera, overrideMaterial?: Material, clearColor?: number, clearAlpha?: number ); + export class RenderPass { + // constructor(scene: Scene, camera: Camera, overrideMaterial?: Material, clearColor?: Color, clearAlpha?: number); + constructor(scene: Scene, camera: Camera, overrideMaterial?: Material, clearColor?: Color | string | number, clearAlpha?: number); + // constructor(scene: Scene, camera: Camera, overrideMaterial?: Material, clearColor?: number, clearAlpha?: number); - scene: Scene; - camera: Camera; - overrideMaterial: Material; - clearColor: any; // Color or string or number - clearAlpha: number; - oldClearColor: Color; - oldClearAlpha: number; - enabled: boolean; - clear: boolean; - needsSwap: boolean; + scene: Scene; + camera: Camera; + overrideMaterial: Material; + clearColor: any; // Color or string or number + clearAlpha: number; + oldClearColor: Color; + oldClearAlpha: number; + enabled: boolean; + clear: boolean; + needsSwap: boolean; render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, delta: number): void; - } + } } diff --git a/three/three-shaderpass.d.ts b/three/three-shaderpass.d.ts index cce304b523..8fb9341375 100644 --- a/three/three-shaderpass.d.ts +++ b/three/three-shaderpass.d.ts @@ -4,22 +4,21 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { - export class ShaderPass { - constructor( shader: Shader, textureID?: string ); + export class ShaderPass { + constructor(shader: Shader, textureID?: string); - textureID: string; - uniforms: any; - material: ShaderMaterial; - renderToScreen: boolean; - enabled: boolean; - needsSwap: boolean; - clear: boolean; - camera: Camera; - scene: Scene; - quad: Mesh; + textureID: string; + uniforms: any; + material: ShaderMaterial; + renderToScreen: boolean; + enabled: boolean; + needsSwap: boolean; + clear: boolean; + camera: Camera; + scene: Scene; + quad: Mesh; - render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, delta: number): void; - } + render(renderer: WebGLRenderer, writeBuffer: WebGLRenderTarget, readBuffer: WebGLRenderTarget, delta: number): void; + } } diff --git a/three/three-trackballcontrols.d.ts b/three/three-trackballcontrols.d.ts index 59021b17b6..aa81100a0d 100644 --- a/three/three-trackballcontrols.d.ts +++ b/three/three-trackballcontrols.d.ts @@ -4,43 +4,48 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { class TrackballControls extends EventDispatcher { - constructor(object:Camera, domElement?:HTMLElement); + constructor(object: Camera, domElement?: HTMLElement); - object:Camera; - domElement:HTMLElement; + object: Camera; + domElement: HTMLElement; // API - enabled:boolean; - screen:{ left: number; top: number; width: number; height: number }; - rotateSpeed:number; - zoomSpeed:number; - panSpeed:number; - noRotate:boolean; - noZoom:boolean; - noPan:boolean; - noRoll:boolean; - staticMoving:boolean; - dynamicDampingFactor:number; - minDistance:number; - maxDistance:number; - keys:number[]; + enabled: boolean; + screen: {left: number; top: number; width: number; height: number}; + rotateSpeed: number; + zoomSpeed: number; + panSpeed: number; + noRotate: boolean; + noZoom: boolean; + noPan: boolean; + noRoll: boolean; + staticMoving: boolean; + dynamicDampingFactor: number; + minDistance: number; + maxDistance: number; + keys: number[]; target: THREE.Vector3; position0: THREE.Vector3; target0: THREE.Vector3; up0: THREE.Vector3; - update():void; - reset():void; - checkDistances():void; - zoomCamera():void; - panCamera():void; - rotateCamera():void; + update(): void; - handleResize():void; - handleEvent(event: any):void; + reset(): void; + + checkDistances(): void; + + zoomCamera(): void; + + panCamera(): void; + + rotateCamera(): void; + + handleResize(): void; + + handleEvent(event: any): void; } } diff --git a/three/three-transformcontrols.d.ts b/three/three-transformcontrols.d.ts index e6d2638540..5d41149cd5 100644 --- a/three/three-transformcontrols.d.ts +++ b/three/three-transformcontrols.d.ts @@ -4,21 +4,27 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - declare namespace THREE { - class TransformControls extends Object3D { - constructor(object:Camera, domElement?:HTMLElement); + class TransformControls extends Object3D { + constructor(object: Camera, domElement?: HTMLElement); - object: Object3D; + object: Object3D; - update():void; - detach(): void; - attach(object: Object3D): void; - getMode(): string; - setMode(mode: string): void; - setSnap(snap: any): void; - setSize(size:number):void; - setSpace(space:string):void; + update(): void; - } + detach(): void; + + attach(object: Object3D): void; + + getMode(): string; + + setMode(mode: string): void; + + setSnap(snap: any): void; + + setSize(size: number): void; + + setSpace(space: string): void; + + } } diff --git a/three/three-vrcontrols.d.ts b/three/three-vrcontrols.d.ts index 9fe361bc17..080923b7ef 100644 --- a/three/three-vrcontrols.d.ts +++ b/three/three-vrcontrols.d.ts @@ -8,12 +8,13 @@ declare namespace THREE { export class VRControls { - constructor(camera: Camera, callback?: (param: string)=>void); + constructor(camera: Camera, callback?: (param: string) => void); /** * Update VR Instance Tracking */ update(): void; + zeroSensor(): void; scale: number; diff --git a/three/three-vreffect.d.ts b/three/three-vreffect.d.ts index 764acf1337..0c47318657 100644 --- a/three/three-vreffect.d.ts +++ b/three/three-vreffect.d.ts @@ -8,25 +8,33 @@ declare namespace THREE { export class VREffect { - constructor(renderer: Renderer, callback?: (params: string)=>void); + constructor(renderer: Renderer, callback?: (params: string) => void); + render(scene: Scene, camera: Camera): void; + setSize(width: number, height: number): void; + setFullScreen(flag: boolean): void; + startFullscreen(): void; + FovToNDCScaleOffset(fov: VRFov): VREffectOffset; + FovPortToProjection(fov: VRFov, rightHanded: boolean, zNear: number, zFar: number): Matrix4; + FovToProjection(fov: VRFov, rightHanded: boolean, zNear: number, zFar: number): Matrix4; + setVRDisplay(display: VRDisplay): void; } - export interface VRFov{ + export interface VRFov { leftTan: number; rightTan: number; upTan: number; downTan: number; } - export interface VREffectOffset{ + export interface VREffectOffset { scale: number; offset: number; } diff --git a/three/tsconfig.json b/three/tsconfig.json index e140c6668c..37a325d404 100644 --- a/three/tsconfig.json +++ b/three/tsconfig.json @@ -49,6 +49,8 @@ "test/canvas/canvas_particles_floor.ts", "test/examples/detector.ts", "test/examples/effects/vreffect.ts", - "test/examples/controls/vrcontrols.ts" + "test/examples/controls/vrcontrols.ts", + "test/examples/ctm/ctmloader.ts", + "test/examples/octree.ts" ] -} \ No newline at end of file +}