diff --git a/scripts/vr-edit/modules/createPalette.js b/scripts/vr-edit/modules/createPalette.js index aea2d365b3..928cb48048 100644 --- a/scripts/vr-edit/modules/createPalette.js +++ b/scripts/vr-edit/modules/createPalette.js @@ -110,6 +110,7 @@ CreatePalette = function (side, leftInputs, rightInputs) { } function update(intersectionOverlayID) { + var CREATE_OFFSET = { x: 0, y: 0.05, z: -0.02 }; // Highlight cube. if (intersectionOverlayID === cubeOverlay !== isHighlightingCube) { isHighlightingCube = !isHighlightingCube; @@ -119,14 +120,14 @@ CreatePalette = function (side, leftInputs, rightInputs) { // Cube click. if (isHighlightingCube && controlHand.triggerClicked() !== isCubePressed) { isCubePressed = controlHand.triggerClicked(); - if (isCubePressed) { Overlays.editOverlay(cubeOverlay, { localPosition: Vec3.sum(CUBE_PROPERTIES.localPosition, { x: 0, y: 0, z: 0.01 }) }); - CUBE_ENTITY_PROPERTIES.position = - Vec3.sum(MyAvatar.position, Vec3.multiplyQbyV(MyAvatar.orientation, { x: 0, y: 0.2, z: -1.0 })); - CUBE_ENTITY_PROPERTIES.rotation = MyAvatar.orientation; + CUBE_ENTITY_PROPERTIES.position = Vec3.sum(controlHand.palmPosition(), + Vec3.multiplyQbyV(controlHand.orientation(), + Vec3.sum({ x: 0, y: CUBE_ENTITY_PROPERTIES.dimensions.z / 2, z: 0 }, CREATE_OFFSET))); + CUBE_ENTITY_PROPERTIES.rotation = controlHand.orientation(); Entities.addEntity(CUBE_ENTITY_PROPERTIES); } else { Overlays.editOverlay(cubeOverlay, { diff --git a/scripts/vr-edit/modules/hand.js b/scripts/vr-edit/modules/hand.js index 0e2bf1c0b3..42d6751ed1 100644 --- a/scripts/vr-edit/modules/hand.js +++ b/scripts/vr-edit/modules/hand.js @@ -39,6 +39,7 @@ Hand = function (side) { handPose, handPosition, handOrientation, + palmPosition, intersection = {}; @@ -70,6 +71,10 @@ Hand = function (side) { return handOrientation; } + function getPalmPosition() { + return palmPosition; + } + function triggerPressed() { return isTriggerPressed; } @@ -88,7 +93,6 @@ Hand = function (side) { function update() { var gripValue, - palmPosition, overlayID, overlayIDs, overlayDistance, @@ -191,6 +195,7 @@ Hand = function (side) { valid: valid, position: position, orientation: orientation, + palmPosition: getPalmPosition, triggerPressed: triggerPressed, triggerClicked: triggerClicked, gripClicked: gripClicked,