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

@ -136,6 +136,8 @@ set(SLIC3R_GUI_SOURCES
GUI/ProgressStatusBar.cpp
GUI/PrintHostDialogs.cpp
GUI/PrintHostDialogs.hpp
GUI/Mouse3DController.cpp
GUI/Mouse3DController.hpp
Utils/Http.cpp
Utils/Http.hpp
Utils/FixModelByWin10.cpp
@ -167,7 +169,7 @@ add_library(libslic3r_gui STATIC ${SLIC3R_GUI_SOURCES})
encoding_check(libslic3r_gui)
target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui ${GLEW_LIBRARIES})
target_link_libraries(libslic3r_gui libslic3r avrdude cereal imgui ${GLEW_LIBRARIES} ${HIDAPI_LIBRARIES})
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE)
endif ()