?/TD>
Microsoft DirectX 9.0

IDirect3DDevice9::MultiplyTransform Method


Multiplies a device's world, view, or projection matrices by a specified matrix.

Syntax

HRESULT MultiplyTransform(      

    D3DTRANSFORMSTATETYPE State,     CONST D3DMATRIX *pMatrix );

Parameters

State
[in] Member of the D3DTRANSFORMSTATETYPE enumerated type, or the D3DTS_WORLDMATRIX macro that identifies which device matrix is to be modified. The most common setting, D3DTS_WORLDMATRIX(0), modifies the world matrix, but you can specify that the method modify the view or projection matrices, if needed.
pMatrix
[in] Pointer to a D3DMATRIX structure that modifies the current transformation.

Return Value

If the method succeeds, the return value is D3D_OK.

D3DERR_INVALIDCALL if one of the arguments is invalid.



Remarks

The multiplication order is pMatrix times State.

An application might use the IDirect3DDevice9::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.

IDirect3DDevice9::SetTransform(D3DTS_WORLDMATRIX(0), 
    shoulder_transform)
IDirect3DDevice9::DrawPrimitive(upper_arm)
IDirect3DDevice9::MultiplyTransform(D3DTS_WORLDMATRIX(0), 
    elbow_transform)
IDirect3DDevice9::DrawPrimitive(lower_arm)
IDirect3DDevice9::MultiplyTransform(D3DTS_WORLDMATRIX(0), 
    wrist_transform)
IDirect3DDevice9::DrawPrimitive(hand)

See Also

IDirect3DDevice9::DrawPrimitive, IDirect3DDevice9::SetTransform, D3DTS_WORLD, D3DTS_WORLDn, D3DTS_WORLDMATRIX


© 2002 Microsoft Corporation. All rights reserved.