00001 #ifndef HDSPIDARFISHING_H
00002 #define HDSPIDARFISHING_H
00003
00004 #include "HIHapticDevice.h"
00005 #include "HISpidarMotor.h"
00006 #include "Device/DVPioBase.h"
00007 #include "Device/DVDeviceManager.h"
00008 #include "HISpidarCalc3Dof.h"
00009
00010 namespace Spr {;
00011
00012
00013
00014 class SPR_DLL HISpidarFishing: public HIForceDevice3D,public HISpidarCalc3Dof{
00015 public:
00016 std::vector<HISpidarMotor> motor;
00017 std::vector<DVPioBase*> button;
00018
00019
00020 HIOBJECTDEF(HISpidarFishing);
00021
00022 HISpidarFishing();
00023 bool Init(DVDeviceManager& dev);
00024 virtual double GetLength(int);
00025
00026
00027
00028
00029 virtual bool BeforeCalib(){ SetMinForce(); return true; }
00030
00031 virtual bool Calib();
00032
00033 void SetMinForce();
00034
00035
00036 Vec3f GetPos(){ return pos; }
00037
00038
00039
00040
00041 void SetForce(const Vec3f& f){ HISpidarCalc3Dof::SetForce(f); }
00042
00043
00044
00045 void SetWeight(float s=0.3f, float t=1.0f){ smooth=s; lambda_t=t; }
00046
00047
00048 Vec3f GetForce(){ return trnForce; }
00049
00050
00051
00052
00053 int HISpidarFishing::GetButton(int ch){
00054 if(button[ch]) return button[ch]->Get();
00055 else return 0;
00056 }
00057
00058
00059 virtual void Update(float dt);
00060 virtual void Update(){ HISpidarCalc3Dof::Update(); }
00061
00062 protected:
00063 virtual void MakeWireVec();
00064 virtual void UpdatePos();
00065 virtual void MeasureWire();
00066 };
00067
00068 }
00069 #endif
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083 /*
00084 class SPR_DLL HISpidarFishing: public HISpidarG6{
00085 public:
00086
00087 HIOBJECTDEF(HISpidarFishing);
00088
00089 HISpidarFishing();
00090 bool Init(DVDeviceManager& dev);
00091 virtual double GetLength(int);
00092
00093 };
00094
00095 } // namespace Spr
00096 #endif
00097
00098 */