Platform SDK: DirectX |
IDirect3DDevice7::MultiplyTransform メソッドは、デバイスのワールド行列、ビュー行列、または射影行列に、指定された行列を乗算する。乗算の順は、lpD3Dmatrix 掛ける dtstTransformStateType である。
HRESULT MultiplyTransform( D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix );
成功すれば D3D_OK を返す。
失敗すればエラーを返す。このメソッドは、引数の 1 つが無効な場合には、DDERR_INVALIDPARAMS を返す。
アプリケーションが、トランスフォームの階層構造を使って動作するために、MultiplyTransform メソッドを使用することも考えられる。たとえば、腕を表すジオメトリとトランスフォームは、以下の階層で構成することもある。
shoulder_transformation upper_arm geometry elbow transformation lower_arm geometry wrist transformation hand geometry
アプリケーションでは、この階層をレンダリングするために以下の一連の呼び出しを行うことができる (このコードでは一部のパラメータのみ示す)。
IDirect3DDevice7::SetTransform(D3DTRANSFORMSTATE_WORLD, shoulder_transform) IDirect3DDevice7::DrawPrimitive(upper_arm) IDirect3DDevice7::MultiplyTransform(D3DTRANSFORMSTATE_WORLD, elbow_transform) IDirect3DDevice7::DrawPrimitive(lower_arm) IDirect3DDevice7::MultiplyTransform(D3DTRANSFORMSTATE_WORLD, wrist_transform) IDirect3DDevice7::DrawPrimitive(hand)
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
バージョン :DirectX 7.0 が必要。
ヘッダー : d3d.h で宣言。
IDirect3DDevice7::DrawPrimitive、IDirect3DDevice7::SetTransform