Springhead
An open source physics engine for virtual reality, haptics and motion generation.
クラス PHConstraintEngine
PHConstraintEngineに対する継承グラフ

構成

struct  ContactInfo
 
struct  ContactInfoQueue
 

Public 型

typedef std::vector< UTRef
< PHRootNode > > 
PHRootNodes
 
typedef std::vector< UTRef
< PHPath > > 
PHPaths
 
typedef std::vector
< PHConstraintBase * > 
PHConstraintBases
 
- Public 型 inherited from PHContactDetector
typedef UTCombination< UTRef
< PHSolidPair > > 
PHSolidPairs
 

Public メソッド

 PHConstraintEngine (UTPerformanceMeasureIf *pm=UTPerformanceMeasureIf::GetInstance("global"))
 
PHJointCreateJoint (const IfInfo *ii, const PHJointDesc &desc, PHSolid *lhs=NULL, PHSolid *rhs=NULL)
 関節の追加する
 
PHRootNodeCreateRootNode (const PHRootNodeDesc &desc, PHSolid *solid=NULL)
 ツリー構造のルートノードを作成
 
PHTreeNodeCreateTreeNode (const PHTreeNodeDesc &desc, PHTreeNode *parent=NULL, PHSolid *solid=NULL)
 ツリー構造の中間ノードを作成
 
PHGearCreateGear (const PHGearDesc &desc, PH1DJoint *lhs=NULL, PH1DJoint *rhs=NULL)
 ギアを作成
 
PHPathCreatePath (const PHPathDesc &desc)
 
virtual bool AddChildObject (ObjectIf *o)
 剛体の追加
 
virtual bool DelChildObject (ObjectIf *o)
 剛体の削除
 
virtual void Clear ()
 Objectの仮想関数
 
virtual size_t GetStateSize () const
 状態のサイズ
 
virtual void ConstructState (void *m) const
 メモリブロックを状態型に初期化
 
virtual void DestructState (void *m) const
 状態型をメモリブロックに戻す
 
virtual bool GetState (void *s) const
 状態の読み出し(コピー版)
 
virtual void SetState (const void *s)
 状態の設定
 
virtual int GetPriority () const
 実行順序を決めるプライオリティ値.小さいほど早い
 
virtual void Step ()
 時間を dt 進める
 
virtual PHSolidPairCreateSolidPair ()
 派生クラスが実装する関数
 
void StepPart1 ()
 
void StepPart2 ()
 
void UpdateSolids (bool bVelOnly)
 結果をSolidに反映する. bVelOnly == trueならば結果の速度のみをSolidに反映させ,位置はそのまま.
 
void CompResponseMatrix ()
 
void Setup ()
 速度更新LCPの準備
 
void SetupCorrection ()
 誤差修正LCPの準備
 
void Iterate ()
 速度更新LCPの一度の反復
 
void IterateCorrection ()
 誤差修正LCPの一度の反復
 
PHConstraintsIfGetContactPoints ()
 
void SetVelCorrectionRate (double value)
 
double GetVelCorrectionRate ()
 
void SetPosCorrectionRate (double value)
 
double GetPosCorrectionRate ()
 
void SetContactCorrectionRate (double value)
 
double GetContactCorrectionRate ()
 
void SetBSaveConstraints (bool value)
 
void SetUpdateAllSolidState (bool flag)
 
void SetUseContactSurface (bool flag)
 
void SetShrinkRate (double data)
 
double GetShrinkRate ()
 
void SetShrinkRateCorrection (double data)
 
double GetShrinkRateCorrection ()
 
void SetRegularization (double reg)
 
double GetRegularization ()
 
virtual void EnableRenderContact (bool enable)
 
void UpdateContactInfoQueue ()
 
- Public メソッド inherited from PHContactDetector
CellGetCell (int ix, int iy, int iz)
 
void AddInactiveSolid (PHBodyIf *body)
 解析法を適用しない剛体の追加
 
bool IsInactiveSolid (PHBodyIf *body)
 解析法を適用しない剛体の検索
 
int NSolidPairs () const
 
int NShapePairs () const
 
int NActiveSolidPairs () const
 
int NActiveShapePairs () const
 
void UpdateShapePairs (PHBody *body)
 形状追加時の処理
 
void DelShapePairs (PHBody *body, int iBegin, int iEnd)
 形状削除時の処理
 
void SetDetectionRange (Vec3f center, Vec3f extent, int nx, int ny, int nz)
 衝突判定の対象範囲
 
void EnableContact (PHSolidIf *lhs, PHSolidIf *rhs, bool bEnable)
 剛体同士の衝突判定に有効/無効を設定
 
void EnableContact (PHSolidIf **group, size_t length, bool bEnable)
 
void EnableContact (PHSolidIf *solid, bool bEnable)
 
void EnableContact (bool bEnable)
 
bool DetectPair (ShapeIndex sh0, ShapeIndex sh1, unsigned ct, double dt, bool continuous)
 形状対の交差の検知
 
bool Detect (unsigned ct, double dt, int mode, bool continuous)
 全体の交差の検知
 
- Public メソッド inherited from PHEngine
void Enable (bool on)
 
bool IsEnabled ()
 
virtual PHSceneIfGetScene ()
 
- Public メソッド inherited from SceneObject
virtual void SetScene (SceneIf *s)
 
virtual SceneIfGetScene () const
 
virtual SceneObjectIfCloneObject ()
 
- Public メソッド inherited from NamedObject
 NamedObject (const NamedObject &n)
 
NamedObjectoperator= (const NamedObject &n)
 
virtual const char * GetName () const
 名前の取得
 
