From c9f4958925979aea07c2df9e68a1eea2dc02ac4e Mon Sep 17 00:00:00 2001 From: SamGondelman Date: Fri, 18 Aug 2017 10:39:40 -0700 Subject: [PATCH] handControllerGrab fix, maybe, hopefully --- scripts/system/controllers/handControllerGrab.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/system/controllers/handControllerGrab.js b/scripts/system/controllers/handControllerGrab.js index 44f79a5570..9318873f64 100644 --- a/scripts/system/controllers/handControllerGrab.js +++ b/scripts/system/controllers/handControllerGrab.js @@ -352,7 +352,7 @@ function projectOntoXYPlane(worldPos, position, rotation, dimensions, registrati function projectOntoEntityXYPlane(entityID, worldPos) { var props = entityPropertiesCache.getProps(entityID); - if (props) { + if (props && props.position && props.rotation && props.dimensions && props.registrationPoint) { return projectOntoXYPlane(worldPos, props.position, props.rotation, props.dimensions, props.registrationPoint); } } @@ -368,16 +368,20 @@ function projectOntoOverlayXYPlane(overlayID, worldPos) { var resolution = Overlays.getProperty(overlayID, "resolution"); resolution.z = 1; // Circumvent divide-by-zero. var scale = Overlays.getProperty(overlayID, "dimensions"); - scale.z = 0.01; // overlay dimensions are 2D, not 3D. - dimensions = Vec3.multiplyVbyV(Vec3.multiply(resolution, INCHES_TO_METERS / dpi), scale); + if (scale) { + scale.z = 0.01; // overlay dimensions are 2D, not 3D. + dimensions = Vec3.multiplyVbyV(Vec3.multiply(resolution, INCHES_TO_METERS / dpi), scale); + } } else { dimensions = Overlays.getProperty(overlayID, "dimensions"); - if (dimensions.z) { + if (dimensions && dimensions.z) { dimensions.z = 0.01; // overlay dimensions are 2D, not 3D. } } - return projectOntoXYPlane(worldPos, position, rotation, dimensions, DEFAULT_REGISTRATION_POINT); + if (position && rotation && dimensions) { + return projectOntoXYPlane(worldPos, position, rotation, dimensions, DEFAULT_REGISTRATION_POINT); + } } function handLaserIntersectItem(position, rotation, start) {