00001 #ifndef VR_DVFORCEBASE_H
00002 #define VR_DVFORCEBASE_H
00003
00004 #include "DVVirtualDevice.h"
00005 #include <base/Affine.h>
00006
00007 namespace Spr {
00008
00009
00010
00011
00012 class SPR_DLL DVForceBase:public DVVirtualDevice{
00013 public:
00014
00015 virtual int GetDOF() const = 0;
00016
00017 virtual float GetForce(int ch) const = 0;
00018
00019 virtual void GetForce3(Vec3f& f) const{
00020 f[0] = GetForce(0);
00021 f[1] = GetForce(1);
00022 f[2] = GetForce(2);
00023 }
00024
00025 virtual void GetForce6(Vec3f& f, Vec3f& t) const{
00026 f.X() = GetForce(0);
00027 f.Y() = GetForce(1);
00028 f.Z() = GetForce(2);
00029 t.X() = GetForce(3);
00030 t.Y() = GetForce(4);
00031 t.Z() = GetForce(5);
00032 }
00033
00034 virtual const char* Name() const = 0;
00035
00036 static const char* TypeS() { return "Force"; }
00037
00038 virtual const char* Type() const{ return TypeS(); }
00039 };
00040
00041 }
00042
00043 #endif