From a9c5f044c88ee82742bad322c6728545a22637af Mon Sep 17 00:00:00 2001 From: Eric Levin Date: Thu, 30 Apr 2015 11:39:27 -0700 Subject: [PATCH] changed grab script so user can only grab with left mouse click and we update velocityof grabbed object every frame instead of flinging it onb release --- examples/grab.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/examples/grab.js b/examples/grab.js index dc250b9d27..71264da509 100644 --- a/examples/grab.js +++ b/examples/grab.js @@ -50,6 +50,9 @@ var dropLine = Overlays.addOverlay("line3d", { function mousePressEvent(event) { + if(!event.isLeftButton){ + return; + } var pickRay = Camera.computePickRay(event.x, event.y); var intersection = Entities.findRayIntersection(pickRay); if (intersection.intersects && intersection.properties.collisionsWillMove) { @@ -83,7 +86,7 @@ function mousePressEvent(event) { function mouseReleaseEvent() { if (isGrabbing) { - flingObject(); + // flingObject(); Entities.editEntity(grabbedEntity, { gravity: savedGravity }); @@ -108,7 +111,6 @@ function flingObject() { function mouseMoveEvent(event) { if (isGrabbing) { entityProps = Entities.getEntityProperties(grabbedEntity); - prevPosition = entityProps.position; avatarEntityDistance = Vec3.distance(MyAvatar.position, entityProps.position); finalMoveMultiplier = baseMoveFactor * Math.pow(avatarEntityDistance, 1.5); deltaMouse.x = event.x - prevMouse.x; @@ -133,9 +135,17 @@ function mouseMoveEvent(event) { z: 0 }) }); + + flingVelocity = Vec3.subtract(entityProps.position, prevPosition); + flingVelocity = Vec3.multiply(flingMultiplier, flingVelocity); + Entities.editEntity(grabbedEntity, { + velocity: flingVelocity + }); + prevPosition = entityProps.position; } prevMouse.x = event.x; prevMouse.y = event.y; + } function keyReleaseEvent(event) {