virtual void SetName (const char *n)
 名前の設定
 
virtual void SetNameManager (NameManagerIf *s)
 NameManagerを設定
 
virtual NameManagerIfGetNameManager () const
 NameManagerの取得
 
- Public メソッド inherited from Object
 SPR_OBJECTDEF (Object)
 クラス名の取得などの基本機能の実装
 
ObjectIfGetObjectIf ()
 
const ObjectIfGetObjectIf () const
 
virtual void Print (std::ostream &os) const
 デバッグ用の表示
 
virtual void PrintShort (std::ostream &os) const
 
virtual ObjectIfCreateObject (const IfInfo *info, const void *desc)
 オブジェクトの作成
 
virtual size_t NChildObject () const
 子オブジェクトの数
 
virtual ObjectIfGetChildObject (size_t pos)
 子オブジェクトの取得
 
virtual const ObjectIfGetChildObject (size_t pos) const
 
virtual void Loaded (UTLoadContext *)
 ファイルロード後に一度呼ばれる。ノードの設定に使う。 呼び出し順序に依存する処理がしたい場合は、UTLoadHandeler と UTLoadTask を使うと良い。 
 
virtual bool GetDesc (void *desc) const
 デスクリプタの読み出し(コピー版)
 
virtual void SetDesc (const void *desc)
 デスクリプタの設定
 
virtual const void * GetDescAddress () const
 デスクリプタの読み出し(参照版)
 
virtual size_t GetDescSize () const
 デスクリプタのサイズ
 
virtual const void * GetStateAddress () const
 状態の読み出し(参照版)
 
virtual void GetStateR (char *&state)
 状態の再帰的な読み出し
 
virtual void SetStateR (const char *&state)
 状態の再帰的な設定
 
virtual bool WriteStateR (std::ostream &fout)
 状態のファイルへの書き出し
 
virtual bool WriteState (std::string fileName)
 
virtual bool ReadStateR (std::istream &fin)
 状態の読み込み
 
virtual bool ReadState (std::string fileName)
 
virtual void DumpObjectR (std::ostream &os, int level=0) const
 メモリデバッグ用。単純にツリーのオブジェクトをファイルにダンプする。
 

Public 変数

PHConstraints points
 接触点の配列
 
PHConstraints joints
 関節の配列
 
PHRootNodes trees
 Articulated Body Systemの配列
 
PHGears gears
 ギアの配列
 
PHPaths paths
 パスの配列
 
PHConstraints cons
 有効な拘束の配列
 
PHConstraintBases cons_base
 
int count
 
UTQPTimer ptimer
 Peformance counter.
 
UTLongLong & timeCollision
 
UTLongLong & timeSetup
 
UTLongLong & timeIterate
 
bool renderContact
 
struct
Spr::PHConstraintEngine::ContactInfoQueue 
contactInfoQueue
 
- Public 変数 inherited from PHConstraintEngineDesc
int method
 LCPの解法
 
int numIter
 速度更新LCPの反復回数
 
int numIterCorrection
 誤差修正LCPの反復回数
 
int numIterContactCorrection
 接触点の誤差修正LCPの反復回数
 
double velCorrectionRate
 速度のLCPで関節拘束の誤差を修正する場合の誤差修正比率
 
double posCorrectionRate
 位置のLCPで,関節拘束の誤差を修正する場合の誤差修正比率
 
double contactCorrectionRate
 接触の侵入解消のための,速度のLCPでの補正比率.
 
double shrinkRate
 LCP初期値を前回の解に対して縮小させる比率
 
double shrinkRateCorrection
 
double freezeThreshold
 剛体がフリーズする閾値
 
double accelSOR
 SOR法の加速係数
 
double dfEps
 
double regularization
 
bool bSaveConstraints
 SaveState, LoadStateに, constraints を含めるかどうか.本来不要だが,f, Fが変化する.
 
bool bUpdateAllState
 剛体の速度,位置の全ての状態を更新する.
 
bool bUseContactSurface
 面接触を使う
 
bool bReport
 計算時間などのレポートをデバッグ出力およびファイルへ出力する
 
- Public 変数 inherited from PHContactDetector
Vec3i numDivision
 
PHBBox regionBBox
 
PHBBox cellBBox
 
Cell cellOutside
 
std::vector< Cellcells
 
std::vector< Edgeedges
 
PHBodies bodies
 物体の配列
 
PHBodies inactiveBodies
 接触判定しない物体の集合
 
PHSolidPairs solidPairs
 剛体の組の配列
 
int nBroad
 
int nNarrow
 

フレンド

class PHConstraint
 
class PHShapePairForLCP
 

Additional Inherited Members

- Protected メソッド inherited from NamedObject
virtual void PrintHeader (std::ostream &os, bool bClose) const
 開き括弧
 
- Protected メソッド inherited from Object
virtual void PrintChildren (std::ostream &os) const
 子オブジェクトをPrint
 
virtual void PrintFooter (std::ostream &os) const
 閉じ括弧
 
virtual void BeforeGetDesc () const
 GetDesc()の前に呼ばれる
 
virtual void AfterSetDesc ()
 SetDesc()のあとに呼ばれる
 
- Static Protected メソッド inherited from Object
static void ConstructState (ObjectIf *o, char *&s)
 sをoのStateとして初期化する.
 
static void DestructState (ObjectIf *o, char *&s)
 sをoのStateからメモリブロックに戻す.
 
- Protected 変数 inherited from NamedObject
UTString name
 名前
 
NameManagernameManager
 名前の検索や重複管理をするもの.SceneやSDKなど.
 

このクラスの説明は次のファイルから生成されました: