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

クラス Spr::PHContactEngine

#include <PHContactEngine.h>

Spr::SGBehaviorEngine, と Spr::CDCollisionListenerを継承しています。

Spr::PHContactEngineのコラボレーション図

Collaboration graph
[凡例]
すべてのメンバ一覧

Public メソッド

Public 変数

Static Public 変数

Protected メソッド

Protected 変数

Private 変数

構成


説明

接触力計算エンジン.

PHContactEngine.h16 行で定義されています。


関数

virtual bool Spr::PHContactEngine::AddChildObject SGObject o,
SGScene s
[virtual]
 

子オブジェクトの追加

Spr::SGObjectを再定義しています。

int Spr::PHContactEngine::GetFrameRecordPos  )  [inline]
 

FrameRecordのCDCollisionEngineの中での位置.

PHContactEngine.h154 行で定義されています。

参照先 frameRecordPos.

int Spr::PHContactEngine::GetFramePairRecordPos  )  [inline]
 

FramePairRecordのCDCollisionEngineの中での位置.

PHContactEngine.h156 行で定義されています。

参照先 framePairRecordPos.

int Spr::PHContactEngine::GetConvexPairRecordPos  )  [inline]
 

ConvexPairRecordのCDCollisionEngineの中での位置.

PHContactEngine.h158 行で定義されています。

参照先 convexPairRecordPos.

FrameRecord* Spr::PHContactEngine::GetFrameRecord SGFrame fr  )  [inline]
 

FrameRecordの取得.

PHContactEngine.h160 行で定義されています。

参照先 collisionEngine, と frameRecordPos.

FramePairRecord* Spr::PHContactEngine::GetFramePairRecord SGFrame fr1,
SGFrame fr2
[inline]
 

FramePairRecordの取得 FramePairRecordはフレームの対ごとに1つ. (fr1,fr2)と(fr2,fr1)で読んだ場合,どちらか片方はNULLを返す. (fr1,fr2)で値が得られたならば,FramePairRecordはf1に加わった力を持つ.

PHContactEngine.h168 行で定義されています。

参照先 collisionEngine, framePairRecordPos, と Spr::CDFramePairWithRecord::records.

void Spr::PHContactEngine::AddInactive int  f1,
int  f2
 

アクティブでないフレーム対を追加

virtual void Spr::PHContactEngine::Loaded SGScene scene  )  [virtual]
 

ロード完了時の処理,CollisionEngine にコールバックを登録する.CollisionEngineがなければ作る.ユーザが呼び出すことはない.

Spr::SGObjectを再定義しています。

virtual void Spr::PHContactEngine::Init SGScene scene  )  [virtual]
 

初期化処理、Loadedが呼ぶ

void Spr::PHContactEngine::Render GRRender r,
SGScene s
[virtual]
 

接触力の描画

Spr::SGBehaviorEngineを再定義しています。

int Spr::PHContactEngine::GetPriority  )  const [inline, protected, virtual]
 

実行順序を決めるプライオリティ値.小さいほど早い

Spr::SGBehaviorEngineを再定義しています。

PHContactEngine.h184 行で定義されています。

virtual void Spr::PHContactEngine::Step SGScene s  )  [inline, protected, virtual]
 

時間を dt 進める.(何もしない,Listener の Collide がすべての処理をする.)

Spr::SGBehaviorEngineを再定義しています。

PHContactEngine.h186 行で定義されています。

virtual void Spr::PHContactEngine::Clear SGScene s  )  [protected, virtual]
 

solidsをクリアする.

Spr::SGEngineを再定義しています。

void Spr::PHContactEngine::Before SGScene scene,
CDFramePairWithRecord fr
[protected, virtual]
 

フレーム同士が衝突している場合,接触解析の前に呼び出される.抗力計算の準備を行う.

Spr::CDCollisionListenerを再定義しています。

virtual void Spr::PHContactEngine::Analyzed SGScene scene,
CDFramePairWithRecord fr,
CDGeometryPair geom,
CDConvexPairWithRecord conv,
CDContactAnalysis analyzer
[protected, virtual]
 

フレーム同士が衝突している場合,接触解析の直後に凸形状対ごとに呼び出される. 接触面積と抗力の計算を行う.

Spr::CDCollisionListenerを再定義しています。

void Spr::PHContactEngine::After SGScene scene,
CDFramePairWithRecord fr
[protected, virtual]
 

