Opened 5 years ago

Closed 5 years ago

#3362 closed enhancement (fixed)

Run command from VR wand button press

Reported by: m-schmid@… Owned by: Tom Goddard
Priority: moderate Milestone:
Component: VR Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

Would like to be able to click a VR button to run a command such as "volume resample #4 onGrid #2" to extract boxes from a tomogram (#4) using a template volume (#2) that is hand positioned in VR. Currently this involves taking off the VR headset to execute this command.

Would like to be able to define a mouse mode that executes a user-specified command, then in VR that mouse mode can be assigned to any wand button. To assign in VR the mouse mode would need an icon on the toolbar. The mode could less conveniently be assigned with the "vr button" command before starting vr.

It might be interesting to have a predefined mode called "Run command" and a way to define what command that mode runs. This could be handy with the mouse. But it only works for a single mode and the user might want a few different commands assigned to different buttons in VR for fancier use cases. A new VR toolbar that shows these modes might be helpful.

Change History (3)

comment:1 by Tom Goddard, 5 years ago

I added an option to the "vr button" command to make a vr hand controller button run a command. For example,

vr button grip hand left command "volume resample #4 onGrid #2"

You can assign different buttons to run different commands by using vr button multiple times. It would be nice if assignments could be remembered. Not sure how best to do that. For now maybe you can put them in a ChimeraX command file vrbuttons.cxc which can assign all the buttons the way you like them.

Might be nice to have an option to save all your current vr button assignments as the defaults whenever you start VR. Would also need a way to restore to the factory defaults.

I could see it being very handy to have a dozen commands you like to run from VR and there are not enough buttons. So maybe a better direction is to make a menu that pops up attached to the hand controller listing these commands and you just click the one you want. Right now I don't have any menus or panels that are attached to the hand controllers. Currently there is the "buttonpanel" command that allows you to create a panel of buttons that run specified commands. That basically gives you the menu of commands bit it is a bit inconvenient because you have to show it with the entire array VR gui user interface panels. Maybe what is needed is to allow you to attach one panel to a button and the panel pops up right in front of the hand controller ready to click an entry, and then dismisses it after one click. This could be used with other panels besides the one that runs commands, like Volume Viewer. Maybe this should be an entire alternative mode of accessing the panels where you press a button and get an array of panels to choose from, maybe miniature versions of the actual panels, you click one and just that one is shown right in front of your cone, ready for use. Another way to access all your recent commands is the command history panel. That could be handy in VR. Too many ideas, too little time.

Last edited 5 years ago by Tom Goddard (previous) (diff)

in reply to:  2 ; comment:2 by m-schmid@…, 5 years ago

Hi-
Thanks. I am waiting on Yee to set permissions on my VR computer so I can replace the vr.py file to get a reasonable eyeball distance. I modified the file where you said to.

On 6/8/20, 7:00 PM, "ChimeraX" <ChimeraX-bugs-admin@cgl.ucsf.edu> wrote:

    #3362: Run command from VR wand button press
    ----------------------------------+-------------------------
              Reporter:  m-schmid@…   |      Owner:  Tom Goddard
                  Type:  enhancement  |     Status:  assigned
              Priority:  moderate     |  Milestone:
             Component:  VR           |    Version:
            Resolution:               |   Keywords:
            Blocked By:               |   Blocking:
    Notify when closed:               |   Platform:  all
               Project:  ChimeraX     |
    ----------------------------------+-------------------------
    
    Comment (by Tom Goddard):
    
     I added an option to the "vr button" command to make a vr hand controller
     button request run a command.  For example,
    
       vr button grip hand left command "volume resample #4 onGrid #2"
    
     You can assign different buttons to run different commands by using vr
     button multiple times.  It would be nice if assignments could be
     remembered.  Not sure how best to do that.  For now maybe you can put them
     in a ChimeraX command file vrbuttons.cxc which can assign all the buttons
     the way you like them.
    
     Might be nice to have an option to save all your current vr button
     assignments as the defaults whenever you start VR.  Would also need a way
     to restore to the factory defaults.
    
     I could see it being very handy to have a dozen commands you like to run
     from VR and there are not enough buttons.  So maybe a better direction is
     to make a menu that pops up attached to the hand controller listing these
     commands and you just click the one you want.  Right now I don't have any
     menus or panels that are attached to the hand controllers.  Currently
     there is the "buttonpanel" command that allows you to create a panel of
     buttons that run specified commands.  That basically gives you the menu of
     commands bit it is a bit inconvenient because you have to show it with the
     entire array VR gui user interface panels.  Maybe what is needed is to
     allow you to attach one panel to a button and the panel pops up right in
     front of the hand controller ready to click an entry, and then dismisses
     it after one click.  This could be used with other panels besides the one
     that runs commands, like Volume Viewer.  Maybe this should be an entire
     alternative mode of accessing the panels where you press a button and get
     an array of panels to choose from, maybe miniature versions of the actual
     panels, you click one and just that one is shown right in front of your
     cone, ready for use.  Another way to access all your recent commands is
     the command history panel.  That could be handy in VR.  Too many ideas,
     too little time.
    
    --
    Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/3362#comment:1>
    ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
    ChimeraX Issue Tracker
    

comment:3 by Tom Goddard, 5 years ago

Resolution: fixed
Status: assignedclosed

vr button command can assign any command to any VR controller button. Future improvement might be to save those assignments in session files.

Note: See TracTickets for help on using tickets.