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

グラフィックスで使うキャラクタアニメーション表示用のMesh

#include <SprGRAnimationMesh.h>

GRAnimationMeshIfに対する継承グラフ

Public メソッド

 SPR_IFDEF (GRAnimationMesh)
 
virtual void SetMotion (const std::string &name)=0
 モーションを選択
 
virtual void SetTime (double time)=0
 モーションの時刻を設定(単位は秒)
 
virtual void SetBlend (const std::vector< GRAnimationMeshBlendData > &data)=0
 
virtual Posed GetBoneKeyframePose (const std::string &name)=0
 キーフレームによるボーンの角度を取得 [詳細]
 
virtual void OverrideBoneOrientation (const std::string &name, const Quaterniond &orientation, double weight)=0
 ボーンの角度を(物理モデルの関節の角度などで)上書きする [詳細]
 
virtual void OverrideBonePose (const std::string &name, const Posed &pose, double weight, bool posRelative=false)=0
 ボーンの角度と親ボーンからの相対位置(ルートボーンの場合は自身の絶対位置)を上書きする [詳細]
 
virtual void SetAllBonesOverrideWeight (double weight)=0
 全てのボーンの上書き率を一定値にする [詳細]
 
virtual void AddDrawSubsetListener (GRAnimationMeshDrawSubsetListenerFunc beforeFunc, GRAnimationMeshDrawSubsetListenerFunc afterFunc, void *ptr=NULL)=0
 DrawSubsetの実行時にコールバックされる関数を登録 [詳細]
 
virtual void SetEffect (LPD3DXEFFECT effect, int matrixPaletteSize)=0
 描画に使用するエフェクトを設定 [詳細]
 
- Public メソッド inherited from GRVisualIf
 SPR_IFDEF (GRVisual)
 
void Render (GRRenderIf *r)
 レンダリング.子ノード,弟ノードのレンダリングより前に呼ばれる.
 
void Rendered (GRRenderIf *r)
 レンダリング終了処理.子ノード,弟ノードのレンダリングが終わってから呼ばれる.
 
void Enable (bool on=true)
 レンダリングの有効化/無効化
 
bool IsEnabled ()
 有効/無効状態の取得
 
GRMaterialIfGetMaterial ()
 
void SetMaterial (GRMaterialIf *mat)
 
- 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
 状態型をメモリブロックに戻す
 

関数

virtual void AddDrawSubsetListener ( GRAnimationMeshDrawSubsetListenerFunc  beforeFunc,
GRAnimationMeshDrawSubsetListenerFunc  afterFunc,
void *  ptr = NULL 
)
pure virtual
引数
beforeFuncDrawSubsetが実行される直前にコールバックされる関数
afterFuncDrawSubsetが実行された直後にコールバックされる関数
ptrコールバック関数に引数として渡される
virtual Posed GetBoneKeyframePose ( const std::string &  name)
pure virtual
引数
nameボーンの名前
virtual void OverrideBoneOrientation ( const std::string &  name,
const Quaterniond orientation,
double  weight 
)
pure virtual
引数
nameボーンの名前
orientation上書きする角度
weight上書き率(0~1, 0:キーフレームに100従う, 1:orientationに100従う)
virtual void OverrideBonePose ( const std::string &  name,
const Posed pose,
double  weight,
bool  posRelative = false 
)
pure virtual
引数
nameボーンの名前
pose上書きする位置角度
weight上書き率(0~1, 0:キーフレームに100従う, 1:poseに100従う)
virtual void SetAllBonesOverrideWeight ( double  weight)
pure virtual
引数
weight上書き率(0~1, 0:キーフレームに100従う, 1:poseに100従う)
virtual void SetEffect ( LPD3DXEFFECT  effect,
int  matrixPaletteSize 
)
pure virtual
引数
effect描画に使用するエフェクト
matrixPaletteSizeボーンのワールド変換を格納する配列のサイズ エフェクトを使う場合はRender()呼び出しをID3DXEffect::BeginPass()とEndPass()で挟む エフェクト内に用意するパラメータは以下のとおり(型、セマンティクス) float4x4 WORLD // ワールド行列 int MAXVERTEXINFL // 一つの頂点に影響するボーンの最大数(スキニングしないメッシュでは0) float4x3[matrixPaletteSize] BONEMATRIXARRAY // ボーンの変換行列の配列(デュアルクォータニオンを使うなら不要) float4[matrixPaletteSize] BONEQUATERNIONARRAYREAL // ボーンのデュアルクォータニオンのreal-partの配列(行列を使うなら不要) float4[matrixPaletteSize] BONEQUATERNIONARRAYDUAL // ボーンのデュアルクォータニオンのdual-partの配列(行列を使うなら不要) float4 DIFFUSECOLOR // マテリアルのディフューズ色 float4 EMISSIVECOLOR // マテリアルのエミッシブ色 texture TEXTURE // テクスチャ bool ISTEXTURED // テクスチャが使われているかどうか スキニングしないメッシュではBONE***は使われない

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