?/TD> |

Microsoft DirectX 9.0 |

Transforms a plane by a matrix. The input matrix is the inverse transpose of the actual transformation.

Syntax

D3DXPLANE *D3DXPlaneTransform(

D3DXPLANE *pOut, CONST D3DXPLANE *pP, CONST D3DXMATRIX *pM);

Parameters

pOut- [in, out] Pointer to the D3DXPLANE structure that contains the resulting transformed plane. See Example.
pP- [in] Pointer to the input
D3DXPLANEstructure, which contains the plane that will be transformed. The vector (a,b,c) that describes the plane must be normalized before this function is called. See Example.pM- [in] Pointer to the source D3DXMATRIX structure, which contains the transformation values. This matrix must contain the inverse transpose of the transformation values.

Return Value

Pointer to a

D3DXPLANEstructure, representing the transformed plane. This is the same value returned in thepOutparameter so that this function can be used as a parameter for another function.

Examples

This example transforms a plane by applying a non-uniform scale.

D3DXPLANE planeNew; D3DXPLANE plane(0,1,1,0); D3DXPlaneNormalize(&plane, &plane); D3DXMATRIX matrix; D3DXMatrixScaling(&matrix, 1.0f,2.0f,3.0f); D3DXMatrixInverse(&matrix, NULL, &matrix); D3DXMatrixTranspose(&matrix, &matrix); D3DXPlaneTransform(&planeNew, &plane, &matrix);A plane is described by ax + by + cz + dw = 0. The first plane is created with (a,b,c,d) = (0,1,1,0), which is a plane described by y + z = 0. After scaling, the new plane contains (a,b,c,d) = (0, 0.353f, 0.235f, 0), which shows the new plane to be described by 0.353y + 0.235z = 0.

The parameter

pM, contains the inverse transpose of the transformation matrix. The inverse transpose is required by this method so that the normal vector of the transformed plane can be correctly transformed as well.

Function Information

Header d3dx9math.h Import library d3dx9.lib Minimum operating systems Windows 98

See Also

D3DXPlaneNormalize, D3DXMatrixRotationX, D3DXMatrixRotationY, D3DXMatrixRotationZ, D3DXMatrixInverse, D3DXMatrixTranspose