ENABLE_3DCONNEXION_DEVICES - 1st installment of support for 3Dconnexion devices

Implemented using hidapi library (https://github.com/libusb/hidapi) and https://github.com/koenieee/CrossplatformSpacemouseDriver/tree/master/SpaceMouseDriver as reference

Unsolved issues:

- When manipulating the SpaceNavigator wxWidgets generates a mouse wheel event that needs to be filtered out

- wxWidgets does not detect devices being connected/disconnected to the pc

- Current state forces a continuous rendering

- Current state misses dependence on camera zoom

- Non intuitive movement limits

- Translation and rotation speed factors are hardcoded

- Number of device buttons hardcoded
This commit is contained in:
Enrico Turri 2019-09-27 14:52:19 +02:00
parent c1e3be9b27
commit f958cfd2ff
14 changed files with 3805 additions and 1 deletions

View file

@ -41,6 +41,7 @@ class ObjectSettings;
class ObjectLayers;
class ObjectList;
class GLCanvas3D;
class Mouse3DController;
using t_optgroups = std::vector <std::shared_ptr<ConfigOptionsGroup>>;
@ -251,6 +252,10 @@ public:
void msw_rescale();
const Camera& get_camera() const;
#if ENABLE_3DCONNEXION_DEVICES
const Mouse3DController& get_mouse3d_controller() const;
Mouse3DController& get_mouse3d_controller();
#endif // ENABLE_3DCONNEXION_DEVICES
// ROII wrapper for suppressing the Undo / Redo snapshot to be taken.
class SuppressSnapshots