Freigeben über


XMVectorSwizzle-Funktion (directxmath.h)

Schwenkt einen Vektor.

Syntax

XMVECTOR XM_CALLCONV XMVectorSwizzle(
  [in] FXMVECTOR V,
  [in] uint32_t  E0,
  [in] uint32_t  E1,
  [in] uint32_t  E2,
  [in] uint32_t  E3
) noexcept;

Parameter

[in] V

Zu schwenkende Vektor.

[in] E0

Index, der beschreibt, welche Komponente von V in der x-Komponente des geschwommenen Vektors platziert werden soll. Der Wert 0 wählt die x-Komponente, 1 die y-Komponente, 2 die z-Komponente und 3 die w-Komponente aus.

[in] E1

Index, der beschreibt, welche Komponente von V in der y-Komponente des geschwommenen Vektors platziert werden soll. Der Wert 0 wählt die x-Komponente, 1 die y-Komponente, 2 die z-Komponente und 3 die w-Komponente aus.

[in] E2

Index, der beschreibt, welche Komponente von V in der z-Komponente des geschwommenen Vektors platziert werden soll. Der Wert 0 wählt die x-Komponente, 1 die y-Komponente, 2 die z-Komponente und 3 die w-Komponente aus.

[in] E3

Index, der beschreibt, welche Komponente von V in der w-Komponente des geschwommenen Vektors platziert werden soll. Der Wert 0 wählt die x-Komponente, 1 die y-Komponente, 2 die z-Komponente und 3 die w-Komponente aus.

Rückgabewert

Gibt den geschwommenen XMVECTOR zurück.

Hinweise

Der folgende Code veranschaulicht, wie diese Funktion verwendet werden kann.

XMVECTOR v = XMVectorSet( 10.0f, 20.0f, 30.0f, 40.0f );
XMVECTOR result = XMVectorSwizzle(v, 3, 3, 0, 2 );

Der geschwommene Vektor (Ergebnis) ist <40.0f, 40.0f, 10.0f, 30.0f>.

XM_SWIZZLE_X, XM_SWIZZLE_Y, XM_SWIZZLE_Zund XM_SWIZZLE_W sind Konstanten, die für die Verwendung mit XMVectorSwizzle auf 0, 1, 2 und 3 ausgewertet werden. Dies ist identisch mit XM_PERMUTE_0X, XM_PERMUTE_0Y, XM_PERMUTE_0Zund XM_PERMUTE_0W.

Bei konstanten Indizes (E0, E1, E2, E3) ist es viel effizienter, die Vorlagenform von XMVectorSwizzle zu verwenden:


template<uint32_t SwizzleX, uint32_t SwizzleY, uint32_t SwizzleZ, uint32_t SwizzleW>
    XMVECTOR XMVectorSwizzle(FXMVECTOR V)

Example: XMVectorSwizzle< 3, 3, 0, 2>(v);
   

Plattformanforderungen

Microsoft Visual Studio 2010 oder Microsoft Visual Studio 2012 mit dem Windows SDK für Windows 8. Unterstützt für Win32-Desktop-Apps, Windows Store-Apps und Windows Phone 8-Apps.

Anforderungen

   
Zielplattform Windows
Kopfzeile directxmath.h (einschließlich DirectXMath.h)

Weitere Informationen

Komponentenweise Vektorfunktionen

XMVectorPermute