メインページ | ネームスペース一覧 | クラス階層 | 構成 | Directories | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ | 関連ページ

PHConvexPair.h

00001 #ifndef PHINTERSECTION_H
00002 #define PHINTERSECTION_H
00003 #include <Collision/CDFramePair.h>
00004 #include <Collision/CDDetectorImp.h>
00005 #include <Physics/PHSolid.h>
00006 
00007 namespace Spr{;
00008 
00009 class PHConvexPair:public CDConvexPairWithNormal, public CDContactAnalysis{
00010 public:
00011     //  抗力の計算
00012     float area;                         ///<    交差部の面積
00013     Vec3f reflexSpringForce;            ///<    ばねによる抗力
00014     Vec3f reflexDamperForce;            ///<    ダンパーによる抗力
00015     Vec3f reflexSpringTorque;           ///<    ばねによる抗トルク
00016     Vec3f reflexDamperTorque;           ///<    ダンパーによる抗トルク
00017     Vec3f reflexForcePoint;             ///<    抗力の作用点
00018     
00019     //  摩擦の計算
00020     Vec3f transFrictionBase[2];         ///<    並進静止摩擦用バネの端点
00021     Vec3f rotFricSpring;                ///<    回転静止摩擦用バネの伸び
00022     Quaternionf lastOri01;
00023     Vec3f dynaFric;                     ///<    動摩擦力
00024     Vec3f dynaFricMom;                  ///<    動摩擦力のモーメント(原点回り)
00025     Vec3f frictionForce;                ///<    摩擦力
00026     Vec3f frictionTorque;               ///<    摩擦トルク(摩擦力の作用点が原点のときの)
00027 
00028     //  係数
00029     float rk, rb, fk, fb;
00030 
00031     /** 交差部分が発生する抗力を求める.
00032         ペナルティとそのモーメント,相対速度とそのモーメントを求める.  */
00033     void CalcReflexForce(Vec3f* cog, Vec3f* vel, Vec3f* angVel, float k, float b);
00034     /// 三角形1つが発生するペナルティとそのモーメント,相対速度とそのモーメントを求める.
00035     void CalcTriangleReflexForce(Vec3f p, Vec3f p1, Vec3f p2, Vec3f cog, Vec3f vel, Vec3f angVel, float k, float b);
00036     /// 摩擦力を求める.    今のところ動摩擦の最大値がいいかげんでコマが回せない.
00037     void CalcFriction(Quaternionf* ori, Vec3f* pos, Vec3f* cog, Vec3f* vel, Vec3f* angVel, float k, float b);
00038 
00039     /** 交差部分が発生する抗力を求める.
00040         ペナルティとそのモーメント,相対速度とそのモーメントを求める.
00041         反力と摩擦力のばね・ダンパ係数を別々に分けた. */
00042     void CalcReflexForce(Vec3f* cog, Vec3f* vel, Vec3f* angVel, float rk, float rb, float fk, float fb);
00043     /** 三角形1つが発生するペナルティとそのモーメント,相対速度とそのモーメントを求める.
00044         反力と摩擦力のばね・ダンパ係数を別々に分けた.  */
00045     void CalcTriangleReflexForce(Vec3f p, Vec3f p1, Vec3f p2, Vec3f cog, Vec3f vel, Vec3f angVel, float rk, float rb, float fk, float fb);
00046 };
00047 class PHGeometryPair:public CDGeometryPair{
00048 };
00049 
00050 };
00051 #endif

Springheadに対してSun Apr 16 01:57:53 2006に生成されました。  doxygen 1.4.1