The IDirect3DDevice2::MultiplyTransform method modifies the current world matrix by combining it with a specified matrix. The multiplication order is lpD3DMatrix times dtstTransformStateType.
HRESULT MultiplyTransform(
D3DTRANSFORMSTATETYPE dtstTransformStateType,
LPD3DMATRIX lpD3DMatrix
);
If the method succeeds, the return value is DD_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 IDirect3DDevice2::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 of the parameters are shown in this pseudocode.)
IDirect3DDevice2::SetTransform(D3DTRANSFORMSTATE_WORLD,
shoulder_transform)
IDirect3DDevice2::DrawPrimitive(upper_arm)
IDirect3DDevice2::MultiplyTransform(D3DTRANSFORMSTATE_WORLD,
elbow_transform)
IDirect3DDevice2::DrawPrimitive(lower_arm)
IDirect3DDevice2::MultiplyTransform(D3DTRANSFORMSTATE_WORLD,
wrist_transform)
IDirect3DDevice2::DrawPrimitive(hand)
This method was introduced with the IDirect3DDevice2 interface.
Windows NT: Use version 5.0 or later.
Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
Windows CE: Unsupported.
Header: Declared in d3d.h.
Import Library: Use ddraw.lib.
IDirect3DDevice2::DrawPrimitive, IDirect3DDevice2::SetTransform