diff --git a/assets/stls/parts/troxOcta.stl b/assets/stls/parts/troxOcta.stl new file mode 100644 index 0000000000000000000000000000000000000000..b113b73de405df5e33499edd9ad871dc3429ab96 Binary files /dev/null and b/assets/stls/parts/troxOcta.stl differ diff --git a/assets/stls/parts/troxTetra.stl b/assets/stls/parts/troxTetra.stl new file mode 100644 index 0000000000000000000000000000000000000000..cf90fabbb97fa7942fa35e424b421996a002de25 Binary files /dev/null and b/assets/stls/parts/troxTetra.stl differ diff --git a/index.html b/index.html index 60898e3da40ad7b12add988e83e78927efadbbd9..ca27133db841204bcb7e538a32dfc5be12342d44 100644 --- a/index.html +++ b/index.html @@ -36,11 +36,6 @@ <!--numerical javascript--> <script src="dependencies/numeric-1.2.6.js"></script> - <!--global variables--> - <script> - - </script> - <!--multi-threading--> <script src="js/worker.js"></script> <script src="js/persistentWorkers.js"></script><!--global workers--> @@ -53,6 +48,7 @@ <script src="js/fea/DmaCellTetra.js"></script> <script src="js/fea/DmaCellOther.js"></script> <script src="js/fea/DmaPart.js"></script> + <script src="js/fea/DMAPartTrox.js"></script> <!--models--> <script src="js/models/ThreeModel.js"></script> diff --git a/js/fea/DMAPartTrox.js b/js/fea/DMAPartTrox.js new file mode 100644 index 0000000000000000000000000000000000000000..9c0ecd2fb86f97f085595cdbe1dcef68ca3cb055 --- /dev/null +++ b/js/fea/DMAPartTrox.js @@ -0,0 +1,62 @@ +/** + * Created by aghassaei on 4/9/15. + */ + + +(function () { + + var tetraTrox; + + //import part geometry + var loader = new THREE.STLLoader(); + loader.load("assets/stls/parts/troxTetra.stl", function(geometry){ + + tetraTrox = geometry; + tetraTrox.computeBoundingBox(); + var unitScale = 1/3.25; + tetraTrox.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale)); +// tetraTrox.applyMatrix(new THREE.Matrix4().makeTranslation(0.25,-0.6, -0.45)); +// tetraTrox.applyMatrix(new THREE.Matrix4().makeRotationZ(-Math.PI/6)); + }); + + function DMATetraTroxPart(type, parent){ + DMAPart.call(this, type, parent); + } + DMATetraTroxPart.prototype = Object.create(DMAPart.prototype); + + DMATetraTroxPart.prototype._makeMeshForType = function(){ + console.log("mesh"); + var mesh = new THREE.Mesh(tetraTrox, partMaterial); + mesh.myPart = this;//need a ref back to this part + return mesh; + }; + + self.DMATetraTroxPart = DMATetraTroxPart; + + var octaTrox; + + //import part geometry + loader.load("assets/stls/parts/troxOcta.stl", function(geometry){ + + octaTrox = geometry; + octaTrox.computeBoundingBox(); + var unitScale = 1/3.25; + octaTrox.applyMatrix(new THREE.Matrix4().makeScale(unitScale, unitScale, unitScale)); +// octaTrox.applyMatrix(new THREE.Matrix4().makeTranslation(0.25,-0.6, -0.45)); +// octaTrox.applyMatrix(new THREE.Matrix4().makeRotationZ(-Math.PI/6)); + }); + + function DMAOctaTroxPart(type, parent){ + DMAPart.call(this, type, parent); + } + DMAOctaTroxPart.prototype = Object.create(DMAPart.prototype); + + DMAOctaTroxPart.prototype._makeMeshForType = function(){ + var mesh = new THREE.Mesh(octaTrox, partMaterial); + mesh.myPart = this;//need a ref back to this part + return mesh; + }; + + self.DMAOctaTroxPart = DMAOctaTroxPart; + +})(); diff --git a/js/fea/DmaCellOcta.js b/js/fea/DmaCellOcta.js index 8bbea3816122bd63b9e4f4b055d2e890c38740a1..0c269cf7868279f0f01b96b53ba71eb3028f3cce 100644 --- a/js/fea/DmaCellOcta.js +++ b/js/fea/DmaCellOcta.js @@ -91,9 +91,7 @@ DMAFreeFormOctaCell.prototype._doMeshTransformations = function(mesh){ DMAFreeFormOctaCell.prototype._initParts = function(){ var parts = []; - for (var i=0;i<3;i++){ - parts.push(new DMATrianglePart(i, this)); - } + parts.push(new DMAOctaTroxPart(1, this)); return parts; }; diff --git a/js/fea/DmaCellTetra.js b/js/fea/DmaCellTetra.js index e7b4a36eee6e44c703ab675925091f15171c9c9c..3faa86fae78096f8fe9d6da44cd948447bc11557 100644 --- a/js/fea/DmaCellTetra.js +++ b/js/fea/DmaCellTetra.js @@ -3,7 +3,7 @@ */ /////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////FACE CONNECTED OCTA//////////////////////////////////////////////////// +////////////////////////FACE CONNECTED TETRA/////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// var unitCellGeo = new THREE.TetrahedronGeometry(Math.sqrt(3/8)); @@ -37,7 +37,7 @@ DMATetraFaceCell.prototype._getGeometry = function(){ /////////////////////////////////////////////////////////////////////////////////////////////// -////////////////////////EDGE CONNECTED OCTA//////////////////////////////////////////////////// +////////////////////////EDGE CONNECTED TETRA/////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////// function DMATetraEdgeCell(indices, scale, cellMode, partType){ @@ -83,6 +83,12 @@ DMAFreeFormTetraCell.prototype.getType = function(){ return "tetra"; }; +DMAFreeFormTetraCell.prototype._initParts = function(){ + var parts = []; + parts.push(new DMATetraTroxPart(1, this)); + return parts; +}; + DMAFreeFormTetraCell.prototype.xScale = function(scale){ if (!scale) scale = this.getScale(); return scale; diff --git a/js/models/AppState.js b/js/models/AppState.js index 4e51b2d070e403e99022b2453c1469a7e5fa3079..9922c1b2ea4857fd15d083fb3d19aeacee40acb0 100644 --- a/js/models/AppState.js +++ b/js/models/AppState.js @@ -64,7 +64,7 @@ AppState = Backbone.Model.extend({ //truss:"Truss" }, freeformFace: { - triangle:"Triangle" + trox:"Troxes" //beam:"Beam" }, edge: null,