DirectX SDK

IDirect3DDevice7::MultiplyTransform

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                        
);

Parameters

dtstTransformStateType
A member of the D3DTRANSFORMSTATETYPE enumerated type that identifies which device matrix is to be modified. The most common setting, D3DTRANSFORMSTATE_WORLD, modifies the world matrix, but you can specify that the method modify the view or projection matrices, if needed.
lpD3DMatrix
Address of a D3DMATRIX structure that modifies the current transformation.

Return Values

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.

Remarks

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)

Requirements

  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.

See Also

IDirect3DDevice7::DrawPrimitive, IDirect3DDevice7::SetTransform