[chimera-dev] 3dconnexion
Tom Goddard
goddard at sonic.net
Thu Mar 7 16:07:47 PST 2013
Hi Matt,
Chimera use of 3dconnexion devices like Space Navigator was a pain to
implement because 3dconnexion has different APIs on Windows, Mac and
Linux -- so we have 3 different ways of interfacing to the device for
those 3 operating systems. None of them have been very well implemented.
On Mac OS Chimera gets the space navigator events via a C++ library
we wrote. It is
Chimera.app/Contents/Resources/lib/_spacenavigator.so
Remove or rename that (e.g. to _spacenavigator.so.keep) and Chimera will
not get an space navigator events.
I recently tried two space navigators on the Mac by modifying
_spacenavigator.so. I used one to dock a ligand while the other changed
the view point. I didn't check in that code though. But it was not
difficult to get the separate events from two devices. I haven't decided
whether to check in that code. It requires some clean-up that I don't
have time for right now.
The Mac Chimera interface gets the space nav events even when Chimera
does not have the input focus. I think this is probably what you mean
by it is using the low level driver. I spent many hours trying to get
it to receive only events when Chimera had the input focus, there is an
argument to a 3dconnexion initialization routine that is supposed to do
this, but nothing worked. I found no working example on the web
either. Look at the Chimera _spacenavigator.so code in the
spacenav_connect() routine if you want to see where the problem is.
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/libs/_spacenavigator/spacenav.cpp
My experience has been that the 3dconnexion drivers are very poor
compared to the hardware quality.
Chimera has the scroll wheel hard-coded to zoom. That is bad. I made
a Chimera request to fix this 4 months ago when you asked
http://plato.cgl.ucsf.edu/trac/chimera/ticket/11512
Has not received any attention.
Tom
-------- Original Message --------
Subject: [chimera-dev] 3dconnexion
From: Dougherty, Matthew T
To: chimera-dev at cgl.ucsf.edu
Date: 3/7/13 3:18 PM
> Hi,
>
> I am starting to build a matrix of USB HID devices using controllermate on a mac.
>
> I am planning to use two 3dconnexion devices. one to handle 6D translation/rotation, and the other to manage color/lighting; or maybe left hand for trans and right for rotation, etc.
> .
> The current driver in chimera only sees one device. If I touch the first USB 3dconnexion device plugged in, it behaves as expected. Touching the second device, chimera acts as though it is the first device. So the driver is not keeping track of the number of devices.
>
> In controllermate I can see both devices and can program them independently.
>
> For example, I will be able to remap these signals to my choosing and pass it on to a chimera extension I am developing.
>
> The second problem I am having is when chimera starts up it exclusively grabs the low level driver, ignoring the the high level driver which incorporates context management.
> Consequently controllermate is unable to intercept and modify the signal before passing it on. A good reason to do this would be creating deadband zones, or a user defined response curve, or integration with multibutton panel like the logitech g13 so that I can modulate the response (eg, 0.1x,1x,10x,100x, etc).
>
> How do I disable 3dConnexion so that it will not load in chimera? I could wipe out the code, but would prefer minimally screwing with chimera base code which is a headache for daily builds and has a risk factor of unforeseen consequences. Something in preferences would be helpful.
>
> In a related question on preferences, the scroll wheel is tied to camera zoom. I would like to remap that as a movement in z. Generally I like to keep my scale factor at 1; I find heavy or casual use tends to get me into camera problems.
> Is this possible? at the moment I disable the scroll wheel.
>
>
> Matthew Dougherty
> National Center for Macromolecular Imaging
> Baylor College of Medicine
> _______________________________________________
> Chimera-dev mailing list
> Chimera-dev at cgl.ucsf.edu
> http://www.rbvi.ucsf.edu/mailman/listinfo/chimera-dev
>
More information about the Chimera-dev
mailing list