class CHierarchicalMesh

【概要】
 CMesh の拡張クラス。アニメーション機能を追加。

重要度メソッド名 解説アクセス
CHierarchicalMesh(CD3DEnv *pEnv, TCHAR *fname)
コンストラクタ
public
~CHierarchicalMesh()
デストラクタ
public
virtual void
Render(LPDIRECT3DDEVICE9 lpd3ddev)
モデルデータをグラフィックデバイスに対して描画する。
public
virtual void
RenderWithoutMaterials(LPDIRECT3DDEVICE9 lpd3ddev,D3DMATERIAL9 *pMaterial)
モデルデータをグラフィックデバイスに対して描画する。メッシュ内のマテリアルは無視する。
public
HRESULT
UpdateMatrices( D3DXMATRIX *pMatWorld )
メッシュヒエラルキー内のMatrix を更新する。
public

※重要度の意味:

◎これを知らないとこのライブラリを使えないレベル。
○知っておいたほうが良いレベル。
△知らなくても支障は無いレベル。

※:注意点1
CHierarchicalMeshに対する以下のメソッドの呼び出しは成功しない。 GetFVF(), GetVertexBuffer(LPDIRECT3DVERTEXBUFFER9 *ppVB), GetIndexBuffer(LPDIRECT3DINDEXBUFFER9 *ppIB), GetNumVertices(), GetNumFaces()

※:注意点4
CHierarchicalMeshに対する以下のメソッドの返す値は誤差が大きく不正確である。 GetRadius(), GetBoundingSphere(), GetBoundingBox()
必要であれば、各自正確なものを実装されたい。


CHierarchicalMesh(CD3DEnv *pEnv, TCHAR *fname)

引数:pEnv:このメッシュオブジェクトが使用する描画環境へのポインタ。
fName:ファイルネームを示す文字列へのポインタ(実行ファイルからの相対パス)。


コンストラクタ。ファイルネームが示すメッシュを読み込む様に、本クラスを初期化する。 実際にはクラスを生成した時点ではファイルは読み込まれないので、描画環境に対して、 ReloadGraphics()などで明示的に読み込み指示をする必要がある。


~CHierarchicalMesh()

デストラクタ


virtual void Render(LPDIRECT3DDEVICE9 lpd3ddev)

引数: lpd3ddev 描画に使用するDirect3D9 デバイス。

引数に指定された Direct3D9 デバイスに対して描画を行う。
ワールド行列やビュー行列については、 FrameMove, AdjustAnimation, ResetAnimation のいずれかのメソッド に最後に渡した行列が使用される。


virtual void RenderWithoutMaterials(LPDIRECT3DDEVICE9 lpd3ddev,D3DMATERIAL9 *pMaterial)

引数:lpd3ddev:描画に使用するDirect3D9 デバイス。
pMaterials:描画に使用されるマテリアル。

引数に指定された Direct3D9 デバイスに対して描画を行う。
メッシュ内のマテリアルは無視し、引数のマテリアルを使用して描画する。
ワールド行列やビュー行列については、このメソッド呼び出しの前に設定しておく必要がある。


HRESULT UpdateMatrices(D3DXMATRIX *pMatWorld )

引数:pMatWorld:階層構造を成すメッシュの根となるモデルに対するワールド行列。
返値: 成功なら S_OK

引数 pMatWorld にワールド行列を与えて、ヒエラルキー内の全ての行列を更新する。


D3DQuickLib のTOPページへ。