Springhead
An open source physics engine for virtual reality, haptics and motion generation.
構造体 FWObjectIf

Frameworkのオブジェクト 剛体(PhysicsモジュールのPHSolid)とシーングラフのフレーム(GraphicsモジュールのGRFrame)を 関連付けるオブジェクト. これによってシミュレーションによる剛体の位置の変化がシーングラフに自動的に反映される. Frameworkを利用する場合はPHSceneIf::CreateSolidやGRSceneIf::CreateFrameの代わりに FWSceneIf::CreateObjectを使用する.

#include <SprFWObject.h>

FWObjectIfに対する継承グラフ

Public メソッド

 SPR_IFDEF (FWObject)
 
PHSolidIfGetPHSolid ()
 PHSolidを取得する
 
void SetPHSolid (PHSolidIf *s)
 PHSolidを設定する
 
GRFrameIfGetGRFrame ()
 GRFrameを取得する
 
void SetGRFrame (GRFrameIf *f)
 GRFrameを設定する
 
PHJointIfGetPHJoint ()
 PHJointを取得する
 
void SetPHJoint (PHJointIf *j)
 PHJointを設定する
 
GRFrameIfGetChildFrame ()
 セットされた子Frameを取得する
 
void SetChildFrame (GRFrameIf *f)
 子Frameをセットする(自Frameと子Frame間の距離がわかるのでSolidの大きさを自動設定可能になる)
 
void SetSyncSource (FWObjectDesc::FWObjectSyncSource syncSrc)
 PHSolid,GRFrameのいずれの位置に合わせるかを設定する
 
FWObjectDesc::FWObjectSyncSource GetSyncSource ()
 PHSolid,GRFrameのいずれの位置に合わせるかを取得する
 
void EnableAbsolute (bool bAbs)
 ボーンを絶対位置指定で同期するかを設定する
 
bool IsAbsolute ()
 ボーンを絶対位置指定で同期するかを取得する
 
bool LoadMesh (const char *filename, const IfInfo *ii=NULL, GRFrameIf *frame=NULL)
 グラフィクス用メッシュをロードするヘルパ関数 [詳細]
 
void GenerateCDMesh (GRFrameIf *frame=NULL, const PHMaterial &mat=PHMaterial())
 グラフィクス用メッシュから衝突判定用メッシュを自動生成する [詳細]
 
void Sync ()
 PHSolidとGRFrameの同期
 
- Public メソッド inherited from SceneObjectIf
 SPR_IFDEF (SceneObject)
 
SceneIfGetScene ()
 所属Sceneの取得
 
SceneObjectIfCloneObject ()
 自分を所属Sceneに複製する
 
- Public メソッド inherited from NamedObjectIf
 SPR_IFDEF (NamedObject)
 
const char * GetName () const
 名前の取得
 
void SetName (const char *n)
 名前の設定
 
NameManagerIfGetNameManager ()
 名前管理オブジェクトの取得
 
- Public メソッド inherited from ObjectIf
 SPR_IFDEF (Object)
 
ObjectIfGetObjectIf ()
 
const ObjectIfGetObjectIf () const
 
int DelRef () const
 
void Print (std::ostream &os) const
 デバッグ用の表示。子オブジェクトを含む。
 
void PrintShort (std::ostream &os) const
 デバッグ用の表示。子オブジェクトを含まない。
 
void DumpObjectR (std::ostream &os, int level=0) const
 オブジェクトツリーのメモリイメージをダンプ
 
int AddRef ()
 
int RefCount ()
 
size_t NChildObject () const
 子オブジェクトの数
 
ObjectIfGetChildObject (size_t pos)
 子オブジェクトの取得
 
const ObjectIfGetChildObject (size_t pos) const
 
bool AddChildObject (ObjectIf *o)
 子オブジェクトの追加.複数のオブジェクトの子オブジェクトとして追加してよい. 例えば,GRFrameはツリーを作るが,全ノードがGRSceneの子でもある.
 
bool DelChildObject (ObjectIf *o)
 子オブジェクトの削除
 
void Clear ()
 すべての子オブジェクトの削除と、プロパティのクリア
 
ObjectIfCreateObject (const IfInfo *info, const void *desc)
 オブジェクトを作成し,AddChildObject()を呼ぶ.
 
template<class T >
ObjectIfCreateObject (const T &desc)
 CreateObjectを呼び出すユーティリティ関数
 
const void * GetDescAddress () const
 デスクリプタの読み出し(参照版 NULLを返すこともある). これが実装されていなくても,ObjectIf::GetDesc()は実装されていることが多い.
 
bool GetDesc (void *desc) const
 デスクリプタの読み出し(コピー版 失敗する(falseを返す)こともある). ObjectIf::GetDescAddress() が実装されていなくても,こちらは実装されていることがある.
 
void SetDesc (const void *desc)
 デスクリプタの設定
 
size_t GetDescSize () const
 デスクリプタのサイズ
 
const void * GetStateAddress () const
 状態の読み出し(参照版 NULLを返すこともある). これが実装されていなくても,ObjectIf::GetState()は実装されていることがある.
 
bool GetState (void *state) const
 状態の読み出し(コピー版 失敗する(falseを返す)こともある). ObjectIf::GetStateAddress() が実装されていなくても,こちらは実装されていることがある.
 
void SetState (const void *state)
 状態の設定
 
bool WriteStateR (std::ostream &fout)
 状態の書き出し
 
bool WriteState (std::string fileName)
 
bool ReadStateR (std::istream &fin)
 状態の読み込み
 
bool ReadState (std::string fileName)
 
size_t GetStateSize () const
 状態のサイズ
 
void ConstructState (void *m) const
 メモリブロックを状態型に初期化
 
void DestructState (void *m) const
 状態型をメモリブロックに戻す
 

関数

void GenerateCDMesh ( GRFrameIf frame = NULL,
const PHMaterial mat = PHMaterial() 
)
引数
frame変換対象のメッシュを保有するGRFrame.NULLを指定するとルートフレームが対象となる
mat物性値 オブジェクトが保持するグラフィクスメッシュの凸包として衝突判定メッシュを生成する
bool LoadMesh ( const char *  filename,
const IfInfo ii = NULL,
GRFrameIf frame = NULL 
)
引数
filenameファイル名
iiファイルタイプを指定する場合のIfInfo
frameメッシュを保有するフレーム.NULLを指定するとルートフレームが保有する
戻り値
ロードに成功したらtrueを返す.失敗したらfalseを返す.

メッシュをロードし,このFWObjectのGRFrameの下に加える


この構造体の説明は次のファイルから生成されました: