diff --git a/Base/Devices/imstkVRPNDeviceClient.cpp b/Base/Devices/imstkVRPNDeviceClient.cpp index 56dcda9ca0ce2fa1176a5a8480d5abd279207327..975fca1fb432fc98b57384503c5ddbe2a96429de 100644 --- a/Base/Devices/imstkVRPNDeviceClient.cpp +++ b/Base/Devices/imstkVRPNDeviceClient.cpp @@ -31,8 +31,6 @@ VRPNDeviceClient::initModule() { auto fullDeviceIp = this->getName().c_str(); - m_offsetSet = false; - m_vrpnTracker = std::make_shared<vrpn_Tracker_Remote>(fullDeviceIp); m_vrpnAnalog = std::make_shared<vrpn_Analog_Remote>(fullDeviceIp); m_vrpnButton = std::make_shared<vrpn_Button_Remote>(fullDeviceIp); @@ -100,14 +98,7 @@ VRPNDeviceClient::trackerChangeHandler(void *userData, const _vrpn_TRACKERCB t) quat.y() = t.quat[1]; quat.z() = t.quat[2]; quat.w() = t.quat[3]; - - if(!deviceClient->m_offsetSet) - { - deviceClient->m_rotOffset = quat.inverse(); - deviceClient->m_offsetSet = true; - return; - } - deviceClient->m_orientation = deviceClient->m_rotOffset * quat; + deviceClient->m_orientation = quat; //LOG(DEBUG) << "tracker: position = " << t.pos[0] << " " << t.pos[1] << " " << t.pos[2]; //LOG(DEBUG) << "tracker: orientation = " << deviceClient->m_orientation.matrix(); diff --git a/Base/Devices/imstkVRPNDeviceClient.h b/Base/Devices/imstkVRPNDeviceClient.h index 8609310e2e5c1d2328ec57b5ca711b7d9599434a..f9dca9e24aa651dcb1b3ef4585cfa656bf6f8242 100644 --- a/Base/Devices/imstkVRPNDeviceClient.h +++ b/Base/Devices/imstkVRPNDeviceClient.h @@ -125,9 +125,6 @@ private: std::shared_ptr<vrpn_Analog_Remote> m_vrpnAnalog; //!< VRPN position/orientation interface std::shared_ptr<vrpn_Button_Remote> m_vrpnButton; //!< VRPN button interface std::shared_ptr<vrpn_ForceDevice_Remote> m_vrpnForceDevice; //!< VRPN force interface - - bool m_offsetSet = false; - Quatd m_rotOffset = Quatd::Identity(); }; } diff --git a/Base/Devices/imstkVRPNDeviceServer.h b/Base/Devices/imstkVRPNDeviceServer.h index a1e07ac11d7ef3f4503343aea232b01d930c1291..d2403ca5611e7280f18e4678057a2f6079441ab1 100644 --- a/Base/Devices/imstkVRPNDeviceServer.h +++ b/Base/Devices/imstkVRPNDeviceServer.h @@ -25,6 +25,7 @@ #include <vector> #include <map> #include <typeinfo> +#include <string> // vrpn #include <vrpn_Connection.h> @@ -32,7 +33,6 @@ // imstk #include "imstkModule.h" -#include "imstkVRPNDeviceClient.h" namespace imstk { diff --git a/CMake/External/External_VRPN.cmake b/CMake/External/External_VRPN.cmake index 8cae55005e81fcc1d53b8746a4d4e3b5c9fcd5af..f61089d95ffa77d8647029704368683ffdb90314 100644 --- a/CMake/External/External_VRPN.cmake +++ b/CMake/External/External_VRPN.cmake @@ -37,7 +37,6 @@ imstk_add_external_project( VRPN -DBUILD_TESTING:BOOL=OFF -DVRPN_SUBPROJECT_BUILD:BOOL=ON -DVRPN_BUILD_CLIENTS:BOOL=OFF - -DVRPN_BUILD_SERVERS:BOOL=OFF -DVRPN_BUILD_CLIENT_LIBRARY:BOOL=ON -DVRPN_BUILD_SERVER_LIBRARY:BOOL=ON -DVRPN_INSTALL:BOOL=OFF diff --git a/CMake/FindVRPN.cmake b/CMake/FindVRPN.cmake index 3dcbab62131b44d3d33443ab8ba2846cfc888e6d..474ba74b328aef7bd9ce781b4840bf9bed60c05d 100644 --- a/CMake/FindVRPN.cmake +++ b/CMake/FindVRPN.cmake @@ -49,17 +49,51 @@ if(WIN32) list(APPEND VRPN_INCLUDE_DIRS ${LIBFTD2XX_INCLUDE_DIR}) endif() +#----------------------------------------------------------------------------- +# Phantom Omni support +#----------------------------------------------------------------------------- +if(${iMSTK_USE_OMNI}) + + find_library(VRPN_PHANTOM_LIBRARY + NAMES + vrpn_phantom + vrpn_phantomd + ) + mark_as_advanced(VRPN_PHANTOM_LIBRARY) + list(APPEND VRPN_LIBRARIES ${VRPN_PHANTOM_LIBRARY}) + + list(APPEND CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) + find_package(OpenHaptics) + list(APPEND VRPN_LIBRARIES ${OPENHAPTICS_LIBRARIES}) + list(APPEND VRPN_INCLUDE_DIRS ${OPENHAPTICS_INCLUDE_DIRS}) + list(REMOVE_ITEM CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) + + find_package(OpenGL) + list(APPEND VRPN_INCLUDE_DIRS ${OPENGL_INCLUDE_DIR}) + list(APPEND VRPN_LIBRARIES ${OPENGL_LIBRARY}) + +endif() + #----------------------------------------------------------------------------- # Find library #----------------------------------------------------------------------------- + find_library(VRPN_LIBRARY NAMES - vrpnserver - vrpnserverd + vrpn + vrpnd ) mark_as_advanced(VRPN_LIBRARY) list(APPEND VRPN_LIBRARIES ${VRPN_LIBRARY}) +find_library(VRPNSERVER_LIBRARY + NAMES + vrpnserver + vrpnserverd + ) +mark_as_advanced(VRPNSERVER_LIBRARY) +list(APPEND VRPN_LIBRARIES ${VRPNSERVER_LIBRARY}) + find_library(QUAT_LIBRARY NAMES quat @@ -109,26 +143,6 @@ endif() list(APPEND VRPN_LIBRARIES ${HIDAPI_LIBRARY}) mark_as_advanced(HIDAPI_LIBRARY) -#----------------------------------------------------------------------------- -# Phantom Omni support -#----------------------------------------------------------------------------- -if(${${PROJECT_NAME}_USE_OMNI}) - list(APPEND CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) - find_package(OpenHaptics) - list(REMOVE_ITEM CMAKE_MODULE_PATH ${VRPN_INCLUDE_DIR}/cmake) - find_library(VRPN_PHANTOM_LIBRARY - NAMES - vrpn_phantom - vrpn_phantomd - ) - mark_as_advanced(VRPN_PHANTOM_LIBRARY) - list(APPEND VRPN_LIBRARIES ${VRPN_PHANTOM_LIBRARY} ${OPENHAPTICS_LIBRARIES}) - list(APPEND VRPN_INCLUDE_DIRS ${OPENHAPTICS_INCLUDE_DIRS}) -endif() - -message(STATUS "OPENHAPTICS_LIBRARIES : ${OPENHAPTICS_LIBRARIES}") -message(STATUS "OPENHAPTICS_INCLUDE_DIRS : ${OPENHAPTICS_INCLUDE_DIRS}") - #----------------------------------------------------------------------------- # Find package #----------------------------------------------------------------------------- diff --git a/iMSTKConfig.cmake.in b/iMSTKConfig.cmake.in index 334eb3225e064778bf7e4d8851568e02b7428293..672f190cf6a9b07a519264154b96fc8af363ee56 100644 --- a/iMSTKConfig.cmake.in +++ b/iMSTKConfig.cmake.in @@ -36,7 +36,7 @@ include( ${VTK_USE_FILE} ) find_package( VRPN REQUIRED ) include_directories( ${VRPN_INCLUDE_DIRS} ) add_definitions( -DVRPN_USE_LIBNIFALCON ) -if(${PROJECT_NAME}_USE_OMNI) +if(iMSTK_USE_OMNI) add_definitions( -DiMSTK_USE_OPENHAPTICS ) add_definitions( -DVRPN_USE_PHANTOM_SERVER ) else()