Springhead
An open source physics engine for virtual reality, haptics and motion generation.
構造体 FWSceneIf
FWSceneIfに対する継承グラフ

Public 型

enum  AxisStyle { AXIS_LINES, AXIS_ARROWS }
 

Public メソッド

 SPR_IFDEF (FWScene)
 
FWSdkIfGetSdk ()
 このSceneをもつSDKを返す [詳細]
 
PHSceneIfGetPHScene ()
 Physicsモジュールのシーンを取得する
 
void SetPHScene (PHSceneIf *s)
 Physicsモジュールのシーンを設定する FWSceneの作成と同時に自動的に作成されるので、通常は呼び出す必要は無い.
 
GRSceneIfGetGRScene ()
 Graphicsモジュールのシーンを取得する
 
void SetGRScene (GRSceneIf *s)
 Graphicsモジュールのシーンを取得・設定する FWSceneの作成と同時に自動的に作成されるので、通常は呼び出す必要は無い.
 
FWObjectIfCreateFWObject ()
 空のFrameworkオブジェクトを作成する 作成された時点でPHSolidとGRFrameは割り当てられていないので, SetPHSolid, SetGRFrameで割り当てる必要がある.
 
int NObject () const
 オブジェクトの数を取得する
 
FWObjectIfGetObject (int i)
 オブジェクトを取得する
 
FWObjectIf ** GetObjects ()
 オブジェクトの配列を取得する
 
void Sync ()
 オブジェクトを同期する 各FWObjectに対して、それぞれ ・PHSolidの位置をGRFrameに反映させる ・GRFrameの位置をPHSolidに反映させる のどちらかを行う(どちらを行うかはFWObject::syncSourceで設定する)。 通常はFWSceneIf::Stepによってシミュレーションが実行された後に呼ぶ。
 
void Step ()
 シミュレーションを実行する
 
void Draw (GRRenderIf *grRender, bool debug)
 描画する [詳細]
 
void Draw (GRRenderIf *grRender)
 
void DrawPHScene (GRRenderIf *render)
 Physicsシーンをレンダリングする [詳細]
 
void DrawSolid (GRRenderIf *render, PHSolidIf *solid, bool solid_or_wire)
 剛体をレンダリングする [詳細]
 
void DrawShape (GRRenderIf *render, CDShapeIf *shape, bool solid)
 衝突判定用形状を描画する [詳細]
 
void DrawConstraint (GRRenderIf *render, PHConstraintIf *con)
 拘束を描画する [詳細]
 
void DrawContact (GRRenderIf *render, PHContactPointIf *con)
 接触を描画する [詳細]
 
void DrawIK (GRRenderIf *render, PHIKEngineIf *ikEngine)
 IK情報を描画する [詳細]
 
void DrawLimit (GRRenderIf *render, PHConstraintIf *con)
 関節可動域を描画する [詳細]
 
void DrawHaptic (GRRenderIf *render, PHHapticEngineIf *hapticEngine)
 Haptic情報を描画する [詳細]
 
void SetRenderMode (bool solid=true, bool wire=false)
 描画モードの設定 [詳細]
 
void EnableRender (ObjectIf *obj, bool enable=true)
 オブジェクト単位の描画のオン/オフ
 
void SetSolidMaterial (int mat, PHSolidIf *solid=0)
 描画マテリアルの設定 [詳細]
 
void SetSolidMaterial (int mat, float alha, PHSolidIf *solid=0)
 
void SetWireMaterial (int mat, PHSolidIf *solid=0)
 
void SetWireMaterial (int mat, float alha, PHSolidIf *solid=0)
 
void EnableRenderAxis (bool world=true, bool solid=true, bool con=true)
 座標軸の描画切り替え
 
void SetAxisMaterial (int matX, int matY, int matZ)
 座標軸の描画オプション
 
void SetAxisScale (float scaleWorld, float scaleSolid, float scaleCon)
 
void SetAxisStyle (int style)
 
void EnableRenderForce (bool solid=true, bool constraint=true)
 力の描画切り替え
 
void SetForceMaterial (int matForce, int matMoment)
 力の描画オプション
 
void SetForceScale (float scaleForce, float scaleMoment)
 
void EnableRenderPHScene (bool enable=true)
 PHSceneの描画
 
void EnableRenderGRScene (bool enable=true)
 GRSceneの描画
 
void EnableRenderContact (bool enable=true)
 接触面の描画
 
void SetContactMaterial (int mat)
 
void EnableRenderBBox (bool enable=true)
 bboxの描画
 
void SetLocalBBoxMaterial (int mat)
 
void SetWorldBBoxMaterial (int mat)
 
void EnableRenderGrid (bool x=true, bool y=true, bool z=true)
 グリッドの描画
 
void SetGridOption (char axis, float offset, float size, int slice)
 グリッドの設定 [詳細]
 
