Commit Graph

40 Commits

Author SHA1 Message Date
bubnikv
2bda907a5b WIP: Windows specific 3Dconnexion using WM_INPUT.
This implementation works with the 3DConnexion driver (sic!)
if PrusaSlicer.xml is stored into c:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\Cfg\

The implementation is inspired with Blender, see code inside WITH_INPUT_NDOF blocks.
2020-03-31 09:01:55 +02:00
Enrico Turri
88b761c71c Follow-up of f912fecad5 -> option to swap y/z axes extended to rotations 2020-03-20 16:13:08 +01:00
Enrico Turri
de99fd4d71 3DConnexion devices: added option to swap y/z translations 2020-03-20 13:09:42 +01:00
bubnikv
4cd1243a79 Windows specific refactoring of Mouse3DController and RemovableDriveManager.
PrusaSlicer newly registers by Windows operating system for HID USB
plug / unplug notifications and for Volume attach / detach notifications,
and the background threads of the two respective services are waken up
on these Windows notifications.
The RemovableDriveManager also wakes up every 30 seconds to cope with
the drives ejected from Windows Explorer or from another application,
for example Cura, for which Windows OS does not send out notifications.
2020-03-13 14:19:14 +01:00
bubnikv
c0f0be9ab8 Fixed uninitialized "Connected" flag of the Mouse3DController
after refactoring.
2020-03-06 15:12:39 +01:00
Lukas Matena
b849a2e73c Added a missing include 2020-03-05 12:00:23 +01:00
bubnikv
30c432c561 WIP 3Dconnexion refactoring: Fixing compilation on OSX 2020-03-04 12:18:59 +01:00
bubnikv
248dc04892 Reworked the 3DConnexion interfacing code to run the device
enumeration / connect / disconnect and read out at the background
thread only.
2020-03-04 11:36:36 +01:00
Enrico Turri
7b028d7c01 ENABLE_3DCONNEXION_Y_AS_ZOOM set as default 2020-02-13 09:20:20 +01:00
David Kocik
342544c139 OSX handler for 3dconnexion drivers 2020-01-21 14:44:20 +01:00
Enrico Turri
ecccddbc67 ENABLE_3DCONNEXION_DEVICES_CLOSE_SETTING_DIALOG set as default 2020-01-17 11:45:52 +01:00
Enrico Turri
71dcc792c6 Attempt to fix #3479 2020-01-08 12:30:42 +01:00
Enrico Turri
0e0fdcf697 3DConnexion devices' Y axis used for zoom in/zoom out 2020-01-03 14:42:52 +01:00
Enrico Turri
b4d45eb2d9 Fixed unresponsive 3Dconnexion device when switching to preview 2020-01-03 11:41:29 +01:00
Enrico Turri
59e1ff1676 Added [X] and [Close] buttons to close 3Dconnexion setting imgui dialog by clicking on them 2019-12-16 13:35:45 +01:00
Enrico Turri
9122b59bdd Another attempt to fix build on Linux (due to ab00f501f1) 2019-11-25 12:45:49 +01:00
Enrico Turri
20814466c2 #3230 - Detection of 3Dconnexion devices every 2 seconds 2019-11-25 10:34:42 +01:00
Enrico Turri
dbffd1cac1 Disabled ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT 2019-11-22 15:35:34 +01:00
Enrico Turri
e1cc82c2d0 3Dconnexion devices -> Disabled handling of device buttons / Added camera target to debug dialog / Added extra debug output 2019-11-11 13:04:02 +01:00
Enrico Turri
ada6905aa9 Follow-up of a065c92302 -> proper enabling of debug output 2019-10-21 11:12:56 +02:00
Enrico Turri
2399d964de ENABLE_3DCONNEXION_DEVICES tech set as default 2019-10-11 15:51:36 +02:00
Enrico Turri
447fa0017c ENABLE_3DCONNEXION_DEVICES -> Refactoring and code cleanup 2019-10-10 11:55:17 +02:00
Enrico Turri
6a3c73ed06 ENABLE_3DCONNEXION_DEVICES -> Slightly increased camera target movement limits 2019-10-10 10:49:47 +02:00
Enrico Turri
ec9ea9fb03 Fixed build on OsX 2019-10-10 09:29:55 +02:00
Enrico Turri
19217c94f7 ENABLE_3DCONNEXION_DEVICES -> Experimental input queues with max size 2019-10-10 09:04:44 +02:00
Enrico Turri
bd0b78a7f9 ENABLE_3DCONNEXION_DEVICES -> Added temporary debug output to measure input queue sizes 2019-10-09 15:23:30 +02:00
Enrico Turri
0604315671 ENABLE_3DCONNEXION_DEVICES -> Added tech ENABLE_3DCONNEXION_DEVICES_DEBUG_OUTPUT for debug output 2019-10-09 14:18:43 +02:00
Enrico Turri
c195840c5a ENABLE_3DCONNEXION_DEVICES -> Added translation and rotation customizable parameter deadzone 2019-10-08 14:32:05 +02:00
Enrico Turri
476b81c1ce ENABLE_3DCONNEXION_DEVICES -> Mouse3DController reworked to handle reports of length 7 bytes and 13 bytes 2019-10-08 13:38:08 +02:00
Enrico Turri
6b57febe0c ENABLE_3DCONNEXION_DEVICES -> Hack for filtering out mouse wheel events coming from 3Dconnexion driver 2019-10-08 08:44:50 +02:00
Enrico Turri
aaed88eef7 ENABLE_3DCONNEXION_DEVICES -> Automatic detection of plugging/unplugging 3Dconnexion devices 2019-10-04 10:59:27 +02:00
Enrico Turri
1ebb8d3caa ENABLE_3DCONNEXION_DEVICES -> Another small refactoring of Mouse3DController 2019-10-04 07:58:01 +02:00
Enrico Turri
c64f563e63 ENABLE_3DCONNEXION_DEVICES -> Refactored Mouse3DController to simplify code 2019-10-03 12:16:59 +02:00
Enrico Turri
a8760a5526 ENABLE_3DCONNEXION_DEVICES -> Refactored Mouse3DController to be unaware of current active GLCanvas3D 2019-10-03 11:38:31 +02:00
Enrico Turri
42030bc6c7 ENABLE_3DCONNEXION_DEVICES -> Serialization of mouse device parameters into config 2019-10-03 10:26:28 +02:00
Enrico Turri
869d1ca48d ENABLE_3DCONNEXION_DEVICES - Added imgui dialog to edit 3Dconnexion device parameters 2019-10-02 15:55:26 +02:00
Enrico Turri
0400384d70 ENABLE_3DCONNEXION_DEVICES -> Increased limit of device buttons 2019-09-30 15:58:45 +02:00
Vojtech Kral
e40b6ba364 hidapi: Fix include path 2019-09-30 15:20:23 +02:00
Enrico Turri
5bf722f015 Added missing include 2019-09-27 15:26:13 +02:00
Enrico Turri
f4b29a4107 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
2019-09-27 14:52:19 +02:00