DirectX SDK |
The IDirect3DDevice7::MultiplyTransform method multiplies a device's world, view, or projection matrices by a specified matrix. The multiplication order is lpD3DMatrix times dtstTransformStateType.
HRESULT MultiplyTransform( D3DTRANSFORMSTATETYPE dtstTransformStateType, LPD3DMATRIX lpD3DMatrix );
If the method succeeds, the return value is D3D_OK.
If the method fails, the return value is an error. The method returns DDERR_INVALIDPARAMS if one of the arguments is invalid.
An application might use the MultiplyTransform method to work with hierarchies of transformations. For example, the geometry and transformations describing an arm might be arranged in the following hierarchy:
shoulder_transformation upper_arm geometry elbow transformation lower_arm geometry wrist transformation hand geometry
An application might use the following series of calls to render this hierarchy. (Not all the parameters are shown in this pseudocode.)
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: Requires Windows 2000.
Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
Windows CE: Unsupported.
Version: Requires DirectX 7.0.
Header: Declared in d3d.h.
IDirect3DDevice7::DrawPrimitive, IDirect3DDevice7::SetTransform