From 17c86723a81a756acb08af76fd69a51ed2f5715e Mon Sep 17 00:00:00 2001
From: Amanda Ghassaei <amandaghassaei@gmail.com>
Date: Fri, 15 May 2015 20:11:09 -0400
Subject: [PATCH] gik part type

---
 assets/stls/parts/GIKEndPart.STL        | Bin 0 -> 31484 bytes
 assets/stls/parts/GIKEndPartLowPoly.STL | Bin 0 -> 2284 bytes
 assets/stls/parts/GIKPart.STL           | Bin 0 -> 27884 bytes
 assets/stls/parts/GIKPartLowPoly.STL    | Bin 0 -> 2284 bytes
 js/fea/DMASuperCell.js                  |   1 +
 js/fea/DmaCellOther.js                  |   3 +-
 js/fea/DmaPart.js                       |  42 ++++++++++++++++++++++--
 7 files changed, 42 insertions(+), 4 deletions(-)
 create mode 100755 assets/stls/parts/GIKEndPart.STL
 create mode 100755 assets/stls/parts/GIKEndPartLowPoly.STL
 create mode 100755 assets/stls/parts/GIKPart.STL
 create mode 100755 assets/stls/parts/GIKPartLowPoly.STL

diff --git a/assets/stls/parts/GIKEndPart.STL b/assets/stls/parts/GIKEndPart.STL
new file mode 100755
index 0000000000000000000000000000000000000000..69b0489036035262fcb258938a4ad7e57b4a0407
GIT binary patch
literal 31484
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

literal 0
HcmV?d00001

