From: John Stone (johns_at_ks.uiuc.edu)
Date: Tue Nov 24 2009 - 11:06:52 CST

Dipesh,
  If your devices will all connect to VMD via VRPN, then it can already
handle a multiplicity of concurrently attached devices. You need only
add the appropriate configuration lines to the .vmdsensors file.
There shouldn't be any need to create special device subclasses unless
you want to do something beyond what the VRPN API (or the VMD usage thereof)
currently supports.

If you want to use the Joystick to control VMD in a more "1st person"
mode, (rather than manipulating a wand pointer on the screen) then you
may indeed want to make your own joystick subclass, see the code in
Win32Joystick.[Ch] for reference on this.

Cheers,
  John

On Tue, Nov 24, 2009 at 10:27:22AM -0600, Dipesh Bhattarai wrote:
> John,
>
> Thank you for the links.
>
> I do not have option to use CAVE or FreeVR related classes. We have a
> VRPN server where all the input devices are connected and the
> application connects to the server to request information about
> specific devices that it is interested in. Currently, I am using an
> Intersense IS-900 wand/gamepad.
>
> My ultimate goal is to enable the features of standalone VMD in the
> immersive environment. Currently, I am using one VRPNTracker and one
> VRPNButton objects to encapsulate the information about position of
> the wand and the statuses of the buttons on the wand. I am able to
> select and move the molecule around. The outputs are not very smooth,
> but that is separate calibration issue which is outside of the scope
> of VMD. My main concern here is how to efficiently manage multiple
> devices because I will be looking into adding other 3D devices such as
> head tracker and joystick. I looked at UIVR class and found it had
> features that might be helpful in that respect. If there are some code
> snippets that shows how to use UIVR class, that will be very helpful.
> I am not looking into subclassing.
>
> Thanks,
> Dipesh
>
> On Mon, Nov 23, 2009 at 5:15 PM, John Stone <johns_at_ks.uiuc.edu> wrote:
> > Dipesh,
> >  If you tell me more about what questions you have I will be
> > better able to assist you.  Rather than subclassing UIObject or UIVR,
> > I would recommend looking at the Buttons/Feedback/VMDTracker classes,
> > as that's what we subclass in all of the other 3-D input devices,
> > e.g. VRPN, CAVE, FreeVR:
> >  http://www.ks.uiuc.edu/Research/vmd/doxygen/classButtons.html
> >  http://www.ks.uiuc.edu/Research/vmd/doxygen/classVMDTracker.html
> >
> > You can get a bird's eye view of this here:
> >  http://www.ks.uiuc.edu/Research/vmd/doxygen/classUIObject.html
> >  http://www.ks.uiuc.edu/Research/vmd/doxygen/classTool.html
> >
> > You may find that the CAVE and FreeVR related tracker/buttons objects
> > are more closely related to what you need for VRJuggler than the
> > VRPN objects.
> >
> > Cheers,
> >  John Stone
> >  vmd_at_ks.uiuc.edu
> >
> > On Mon, Nov 23, 2009 at 10:59:57AM -0600, Dipesh Bhattarai wrote:
> >> Hi,
> >>
> >> I am trying to make VMD work with VR Juggler in clustered immersive
> >> environment. I am able to use information from VRPN to position the
> >> tracker cursor on the screen. I was doing this for individual tool.
> >> But it seems like the right approach is to use UIVR class to manage
> >> different tools. Source code is very helpful, but if I can get some
> >> explanation about the usage from the developers of the VMD, that will
> >> be extremely helpful.
> >>
> >> Thank you,
> >> Dipesh Bhattarai
> >
> > --
> > NIH Resource for Macromolecular Modeling and Bioinformatics
> > Beckman Institute for Advanced Science and Technology
> > University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> > Email: johns_at_ks.uiuc.edu                 Phone: 217-244-3349
> >  WWW: http://www.ks.uiuc.edu/~johns/      Fax: 217-244-6078
> >
>
>
>
> --
> Dipesh Bhattarai, PhD

-- 
NIH Resource for Macromolecular Modeling and Bioinformatics
Beckman Institute for Advanced Science and Technology
University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
Email: johns_at_ks.uiuc.edu                 Phone: 217-244-3349
  WWW: http://www.ks.uiuc.edu/~johns/      Fax: 217-244-6078