Microsoft DirectX 8.0 (C++) |
Direct3DX ユーティリティ ライブラリは、ID3DXMatrixStack インターフェイスを備えている。このインターフェイスは、行列を行列スタックにプッシュしたり、行列スタックからポップ オフしたりするためのメカニズムを提供する。行列スタックを実装すると、トランスフォーム階層内を移動する際に、行列を効率よく管理することができる。
Direct3DX ユーティリティ ライブラリは、行列スタックを使ってトランスフォームを行列として格納する。ID3DXMatrixStack インターフェイスの各種メソッドを使って、現在の行列 (行列の最上部にある行列) を操作することができる。カレント行列をクリアするには、ID3DXMatrixStack::LoadIdentity メソッドを使用する。特定の行列をカレント トランスフォーム行列としてロードするよう明示的に指定するには、ID3DXMatrixStack::LoadMatrix メソッドを使用する。その後 ID3DXMatrixStack::MultMatrix メソッドまたは ID3DXMatrixStack::MultMatrixLocal メソッドを呼び出して、現在の行列を指定した行列で乗算することができる。
ID3DXMatrixStack::Pop メソッドを使用すると、前のトランスフォーム行列に戻り、ID3DXMatrixStack::Push メソッドを使用すると、スタックにトランスフォーム行列が追加される。
行列スタック上の個々の行列は、Direct3DX ユーティリティ ライブラリの D3DXMATRIX 構造体によって定義された 4 × 4 同次行列として表現される。