-
-
Notifications
You must be signed in to change notification settings - Fork 229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for 3dconnexion input devices (SpaceMouse) #1808
Comments
VTK does support 3dconnexion devices. See https://vtk.org/Wiki/VTK/3DConnexion_Devices_Support |
Hum, afaik current support is not great. There was an intent to improve it but it was never finished: https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7262 |
Actually this was finished in ParaView directly: https://gitlab.kitware.com/paraview/paraview/-/merge_requests/5713 Not sure what that means for the VTK implementation, investigation needed |
As far as I can tell, the VTK implementation uses the official SDK (and hence needs the official 3Dconnexion driver) exclusively, which hasn't been updated for Linux in more than 10 years. It doesn't support any newer devices and is therefore not really usable, so the project I linked above became the default. I don't even know if it'll run on modern Linux kernels. To support modern devices across all platforms, one cannot rely on the VTK implementation. The only reasonable way to implement it is to implement it separately for each platform (i.e. the 3Dconnexion SDK on Windows and Mac, libspnav on Linux). As I have neither worked with libspnav, nor the official SDK, I'm not entirely sure if I'll be able to implement it, but I'll do additional investigation over the holidays (although I don't have high hopes on this). |
I had no idea the official Linux driver was in this state, thanks for letting us know. In any case, someone with knowledge of these APIs would need to take this on. |
Is your feature request related to a problem? Please describe.
Right now the only input method I can use is mouse/keyboard navigation. However, I regularly use a SpaceMouse in other 3d Software, so switching input devices for different software is pretty inconvenient. I think F3D would really benefit from more advanced input methods specifically designed for spatial navigation.
Describe the solution you'd like
On Linux, there's the FreeSpacenav project. It offers a BSD-3 licensed library and is the de facto standard for using 3dconnexion devices on Linux (see OpenSCAD, Blender and FreeCAD). I have no idea on how it's done on Windows and MacOS, although I think 3dconnexion offers a SDK.
Contribution
I really don't think I can do this, as it's been a while since I used C/C++.
The text was updated successfully, but these errors were encountered: