D3DXMatrixTransformation
Microsoft DirectX 9.0 SDK Update (October 2004)

D3DXMatrixTransformation Function


Builds a transformation matrix. NULL arguments are treated as identity transformations.

Syntax

D3DXMATRIX *WINAPI D3DXMatrixTransformation(      

    D3DXMATRIX *pOut,     CONST D3DXVECTOR3 *pScalingCenter,     CONST D3DXQUATERNION *pScalingRotation,     CONST D3DXVECTOR3 *pScaling,     CONST D3DXVECTOR3 *pRotationCenter,     CONST D3DXQUATERNION *pRotation,     CONST D3DXVECTOR3 *pTranslation );

Parameters

pOut
[in, out] Pointer to the D3DXMATRIX structure that is the result of the operation.
pScalingCenter
[in] Pointer to a D3DXVECTOR3 structure, identifying the scaling center point. If this argument is NULL, an identity Msc matrix is applied to the formula in Remarks.
pScalingRotation
[in] Pointer to a D3DXQUATERNION structure that specifies the scaling rotation. If this argument is NULL, an identity Msr matrix is applied to the formula in Remarks.
pScaling
[in] Pointer to a D3DXVECTOR3 structure, the scaling vector. If this argument is NULL, an identity Ms matrix is applied to the formula in Remarks.
pRotationCenter
[in] Pointer to a D3DXVECTOR3 structure, a point that identifies the center of rotation. If this argument is NULL, an identity Mrc matrix is applied to the formula in Remarks.
pRotation
[in] Pointer to a D3DXQUATERNION structure that specifies the rotation. If this argument is NULL, an identity Mr matrix is applied to the formula in Remarks.
pTranslation
[in] Pointer to a D3DXVECTOR3 structure, representing the translation. If this argument is NULL, an identity Mt matrix is applied to the formula in Remarks.

Return Value

Pointer to a D3DXMATRIX structure that is the transformation matrix.



Remarks

This function calculates the transformation matrix with the following formula, with matrix concatenation evaluated in left-to-right order:

    Mout = (Msc)-1 * (Msr)-1 * Ms * Msr * Msc * (Mrc)-1 * Mr * Mrc * Mt

where:

    Mout = output matrix (pOut)

    Msc = scaling center matrix (pScalingCenter)

    Msr = scaling rotation matrix (pScalingRotation)

    Ms = scaling matrix (pScaling)

    Mrc = center of rotation matrix (pRotationCenter)

    Mr = rotation matrix (pRotation)

    Mt = translation matrix (pTranslation)

The return value for this function is the same value returned in the pOut parameter. In this way, the D3DXMatrixTransformation function can be used as a parameter for another function.

For 2-D transformations, use D3DXMatrixTransformation2D.

Function Information

Headerd3dx9math.h
Import libraryd3dx9.lib
Minimum operating systems Windows 98

See Also

D3DXMatrixAffineTransformation, Matrix Transforms


© 2004 Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center.