From d11ee5674385a5fc9f6eb40d9dbabdce7f91fed0 Mon Sep 17 00:00:00 2001 From: Amanda Ghassaei <amandaghassaei@gmail.com> Date: Mon, 14 Sep 2015 16:57:19 -0400 Subject: [PATCH] lego part --- assets/stls/parts/LegoBrick1x1.stl | Bin 16884 -> 16884 bytes js/cells/GIKCell.js | 27 +++++++++++++++++++++------ js/main.js | 1 + js/parts/LegoPart.js | 28 ++++++++++++++++++++++++++++ js/plists/PList.js | 4 ++-- 5 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 js/parts/LegoPart.js diff --git a/assets/stls/parts/LegoBrick1x1.stl b/assets/stls/parts/LegoBrick1x1.stl index 2f6614f5c27d1402c334687c2e9b265340774c78..ff818f27c861eacc915848f27382a651078a7d42 100644 GIT binary patch literal 16884 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 literal 16884 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 bRlHx71TDPp(057DLV`D$dV(t6OH%qDG$hPA diff --git a/js/cells/GIKCell.js b/js/cells/GIKCell.js index bd4352ab..3fd43699 100644 --- a/js/cells/GIKCell.js +++ b/js/cells/GIKCell.js @@ -20,14 +20,29 @@ define(['underscore', 'three', 'threeModel', 'lattice', 'appState', 'cubeCell'], var self = this; var parts = []; - if (lattice.get("partType") == "lego") { - require(['gikPart'], function(GIKPart){ - parts.push(new GIKPart(self.index.x, self)); + if (lattice.get("partType") == "willLego") { + require(['gikPart'], function(PartSubclass){ + parts.push(new PartSubclass(self.index.x, self)); callback(parts); }); - } else { - require(['gikPartLowPoly'], function(GIKPartLowPoly){ - parts.push(new GIKPartLowPoly(self.index.x, self)); + } else if (lattice.get("partType") == "willLegoLowPoly") { + require(['gikPartLowPoly'], function(PartSubclass){ + parts.push(new PartSubclass(self.index.x, self)); + callback(parts); + }); + } else if (lattice.get("partType") == "dnaLego") { + require(['legoPart'], function(PartSubclass){ + parts.push(new PartSubclass(self.index.x, self)); + callback(parts); + }); + } else if (lattice.get("partType") == "lego") { + require(['legoPart'], function(PartSubclass){ + parts.push(new PartSubclass(self.index.x, self)); + callback(parts); + }); + } else if (lattice.get("partType") == "dnaStraight") { + require(['gikPartLowPoly'], function(PartSubclass){ + parts.push(new PartSubclass(self.index.x, self)); callback(parts); }); } diff --git a/js/main.js b/js/main.js index b9210064..f380e40a 100644 --- a/js/main.js +++ b/js/main.js @@ -107,6 +107,7 @@ require.config({ kennyTeqPart: 'parts/KennyTeqPart', kennyTeqHighResPart: 'parts/KennyTeqHighResPart', samTeqPart: 'parts/SamTeqPart', + legoPart: 'parts/LegoPart', //materials materials: 'materials/DMAMaterials', diff --git a/js/parts/LegoPart.js b/js/parts/LegoPart.js new file mode 100644 index 00000000..5519e8e5 --- /dev/null +++ b/js/parts/LegoPart.js @@ -0,0 +1,28 @@ +/** + * Created by aghassaei on 9/14/15. + */ + + +define(['underscore', 'stlLoader', 'gikPart', 'bin!../assets/stls/parts/legoBrick1x1.stl'], function(_, THREE, GIKPart, stl){ + + var loader = new THREE.STLLoader(); + var unitGeo = preProcessGeo(loader.parse(stl)); + + function preProcessGeo(geo){ + geo.computeBoundingBox(); + var unitScale = 1/(8.2); + geo.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale)); + return geo; + } + + function LegoPart(index, parent){ + GIKPart.call(this, index, parent); + } + LegoPart.prototype = Object.create(GIKPart.prototype); + + LegoPart.prototype._getGeometry = function(){ + return unitGeo; + }; + + return LegoPart; +}); \ No newline at end of file diff --git a/js/plists/PList.js b/js/plists/PList.js index fd489591..fee1cb42 100644 --- a/js/plists/PList.js +++ b/js/plists/PList.js @@ -224,10 +224,10 @@ define(['three'], function(THREE){ willGik: { name: "Electronic GIK Lattice", parts: { - lego: { + willLego: { name: "Micro LEGO (high res)" }, - legoLowPoly: { + willLegoLowPoly: { name: "Micro LEGO (low res)" } }, -- GitLab