D3DXMatrixTransformation
Builds a transformation matrix. NULL arguments are treated as identity transformations.
D3DXMATRIX * 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 Values
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 2D transformations, use D3DXMatrixTransformation2D.
Requirements
Header: Declared in D3dx9math.h.
See Also
D3DXMatrixAffineTransformation, Transforms