D3DXMatrixTransformation function (D3dx9math.h)

Note

The D3DX utility library is deprecated. We recommend that you use DirectXMath instead.

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

Syntax

D3DXMATRIX* D3DXMatrixTransformation(
  _Inout_       D3DXMATRIX     *pOut,
  _In_    const D3DXVECTOR3    *pScalingCenter,
  _In_    const D3DXQUATERNION *pScalingRotation,
  _In_    const D3DXVECTOR3    *pScaling,
  _In_    const D3DXVECTOR3    *pRotationCenter,
  _In_    const D3DXQUATERNION *pRotation,
  _In_    const D3DXVECTOR3    *pTranslation
);

Parameters

pOut [in, out]

Type: D3DXMATRIX*

Pointer to the D3DXMATRIX structure that is the result of the operation.

pScalingCenter [in]

Type: const D3DXVECTOR3*

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]

Type: const D3DXQUATERNION*

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]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, the scaling vector. If this argument is NULL, an identity Mₛ matrix is applied to the formula in Remarks.

pRotationCenter [in]

Type: const D3DXVECTOR3*

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]

Type: const D3DXQUATERNION*

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]

Type: const D3DXVECTOR3*

Pointer to a D3DXVECTOR3 structure, representing the translation. If this argument is NULL, an identity Mₜ matrix is applied to the formula in Remarks.

Return value

Type: D3DXMATRIX*

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)⁻¹ * (Msr)⁻¹* Mₛ * Msr * Msc * (Mrc)⁻¹* Mr * Mrc * Mt

where:

Mout = output matrix (pOut)

Msc = scaling center matrix (pScalingCenter)

Msr = scaling rotation matrix (pScalingRotation)

Mₛ = scaling matrix (pScaling)

Mrc = center of rotation matrix (pRotationCenter)

Mr = rotation matrix (pRotation)

Mₜ = 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 2D transformations, use D3DXMatrixTransformation2D.

Requirements

Requirement Value
Header
D3dx9math.h
Library
D3dx9.lib

See also

Math Functions

D3DXMatrixAffineTransformation

Transforms (Direct3D 9)