Opened 5 years ago
Last modified 5 years ago
#20276 new enhancement
3D mouse / spacenavd integration
| Reported by: | SammysHP | Owned by: | team |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | Core | Version: | |
| Keywords: | Cc: |
Description (last modified by )
Probably a feature not many people need or thought of.
Just bought myself a 3Dconnexion SpaceNavigator so that I have one at home for private work. After discovering that it is also supported by Google Earth I realized how intuitive it is to navigate around with such a device not only in CAD environments but also for mapping.
Sure, JOSM is entirely 2D, but even without tilt and rotation it's amazing how fast and easy you can move around without clicking. Motions aren't limited by screen size or mouse area¹ – you can move continuously as far as you want. And move and zoom at the same time. You can also keep the mouse cursor at the center of the screen while drawing and move the map around, using the mouse only for fine adjustments.
Feature request: Implement 3D mouse navigation, x and y axes for translation and z for zooming. Further refinements may include axes mapping, sensitivity and deadzone adjustments and button support.
For Linux there is a 3D mouse daemon with an API, libspnav/spacenavd:
https://github.com/FreeSpacenav/libspnav
https://github.com/FreeSpacenav/spacenavd
Sadly I'm not familiar with the navigation control interfaces of JOSM or how to use native code in Java / JOSM. The libspnav API is available via a C header, communicating with a socket. While using the header is very simple, it might be easier in Java to to communicate with the socket directly.
If there's an interface is JOSM which can be used to control map movements that is accessible from a plugin, this should be implemented as a plugin to not add platform specific code into the JOSM core.
¹ Although I already use a trackball, but repeatedly moving the cursor back and forth or zooming in and out when moving large distances is very tiring.


