00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00025
00026 #ifndef MouseHapticDevice_H
00027 #define MouseHapticDevice_H
00028
00029
00030
00031 #include <H3D/FakeHapticsDevice.h>
00032 #include "H3DNetworkingUtils/Config.h"
00033 #include <H3D/SFNode.h>
00034 #include <H3D/MouseSensor.h>
00035 #include <H3D/SFVec3f.h>
00036
00037 namespace H3DNetworkingUtils {
00038
00067
00068 class H3D_NETWORKING_UTILS_DLL_SPEC MouseHapticDevice : public H3D::FakeHapticsDevice {
00069 public:
00070
00071 typedef H3D::TypedSFNode<H3D::MouseSensor> SFMouseSensor;
00072
00074 MouseHapticDevice(H3D::Inst<SFMouseSensor> mouseSensor = 0);
00075
00077 static H3D::H3DNodeDatabase database;
00078
00080 virtual void initialize();
00081
00086 auto_ptr<SFMouseSensor> mouseSensor;
00087
00088 protected:
00089
00090 struct MouseMotion : public H3D::AutoUpdate< H3D::TypedField< H3D::SFVec3f,
00091 H3D::Types<H3D::SFBool, H3D::SFVec3f, H3D::SFVec2f, H3D::SFBool> > > {
00092 virtual void update();
00093 };
00094
00095 private:
00096 auto_ptr<MouseMotion> motion_converter;
00097 };
00098
00099 }
00100
00101 #endif