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

@ -365,6 +365,25 @@ include_directories(${GLEW_INCLUDE_DIRS})
add_library(cereal INTERFACE)
target_include_directories(cereal INTERFACE include)
# Find the hidapi library
if(WIN32)
add_library(hidapi STATIC
${LIBDIR}/hidapi/win/hid.c
)
elseif (APPLE)
add_library(hidapi STATIC
${LIBDIR}/hidapi/mac/hid.c
)
else ()
add_library(hidapi STATIC
${LIBDIR}/hidapi/linux/hid.c
)
endif ()
set(HIDAPI_FOUND 1)
set(HIDAPI_INCLUDE_DIRS ${LIBDIR}/hidapi/)
set(HIDAPI_LIBRARIES hidapi)
include_directories(${HIDAPI_INCLUDE_DIRS})
# l10n
set(L10N_DIR "${SLIC3R_RESOURCES_DIR}/localization")
add_custom_target(pot