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

Public メソッド

 PHScene (const PHSceneDesc &desc=PHSceneDesc())
 コンストラクタ
 
void Init ()
 
 ~PHScene ()
 デストラクタ
 
PHEnginesGetEngines ()
 
CDShapeIfCreateShape (const IfInfo *ii, const CDShapeDesc &desc)
 
double GetTimeStepInv ()
 
PHSdkIfGetSdk ()
 
PHSolidIfCreateSolid (const PHSolidDesc &desc=PHSolidDesc())
 
int NSolids () const
 
PHSolidIfGetSolid (int idx)
 
PHSolidIf ** GetSolids ()
 
int GetSolidIndex (PHSolidIf *s)
 
void SetContactMode (PHSolidIf *lhs, PHSolidIf *rhs, PHSceneDesc::ContactMode=PHSceneDesc::MODE_LCP)
 
void SetContactMode (PHSolidIf **group, size_t length, PHSceneDesc::ContactMode mode=PHSceneDesc::MODE_LCP)
 
void SetContactMode (PHSolidIf *solid, PHSceneDesc::ContactMode=PHSceneDesc::MODE_LCP)
 
void SetContactMode (PHSceneDesc::ContactMode mode=PHSceneDesc::MODE_LCP)
 
int GetLCPSolver ()
 
void SetLCPSolver (int method)
 
int GetNumIteration ()
 
void SetNumIteration (int n)
 
int GetNumIterationCorrection ()
 
void SetNumIterationCorrection (int n)
 
PHJointIfCreateJoint (PHSolidIf *lhs, PHSolidIf *rhs, const IfInfo *ii, const PHJointDesc &desc)
 
int NJoints () const
 
PHJointIfGetJoint (int i)
 
int NContacts () const
 
PHContactPointIfGetContact (int i)
 
int NSolidPairs () const
 
PHSolidPairForLCPIfGetSolidPair (int i, int j)
 
PHSolidPairForLCPIfGetSolidPair (PHSolidIf *lhs, PHSolidIf *rhs, bool &bSwap)
 
PHRootNodeIfCreateRootNode (PHSolidIf *root, const PHRootNodeDesc &desc=PHRootNodeDesc())
 
int NRootNodes () const
 
PHRootNodeIfGetRootNode (int i)
 
PHTreeNodeIfCreateTreeNode (PHTreeNodeIf *parent, PHSolidIf *child, const PHTreeNodeDesc &desc=PHTreeNodeDesc())
 
void CreateTreeNodesRecurs (PHTreeNodeIf *node, PHSolidIf *solid)
 
PHRootNodeIfCreateTreeNodes (PHSolidIf *solid)
 
PHGearIfCreateGear (PH1DJointIf *lhs, PH1DJointIf *rhs, const PHGearDesc &desc=PHGearDesc())
 
int NGears () const
 
PHGearIfGetGear (int i)
 
PHPathIfCreatePath (const PHPathDesc &desc=PHPathDesc())
 
int NPaths () const
 
PHPathIfGetPath (int i)
 
PHRayIfCreateRay (const PHRayDesc &desc=PHRayDesc())
 
int NRays () const
 
PHRayIfGetRay (int i)
 
bool SetPosesOfJointedSolids (const PHSolidIf *base)
 
PHIKActuatorIfCreateIKActuator (const IfInfo *ii, const PHIKActuatorDesc &desc=PHIKActuatorDesc())
 
int NIKActuators () const
 
PHIKActuatorIfGetIKActuator (int i)
 
PHIKEndEffectorIfCreateIKEndEffector (const PHIKEndEffectorDesc &desc=PHIKEndEffectorDesc())
 
int NIKEndEffectors () const
 
PHIKEndEffectorIfGetIKEndEffector (int i)
 
int NSkeletons ()
 
PHSkeletonIfGetSkeleton (int i)
 
PHSkeletonIfCreateSkeleton (const PHSkeletonDesc &desc=PHSkeletonDesc())
 
