VTK/3DConnexion Devices Support
Support for 3DConnexion Devices (SpaceNavigator, SpacePilot) inside VTK
THIS IS EXPERIMENTAL WORK
Naming convention
We pick the name TDx to refer to classes or types to support 3DConnexion Devices. "T" stands for "Three", "x" stands for "connexion". Why? because 3DConnexion calls its software 3DxWare but we cannot have types and classes starting with a number in C++, so we chose "T" instead of "3".
Supported Platform
- Linux: yes (tested with Ubuntu GNU/Linux 9.04 x86_64, gcc, with a 3DConnexion SpaceNavigator)
- Windows: yes (tested with Windows Vista Ultimate SP2 64-bit, Visual Studio 9 SP1, with a 3DConnexion SpaceNavigator)
- Mac: no yet
How to use it
Install the 3DConnexion Device driver
Linux
= Download
- Download the driver from the 3DConnexion wesbite: http://www.3dconnexion.com/support/downloads.php
- Select the product, (example SpaceNavigator SE),
- select the OS (Linux),
- select the driver file for the architecture (3DxWare for Linux (i386) for 32-bit, 3DxWare for Linux (x86_64) for 64-bit )
For example, for Linux 64-bit, we will get the 3 following files:
- 3dxware-linux-v1-4-3.x86_64.tar.gz,
- InstallationInstructions_Linux.txt,
- Release_Notes-All_Platforms-20090806.pdf
Install required packages
On Ubuntu, install package libmotif3. The GUI of the 3DConnexion device driver uses it.
Install the driver
As root, follow the instructions of InstallationInstructions_Linux.txt. Basically:
- tar xzvf 3dxware-linux-v1-4-3.x86_64.tar.gz
- ./install-3dxunix.sh
Then, you have to change to permissions of the installed files manually (ref [forum thread]) in /etc/3DxWare:
sudo chmod go+rx /etc/3DxWare sudo chmod go+r /etc/3DxWare/*.scg
Test the driver
Launch the daemon (with sudo):
sudo /etc/3DxWare/daemon/3dxsrv -d usb
The GUI is created but not on top of the desktop. Check for a 3DxWare window on your desktop.
If you forgot to change permissions of the installed files, we will have this error message:
$ sudo /etc/3DxWare/daemon/3dxsrv -d usb 3DxWareUNIX = V1.4.3 Device = SpaceNavigator Firmware = V3.18 [2009-08-19 12:01:28] Error: Can't find any configuration files! Please reinstall you configurations in /etc/3DxWare properly!
Windows
Easy. Nothing to add about it.
Install the 3DConnexion SDK
Linux
Windows
Easy. There is nothing to install
Configure VTK
Launch cmake and set the advanced option VTK_USE_TDx to TRUE
Linux
Set the advanced variables:
- VTK_TDX_INCLUDE_PATH to point to the path of xdrvlib.h (without mentioning xdrvlib.h)
- VTK_TDX_OBJECT_PATH to the full path to xdrvlib.a (mentioning xdrvlib.a)
Windows
Easy. There is nothing else to set.
Build VTK
Just build vtk.
Test it
Launch TestTDx in interactive mode 1. Get the full command line of the test with:
$ ctest -R TestTDx -V -N
2. Copy the full command line in the prompt and add -I at the end, to run the test in interactive mode
3. Enjoy