Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
Frameworkのオブジェクト 剛体(PhysicsモジュールのPHSolid)とシーングラフのフレーム(GraphicsモジュールのGRFrame)を 関連付けるオブジェクト. これによってシミュレーションによる剛体の位置の変化がシーングラフに自動的に反映される. Frameworkを利用する場合はPHSceneIf::CreateSolidやGRSceneIf::CreateFrameの代わりに FWSceneIf::CreateObjectを使用する.
#include <SprFWObject.h>
Public メソッド | |
SPR_IFDEF (FWObject) | |
PHSolidIf * | GetPHSolid () |
PHSolidを取得する | |
void | SetPHSolid (PHSolidIf *s) |
PHSolidを設定する | |
GRFrameIf * | GetGRFrame () |
GRFrameを取得する | |
void | SetGRFrame (GRFrameIf *f) |
GRFrameを設定する | |
PHJointIf * | GetPHJoint () |
PHJointを取得する | |
void | SetPHJoint (PHJointIf *j) |
PHJointを設定する | |
GRFrameIf * | GetChildFrame () |
セットされた子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) | |
SceneIf * | GetScene () |
所属Sceneの取得 | |
SceneObjectIf * | CloneObject () |
自分を所属Sceneに複製する | |
Public メソッド inherited from NamedObjectIf | |
SPR_IFDEF (NamedObject) | |
const char * | GetName () const |
名前の取得 | |
void | SetName (const char *n) |
名前の設定 | |
NameManagerIf * | GetNameManager () |
名前管理オブジェクトの取得 | |
Public メソッド inherited from ObjectIf | |
SPR_IFDEF (Object) | |
ObjectIf * | GetObjectIf () |
const ObjectIf * | GetObjectIf () 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 |
子オブジェクトの数 | |
ObjectIf * | GetChildObject (size_t pos) |
子オブジェクトの取得 | |
const ObjectIf * | GetChildObject (size_t pos) const |
bool | AddChildObject (ObjectIf *o) |
子オブジェクトの追加.複数のオブジェクトの子オブジェクトとして追加してよい. 例えば,GRFrameはツリーを作るが,全ノードがGRSceneの子でもある. | |
bool | DelChildObject (ObjectIf *o) |
子オブジェクトの削除 | |
void | Clear () |
すべての子オブジェクトの削除と、プロパティのクリア | |
ObjectIf * | CreateObject (const IfInfo *info, const void *desc) |
オブジェクトを作成し,AddChildObject()を呼ぶ. | |
template<class T > | |
ObjectIf * | CreateObject (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 | 物性値 オブジェクトが保持するグラフィクスメッシュの凸包として衝突判定メッシュを生成する |
filename | ファイル名 |
ii | ファイルタイプを指定する場合のIfInfo |
frame | メッシュを保有するフレーム.NULLを指定するとルートフレームが保有する |
メッシュをロードし,このFWObjectのGRFrameの下に加える