D3DXMatrixTransformation function (D3DX10Math.h)
Note
The D3DX10 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, 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 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 |
|
Library |
|
See also