XMVectorSwizzle 関数 (directxmath.h)

ベクトルをスウィズルします。

構文

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

パラメーター

[in] V

スウィズルへのベクトル。

[in] E0

スウィズル ベクトルの x 成分に配置する V のコンポーネントを表すインデックス。 値 0 は x 成分を選択し、1 は y 成分を選択し、2 は z 成分を選択し、3 は w 成分を選択します。

[in] E1

スウィズル ベクトルの y 成分に配置する V のコンポーネントを表すインデックス。 値 0 は x 成分を選択し、1 は y 成分を選択し、2 は z 成分を選択し、3 は w 成分を選択します。

[in] E2

スウィズル ベクトルの z 成分に配置する V のコンポーネントを表すインデックス。 値 0 は x 成分を選択し、1 は y 成分を選択し、2 は z 成分を選択し、3 は w 成分を選択します。

[in] E3

スウィズルベクトルの w 成分に配置する V のコンポーネントを表すインデックス。 値 0 は x 成分を選択し、1 は y 成分を選択し、2 は z 成分を選択し、3 は w 成分を選択します。

戻り値

スウィズル された XMVECTOR を返します。

解説

次のコードは、この関数の使用方法を示しています。

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

スウィズルされたベクトル (結果) は <40.0f、40.0f、10.0f、30.0f> になります。

XM_SWIZZLE_XXM_SWIZZLE_YXM_SWIZZLE_Z、および XM_SWIZZLE_W は、 XMVectorSwizzle で使用するためにそれぞれ 0、1、2、および 3 と評価される定数です。 これは、、XM_PERMUTE_0YXM_PERMUTE_0Zおよび とXM_PERMUTE_0W同じですXM_PERMUTE_0X

定数インデックス (E0、E1、E2、E3) の場合、 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);
   

プラットフォームの要件

Windows 8 用 Windows SDK を使用した Microsoft Visual Studio 2010 または Microsoft Visual Studio 2012。 Win32 デスクトップ アプリ、Windows ストア アプリ、Windows Phone 8 アプリでサポートされます。

要件

   
対象プラットフォーム Windows
ヘッダー directxmath.h (DirectXMath.h を含む)

関連項目

コンポーネントごとのベクトル関数

XMVectorPermute