00001 /* 00002 * HapticDeviceController.hpp 00003 * 00004 * Created on: Mar 4, 2012 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef HAPTICDEVICECONTROLLER_HPP_ 00009 #define HAPTICDEVICECONTROLLER_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 #include <tk_haptics_base/HapticDeviceDefines.hpp> 00013 00014 #include <telekyb_base/Spaces.hpp> 00015 00016 namespace TELEKYB_NAMESPACE 00017 { 00018 00019 class HapticDeviceController 00020 { 00021 public: 00022 // Identifier (e.g. for NodeHandle) 00023 virtual void setIdentifier(const std::string& identifier) = 0; 00024 00025 // Get's specific Axes mapping, Set if needed 00026 virtual void setAxesMapping(HapticAxesMapping& xAxis, HapticAxesMapping& yAxis, HapticAxesMapping& zAxis) = 0; 00027 00028 // Get the Range of each axes 00029 virtual void setAxesRange(const Position3D& minValues, const Position3D& maxValues) = 0; 00030 00031 // Before Entering Spinloop 00032 virtual void willEnterSpinLoop() = 0; 00033 00034 // has to be fast and should not slow down the loop 00035 virtual void loopCB(const HapticOuput& output, HapticInput& input) = 0; 00036 00037 // After Exiting Spinloop 00038 virtual void didLeaveSpinLoop() = 0; 00039 }; 00040 00041 }; 00042 00043 #endif /* HAPTICDEVICECONTROLLER_HPP_ */