フレーム同士が衝突している場合,衝突解析が終わってからフレーム対につき1度呼び出される. 抗力の調整,摩擦力計算を行う

Spr::CDCollisionListenerを再定義しています。

void Spr::PHContactEngine::CalcReflexForce PHContactEngine::FrameRecord **  fr,
CDConvexPairWithRecord cp,
PHContactEngine::ConvexPairRecord rec,
CDContactAnalysis analyzer
[protected]
 

抗力計算

void Spr::PHContactEngine::CalcTriangleReflexForce CDConvexPairWithRecord cp,
PHContactEngine::ConvexPairRecord rec,
Vec3f  p0,
Vec3f  p1,
Vec3f  p2,
Vec3f  cog,
Vec3f  vel,
Vec3f  angVel
[protected]
 

3角形単位の抗力計算

virtual void Spr::PHContactEngine::LoadState const SGBehaviorStates states  )  [protected, virtual]
 

状態の読み出し

Spr::SGBehaviorEngineを再定義しています。

virtual void Spr::PHContactEngine::SaveState SGBehaviorStates states  )  const [protected, virtual]
 

状態の保存

Spr::SGBehaviorEngineを再定義しています。


変数

bool Spr::PHContactEngine::firstLoadedCall [private]
 

Loadedで複数回初期化をしないようにするためのフラグ.

PHContactEngine.h123 行で定義されています。

float Spr::PHContactEngine::area [private]
 

衝突部分の面積

PHContactEngine.h124 行で定義されています。

float Spr::PHContactEngine::convertedMass [private]
 

換算質量

PHContactEngine.h125 行で定義されています。

float Spr::PHContactEngine::reflexSpring [private]
 

バネ計数

PHContactEngine.h126 行で定義されています。

float Spr::PHContactEngine::reflexDamper [private]
 

ダンパ計数

PHContactEngine.h127 行で定義されています。

float Spr::PHContactEngine::frictionSpring [private]
 

摩擦のバネ係数

PHContactEngine.h128 行で定義されています。

float Spr::PHContactEngine::frictionDamper [private]
 

摩擦のダンパ係数

PHContactEngine.h129 行で定義されています。

float Spr::PHContactEngine::staticFriction [private]
 

静止摩擦係数

PHContactEngine.h130 行で定義されています。

float Spr::PHContactEngine::dynamicFriction [private]
 

動摩擦係数

PHContactEngine.h131 行で定義されています。

int Spr::PHContactEngine::listenerPos [protected]
 

CDContactEngineの中でのリスナの位置.

PHContactEngine.h133 行で定義されています。

int Spr::PHContactEngine::frameRecordPos [protected]
 

CDContactEngineの中でのフレーム単位のユーザレコードの位置.

PHContactEngine.h134 行で定義されています。

参照元 GetFrameRecord(), と GetFrameRecordPos().

int Spr::PHContactEngine::framePairRecordPos [protected]
 

CDContactEngineの中でのフレーム対単位のユーザレコードの位置.

PHContactEngine.h135 行で定義されています。

参照元 GetFramePairRecord(), と GetFramePairRecordPos().

int Spr::PHContactEngine::convexPairRecordPos [protected]
 

CDContactEngineの中での凸形状対単位のユーザレコードの位置.

PHContactEngine.h136 行で定義されています。

参照元 GetConvexPairRecordPos().

std::vector< std::pair<DWORD, DWORD> > Spr::PHContactEngine::inactiveList [protected]
 

非アクティブなペア一覧(ロード時にだけ使用)

PHContactEngine.h138 行で定義されています。

UTRef<CDCollisionEngine> Spr::PHContactEngine::collisionEngine [protected]
 

衝突判定エンジン

PHContactEngine.h140 行で定義されています。

参照元 GetFramePairRecord(), と GetFrameRecord().

UTTypeInfoImp< PHContactEngine > Spr::PHContactEngine::typeInfo [static]
 

クラス名の取得などの基本機能の実装

Spr::SGBehaviorEngineを再定義しています。

PHContactEngine.h142 行で定義されています。

PHSolids Spr::PHContactEngine::solids
 

ペナルティ法の対象の剛体

PHContactEngine.h145 行で定義されています。

size_t Spr::PHContactEngine::nSolidsInitilized
 

solidsのうちどこまでが初期化済みかを示す.

PHContactEngine.h146 行で定義されています。


このクラスの説明は次のファイルから生成されました:
Springheadに対してSun Apr 16 01:59:53 2006に生成されました。  doxygen 1.4.1