int NFemMeshes () const
 
PHFemMeshIfGetFemMesh (int i)
 
int NFemMeshesNew () const
 
PHFemMeshNewIfGetFemMeshNew (int i)
 
int NOpObjs () const
 
PHOpObjGetOpObj (int i)
 
double GetTimeStep () const
 積分ステップを返す
 
void SetTimeStep (double dt)
 積分ステップを設定する
 
double GetHapticTimeStep () const
 力覚積分ステップを返す
 
void SetHapticTimeStep (double dt)
 力覚積分ステップを設定する
 
unsigned GetCount () const
 カウント数を返す
 
void SetCount (unsigned c)
 カウント数を設定する
 
void SetGravity (const Vec3d &accel)
 
Vec3d GetGravity ()
 
double GetAirResistanceRateForVelocity ()
 
void SetAirResistanceRateForVelocity (double rate)
 
double GetAirResistanceRateForAngularVelocity ()
 
void SetAirResistanceRateForAngularVelocity (double rate)
 
double GetContactTolerance ()
 
void SetContactTolerance (double tol)
 
double GetImpactThreshold ()
 
void SetImpactThreshold (double vth)
 
double GetFrictionThreshold ()
 
void SetFrictionThreshold (double vth)
 
double GetMaxVelocity ()
 
void SetMaxVelocity (double vmax)
 
double GetMaxAngularVelocity ()
 
void SetMaxAngularVelocity (double wmax)
 
double GetMaxForce ()
 
void SetMaxForce (double fmax)
 
double GetMaxMoment ()
 
void SetMaxMoment (double tmax)
 
double GetMaxDeltaPosition ()
 
void SetMaxDeltaPosition (double dpmax)
 
double GetMaxDeltaOrientation ()
 
void SetMaxDeltaOrientation (double dqmax)
 
void EnableContactDetection (bool enable)
 
bool IsContactDetectionEnabled ()
 
void EnableCCD (bool enable)
 
bool IsCCDEnabled ()
 
void SetBroadPhaseMode (int mode)
 
int GetBroadPhaseMode ()
 
void SetContactDetectionRange (Vec3f center, Vec3f extent, int nx, int ny, int nz)
 
void SetMaterialBlending (int mode)
 
int GetMaterialBlending ()
 
void Step ()
 シーンの時刻を進める ClearForce(); GenerateForce(); Integrate(); と同じ
 
void ClearForce ()
 シーンの時刻を進める(力のクリア)
 
void GenerateForce ()
 シーンの時刻を進める(力の生成)
 
void Integrate ()
 シーンの時刻を進める(力と速度を積分して,速度と位置を更新)
 
void IntegratePart1 ()
 
void IntegratePart2 ()
 
void StepHapticLoop ()
 
void StepHapticSync ()
 
int NEngines ()
 
PHEngineIfGetEngine (int i)
 
PHConstraintEngineIfGetConstraintEngine ()
 
PHGravityEngineIfGetGravityEngine ()
 
PHPenaltyEngineIfGetPenaltyEngine ()
 
PHIKEngineIfGetIKEngine ()
 
PHFemEngineIfGetFemEngine ()
 
PHHapticEngineIfGetHapticEngine ()
 
PHOpEngineIfGetOpEngine ()
 
PHOpSpHashColliAgentIfGetOpColliAgent ()
 
PHTrackingEngineIfGetTrackingEngine ()
 
PHHapticPointerIfCreateHapticPointer ()
 
void SetStateMode (bool bConstraints)
 
virtual void Clear ()
 すべての子オブジェクトの削除とプロパティのクリア
 
virtual ObjectIfCreateObject (const IfInfo *info, const void *desc)
 オブジェクトの作成
 
virtual size_t NChildObject () const
 子オブジェクトの数
 
virtual ObjectIfGetChildObject (size_t pos)
 子オブジェクトの取得
 
virtual bool AddChildObject (ObjectIf *o)
 子オブジェクトの追加
 
