blob: f97ea5ce6bc23f32d7b564d2b87afa6bfcbb0a00 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/// <reference path="three_js/ts/three.d.ts"/>
/// <reference path="physi_js/physijs.d.ts"/>
export class Morph extends Physijs.Mesh {
faces:number;
//TODO, probelm s tym ze ked extendujem Mesh, tak sa nedostanem k Geometry ale iba k BufferGeometry
constructor(numFaces:number, material:THREE.Material, mass:number) {
let geometry = Morph.generateGeometry(numFaces);
super(geometry, material, mass);
}
static generateGeometry(numFaces:number):THREE.Geometry {
if (numFaces == 4) {
return new THREE.TetrahedronGeometry();
} else if (numFaces == 6) {
return new THREE.BoxGeometry(1, 1, 1, 2, 2, 2);
} else if (numFaces == 12) {
return new THREE.DodecahedronGeometry(1, 0);
} else if (numFaces == 20) {
return new THREE.IcosahedronGeometry(1, 0);
}
return null;
}
private updateGeometry(numFaces:number) {
this.faces = numFaces;
this.geometry = Morph.generateGeometry(this.faces);
}
shrink(numFaces:number):void {
this.updateGeometry(this.faces - numFaces);
}
grow(numFaces:number):void {
this.updateGeometry(this.faces + numFaces);
}
wobble():void {
}
}
|