diff --git a/assets/stls/parts/GIKEndPartLowPoly.STL b/assets/stls/parts/GIKEndPartLowPoly.STL
new file mode 100755
index 0000000000000000000000000000000000000000..9034310b61f0d79fd989d06125f5b8eb0e2f3cf9
GIT binary patch
literal 2284
zcmXTU&&f<tNXbn}EzV5Oi%-wYjxWy4EyzhNE{RXgOHm*d=rF)Q!+sbGMmJ1-YzJe*
zXfK{7xEQJqkPNa87#k!G(%oPWB0(4=Q()(250U|~L1HjANF2lmVN4xhQK+k6IzVC&
ztRPUfjDZ2-s;3u>>_KM1RKeIVaojpUG9XvMbimjkaS(=>4`PAL0?{BlKx~)}5E~>8
z!<afiG9XpRIzViYI1EE{P0yPJ4mX$`AXyL_CJy4mFscraD98>F4blN)gZMBE31N_o
zv9Y%UNEF5f=>XXQ69>tGFhmEk3^pAg-C))5GzC&MeX*niNCw0PnG0is#6hY-7~%&I
z3#1Ar17aiV0I@-8U>M>mP)vbzAe#$f!^B~#K{TokkO;^Qblo6v5QeA*v!*__1KEyj
zE{qKl2dM#JOdVj+sgLbocHnmv$SiE;!o)$QfiS`zm<-5V5E~>5!pLk8AA}*gKr$dZ
zKq4RvVuN&pQX+^A5`*Cedu%cwRUmPYDi9k)!*GK=D3ySCAQ=!FW*>4$gXCej!5&!#
zT?b4zOf`sx=m4=`cEH#mld$^(Sq5YWvJP0>fW%-JVh7ADkZzbNkk4V_Fx4O$HLTEe
zz;uID!Z4~1kh#dJu=^aO7bb(O1H^`jgVexq!+wwq$h{yD5F13}!wvgkZU?CXu|ej7
z*r0HOu|a$ohU8wD49E^-Hpovfl`y(tKgcW?4`c^28|GS=7>I`00b;>0vK`oUfLwws
zgRBF)tB`eo*f3Qf7b2Ska|0x-U^3`BV7g(dK{Tokkhw5b$RPq!3B#CSg{%YSCy?rf
z{okr&mx5Rzj4T7<!!Sr3ly5+MOdT*8kSsEWi9^Z|kPNbWL2Qt@$l|zlfMn2hfOLbz
G85jUN4d<``

literal 0
HcmV?d00001

diff --git a/assets/stls/parts/GIKPart.STL b/assets/stls/parts/GIKPart.STL
new file mode 100755
index 0000000000000000000000000000000000000000..1e6cce3510f4ab617d0719349379e559ea6c367f
GIT binary patch
literal 27884
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%0AwjtoRwIM*CieOq
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
R0aFDs3t1J64H9Qy000eA#pnP4

literal 0
HcmV?d00001

diff --git a/assets/stls/parts/GIKPartLowPoly.STL b/assets/stls/parts/GIKPartLowPoly.STL
new file mode 100755
index 0000000000000000000000000000000000000000..caceba0652aade11784be73e9643bc827d839700
GIT binary patch
literal 2284
zcmXTU&&f<tNXbn}EzV5Oi%-wYjxWy4EyzhNE>R!{=rF)Q!+sFUi-*Y`LO0ogXb|?|
zX|jWfgZMCvssknpqCq-9G%{`gn+p;FnN?utW)D&YVnf6rc7Vh|d=SRe0TM;m0TP2?
z1%a|<3=9xg<q0|4gUo{20b|3&aq9rdfb4+jfU!a1APg}d!~&TGqCs|m*f1R+Hb@+X
zF?E1sK&p^+fY=~$7>4MI>0bm6H<%qDSr8j04&uWwst%AS$PN$<(g9<G_%I9!VUUcm
zv9|+A6vhVW0NDW(2g!jjL<h1AHXR_{VAbF>1!93zO<yeO0FnW*LFU5PAaRfy5Qg{x
z!~&^;$$;3%IzViY8W@JS3KUZy9mwW_*f4RJY7mX810({n16?;r9E2gNK`fA2Als46
zg|R{6AT=P2sRJYm(hai%#s-PQFhUo|EM#**Y>+CDIEaQ}R2?8ukhvgLARRC^NF0P4
z_J6CAT?%5sFh~`M4buT)BV$Y*Fj-_BAT~@KMnhZ%l7ZO)k^!+nt^%cY5E~>0!wvS>
zWI(Dw;viKZHi(Ad276FS1o1#JAU4cC<k$qs!*GK=vJAQom~NPA5Dn1*V!`Zyu|Xzb
z_Xn~J$PQ#3u=odw!7#)Qm{}m*FjXL*!^B~#K{RSuq3eL@2C0N$R2?95kyT;$IY=)|
z23ZG)4HE~cf#HVzAQ_N*K_VbFh{lH-_QTu`QUzjz%muMQ;Ra)a_%IA9Az(5fJCNBR
zKfzSO=!X3uvtT@s9ms5$Yhhv_8e#{C1;fa8VAlb139<~b4(zT%)&XL}RDoQGY!b{3
zkg$TupzDC?hN%Y8s5(IA!c-xL2uLLiV}=#74w#=nsv-Fs#6mU;#D=K?u|e{nd;_8}
Rb%10*s*rVn*dTER1_1F9Yl;8>

literal 0
HcmV?d00001

diff --git a/js/fea/DMASuperCell.js b/js/fea/DMASuperCell.js
index ddbc76a4..2fb7ce1a 100644
--- a/js/fea/DMASuperCell.js
+++ b/js/fea/DMASuperCell.js
@@ -8,6 +8,7 @@ var cellMaterials = [new THREE.MeshNormalMaterial()];
 DMASuperCell = function(length, range, cells){
     var shouldRotate = range.max.x == range.min.x;
     this.mesh = this._buildSuperCellMesh(length, shouldRotate);
+    this.setVisibility(dmaGlobals.appState.get("cellMode")=="cell");
     this.index = _.clone(range.max);
     this.cells = cells;
     this.setScale();
diff --git a/js/fea/DmaCellOther.js b/js/fea/DmaCellOther.js
index 1b9b274d..1e56869f 100644
--- a/js/fea/DmaCellOther.js
+++ b/js/fea/DmaCellOther.js
@@ -85,7 +85,8 @@ var cellMaterial = [new THREE.MeshNormalMaterial()];
 
     DMAGIKCell.prototype._initParts = function(){
         var parts  = [];
-        parts.push(new DMAGIKPart(0, this));
+        if (dmaGlobals.lattice.get("partType") == "lego") parts.push(new DMAGIKPart(0, this));
+        else parts.push(new DMAGIKPartLowPoly(0, this));
         return parts;
 };
 
diff --git a/js/fea/DmaPart.js b/js/fea/DmaPart.js
index b08fbbd7..0675b710 100644
--- a/js/fea/DmaPart.js
+++ b/js/fea/DmaPart.js
@@ -223,8 +223,12 @@ var partMaterial = new THREE.MeshLambertMaterial({ color:0xffffff, shading: THRE
     loader.load("assets/stls/parts/GIKPart.stl", function(geometry){
 
         unitPartGeo = geometry;
-//        unitPartGeo.applyMatrix(new THREE.Matrix4().makeRotationY(Math.PI));
-//        unitPartGeo.applyMatrix(new THREE.Matrix4().makeTranslation(0,0,0.09));
+        unitPartGeo.computeBoundingBox();
+        unitPartGeo.applyMatrix(new THREE.Matrix4().makeTranslation(-(unitPartGeo.boundingBox.min.x+unitPartGeo.boundingBox.max.x)/2,
+            -(unitPartGeo.boundingBox.min.y+unitPartGeo.boundingBox.max.y)/2, -(unitPartGeo.boundingBox.min.z+unitPartGeo.boundingBox.max.z)/2));
+        var unitScale = 1/(unitPartGeo.boundingBox.max.x-unitPartGeo.boundingBox.min.x);
+        unitPartGeo.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI/2));
+        unitPartGeo.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale));
     });
 
     function DMAGIKPart(type, parent){
@@ -238,6 +242,38 @@ var partMaterial = new THREE.MeshLambertMaterial({ color:0xffffff, shading: THRE
         return mesh;
     };
 
-    self.DMAMicroLegoPart = DMAGIKPart;
+    self.DMAGIKPart = DMAGIKPart;
+
+})();
+
+(function () {
+
+    var unitPartGeo;
+
+    //import part geometry
+    var loader = new THREE.STLLoader();
+    loader.load("assets/stls/parts/GIKPartLowPoly.stl", function(geometry){
+
+        unitPartGeo = geometry;
+        unitPartGeo.computeBoundingBox();
+        unitPartGeo.applyMatrix(new THREE.Matrix4().makeTranslation(-(unitPartGeo.boundingBox.min.x+unitPartGeo.boundingBox.max.x)/2,
+            -(unitPartGeo.boundingBox.min.y+unitPartGeo.boundingBox.max.y)/2, -(unitPartGeo.boundingBox.min.z+unitPartGeo.boundingBox.max.z)/2));
+        var unitScale = 1/(unitPartGeo.boundingBox.max.x-unitPartGeo.boundingBox.min.x);
+        unitPartGeo.applyMatrix(new THREE.Matrix4().makeRotationX(Math.PI/2));
+        unitPartGeo.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale));
+    });
+
+    function DMAGIKPartLowPoly(type, parent){
+        DMAPart.call(this, type, parent);
+    }
+    DMAGIKPartLowPoly.prototype = Object.create(DMAPart.prototype);
+
+    DMAGIKPartLowPoly.prototype._makeMeshForType = function(){
+        var mesh = new THREE.Mesh(unitPartGeo, partMaterial);
+        mesh.myPart = this;//need a ref back to this part
+        return mesh;
+    };
+
+    self.DMAGIKPartLowPoly = DMAGIKPartLowPoly;
 
 })();
\ No newline at end of file
-- 
GitLab