virtual bool DelChildObject (ObjectIf *o)
 子オブジェクトの削除
 
 ACCESS_DESC (PHScene)
 
virtual size_t GetStateSize () const
 状態のサイズ
 
virtual void ConstructState (void *m) const
 メモリブロックを状態型に初期化
 
virtual void DestructState (void *m) const
 状態型をメモリブロックに戻す
 
virtual const void * GetStateAddress () const
 状態の読み出し(参照版)
 
virtual bool GetState (void *s) const
 状態の読み出し(コピー版)
 
virtual void SetState (const void *s)
 状態の設定
 
virtual void GetStateR (char *&s)
 状態の再帰的な読み出し
 
virtual void SetStateR (const char *&state)
 状態の再帰的な設定
 
virtual bool WriteStateR (std::ostream &fout)
 状態のファイルへの書き出し
 
virtual bool ReadStateR (std::istream &fin)
 状態の読み込み
 
virtual void DumpObjectR (std::ostream &os, int level=0) const
 メモリデバッグ用。単純にツリーのオブジェクトをファイルにダンプする。
 
virtual UTPerformanceMeasureIfGetPerformanceMeasure ()
 
- Public メソッド inherited from NameManager
 SPR_OBJECTDEF (NameManager)
 
virtual void SetNameManager (NameManagerIf *s)
 NameManagerを設定
 
void AddChildManager (NameManager *c)
 
void DelChildManager (NameManager *c)
 
template<class T >
void FindObject (UTRef< T > &t, UTString name)
 型と名前からオブジェクトを取得
 
template<class T >
void FindObject (T *&t, UTString name)
 
virtual NamedObjectIfFindObject (UTString name, UTString cls="")
 
ObjectNames::TNameMap & GetNameMap ()
 
void Print (std::ostream &os) const
 デバッグ用
 
NamedObjectIfFindObjectExact (UTString name, UTString cls="")
 
NamedObjectIfFindObjectFromDescendant (UTString name, UTString cls="")
 
NamedObjectIfFindObjectFromAncestor (UTString name, UTString cls="")
 
- Public メソッド inherited from NamedObject
 NamedObject (const NamedObject &n)
 
NamedObjectoperator= (const NamedObject &n)
 
virtual const char * GetName () const
 名前の取得
 
virtual void SetName (const char *n)
 名前の設定
 
virtual NameManagerIfGetNameManager () const
 NameManagerの取得
 
- Public メソッド inherited from Object
 SPR_OBJECTDEF (Object)
 クラス名の取得などの基本機能の実装
 
ObjectIfGetObjectIf ()
 
const ObjectIfGetObjectIf () const
 
virtual void PrintShort (std::ostream &os) const
 
virtual const ObjectIfGetChildObject (size_t pos) const
 
virtual void Loaded (UTLoadContext *)
 ファイルロード後に一度呼ばれる。ノードの設定に使う。 呼び出し順序に依存する処理がしたい場合は、UTLoadHandeler と UTLoadTask を使うと良い。 
 
virtual void Setup ()
 ノードの設定をするための関数
 
virtual bool GetDesc (void *desc) const
 デスクリプタの読み出し(コピー版)
 
virtual void SetDesc (const void *desc)
 デスクリプタの設定
 
virtual const void * GetDescAddress () const
 デスクリプタの読み出し(参照版)
 
virtual size_t GetDescSize () const
 デスクリプタのサイズ
 
virtual bool WriteState (std::string fileName)
 
virtual bool ReadState (std::string fileName)
 
- Public メソッド inherited from PHSceneDesc
void Init ()
 
- Public メソッド inherited from PHSceneState
void Init ()
 

Public 変数

PHEngines engines
 
- Public 変数 inherited from PHSceneDesc
Vec3d gravity
 設定パラメータ. 各EngineのAPIを介して全パラメータが取得・設定可能だが,以下のパラメータは 頻繁に用いるのでPHSceneIfからもアクセスできるようにしてある.(要検討) [詳細]
 
