distance from controller to object is sometimes decided by pickray

This commit is contained in:
Seth Alves 2017-09-08 17:04:09 -07:00
parent 56d5f587b6
commit a1ffc7abd0
2 changed files with 4 additions and 5 deletions

View file

@ -205,6 +205,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
var entityID = nearbyEntityIDs[j]; var entityID = nearbyEntityIDs[j];
var props = Entities.getEntityProperties(entityID, DISPATCHER_PROPERTIES); var props = Entities.getEntityProperties(entityID, DISPATCHER_PROPERTIES);
props.id = entityID; props.id = entityID;
props.distance = Vec3.distance(props.position, controllerLocations[h].position)
nearbyEntityPropertiesByID[entityID] = props; nearbyEntityPropertiesByID[entityID] = props;
nearbyEntityProperties[h].push(props); nearbyEntityProperties[h].push(props);
} }
@ -236,6 +237,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
var nearEntityID = rayPicks[h].objectID; var nearEntityID = rayPicks[h].objectID;
var nearbyProps = Entities.getEntityProperties(nearEntityID, DISPATCHER_PROPERTIES); var nearbyProps = Entities.getEntityProperties(nearEntityID, DISPATCHER_PROPERTIES);
nearbyProps.id = nearEntityID; nearbyProps.id = nearEntityID;
nearbyProps.distance = rayPicks[h].distance;
nearbyEntityPropertiesByID[nearEntityID] = nearbyProps; nearbyEntityPropertiesByID[nearEntityID] = nearbyProps;
nearbyEntityProperties[h].push(nearbyProps); nearbyEntityProperties[h].push(nearbyProps);
} }
@ -243,9 +245,7 @@ Script.include("/~/system/libraries/controllerDispatcherUtils.js");
// sort by distance from each hand // sort by distance from each hand
nearbyEntityProperties[h].sort(function (a, b) { nearbyEntityProperties[h].sort(function (a, b) {
var aDistance = Vec3.distance(a.position, controllerLocations[h].position); return a.distance - b.distance;
var bDistance = Vec3.distance(b.position, controllerLocations[h].position);
return aDistance - bDistance;
}); });
} }

View file

@ -148,8 +148,7 @@ Script.include("/~/system/libraries/cloneEntityUtils.js");
for (var i = 0; i < nearbyEntityProperties.length; i++) { for (var i = 0; i < nearbyEntityProperties.length; i++) {
var props = nearbyEntityProperties[i]; var props = nearbyEntityProperties[i];
var handPosition = controllerData.controllerLocations[this.hand].position; var handPosition = controllerData.controllerLocations[this.hand].position;
var distance = Vec3.distance(props.position, handPosition); if (props.distance > NEAR_GRAB_RADIUS) {
if (distance > NEAR_GRAB_RADIUS) {
break; break;
} }
if (entityIsGrabbable(props)) { if (entityIsGrabbable(props)) {