From 6204f95e1e46d7facf35b1bb5ae110c607ec5f19 Mon Sep 17 00:00:00 2001 From: amandaghassaei <amandaghassaei@gmail.com> Date: Sat, 4 Mar 2017 00:17:57 -0500 Subject: [PATCH] drag node --- index.html | 7 ++++--- js/dynamicModel.js | 3 ++- js/main.js | 10 ---------- js/node.js | 4 ++-- js/threeView.js | 8 ++++---- 5 files changed, 12 insertions(+), 20 deletions(-) diff --git a/index.html b/index.html index 96726c7..bd38051 100644 --- a/index.html +++ b/index.html @@ -83,13 +83,14 @@ vec2 fragCoord = gl_FragCoord.xy; vec2 scaledFragCoord = fragCoord/u_textureDim; + vec3 lastPosition = texture2D(u_lastPosition, scaledFragCoord).xyz; + float isFixed = texture2D(u_mass, scaledFragCoord).y; if (isFixed == 1.0){ - gl_FragColor = vec4(0.0); + gl_FragColor = vec4(lastPosition, 0.0); return; } - vec3 lastPosition = texture2D(u_lastPosition, scaledFragCoord).xyz; vec3 velocity = texture2D(u_velocity, scaledFragCoord).xyz; vec3 position = velocity*u_dt + lastPosition; gl_FragColor = vec4(position, 0.0); @@ -122,7 +123,7 @@ vec2 scaledFragCoord = fragCoord/u_textureDim; vec2 mass = texture2D(u_mass, scaledFragCoord).xy; - if (mass.y == 1.0){//fixed + if (mass[1] == 1.0){//fixed gl_FragColor = vec4(0.0); return; } diff --git a/js/dynamicModel.js b/js/dynamicModel.js index 02a133e..5b73bf8 100644 --- a/js/dynamicModel.js +++ b/js/dynamicModel.js @@ -382,12 +382,13 @@ function initDynamicModel(globals){ function updateLastPosition(){ for (var i=0;i<nodes.length;i++){ - var _position = nodes[i].getRelativePositon(); + var _position = nodes[i].getRelativePosition(); lastPosition[4*i] = _position.x; lastPosition[4*i+1] = _position.y; lastPosition[4*i+2] = _position.z; } globals.gpuMath.initTextureFromData("u_lastPosition", textureDim, textureDim, "FLOAT", lastPosition, true); + globals.gpuMath.initFrameBufferForTexture("u_lastPosition", true); } function setCreasePercent(percent){ diff --git a/js/main.js b/js/main.js index 3634a53..4e97a2b 100644 --- a/js/main.js +++ b/js/main.js @@ -115,16 +115,6 @@ $(function() { return _highlightedObj; } - function dragNode(e){ - globals.threeView.enableControls(false); - highlightedObj.highlight(); - raycasterPlane.set(raycasterPlane.normal, -highlightedObj.getPosition().z); - var intersection = new THREE.Vector3(); - raycaster.ray.intersectPlane(raycasterPlane, intersection); - // globals.dynamicModel.updateFixedHeights(); - // globals.dynamicModel.updateOriginalPosition(); - } - globals = initGlobals(); globals.model = initModel(globals); globals.dynamicModel = initDynamicModel(globals); diff --git a/js/node.js b/js/node.js index 1ca8ee5..9f76400 100644 --- a/js/node.js +++ b/js/node.js @@ -145,7 +145,7 @@ Node.prototype.hide = function(){ }; Node.prototype.render = function(position){ - if (this.fixed) return; + // if (this.fixed) return; position.add(this.getOriginalPosition()); this.object3D.position.set(position.x, position.y, position.z); }; @@ -167,7 +167,7 @@ Node.prototype.getPosition = function(){ return this.object3D.position; }; -Node.prototype.getRelativePositon = function(){ +Node.prototype.getRelativePosition = function(){ return this.object3D.position.clone().sub(this._originalPosition); }; diff --git a/js/threeView.js b/js/threeView.js index 0f97c12..802e85f 100644 --- a/js/threeView.js +++ b/js/threeView.js @@ -8,7 +8,7 @@ function initThreeView(globals) { var wrapper = new THREE.Object3D(); var patternWrapper = new THREE.Object3D(); var modelWrapper = new THREE.Object3D(); - var camera = new THREE.OrthographicCamera(window.innerWidth / -2, window.innerWidth / 2, window.innerHeight / 2, window.innerHeight / -2, -1000, 1000);//-40, 40); + var camera = new THREE.OrthographicCamera(window.innerWidth / -2, window.innerWidth / 2, window.innerHeight / 2, window.innerHeight / -2, -10000, 10000);//-40, 40); var renderer = new THREE.WebGLRenderer({antialias: true}); var controls; @@ -45,9 +45,9 @@ function initThreeView(globals) { camera.zoom = 1; camera.updateProjectionMatrix(); - camera.position.x = 40; - camera.position.y = 40; - camera.position.z = 40; + camera.position.x = 4000; + camera.position.y = 4000; + camera.position.z = 4000; controls = new THREE.OrbitControls(camera, container.get(0)); controls.addEventListener('change', render); -- GitLab