From e43fa06b95be89f8f04a29aea08b5db8407447ba Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Thu, 28 May 2015 11:41:21 -0700 Subject: [PATCH] load stapler stls --- js/cam/assemblers/Assembler.js | 27 +++++++++++++++++++--- js/cam/assemblers/StaplerAssembler.js | 33 ++++++++++++--------------- 2 files changed, 38 insertions(+), 22 deletions(-) diff --git a/js/cam/assemblers/Assembler.js b/js/cam/assemblers/Assembler.js index 37a41b10..2effb730 100644 --- a/js/cam/assemblers/Assembler.js +++ b/js/cam/assemblers/Assembler.js @@ -11,8 +11,9 @@ function Assembler(){ this.object3D = new THREE.Object3D(); globals.three.sceneAdd(this.object3D); var self = this; - this._loadStls(function(){ + this._buildAssemblerMeshes(function(){ self._configureAssemblerMovementDependencies(); + globals.three.render(); }); } @@ -21,8 +22,28 @@ Assembler.prototype._buildStock = function(){ return globals.lattice.makeCellForLatticeType(null); }; -Assembler.prototype._loadStls = function(callback){ - callback(); +Assembler.prototype._buildAssemblerMeshes = function(callback){ + var numMeshes = this._getTotalNumMeshes(); + if (numMeshes == 0) { + callback(); + return; + } + + function allLoaded(){ + numMeshes -= 1; + return numMeshes <= 0; + } + + var self = this; + function doAdd(geometry, name){ + self[name] = new THREE.Mesh(geometry, assemblerMaterial); + if (allLoaded()) callback(); + } + this._loadSTls(doAdd); +}; + +Assembler.prototype._getTotalNumMeshes = function(){ + return 0; }; Assembler.prototype._configureAssemblerMovementDependencies = function(){ diff --git a/js/cam/assemblers/StaplerAssembler.js b/js/cam/assemblers/StaplerAssembler.js index 0f97f7b0..ad4dee29 100644 --- a/js/cam/assemblers/StaplerAssembler.js +++ b/js/cam/assemblers/StaplerAssembler.js @@ -17,38 +17,33 @@ StaplerAssembler.prototype._configureAssemblerMovementDependencies = function(){ this.object3D.add(this.substrate); }; -StaplerAssembler.prototype._loadStls = function(callback){ - var meshes = []; - var numMeshes = 5; - function allLoaded(){ - numMeshes -= 1; - return numMeshes <= 0; - } +StaplerAssembler.prototype._getTotalNumMeshes = function(){ + return 5; +}; + +StaplerAssembler.prototype._loadSTls = function(doAdd){ + function geometryScale(geometry){ var unitScale = 1; geometry.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale)); + geometry.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI/2)); return geometry; } - var material = assemblerMaterial; - var self = this; - function meshPrep(geometry, name){ - self[name] = new THREE.Mesh(geometry, material); - if (allLoaded()) callback(meshes); - } + var loader = new THREE.STLLoader(); loader.load("assets/stls/stapler/frame.stl", function(geometry){ - meshPrep(geometryScale(geometry), "frame"); + doAdd(geometryScale(geometry), "frame"); }); loader.load("assets/stls/stapler/zStage.stl", function(geometry){ - meshPrep(geometryScale(geometry), "zAxis"); + doAdd(geometryScale(geometry), "zAxis"); }); loader.load("assets/stls/stapler/yStage.stl", function(geometry){ - meshPrep(geometryScale(geometry), "yAxis"); + doAdd(geometryScale(geometry), "yAxis"); }); loader.load("assets/stls/stapler/xStage.stl", function(geometry){ - meshPrep(geometryScale(geometry), "xAxis"); + doAdd(geometryScale(geometry), "xAxis"); }); loader.load("assets/stls/stapler/substrate.stl", function(geometry){ - meshPrep(geometryScale(geometry), "substrate"); + doAdd(geometryScale(geometry), "substrate"); }); -}; \ No newline at end of file +} \ No newline at end of file -- GitLab