[vtk-developers] Widget picking interfaces only for mouse

Thompson, David C dcthomp at sandia.gov
Mon Dec 8 03:21:08 EST 2003


>> Finally, what about devices that might be used in
>> multiple contexts?
> You are correct that different devices would have
> more natural ways to interact with objects in VTK,
> but I know of no general solution to that in any
> toolkit.  I was happy to find that the 2D mousing
> method of picking control points also works in
> immersive worlds.  Someone would just have to write
> their own widget for another style of interaction,
> which wouldn't be terrible.
> Actually, DirectX allows you to assign _logical_
> meanings to controllers instead of just reading
> joystick position, so you can change whether pulling
> back on a joystick makes you fly up or down outside
> of an application.  It works well for driving games
> and flight simulators, but I wouldn't guess how to
> apply such a thing to protein folding or structural
> analysis.
Well, perhaps I'm showing my age, but PHIGS (may it
rest in peace) had an interface for dealing with
input devices in general. From
http://as400bks.rochester.ibm.com/doc_link/en_US/a_doc_lib/libs/phigsisosubs
/AWAIT_EVENT.htm#Header_516 

   There are six logical input device classes:
   locator, stroke, valuator, choice, pick, and string.
   There are three modes of interaction with the input
   devices: sample, request, and event.

Now, I'm not proposing to adopt those classes (it seems
like a locator is really just 2 or 3 valuators, a
stroke isn't as generic as a gesture, ... there are a
lot of little inconsistencies), but the idea of a device
simply presenting itself as a set of valuators could be
very useful: you could combine as many devices as you
wanted to control any subset of a vtk3DWidget's degrees
of freedom. A widget would present a list of valuators
as inputs (plus a set of handles that could be used to
manipulate the widget with generic picking). Then anyone
could use any set of devices to control any widget.
Sort of a VTK-style pipeline for input processing.

        David




More information about the vtk-developers mailing list