Bagikan melalui


Fungsi XMVectorSwizzle (directxmath.h)

Menyipitkan vektor.

Sintaks

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

Vektor untuk menggeliat.

[in] E0

Indeks yang menjelaskan komponen V mana yang akan ditempatkan di komponen x vektor bergelimpangan. Nilai 0 memilih komponen x, 1 memilih komponen y, 2 memilih komponen z, dan 3 memilih w-component.

[in] E1

Indeks yang menjelaskan komponen V mana yang akan ditempatkan di komponen y dari vektor bergetar. Nilai 0 memilih komponen x, 1 memilih komponen y, 2 memilih komponen z, dan 3 memilih w-component.

[in] E2

Indeks yang menjelaskan komponen V mana yang akan ditempatkan di komponen z dari vektor berdengung. Nilai 0 memilih komponen x, 1 memilih komponen y, 2 memilih komponen z, dan 3 memilih w-component.

[in] E3

Indeks yang menjelaskan komponen V mana yang akan ditempatkan di w-component vektor bergelimpangan. Nilai 0 memilih komponen x, 1 memilih komponen y, 2 memilih komponen z, dan 3 memilih w-component.

Mengembalikan nilai

Mengembalikan XMVECTOR yang digetarkan.

Keterangan

Kode berikut menunjukkan bagaimana fungsi ini dapat digunakan.

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

Vektor bergetar (hasil) akan menjadi <40,0f, 40,0f, 10,0f, 30,0f>.

XM_SWIZZLE_X, XM_SWIZZLE_Y, XM_SWIZZLE_Z, dan XM_SWIZZLE_W adalah konstanta yang masing-masing mengevaluasi ke 0, 1, 2, dan 3 untuk digunakan dengan XMVectorSwizzle. Ini identik dengan XM_PERMUTE_0X, , XM_PERMUTE_0YXM_PERMUTE_0Z, dan XM_PERMUTE_0W.

Untuk kasus indeks konstanta (E0, E1, E2, E3), jauh lebih efisien untuk menggunakan bentuk templat XMVectorSwizzle:


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

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

Persyaratan Platform

Microsoft Visual Studio 2010 atau Microsoft Visual Studio 2012 dengan Windows SDK untuk Windows 8. Didukung untuk aplikasi desktop Win32, aplikasi Windows Store, dan aplikasi Windows Phone 8.

Persyaratan

   
Target Platform Windows
Header directxmath.h (termasuk DirectXMath.h)

Lihat juga

Fungsi Vektor Component-Wise

XMVectorPermute