00001 #ifndef HISPIDARCALC6DOF_H 00002 #define HISPIDARCALC6DOF_H 00003 #include "HISpidarCalc3Dof.h" 00004 namespace Spr{; 00005 00006 /** 6自由度のSPIDAR用の計算クラス.糸の本数は可変 */ 00007 class HISpidarCalc6Dof : public HISpidarCalc3Dof { 00008 00009 protected: 00010 Quaternionf ori; 00011 std::vector<Vec3f> wireMoment; ///< ワイヤ方向単位ベクトル(回転モーメント) 00012 00013 public: 00014 HISpidarCalc6Dof(); 00015 virtual ~HISpidarCalc6Dof(); 00016 /// 初期化 00017 void Init(int dof, const VVector<float>& minF, const VVector<float>& maxF); 00018 void Update(); ///< 姿勢情報の更新 00019 void SetForce(const Vec3f&); ///< 提示力の設定(並進のみ) 00020 void SetForce(const Vec3f&,const Vec3f&); ///< 提示力の設定(並進・回転力) 00021 Vec3f rotForce; ///< 回転力 00022 float lambda_r; ///< 二次形式 回転項の係数 00023 float* InputForTest(float,float,float,float*,float); //テスト用入力関数 00024 }; 00025 00026 } // namespace Spr 00027 #endif