/** * Created by aghassaei on 5/26/15. */ define(['underscore', 'stlLoader', 'part', 'bin!octaFaceTrianglePartSTL'], function(_, THREE, DMAPart, trianglePart){ var loader = new THREE.STLLoader(); var unitGeo = loader.parse(trianglePart); unitGeo.computeBoundingBox(); var unitScale = 1.2/unitGeo.boundingBox.max.y; unitGeo.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale)); unitGeo.applyMatrix(new THREE.Matrix4().makeTranslation(0.25,-0.6, -0.45)); unitGeo.applyMatrix(new THREE.Matrix4().makeRotationZ(-Math.PI/6)); function OctaFaceTriPart(type, parent){ DMAPart.call(this, type, parent); } OctaFaceTriPart.prototype = Object.create(DMAPart.prototype); OctaFaceTriPart.prototype._getGeometry = function(){ return unitGeo; }; OctaFaceTriPart.prototype._rotatePart = function(mesh){ switch(this.index){ case 0: return mesh; case 1: return mesh.rotateZ(2*Math.PI/3); case 2: return mesh.rotateZ(-2*Math.PI/3); default: console.warn("uknown index " + this.index + " for part") return null; } }; return OctaFaceTriPart; });