Share via


Funzione XMVectorSelect (directxmath.h)

Esegue una selezione per componente tra due vettori di input e restituisce il vettore risultante.

Sintassi

XMVECTOR XM_CALLCONV XMVectorSelect(
  [in] FXMVECTOR V1,
  [in] FXMVECTOR V2,
  [in] FXMVECTOR Control
) noexcept;

Parametri

[in] V1

Primo vettore da confrontare.

[in] V2

Secondo vettore da confrontare.

[in] Control

Maschera vettoriale usata per selezionare un componente vettoriale da V1 o V2. Se un componente di Control è zero, il componente corrispondente del vettore restituito sarà il componente del primo vettore. Se un componente di Control è 0xFF, il componente corrispondente del vettore restituito sarà il componente del secondo vettore. Per informazioni dettagliate sul funzionamento della maschera vettoriale, vedere la sezione "Osservazioni".

In genere, il vettore usato per Control sarà l'output di una funzione di confronto vettoriale (ad esempio XMVectorEqual, XMVectorLess o XMVectorGreater) oppure sarà l'output di XMVectorSelectControl.

Valore restituito

Restituisce il risultato della selezione per componente.

Commenti

Se viene impostato un bit specificato di Control , viene usato il bit corrispondente dalla versione 2 ; in caso contrario, viene usato il bit corrispondente da V1 . Lo pseudocodice seguente illustra l'operazione della funzione :

XMVECTOR Result;

Result.u[0] = (V1.u[0] & ~Control.u[0]) | (V2.u[0] & Control.u[0]);
Result.u[1] = (V1.u[1] & ~Control.u[1]) | (V2.u[1] & Control.u[1]);
Result.u[2] = (V1.u[2] & ~Control.u[2]) | (V2.u[2] & Control.u[2]);
Result.u[3] = (V1.u[3] & ~Control.u[3]) | (V2.u[3] & Control.u[3]);

return Result;

La costruzione manuale di un vettore di controllo non è necessaria. Esistono due semplici modi per costruire un vettore di controllo appropriato:

  • Uso della funzione XMVectorSelectControl per costruire un vettore di controllo.

    Per una dimostrazione dell'uso di questa funzione, vedere Uso di XMVectorSelect e XMVectorSelectControl .

  • Il vettore di controllo può essere costruito usando la costante XM_SELECT_[0,1] (vedere Costanti della libreria DirectXMath). Ad esempio, nello pseudo-codice, un'istanza di Control con gli elementi :
       Control = { XM_SELECT_0,   XM_SELECT_1,   XM_SELECT_0,   XM_SELECT_1 }
    

    restituirebbe un risultato vettoriale con i componenti seguenti di V1 e V2

       Result = { V1.X,  V2.Y,   V1.Z,   V2.W }
    

Requisiti della piattaforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK per Windows 8. Supportato per le app desktop Win32, le app di Windows Store e Windows Phone 8 app.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione directxmath.h (include DirectXMath.h)

Vedi anche

Funzioni vettoriali a livello di componente

XMVectorSelectControl