diff options
| author | J08nY | 2016-04-16 06:41:19 +0200 |
|---|---|---|
| committer | J08nY | 2016-04-16 06:41:19 +0200 |
| commit | 98dabd8fec5d2930add944997577a5f702013736 (patch) | |
| tree | 24798a75df26cf252be1044a586cfe0d3604d4fa /Morph.ts | |
| parent | 6c5bbc5fa0bad633325fc3901a3c72c2c0ad64a5 (diff) | |
| download | ld35-98dabd8fec5d2930add944997577a5f702013736.tar.gz ld35-98dabd8fec5d2930add944997577a5f702013736.tar.zst ld35-98dabd8fec5d2930add944997577a5f702013736.zip | |
Diffstat (limited to 'Morph.ts')
| -rw-r--r-- | Morph.ts | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/Morph.ts b/Morph.ts new file mode 100644 index 0000000..f97ea5c --- /dev/null +++ b/Morph.ts @@ -0,0 +1,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 { + + } + +}
\ No newline at end of file |
