///
///
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 {
}
}