Skip to content

Commit 4b073dc

Browse files
authored
Merge pull request #15947 from Methuselah96/add-typescript-for-jsm
Add TypeScript definitions for example modules
2 parents 983a702 + 0eac074 commit 4b073dc

File tree

5 files changed

+234
-0
lines changed

5 files changed

+234
-0
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import {
2+
Camera,
3+
EventDispatcher,
4+
MOUSE,
5+
Object3D,
6+
Vector3
7+
} from '../../../src/Three';
8+
9+
export class MapControls extends EventDispatcher {
10+
constructor(object: Camera, domElement?: HTMLElement);
11+
12+
object: Camera;
13+
domElement: HTMLElement | HTMLDocument;
14+
15+
// API
16+
enabled: boolean;
17+
target: Vector3;
18+
19+
enableZoom: boolean;
20+
zoomSpeed: number;
21+
minDistance: number;
22+
maxDistance: number;
23+
enableRotate: boolean;
24+
rotateSpeed: number;
25+
enablePan: boolean;
26+
keyPanSpeed: number;
27+
maxZoom: number;
28+
minZoom: number;
29+
panSpeed: number;
30+
autoRotate: boolean;
31+
autoRotateSpeed: number;
32+
minPolarAngle: number;
33+
maxPolarAngle: number;
34+
minAzimuthAngle: number;
35+
maxAzimuthAngle: number;
36+
enableKeys: boolean;
37+
screenSpacePanning: boolean;
38+
keys: { LEFT: number; UP: number; RIGHT: number; BOTTOM: number };
39+
mouseButtons: { LEFT: MOUSE; MIDDLE: MOUSE; RIGHT: MOUSE };
40+
enableDamping: boolean;
41+
dampingFactor: number;
42+
target0: Vector3;
43+
position0: Vector3;
44+
zoom0: number;
45+
46+
rotateLeft(angle?: number): void;
47+
48+
rotateUp(angle?: number): void;
49+
50+
panLeft(distance?: number): void;
51+
52+
panUp(distance?: number): void;
53+
54+
pan(deltaX: number, deltaY: number): void;
55+
56+
dollyIn(dollyScale: number): void;
57+
58+
dollyOut(dollyScale: number): void;
59+
60+
saveState(): void;
61+
62+
update(): boolean;
63+
64+
reset(): void;
65+
66+
dispose(): void;
67+
68+
getPolarAngle(): number;
69+
70+
getAzimuthalAngle(): number;
71+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { Camera, MOUSE, Object3D, Vector3 } from '../../../src/Three';
2+
3+
export class OrbitControls {
4+
constructor(object: Camera, domElement?: HTMLElement);
5+
6+
object: Camera;
7+
domElement: HTMLElement | HTMLDocument;
8+
9+
// API
10+
enabled: boolean;
11+
target: Vector3;
12+
13+
// deprecated
14+
center: Vector3;
15+
16+
enableZoom: boolean;
17+
zoomSpeed: number;
18+
minDistance: number;
19+
maxDistance: number;
20+
enableRotate: boolean;
21+
rotateSpeed: number;
22+
enablePan: boolean;
23+
keyPanSpeed: number;
24+
autoRotate: boolean;
25+
autoRotateSpeed: number;
26+
minPolarAngle: number;
27+
maxPolarAngle: number;
28+
minAzimuthAngle: number;
29+
maxAzimuthAngle: number;
30+
enableKeys: boolean;
31+
keys: {LEFT: number; UP: number; RIGHT: number; BOTTOM: number;};
32+
mouseButtons: {ORBIT: MOUSE; ZOOM: MOUSE; PAN: MOUSE;};
33+
enableDamping: boolean;
34+
dampingFactor: number;
35+
screenSpacePanning: boolean;
36+
37+
38+
rotateLeft(angle?: number): void;
39+
40+
rotateUp(angle?: number): void;
41+
42+
panLeft(distance?: number): void;
43+
44+
panUp(distance?: number): void;
45+
46+
pan(deltaX: number, deltaY: number): void;
47+
48+
dollyIn(dollyScale: number): void;
49+
50+
dollyOut(dollyScale: number): void;
51+
52+
update(): void;
53+
54+
reset(): void;
55+
56+
dispose(): void;
57+
58+
getPolarAngle(): number;
59+
60+
getAzimuthalAngle(): number;
61+
62+
// EventDispatcher mixins
63+
addEventListener(type: string, listener: (event: any) => void): void;
64+
65+
hasEventListener(type: string, listener: (event: any) => void): boolean;
66+
67+
removeEventListener(type: string, listener: (event: any) => void): void;
68+
69+
dispatchEvent(event: {type: string; target: any;}): void;
70+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { Camera, EventDispatcher, Vector3 } from '../../../src/Three';
2+
3+
export class TrackballControls extends EventDispatcher {
4+
constructor(object: Camera, domElement?: HTMLElement);
5+
6+
object: Camera;
7+
domElement: HTMLElement;
8+
9+
// API
10+
enabled: boolean;
11+
screen: {left: number; top: number; width: number; height: number};
12+
rotateSpeed: number;
13+
zoomSpeed: number;
14+
panSpeed: number;
15+
noRotate: boolean;
16+
noZoom: boolean;
17+
noPan: boolean;
18+
noRoll: boolean;
19+
staticMoving: boolean;
20+
dynamicDampingFactor: number;
21+
minDistance: number;
22+
maxDistance: number;
23+
keys: number[];
24+
25+
target: Vector3;
26+
position0: Vector3;
27+
target0: Vector3;
28+
up0: Vector3;
29+
30+
update(): void;
31+
32+
reset(): void;
33+
34+
dispose(): void;
35+
36+
checkDistances(): void;
37+
38+
zoomCamera(): void;
39+
40+
panCamera(): void;
41+
42+
rotateCamera(): void;
43+
44+
handleResize(): void;
45+
46+
handleEvent(event: any): void;
47+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import {
2+
AnimationClip,
3+
Camera,
4+
LoadingManager,
5+
Scene
6+
} from '../../../src/Three';
7+
8+
export interface GLTF {
9+
animations: AnimationClip[];
10+
scene: Scene;
11+
scenes: Scene[];
12+
cameras: Camera[];
13+
asset: object;
14+
}
15+
16+
export class GLTFLoader {
17+
constructor(manager?: LoadingManager);
18+
manager: LoadingManager;
19+
path: string;
20+
21+
load(url: string, onLoad: (gltf: GLTF) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void) : void;
22+
setPath(path: string) : GLTFLoader;
23+
setResourcePath(path: string) : GLTFLoader;
24+
setCrossOrigin(value: string): void;
25+
setDRACOLoader(dracoLoader: object): void;
26+
parse(data: ArrayBuffer, path: string, onLoad: (gltf: GLTF) => void, onError?: (event: ErrorEvent) => void) : void;
27+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import {
2+
Material,
3+
LoadingManager,
4+
Group
5+
} from '../../../src/Three';
6+
7+
export class OBJLoader {
8+
constructor(manager?: LoadingManager);
9+
manager: LoadingManager;
10+
regexp: any;
11+
materials: Material[];
12+
path: string;
13+
14+
load(url: string, onLoad: (group: Group) => void, onProgress?: (event: ProgressEvent) => void, onError?: (event: ErrorEvent) => void): void;
15+
parse(data: string) : Group;
16+
setPath(value: string) : void;
17+
setMaterials(materials: Material[]) : void;
18+
_createParserState() : any;
19+
}

0 commit comments

Comments
 (0)