00001 #ifndef HIORIENTATION_H
00002 #define HIORIENTATION_H
00003
00004 #include "HIHapticDevice.h"
00005 #include <Device/DVDeviceManager.h>
00006 #include <Device/DVOrientationBase.h>
00007
00008 namespace Spr {;
00009
00010 class SPR_DLL HIOrientation: public HIForceDevice6D{
00011 public:
00012
00013 HIOBJECTDEFABST(HIOrientation);
00014
00015 DVOrientationBase* dev;
00016
00017 HIOrientation(){ bGood = false; }
00018 virtual ~HIOrientation(){}
00019
00020 bool IsGood(){return bGood;}
00021
00022 bool Init(DVDeviceManager& devMan);
00023
00024 void Update(float dt);
00025
00026
00027 Vec3f GetPos(){ return pos; }
00028
00029 Vec3f GetForce(){ return force; }
00030
00031 Vec3f GetTorque(){ return torque; }
00032
00033 Quaternionf GetOri(){ return ori; }
00034
00035
00036 void SetPos(Vec3f p){ pos = p; }
00037
00038 void SetOri(Quaternionf o){ ori = o; }
00039
00040 void SetForce(const Vec3f& f, const Vec3f& t){ force = f; torque = t; }
00041 void SetForce(const Vec3f& f){ force = f; }
00042
00043 void SetMinForce(){ force = torque = Vec3f(); }
00044
00045
00046
00047 bool Calib(){ return true; }
00048
00049 protected:
00050
00051 bool bGood;
00052
00053 Vec3f force;
00054
00055 Vec3f torque;
00056
00057 Vec3f pos;
00058
00059 Quaternionf ori;
00060 };
00061
00062 }
00063 #endif