class CMesh

【概要】
 3Dでモデリングされたメッシュデータ。CGraphicsObject の拡張クラス。

重要度メソッド名 解説アクセス
CMesh(CD3DEnv *pEnv, TCHAR *fname)
コンストラクタ
public
~CMesh()
デストラクタ
public
virtual void
Render(LPDIRECT3DDEVICE9 lpd3ddev)
モデルデータをグラフィックデバイスに対して描画する。
public
virtual void
RenderWithoutMaterials(LPDIRECT3DDEVICE9 lpd3ddev,D3DMATERIAL9 *pMaterial)
モデルデータをグラフィックデバイスに対して描画する。メッシュ内のマテリアルは無視する。
public
virtual void
GetObjectCenter( D3DXVECTOR3 *pPos)
モデルデータの中心点をローカル座標で返す。
public
virtual void
GetBoundingBox(D3DXVECTOR3 *pMin, D3DXVECTOR3 *pMax)
モデルデータを囲む最小の矩形を返す。座標はローカル座標で表される。
public
virtual float
GetRadius()
モデルデータを囲む最小の球の半径を返す。
public
virtual HRESULT
GetVertexBuffer(LPDIRECT3DVERTEXBUFFER9 *ppVB)
モデルデータを表現する頂点バッファを返す。
public
virtual HRESULT
GetIndexBuffer(LPDIRECT3DINDEXBUFFER9 *ppIB)
GetIndexBufferが返す頂点バッファに対応するインデックスバッファを返す。
public
virtual DWORD
GetFVF()
モデルデータで使用されている頂点フォーマットを返す。
public
virtual DWORD
GetNumVertices()
モデルデータで使用されている頂点の数を返す。
public
virtual DWORD
GetNumFaces()
モデルデータで使用されている面の数を返す。
public
virtual DWORD
SetBlendMode(DWORD mode)
表示に使用するブレンディングモードを設定する。
public
virtual DWORD
SetOpacity(FLOAT opacity)
モデルの不透明度を設定する。
public

※重要度の意味:

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


CMesh(CD3DEnv *pEnv, TCHAR *fname)

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


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


~CMesh()

デストラクタ


virtual void Render(LPDIRECT3DDEVICE9 lpd3ddev)

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

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


virtual void RenderWithoutMaterials(LPDIRECT3DDEVICE9 lpd3ddev,D3DMATERIAL9 *pMaterial)

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

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


virtual void GetObjectCenter( D3DXVECTOR3 *pPos)

引数: pPos D3DXVECTOR3 型のデータへのポインタ。
返値: なし。
引数に指定されたポインタが指すデータに対して、このモデルの中心座標を返す。
座標はローカル座標で示されるので、必要に応じて変換が必要。


virtual void GetBoundingBox(D3DXVECTOR3 *pMin, D3DXVECTOR3 *pMax)

引数:pMin:矩形の最小値側を指すD3DXVECTOR3 型データへのポインタ。
pMax:矩形の最大値側を指すD3DXVECTOR3 型データへのポインタ。
返値: なし。

引数に指定されたポインタが指すデータに対して、このモデルを囲む最小の矩形を返す。
座標はローカル座標で示されるので、必要に応じて変換が必要。


virtual float GetRadius()

引数: なし。
返値: このモデルの半径。

このモデルを囲む最小の球の半径を返す。


virtual HRESULT GetVertexBuffer(LPDIRECT3DVERTEXBUFFER9 *ppVB)

引数: ppVB : 頂点バッファを受け取るポインタを示すポインタ。
返値: 成功したら、S_OK。

このモデルを表現する頂点バッファを返す。 頂点バッファへのリファレンスカウントがインクリメントされる為、 使用終了後、速やかに Release しなければならない。


virtual HRESULT GetIndexBuffer(LPDIRECT3DINDEXBUFFER9 *ppIB)

引数: ppIB : インデックスバッファを受け取るポインタを示すポインタ。
返値: 成功したら、S_OK。

このモデルを描画するのに使用するインデックスバッファ (頂点バッファ内のポリゴンを表現するインデックスを示すバッファ)を取得する。 インデックスバッファへのリファレンスカウントがインクリメントされる為、 使用終了後、速やかに Release しなければならない。


virtual DWORD GetFVF()

引数: なし。
返値: このモデルが使用する頂点フォーマットを返す。


virtual DWORD GetNumVertices()

引数: なし。
返値: このモデルを構成する頂点数を返す。


virtual DWORD GetNumFaces()

引数: なし。
返値: このモデルを構成する面の数を返す。


virtual void SetBlendMode(DWORD blendmode)

引数: blendmode : ブレンドモード。
返値: なし。

モデルを表示する際の背景とのブレンドモードを指定する。 モードの指定には以下のマクロを使用する。
定数解説
MESH_OPAQUE0不透明。
MESH_SEMI_TRANS0モデルの不透明度に合わせて背景とブレンドする。
MESH_ADD_IN0背景に対し加算合成を行う。


virtual DWORD SetOpacity(FLOAT opacity)

引数: opacity : 不透明度(0.0〜1.0)。
返値: なし。

モデルの不透明度を設定する。0.0で透明。1.0で不透明。 SetBlendMode() で、MESH_SEMI_TRANS もしくは MESH_ADD_IN を指定したときのみ有効。


D3DQuickLib のTOPページへ。