Función D3DXPlaneTransformArray (D3DX10Math.h)
Nota
La biblioteca de utilidades D3DX10 está en desuso. Se recomienda usar DirectXMath en su lugar.
Transforma una matriz de planos por una matriz. Los vectores que describen cada plano deben normalizarse.
Sintaxis
D3DXPLANE* D3DXPlaneTransformArray(
_Inout_ D3DXPLANE *pOut,
_In_ UINT OutStride,
_In_ const D3DXPLANE *pP,
_In_ UINT PStride,
_In_ const D3DXMATRIX *pM,
_In_ UINT n
);
Parámetros
-
pOut [in, out]
-
Tipo: D3DXPLANE*
Puntero a la estructura D3DXPLANE que contiene el plano transformado resultante. Vea Ejemplo.
-
OutStride [in]
-
Tipo: UINT
El paso de cada plano transformado.
-
pP [in]
-
Tipo: const D3DXPLANE*
Puntero a la estructura D3DXPLANE de entrada, que contiene la matriz de planos que se va a transformar. El vector (a, b, c) que describe el plano debe normalizarse antes de llamar a esta función. Vea Ejemplo.
-
PStride [in]
-
Tipo: UINT
El paso de cada plano no transformado.
-
pM [in]
-
Tipo: const D3DXMATRIX*
Puntero a la estructura D3DXMATRIX de origen, que contiene la transposición inversa de los valores de transformación.
-
n [in]
-
Tipo: UINT
Número de planos que se van a transformar.
Valor devuelto
Tipo: D3DXPLANE*
Puntero a una estructura D3DXPLANE, que representa el plano transformado. Este es el mismo valor devuelto en el parámetro pOut para que esta función se pueda usar como parámetro para otra función.
Observaciones
En este ejemplo se transforma un plano aplicando una escala no uniforme.
#define ARRAYSIZE 4
D3DXPLANE planeNew[ARRAYSIZE];
D3DXPLANE plane[ARRAYSIZE];
for(int i = 0; i < ARRAYSIZE; i++)
{
plane = D3DXPLANE( 0.0f, 1.0f, 1.0f, 0.0f );
D3DXPlaneNormalize( &plane[i], &plane[i] );
}
D3DXMATRIX matrix;
D3DXMatrixScaling( &matrix, 1.0f, 2.0f, 3.0f );
D3DXMatrixInverse( &matrix, NULL, &matrix );
D3DXMatrixTranspose( &matrix, &matrix );
D3DXPlaneTransformArray( &planeNew, sizeof (D3DXPLANE), &plane,
sizeof (D3DXPLANE), &matrix, ARRAYSIZE );
Un plano se describe mediante ax + by + cz + dw = 0. El primer plano se crea con (a,b,c,d) = (0,1,1,0), que es un plano descrito por y + z = 0. Después del escalado, el nuevo plano contiene (a,b,c,d) = (0, 0,353f, 0,235f, 0), que muestra el nuevo plano que se va a describir en 0,353y + 0,235z = 0.
El parámetro pM contiene la transposición inversa de la matriz de transformación. Este método requiere la transposición inversa para que también se pueda transformar correctamente el vector normal del plano transformado.
Requisitos
Requisito | Value |
---|---|
Encabezado |
|
Biblioteca |
|
Consulte también