double airResistanceRateForVelocity
 毎ステップ剛体の速度に掛けられる倍率
 
double airResistanceRateForAngularVelocity
 毎ステップ剛体の速度に掛けられる倍率
 
double contactTolerance
 接触の許容交差量
 
double impactThreshold
 衝突速度.これよりも大きな速度で接触したら衝突として扱う
 
double frictionThreshold
 動摩擦速度.接触面に変更な速度成分がこれよりも大きい場合に動摩擦として扱う
 
double maxDeltaPosition
 1ステップあたりの移動量の上限
 
double maxDeltaOrientation
 1ステップあたりの回転量の上限
 
double maxVelocity
 剛体および関節の最大速度.これをこえたらクリッピングされる
 
double maxAngularVelocity
 剛体および関節の最大角速度
 
double maxForce
 剛体に作用する外力,関節の拘束力,接触力の最大値
 
double maxMoment
 同モーメントの最大値
 
int numIteration
 LCPの反復回数
 
int method
 
bool bContactDetectionEnabled
 接触判定が有効か.これがfalseだと接触判定自体を行わない
 
bool bCCDEnabled
 Continuous Collision Detectionの有効化
 
int broadPhaseMode
 
int blendMode
 
- Public 変数 inherited from PHSceneState
double timeStep
 積分ステップ[s]
 
double haptictimeStep
 
unsigned count
 積分した回数
 

Protected メソッド

bool SetPosesOfJointedSolidsRecurs (PHSolidIf *base, PHSolids &solids)
 
virtual void AfterSetDesc ()
 SetDesc()のあとに呼ばれる
 
virtual void BeforeGetDesc () const
 GetDesc()の前に呼ばれる
 
- 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
 閉じ括弧
 

Protected 変数

PHSolidContainersolids
 各種エンジン
 
PHPenaltyEnginepenaltyEngine
 
PHConstraintEngineconstraintEngine
 
PHGravityEnginegravityEngine
 
PHIKEngineikEngine
 
PHRays rays
 
PHFemEnginefemEngine
 
PHHapticEnginehapticEngine
 
PHOpEngineopEngine
 
PHTrackingEnginetrackingEngine
 
UTRef< PHOpSpHashColliAgentopSpAgent
 
std::vector< UTRef< PHSkeleton > > skeletons
 
double timeStepInv
 timeStepの逆数.高速化用
 
UTPerformanceMeasureIfperformanceMeasure
 
- Protected 変数 inherited from NameManager
ObjectNames names
 
NameManagers childManagers
 子の名前空間
 
- Protected 変数 inherited from NamedObject
UTString name
 名前
 
NameManagernameManager
 名前の検索や重複管理をするもの.SceneやSDKなど.
 

フレンド

class PHBody
 
class PHFrame
 
class Object
 
class PHConstraint
 

Additional Inherited Members

- Public 型 inherited from NameManager
typedef ObjectNames::iterator SetIt
 
- Public 型 inherited from PHSceneDesc
enum  BroadPhaseMode { MODE_SORT_AND_SWEEP_X, MODE_SORT_AND_SWEEP_Y, MODE_SORT_AND_SWEEP_Z, MODE_PARTITION }
 Broad phaseのモード [詳細]
 
enum  ContactMode { MODE_NONE, MODE_PENALTY, MODE_LCP }
 接触のモード [詳細]
 
enum  MatrialBlending { BLEND_MIN, BLEND_MAX, BLEND_AVE_ADD, BLEND_AVE_MUL }
 物性(摩擦係数、跳ね返り係数)の合成則 [詳細]
 
enum  LCPSolver { SOLVER_GS, SOLVER_CG }
 LCPの解法 [詳細]
 
- Protected 型 inherited from NameManager
typedef std::vector
< NameManager * > 
NameManagers
 
- 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からメモリブロックに戻す.
 

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