void SetGridMaterial (int matX, int matY, int matZ)
 
void EnableRenderIK (bool enable=true)
 IKの計算結果の描画
 
void SetIKMaterial (int mat)
 
void SetIKScale (float scale)
 
void EnableRenderLimit (bool enable=true)
 関節可動域の描画
 
void EnableRenderHaptic (bool enable=true)
 Hapticの描画
 
void EnableRenderFem (bool enable=true)
 FEMの描画
 
void EnableRenderSkeletonSensor (bool enable=true)
 SkeletonSensorの描画
 
void EnableRenderOp (bool enable=true)
 Opの描画
 
void AddHumanInterface (HIForceDevice6D *d)
 
FWHapticPointerIfCreateHapticPointer ()
 力覚ポインタを作る
 
void UpdateHapticPointers ()
 HumanInterfaceの状態を取得し、力覚ポインタを更新する
 
FWSkeletonSensorIfCreateSkeletonSensor (const FWSkeletonSensorDesc &desc=FWSkeletonSensorDesc())
 スケルトンセンサ(Kinect, Leapmotionなど)を作る
 
void UpdateSkeletonSensors ()
 スケルトンセンサからの情報を反映する
 
int NHapticPointers ()
 力覚ポインタの数を返す。
 
FWHapticPointerIfGetHapticPointer (int i)
 力覚ポインタを返す。
 
FWOpHapticHandlerIfCreateOpHapticHandler ()
 OP力覚ハンドラーを作る
 
FWOpHapticHandlerIfGetOpHapticHandler ()
 OP力覚ハンドラー取得する
 
void UpdateOpHapticHandler ()
 HumanInterfaceの状態を取得し、力覚ポインタを更新する
 
- Public メソッド inherited from SceneIf
 SPR_IFDEF (Scene)
 
- Public メソッド inherited from NameManagerIf
 SPR_IFDEF (NameManager)
 
template<class T >
void FindObject (UTRef< T > &t, UTString name)
 
template<class T >
void FindObject (T *&t, UTString name)
 
NamedObjectIfFindObject (UTString name, UTString cls="")
 
- 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 Draw ( GRRenderIf grRender,
bool  debug 
)
引数
grRenderレンダラ
debugデバッグ描画か
void DrawConstraint ( GRRenderIf render,
PHConstraintIf con 
)
引数
renderレンダラ
con拘束 指定した拘束の情報(ソケットとプラグの座標軸,拘束力,モーメント)を描画する
void DrawContact ( GRRenderIf render,
PHContactPointIf con 
)
引数
renderレンダラ
con接触 指定した接触の接触断面を描画する
void DrawHaptic ( GRRenderIf render,
PHHapticEngineIf hapticEngine 
)
引数
renderレンダラ
hapticEngineHapticエンジン
void DrawIK ( GRRenderIf render,
PHIKEngineIf ikEngine 
)
引数
renderレンダラ
ikEngineIKエンジン
void DrawLimit ( GRRenderIf render,
PHConstraintIf con 
)
引数
renderレンダラ
con関節
void DrawPHScene ( GRRenderIf render)
引数
renderレンダラ
sceneシーン シーンに含まれるオブジェクト(剛体,拘束,接触,IKなど)をすべて描画する.
void DrawShape ( GRRenderIf render,
CDShapeIf shape,
bool  solid 
)
引数
renderレンダラ
shape形状
solidtrueならソリッド描画,falseならワイヤフレーム描画 shapeの種類を判別して形状を描画する.
void DrawSolid ( GRRenderIf render,
PHSolidIf solid,
bool  solid_or_wire 
)
引数
renderレンダラ
solid剛体
solid_or_wire指定した剛体の情報(座標軸,衝突判定形状,力,モーメント)を描画する
FWSdkIf* GetSdk ( )
戻り値
SDKのインタフェース
void SetGridOption ( char  axis,
float  offset,
float  size,
int  slice 
)
引数
axis設定する軸を'x', 'y', 'z'で指定
offsetオフセット
sizeグリッドの幅
slice分割数
void SetRenderMode ( bool  solid = true,
bool  wire = false 
)
引数
ph_or_grPHSceneを描画するかGRSceneを描画するか
solidソリッド描画のオン/オフ
wireワイヤフレーム描画のオン/オフ solidとwireはPHSceenを描画するときのみ有効.

参照元 MyApp::BuildScene(), と MyApp::Init().

void SetSolidMaterial ( int  mat,
PHSolidIf solid = 0 
)
引数
matマテリアル
solid設定対象の剛体 デバッグ描画におけるマテリアルを設定する. matにはGRRenderIf::TMaterialSampleの値が指定できる. solidにNULLを指定すると全ての剛体が対象となる.

参照元 MyApp::BuildScene().


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