From 65ac78ccb83c8c7517c178779b830b714fd70f44 Mon Sep 17 00:00:00 2001 From: Amira Abdel-Rahman <amira-rahman@aucegypt.edu> Date: Sun, 24 Nov 2019 19:08:33 -0500 Subject: [PATCH] enclosed globals --- .../assembly/main.js | 50 +++++++------- .../graph/main.js | 14 ++-- 01_Code/physical_computing_interface/main.js | 65 +++++++++++-------- .../threejs/assembly.js | 18 ++--- .../threejs/grid.js | 60 ++++++++--------- .../threejs/main.js | 14 ++-- 6 files changed, 115 insertions(+), 106 deletions(-) diff --git a/01_Code/physical_computing_interface/assembly/main.js b/01_Code/physical_computing_interface/assembly/main.js index d9be7bb..0ad0346 100644 --- a/01_Code/physical_computing_interface/assembly/main.js +++ b/01_Code/physical_computing_interface/assembly/main.js @@ -27,7 +27,7 @@ var globalZ=0; var globalRank=0; var voxelNum=0; -var gridSize=6+4;//change 10 to changecube size +var GLOBALS.gridSize=6+4;//change 10 to changecube size var stepsCap=100; //change with very big simulations @@ -156,21 +156,21 @@ function declareGlobals(){ } //starting positions and pickup stations if(numberOfRobots>1){ - robotState[1].leg1Pos=new THREE.Vector3((gridSize-1),(gridSize-2),0); - robotState[1].leg2Pos=new THREE.Vector3((gridSize-1),(gridSize-1),0); - startLocations[1]=new THREE.Vector3((gridSize-1)*voxelSpacing,(gridSize-1)*voxelSpacing,0*voxelSpacing); + robotState[1].leg1Pos=new THREE.Vector3((GLOBALS.gridSize-1),(GLOBALS.gridSize-2),0); + robotState[1].leg2Pos=new THREE.Vector3((GLOBALS.gridSize-1),(GLOBALS.gridSize-1),0); + startLocations[1]=new THREE.Vector3((GLOBALS.gridSize-1)*voxelSpacing,(GLOBALS.gridSize-1)*voxelSpacing,0*voxelSpacing); } if(numberOfRobots>2){ - robotState[2].leg1Pos=new THREE.Vector3((gridSize-1),1,0); - robotState[2].leg2Pos=new THREE.Vector3((gridSize-1),0,0); - startLocations[2]=new THREE.Vector3((gridSize-1)*voxelSpacing,0*voxelSpacing,0*voxelSpacing); + robotState[2].leg1Pos=new THREE.Vector3((GLOBALS.gridSize-1),1,0); + robotState[2].leg2Pos=new THREE.Vector3((GLOBALS.gridSize-1),0,0); + startLocations[2]=new THREE.Vector3((GLOBALS.gridSize-1)*voxelSpacing,0*voxelSpacing,0*voxelSpacing); } if(numberOfRobots>3){ - robotState[3].leg1Pos=new THREE.Vector3(1,gridSize-1,0); - robotState[3].leg2Pos=new THREE.Vector3(0,gridSize-1,0); - startLocations[3]=new THREE.Vector3(0*voxelSpacing,(gridSize-1)*voxelSpacing,0*voxelSpacing); + robotState[3].leg1Pos=new THREE.Vector3(1,GLOBALS.gridSize-1,0); + robotState[3].leg2Pos=new THREE.Vector3(0,GLOBALS.gridSize-1,0); + startLocations[3]=new THREE.Vector3(0*voxelSpacing,(GLOBALS.gridSize-1)*voxelSpacing,0*voxelSpacing); } } @@ -1083,21 +1083,21 @@ function move(robotIndex){ } function builtShape(){ - for(var i=0;i<gridSize;i++) + for(var i=0;i<GLOBALS.gridSize;i++) { var t=[]; grid.push(t) - for(var j=0;j<gridSize;j++) + for(var j=0;j<GLOBALS.gridSize;j++) { var tt=[]; grid[i].push(tt); - for(var k=0;k<gridSize;k++) + for(var k=0;k<GLOBALS.gridSize;k++) { grid[i][j].push(false); } } } - for(var i=gridSize/2.0;i<gridSize;i++) + for(var i=GLOBALS.gridSize/2.0;i<GLOBALS.gridSize;i++) { grid[i][0][0]=true; locations.push(new THREE.Vector3(i*voxelSpacing,0,0)); //TODO CHANGE LATER BASED ON NUMBER OF ROBOTS @@ -1733,24 +1733,24 @@ function loadVoxel(){ function frepVoxel(rangeX,rangeY,rangeZ,stringFunction){ //build grid - for(var i=0;i<gridSize;i++) + for(var i=0;i<GLOBALS.gridSize;i++) { var t=[]; grid.push(t) - for(var j=0;j<gridSize;j++) + for(var j=0;j<GLOBALS.gridSize;j++) { var tt=[]; grid[i].push(tt); - for(var k=0;k<gridSize;k++) + for(var k=0;k<GLOBALS.gridSize;k++) { grid[i][j].push(false); } } } //build first layer - for(var i=0;i<gridSize;i++) + for(var i=0;i<GLOBALS.gridSize;i++) { - for(var j=0;j<gridSize;j++) + for(var j=0;j<GLOBALS.gridSize;j++) { buildVoxelAt(new THREE.Vector3(i*voxelSpacing,j*voxelSpacing,0)); grid[i][j][0]=true; @@ -1760,16 +1760,16 @@ function frepVoxel(rangeX,rangeY,rangeZ,stringFunction){ // string function= "Math.min(Math.min(Math.min(Math.min(X-(-1),(1)-X),Math.min(Y-(-1),(1)-Y)),Math.min(Z-(-1),(1)-Z)),-(Math.min(Math.min(Math.min(X-(-0.8),(0.8)-X),Math.min(Y-(-0.8),(0.8)-Y)),Math.min(Z-(-0.8),(0.8)-Z))))"; var maxZslices=[]; var tempVoxelSlices=[]; - for (var Z=0;Z<gridSize;Z++) + for (var Z=0;Z<GLOBALS.gridSize;Z++) { voxelSlices.push([]); tempVoxelSlices.push([]); voxelSlicesCount.push([]); var max=- Infinity; var maxIndex=new THREE.Vector3(0,0,0); - for (var Y=0;Y<gridSize;Y++) + for (var Y=0;Y<GLOBALS.gridSize;Y++) { - for (var X=0;X<gridSize;X++) + for (var X=0;X<GLOBALS.gridSize;X++) { var func= frep(X,Y,Z); @@ -1790,7 +1790,7 @@ function frepVoxel(rangeX,rangeY,rangeZ,stringFunction){ maxZslices.push(maxIndex);//check if right later } - for (var Z=0;Z<gridSize;Z++) + for (var Z=0;Z<GLOBALS.gridSize;Z++) { for(var i=0;i<tempVoxelSlices[Z].length;i++) @@ -1825,7 +1825,7 @@ function frep(X,Y,Z){ // return Math.min(Math.min(Math.min(Math.min(X-(2),(5)-X),Math.min(Y-(2),(5)-Y)),Math.min(Z-(1),(5)-Z)),-(Math.min(Math.min(Math.min(X-(3),(6)-X),Math.min(Y-(3),(6)-Y)),Math.min(Z-(0),(4)-Z)))); // return Math.min(Math.min(Math.min(Math.min(X-(2),(7)-X),Math.min(Y-(2),(7)-Y)),Math.min(Z-(1),(6)-Z)),-(Math.min(Math.min(Math.min(X-(3),(6)-X),Math.min(Y-(3),(6)-Y)),Math.min(Z-(0),(7)-Z))));//empty cube // return Math.min(((6)-Z),(Math.min((Z-(1)),(((3*(5-(Z-(1)))/5)*(3*(5-(Z-(1)))/5)-((X-(5))*(X-(5))+(Y-(5))*(Y-(5))))))));//CONE - return Math.min(Math.min(Math.min(X-(2),((gridSize-3))-X),Math.min(Y-(2),((gridSize-3))-Y)),Math.min(Z-(1),((gridSize-4))-Z)); //CUBE + return Math.min(Math.min(Math.min(X-(2),((GLOBALS.gridSize-3))-X),Math.min(Y-(2),((GLOBALS.gridSize-3))-Y)),Math.min(Z-(1),((GLOBALS.gridSize-4))-Z)); //CUBE } function buildVoxelAt(loc){ @@ -2090,7 +2090,7 @@ function findPath(robotIndex,leg1Pos, leg2Pos, up, forward, targetPos, order){ } function voxelAt(location){ - if(location.x<0||location.y<0||location.z<0||location.x>=gridSize||location.y>=gridSize||location.z>=gridSize) + if(location.x<0||location.y<0||location.z<0||location.x>=GLOBALS.gridSize||location.y>=GLOBALS.gridSize||location.z>=GLOBALS.gridSize) { return false; } diff --git a/01_Code/physical_computing_interface/graph/main.js b/01_Code/physical_computing_interface/graph/main.js index 1e7c916..2a4fc6f 100644 --- a/01_Code/physical_computing_interface/graph/main.js +++ b/01_Code/physical_computing_interface/graph/main.js @@ -163,7 +163,7 @@ document.addEventListener('DOMContentLoaded', function(){ }); - addLayerNodes(gridSize/2); + addLayerNodes(GLOBALS.gridSize/2); function addLayerNodes(n){ for(var i=0;i<n;i++){ cy.add({ @@ -178,8 +178,8 @@ document.addEventListener('DOMContentLoaded', function(){ } }, position: { - x: i*voxelSpacing, - y: i*voxelSpacing + x: i*GLOBALS.voxelSpacing, + y: i*GLOBALS.voxelSpacing } }); if(i>0){ @@ -200,7 +200,7 @@ document.addEventListener('DOMContentLoaded', function(){ // var nodes = this; selectedjson=this._private.data.data; // console.log(this._private.data); - var pos=getXYZfromName(this._private.data.id); + var pos=utils.getXYZfromName(this._private.data.id); selectNode(pos.x,pos.y,pos.z); }); document.addEventListener('selectNode', function (e) { @@ -275,7 +275,7 @@ document.addEventListener('DOMContentLoaded', function(){ x=parseInt(x); y=parseInt(y); z=parseInt(z); - var list=getNeighboursList(grid,x,y,z); + var list=utils.getNeighboursList(grid,x,y,z); for(var i=0;i<list.length;i++){ var i1,j1,k1; @@ -303,12 +303,12 @@ document.addEventListener('DOMContentLoaded', function(){ cy.on('cxttap', 'node', function( evt ){ var tgt = evt.target || evt.cyTarget; // 3.x || 2.x // console.log(tgt._private.data.id); - var pos=getXYZfromName(tgt._private.data.id); + var pos=utils.getXYZfromName(tgt._private.data.id); if(tgt._private.data.name=="N/A"){ tgt.remove(); }else{ - removeNode(pos.x,pos.y,pos.z); + GLOBALS.removeNode(pos.x,pos.y,pos.z); } }); diff --git a/01_Code/physical_computing_interface/main.js b/01_Code/physical_computing_interface/main.js index e03123e..2098271 100644 --- a/01_Code/physical_computing_interface/main.js +++ b/01_Code/physical_computing_interface/main.js @@ -1,15 +1,18 @@ -var gridSize=20; -var voxelSpacing=50; -var color1= 0xffffff; /*white*/ -var color2= 0x020227; /*kohly*/ -var color3= 0x1c5c61; /*teal*/ -var color4= 0xfa6e70; //red/orange -var color5=0x380152; //purple -var color6=0x696767; //grey +function globals(){ + this.gridSize=20; + this.voxelSpacing=50; + this.color1= 0xffffff; /*white*/ + this.color2= 0x020227; /*kohly*/ + this.color3= 0x1c5c61; /*teal*/ + this.color4= 0xfa6e70; //red/orange + this.color5=0x380152; //purple + this.color6=0x696767; //grey + +} -//////////////////////events////////////////// -function addNode (x,y,z,replay=false){ +//////////////////////events////////////////// +globals.prototype.addNode=function (x,y,z,replay=false){ x=parseInt(x); y=parseInt(y); z=parseInt(z); @@ -20,16 +23,16 @@ function addNode (x,y,z,replay=false){ y:y, z:z, id:'[' +x +"," +y+","+z+']', - posX:(x-gridSize/2)*voxelSpacing+voxelSpacing/2, - posY:(y-gridSize/2)*voxelSpacing+voxelSpacing/2, - posZ:(z)*voxelSpacing+voxelSpacing/2, + posX:(x-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posY:(y-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posZ:(z)*this.voxelSpacing+this.voxelSpacing/2, replay:replay } }); document.dispatchEvent(addNodeEvent); } -function removeNode (x,y,z,replay=false){ +globals.prototype.removeNode=function (x,y,z,replay=false){ x=parseInt(x); y=parseInt(y); z=parseInt(z); @@ -40,16 +43,16 @@ function removeNode (x,y,z,replay=false){ y:y, z:z, id:'[' +x +"," +y+","+z+']', - posX:(x-gridSize/2)*voxelSpacing+voxelSpacing/2, - posY:(y-gridSize/2)*voxelSpacing+voxelSpacing/2, - posZ:(z)*voxelSpacing+voxelSpacing/2, + posX:(x-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posY:(y-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posZ:(z)*this.voxelSpacing+this.voxelSpacing/2, replay:replay } }); document.dispatchEvent(removeNodeEvent); } -function adjustTimeStep (addRemove,x,y,z){ +globals.prototype.adjustTimeStep=function (addRemove,x,y,z){ var adjustTimeStepEvent = new CustomEvent('adjustTimeStep', { detail: { @@ -58,15 +61,15 @@ function adjustTimeStep (addRemove,x,y,z){ z:z, id:'[' +x +"," +y+","+z+']', addRemove:addRemove, - posX:(x-gridSize/2)*voxelSpacing+voxelSpacing/2, - posY:(y-gridSize/2)*voxelSpacing+voxelSpacing/2, - posZ:(z)*voxelSpacing+voxelSpacing/2 + posX:(x-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posY:(y-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posZ:(z)*this.voxelSpacing+this.voxelSpacing/2 } }); document.dispatchEvent(adjustTimeStepEvent); } -function selectNode (x,y,z){ +globals.prototype.selectNode=function (x,y,z){ var selectNodeEvent = new CustomEvent('selectNode', { detail: { @@ -74,9 +77,9 @@ function selectNode (x,y,z){ y:y, z:z, id:'[' +x +"," +y+","+z+']', - posX:(x-gridSize/2)*voxelSpacing+voxelSpacing/2, - posY:(y-gridSize/2)*voxelSpacing+voxelSpacing/2, - posZ:(z)*voxelSpacing+voxelSpacing/2 + posX:(x-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posY:(y-this.gridSize/2)*this.voxelSpacing+this.voxelSpacing/2, + posZ:(z)*this.voxelSpacing+this.voxelSpacing/2 } }); document.dispatchEvent(selectNodeEvent); @@ -84,15 +87,16 @@ function selectNode (x,y,z){ ////////////////////////////////////////////// //////////////////////utils////////////////// -//TODO: ADD CLOSURE utils -function getXYZfromName(name){ +function utilities(){ +}; +utilities.prototype.getXYZfromName=function(name){ var nums=name.match(/\d+/g); var x=nums[0]; var y=nums[1]; var z=nums[2]; return new THREE.Vector3(x,y,z); } -function getNeighboursList(grid,x,y,z){ +utilities.prototype.getNeighboursList=function(grid,x,y,z){ var list=[]; for(var i=0;i<grid.neighbors.length;i++){ //if 0,4,8 @@ -134,6 +138,11 @@ function getNeighboursList(grid,x,y,z){ } ////////////////////////////////////////////// +/////////////////FUNCTION CALLS////////////// +var GLOBALS=new globals(); +var utils= new utilities(); + + //////////performance calculations///////////////// diff --git a/01_Code/physical_computing_interface/threejs/assembly.js b/01_Code/physical_computing_interface/threejs/assembly.js index 58823e3..8e769f5 100644 --- a/01_Code/physical_computing_interface/threejs/assembly.js +++ b/01_Code/physical_computing_interface/threejs/assembly.js @@ -11,11 +11,11 @@ slider.oninput = function() { //TODO: ADD CLOSURE GLOBAL var occupancy=[]; -for (var i=0;i<gridSize;++i){ +for (var i=0;i<GLOBALS.gridSize;++i){ occupancy.push([]); - for (var j=0;j<gridSize;++j){ + for (var j=0;j<GLOBALS.gridSize;++j){ occupancy[i].push([]); - for (var k=0;k<gridSize;++k){ + for (var k=0;k<GLOBALS.gridSize;++k){ occupancy[i][j].push(false); } } @@ -28,7 +28,7 @@ document.addEventListener('addNode', function (e) { if(!e.detail.replay){ console.log("Add:"+e.detail.x+" "+e.detail.y+" "+e.detail.z); - adjustTimeStep(true,e.detail.x,e.detail.y,e.detail.z); + GLOBALS.adjustTimeStep(true,e.detail.x,e.detail.y,e.detail.z); }else{ console.log("Replay Add:"+e.detail.x+" "+e.detail.y+" "+e.detail.z); } @@ -39,7 +39,7 @@ document.addEventListener('addNode', function (e) { document.addEventListener('removeNode', function (e) { if(!e.detail.replay){ console.log("Remove:"+e.detail.x+" "+e.detail.y+" "+e.detail.z); - adjustTimeStep(false,e.detail.x,e.detail.y,e.detail.z); + GLOBALS.adjustTimeStep(false,e.detail.x,e.detail.y,e.detail.z); }else{ console.log("Replay Remove:"+e.detail.x+" "+e.detail.y+" "+e.detail.z); @@ -77,9 +77,9 @@ function replay(currValue){ console.log("update occupancy to timestep "+ii); // console.log(occupancy); if(!timeline[ii][j].addRemove){ - addNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); + GLOBALS.addNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); }else{ - removeNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); + GLOBALS.removeNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); } } } @@ -97,9 +97,9 @@ function replay(currValue){ console.log("update occupancy to timestep "+ii); // console.log(occupancy); if(timeline[ii][j].addRemove){ - addNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); + GLOBALS.addNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); }else{ - removeNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); + GLOBALS.removeNode(timeline[ii][j].x,timeline[ii][j].y,timeline[ii][j].z,true); } } diff --git a/01_Code/physical_computing_interface/threejs/grid.js b/01_Code/physical_computing_interface/threejs/grid.js index e9f47db..11f04ed 100644 --- a/01_Code/physical_computing_interface/threejs/grid.js +++ b/01_Code/physical_computing_interface/threejs/grid.js @@ -10,7 +10,7 @@ var gridPresets={ yLayerOffset:0.0, zLayerRotation:0.0, doubleOffset:false, - voxelSpacing:voxelSpacing, + voxelSpacing:GLOBALS.voxelSpacing, voxelScaleX:0.95, voxelScaleY:0.95, voxelScaleZ:0.95, @@ -41,7 +41,7 @@ var gridPresets={ yLayerOffset:0.0, zLayerRotation:0.0, doubleOffset:false, - voxelSpacing:voxelSpacing, + voxelSpacing:GLOBALS.voxelSpacing, voxelScaleX:1.0, voxelScaleY:1.0, voxelScaleZ:1.0, @@ -72,7 +72,7 @@ var gridPresets={ yLayerOffset:0.5, zLayerRotation:0.0, doubleOffset:false, - voxelSpacing:voxelSpacing, + voxelSpacing:GLOBALS.voxelSpacing, voxelScaleX:1.0, voxelScaleY:1.0, voxelScaleZ:1.0, @@ -105,7 +105,7 @@ var gridPresets={ yLayerOffset:1.0/Math.sqrt(12), zLayerRotation:0.0, doubleOffset:false, - voxelSpacing:voxelSpacing, + voxelSpacing:GLOBALS.voxelSpacing, voxelScaleX:1.0, voxelScaleY:1.0, voxelScaleZ:1.0, @@ -136,7 +136,7 @@ var gridPresets={ xLayerOffset:0.0, yLayerOffset:0.5, zLayerRotation:Math.PI/2.0, - voxelSpacing:voxelSpacing, + voxelSpacing:GLOBALS.voxelSpacing, doubleOffset:false, voxelScaleX:0.5, voxelScaleY:0.9, @@ -167,7 +167,7 @@ var gridPresets={ xLayerOffset2:0.5, yLayerOffset2:0.5, zLayerRotation:Math.PI/2.0, - voxelSpacing:voxelSpacing, + voxelSpacing:GLOBALS.voxelSpacing, voxelScaleX:0.5, voxelScaleY:0.9, voxelScaleZ:0.2, @@ -222,7 +222,7 @@ function threejs(){ this.container = document.getElementById( 'webgl' ); // var container1 = document.getElementById( 'threejs' ); this.controls; - this.voxelSpacing=50.0; + this.voxelSpacing=GLOBALS.voxelSpacing; this.occupancyHelper; this.voxels=[]; } @@ -230,19 +230,19 @@ function threejs(){ threejs.prototype.init=function() { this.camera = new THREE.PerspectiveCamera( 45, this.getWidth()/ this.getHeight() , 1, 10000 ); this.camera.position.set( 500, 800, 1300 ); - this.camera.lookAt( gridSize/2, 0, gridSize/2 ); + this.camera.lookAt( GLOBALS.gridSize/2, 0, GLOBALS.gridSize/2 ); this.scene = new THREE.Scene(); this.scene.background = new THREE.Color( 0xffffff ); - this.cubeGeo = new THREE.BoxBufferGeometry( voxelSpacing, voxelSpacing, voxelSpacing ); - this.sphereGeo = new THREE.SphereGeometry( voxelSpacing/2, 32, 32 ); + this.cubeGeo = new THREE.BoxBufferGeometry( this.voxelSpacing, this.voxelSpacing, this.voxelSpacing ); + this.sphereGeo = new THREE.SphereGeometry( this.voxelSpacing/2, 32, 32 ); this.cubeMaterial = new THREE.MeshPhongMaterial( { color: 0x1c5c61 } ); // grid - var gridHelper = new THREE.GridHelper( (gridSize)*voxelSpacing, gridSize ); - gridHelper.position.x=gridSize/2.0*voxelSpacing-voxelSpacing/2.0; - gridHelper.position.z=gridSize/2.0*voxelSpacing-voxelSpacing/2.0; - gridHelper.position.y=-voxelSpacing/2.0*grid.voxelScaleZ; + var gridHelper = new THREE.GridHelper( (GLOBALS.gridSize)*this.voxelSpacing, GLOBALS.gridSize ); + gridHelper.position.x=GLOBALS.gridSize/2.0*this.voxelSpacing-this.voxelSpacing/2.0; + gridHelper.position.z=GLOBALS.gridSize/2.0*this.voxelSpacing-this.voxelSpacing/2.0; + gridHelper.position.y=-this.voxelSpacing/2.0*grid.voxelScaleZ; gridHelper.scale.x=grid.xScale; gridHelper.scale.z=grid.yScale; @@ -252,8 +252,8 @@ threejs.prototype.init=function() { // roll-over helpers - var rollOverGeo = new THREE.BoxBufferGeometry( voxelSpacing, voxelSpacing, voxelSpacing ); - this.rollOverMaterial = new THREE.MeshBasicMaterial( { color: color4, opacity: 0.8, transparent: true } ); + var rollOverGeo = new THREE.BoxBufferGeometry( this.voxelSpacing, this.voxelSpacing, this.voxelSpacing ); + this.rollOverMaterial = new THREE.MeshBasicMaterial( { color: GLOBALS.color4, opacity: 0.8, transparent: true } ); this.rollOverMesh = new THREE.Mesh( rollOverGeo, this.rollOverMaterial ); this.rollOverMesh.scale.x=grid.voxelScaleX; this.rollOverMesh.scale.z=grid.voxelScaleY; @@ -269,15 +269,15 @@ threejs.prototype.init=function() { // objects.push( plane ); this.helperPosition = new Float32Array( 1 * 3 ); - var c = new THREE.Color( color1 ); + var c = new THREE.Color( GLOBALS.color1 ); this.helperColor = new Float32Array( 1 * 3 ); this.helperColor[0]=c.r; this.helperColor[1]=c.g; this.helperColor[2]=c.b; - this.helperMaterial = new THREE.PointsMaterial( { size: 5, vertexColors: THREE.VertexColors,color:color3 } ); + this.helperMaterial = new THREE.PointsMaterial( { size: 5, vertexColors: THREE.VertexColors,color:GLOBALS.color3 } ); - this.buildGrid(gridSize); - this.createHelperMeshes(gridSize); + this.buildGrid(GLOBALS.gridSize); + this.createHelperMeshes(GLOBALS.gridSize); // var axesHelper = new THREE.AxesHelper( 20 *grid.voxelSpacing); @@ -297,7 +297,7 @@ threejs.prototype.init=function() { this.container.appendChild( this.renderer.domElement ); this.controls = new THREE.OrbitControls( this.camera, this.renderer.domElement ); - this.controls.target=new THREE.Vector3( gridSize/2*voxelSpacing,0 ,gridSize/2*voxelSpacing ); + this.controls.target=new THREE.Vector3( GLOBALS.gridSize/2*this.voxelSpacing,0 ,GLOBALS.gridSize/2*this.voxelSpacing ); this.controls.update(); // document.body.appendChild( renderer.domElement ); @@ -494,7 +494,7 @@ threejs.prototype.buildHelperSnap=function(grid,x,y,z){ threejs.prototype.buildNeighbourHelpers=function(grid, x, y,z){ - var list=getNeighboursList(grid,x,y,z); //TODO ENCLOSE + var list=utils.getNeighboursList(grid,x,y,z); for(var i=0;i<list.length;i++){ var x1,y1,z1; @@ -516,7 +516,7 @@ threejs.prototype.helperAt=function(x,y,z){ if(x<0||y<0||z<0){ return false; } - if(x>=gridSize||y>=gridSize||z>=gridSize){ + if(x>=GLOBALS.gridSize||y>=GLOBALS.gridSize||z>=GLOBALS.gridSize){ return false; } if(occupancy[x][y][z]||this.occupancyHelper[x][y][z]){ @@ -529,7 +529,7 @@ threejs.prototype.helperAt=function(x,y,z){ threejs.prototype.updateHelperMeshesAfterRemove=function(grid,x,y,z){ this.buildHelperSnap(grid,x,y,z); - var list=getNeighboursList(grid,x,y,z); //TODO ENCLOSE + var list=utils.getNeighboursList(grid,x,y,z); //TODO ENCLOSE for(var i=0;i<list.length;i++){ var x1,y1,z1; @@ -583,7 +583,7 @@ function onDocumentMouseMoveThree( event ) { var intersects = three.raycaster.intersectObjects( three.objects ); if ( intersects.length > 0 ) { var intersect = intersects[ 0 ]; - var obj=getXYZfromName(intersect.object.name); + var obj=utils.getXYZfromName(intersect.object.name); [p_x ,p_y ,p_z ,s_x ,s_y,s_z,r_y]=three.getTransforms(grid,obj.x, obj.y,obj.z); // console.log(getTransforms(grid,x, y,z)) @@ -620,14 +620,14 @@ function onDocumentMouseDownThree( event ) { if ( intersects.length > 0 ||intersects1.length>0){ if(event.which==1 && intersects.length > 0) { //left click var intersect = intersects[ 0 ]; - var obj=getXYZfromName(intersect.object.name); - obj=getXYZfromName(three.rollOverMesh.name); - addNode (obj.x, obj.y,obj.z); + var obj=utils.getXYZfromName(intersect.object.name); + obj=utils.getXYZfromName(three.rollOverMesh.name); + GLOBALS.addNode (obj.x, obj.y,obj.z); }else if ( intersects1.length > 0 && event.which==3){//right click var intersect = intersects1[ 0 ]; // console.log(intersect.object); - var obj=getXYZfromName(intersect.object.name); - removeNode(obj.x,obj.y,obj.z); + var obj=utils.getXYZfromName(intersect.object.name); + GLOBALS.removeNode(obj.x,obj.y,obj.z); } three.render(); } diff --git a/01_Code/physical_computing_interface/threejs/main.js b/01_Code/physical_computing_interface/threejs/main.js index b9714c9..fb0ceeb 100644 --- a/01_Code/physical_computing_interface/threejs/main.js +++ b/01_Code/physical_computing_interface/threejs/main.js @@ -136,8 +136,8 @@ function onDocumentMouseDownThree( event ) { if ( intersect.object !== three.plane ) { // scene.remove( intersect.object ); // console.log(intersect.object.name); - var pos=getXYZfromName(intersect.object.name); - removeNode(pos.x,pos.y,pos.z); + var pos=utils.getXYZfromName(intersect.object.name); + GLOBALS.removeNode(pos.x,pos.y,pos.z); // objects.splice( objects.indexOf( intersect.object ), 1 ); } // create cube @@ -147,14 +147,14 @@ function onDocumentMouseDownThree( event ) { voxel.position.copy( intersect.point ).add( intersect.face.normal ); - var x=Math.floor(voxel.position.x/voxelSpacing)+gridSize/2; + var x=Math.floor(voxel.position.x/voxelSpacing)+GLOBALS.gridSize/2; var y=Math.floor(voxel.position.y/voxelSpacing); - var z=Math.floor(voxel.position.z/voxelSpacing)+gridSize/2; + var z=Math.floor(voxel.position.z/voxelSpacing)+GLOBALS.gridSize/2; if(y<0){ y=0; } - addNode (x,z ,y); //y is up + GLOBALS.addNode (x,z ,y); //y is up // voxel.name='[' +x +"," +z+","+y+']'; // voxel.position.divideScalar( voxelSpacing ).floor().multiplyScalar( voxelSpacing ).addScalar( voxelSpacing/2 ); @@ -171,9 +171,9 @@ document.addEventListener('addNode', function (e) { var voxel = new THREE.Mesh( three.cubeGeo, three.cubeMaterial ); // voxel.position.copy( intersect.point ).add( intersect.face.normal ); - // var x=Math.floor(voxel.position.x/voxelSpacing)+gridSize/2; + // var x=Math.floor(voxel.position.x/voxelSpacing)+GLOBALS.gridSize/2; // var y=Math.floor(voxel.position.y/voxelSpacing); - // var z=Math.floor(voxel.position.z/voxelSpacing)+gridSize/2; + // var z=Math.floor(voxel.position.z/voxelSpacing)+GLOBALS.gridSize/2; voxel.position.x=e.detail.posX; voxel.position.y=e.detail.posZ; voxel.position.z=e.detail.posY; -- GitLab