# Disabling object transforms by VR controllers

**URL:** <https://discourse.slicer.org/t/disabling-object-transforms-by-vr-controllers/6904>\
**Category:** Feature requests\
**Tags:** virtual-reality\
**Created:** [May 23, 2019, 6:56pm UTC](https://discourse.slicer.org/t/disabling-object-transforms-by-vr-controllers/6904 "2019-05-23T18:56:06Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![drouin-simon](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/drouin-simon/32/258_2.png) [@drouin-simon](https://discourse.slicer.org/u/drouin-simon)\
**Post date:** [May 23, 2019, 6:56pm UTC](https://discourse.slicer.org/t/disabling-object-transforms-by-vr-controllers/6904/1 "2019-05-23T18:56:06Z")

</div>

Hi,

Is there a way to disable object transforms in VR, or to assign object transforms to a different button than world transform?

In the current implementation, it is very easy to transform an object by accident when the intent is to transform the world. This is particularly true when dealing with volume rendering, where the bounding box of the volume is usually bigger that the visible object.

My current workaround is to make all my objects non-selectable in subject hierarchy, but it is not very practical and has other unwanted consequences outside of VR.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 23, 2019, 7:31pm UTC](https://discourse.slicer.org/t/disabling-object-transforms-by-vr-controllers/6904/2 "2019-05-23T19:31:16Z")

</div>

> [@drouin-simon](#):
>
> My current workaround is to make all my objects non-selectable in subject hierarchy, but it is not very practical

What do you mean? How would you make it more practical? Or you mean that the fact that you need to lock object is not practical? We are reworking widget event processing and part of it is to make it easy to remap interaction events to widget events.

> [@drouin-simon](#):
>
> unwanted consequences outside of VR

Selectable property is only used for virtual reality right now, so there are no other consequences.

---

<div class="post-metadata">

**Author:** ![drouin-simon](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/drouin-simon/32/258_2.png) [@drouin-simon](https://discourse.slicer.org/u/drouin-simon)\
**Post date:** [May 23, 2019, 9:48pm UTC](https://discourse.slicer.org/t/disabling-object-transforms-by-vr-controllers/6904/3 "2019-05-23T21:48:42Z")

</div>

If the Selectable property is only ever used in VR, then this could be the way to go.

However, it doesn’t solve the case where you want an object to be selectable (so you don’t set the flag), but you want to avoid accidental selection when the user is transforming the point of view. At the moment, this happens often and it is too easy to make that mistake.

There are many ways to improve:

- Allow assignment of world and object motion to different buttons.
- Give the user a few hundred milliseconds to press the second trigger before starting to transform.
- Provide visual feedback when objects are selected for transforms. e.g. bounding box appears around the object.
- Assign a button to undo the last object transform so that you don’t need to go out of VR to correct the mistake.
- etc…

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [May 24, 2019, 5:47pm UTC](https://discourse.slicer.org/t/disabling-object-transforms-by-vr-controllers/6904/4 "2019-05-24T17:47:25Z")

</div>

Thank you, all of these are good points.

> [@drouin-simon](#):
>
> Allow assignment of world and object motion to different buttons

This might already be the case - try grab and trigger buttons.

> [@drouin-simon](#):
>
> Provide visual feedback when objects are selected for transforms. e.g. bounding box appears around the object.

We plan to implement this.

> [@drouin-simon](#):
>
> Assign a button to undo the last object transform so that you don’t need to go out of VR to correct the mistake

Undo/redo infrastructure was disabled in Slicer because it was too complicated. We recently reviewed undo/redo infrastructure in Slicer and could fix it to work quite well. We could consider enabling undo/redo again.
