Skip to content

Commit

Permalink
pass between controllers
Browse files Browse the repository at this point in the history
  • Loading branch information
elalish committed Sep 20, 2024
1 parent c813f00 commit 34d5be9
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 10 deletions.
2 changes: 1 addition & 1 deletion packages/model-viewer/src/test/features/annotation-spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -267,7 +267,7 @@ suite('Annotation', () => {
expect(wrapper.classList.contains('hide')).to.be.false;

element[$scene].yaw = Math.PI;
element[$scene].updateMatrixWorld();
element[$scene].updateMatrixWorld(true);
element[$needsRender]();

await waitForEvent(hotspot, 'hotspot-visibility');
Expand Down
14 changes: 5 additions & 9 deletions packages/model-viewer/src/three-components/ARRenderer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -311,7 +311,8 @@ export class ARRenderer extends EventDispatcher<

private hover(controller: XRTargetRaySpace) {
// Do not highlight in mobile-ar
if (controller.userData.targetRayMode === 'screen') {
if (controller.userData.targetRayMode === 'screen' ||
this.selectedController == controller) {
return false;
}

Expand All @@ -323,13 +324,7 @@ export class ARRenderer extends EventDispatcher<
return intersection != null;
}

// private dropOnFloor(){
// }

private onControllerSelectStart(event: XRControllerEvent) {
if (this.selectedController != null) {
return;
}
const scene = this.presentedScene!;
const controller = event.target;
controller.userData.targetRayMode = event.data.targetRayMode;
Expand All @@ -346,6 +341,7 @@ export class ARRenderer extends EventDispatcher<
return;
}
const scene = this.presentedScene!;
// drop on floor
scene.attach(scene.pivot);
this.selectedController = null;
this.goalYaw = scene.yaw;
Expand Down Expand Up @@ -843,8 +839,8 @@ export class ARRenderer extends EventDispatcher<
* Only public to make it testable.
*/
public onWebXRFrame(time: number, frame: XRFrame) {
this.placementBox!.show = this.selectedController == null &&
(this.hover(this.controller1) || this.hover(this.controller2));
this.placementBox!.show =
this.hover(this.controller1) || this.hover(this.controller2);

this.frame = frame;
++this.frames;
Expand Down

0 comments on commit 34d5be9

Please sign in to comment.