D3DXPlaneTransformArray, fonction (D3DX10Math. h)

Transforme un tableau de plans par une matrice. Les vecteurs qui décrivent chaque plan doivent être normalisés.

Syntaxe

D3DXPLANE* D3DXPlaneTransformArray(
  _Inout_       D3DXPLANE  *pOut,
  _In_          UINT       OutStride,
  _In_    const D3DXPLANE  *pP,
  _In_          UINT       PStride,
  _In_    const D3DXMATRIX *pM,
  _In_          UINT       n
);

Paramètres

moue [ in, out]

Type : D3DXPLANE*

Pointeur vers la structure D3DXPLANE qui contient le plan transformé résultant. Consultez l’exemple.

En Progress [ dans]

Type : uint

STRIDE de chaque plan transformé.

pp [ dans]

Type : const D3DXPLANE *

Pointeur vers la structure D3DXPLANE d’entrée, qui contient le tableau de plans à transformer. Le vecteur (a, b, c) qui décrit le plan doit être normalisé avant l’appel de cette fonction. Consultez l’exemple.

PStride [ dans]

Type : uint

STRIDE de chaque plan non transformé.

GCF [ dans]

Type : const D3DXMATRIX *

Pointeur vers la structure source D3DXMATRIX , qui contient la permutation inverse des valeurs de transformation.

n [ dans]

Type : uint

Nombre de plans à transformer.

Valeur de retour

Type : D3DXPLANE*

Pointeur vers une structure D3DXPLANE représentant le plan transformé. Il s’agit de la même valeur retournée dans le paramètre moue pour que cette fonction puisse être utilisée en tant que paramètre pour une autre fonction.

Notes

Cet exemple transforme un plan en appliquant une échelle non 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 plan est décrit par ax + by + CZ + DW = 0. Le premier plan est créé avec (a, b, c, d) = (0, 1, 1, 0), qui est un plan décrit par y + z = 0. Après la mise à l’échelle, le nouveau plan contient (a, b, c, d) = (0, 0.353 f, 0.235 f, 0), qui affiche le nouveau plan à décrire par 0.353 y + 0.235 z = 0.

Le paramètre pM contient la transposer inverse de la matrice de transformation. La permutation inverse est requise par cette méthode afin que le vecteur normal du plan transformé puisse également être correctement transformé.

Spécifications

Condition requise Valeur
En-tête
D3DX10Math. h
Bibliothèque
D3DX10. lib

Voir aussi

Fonctions mathématiques