Поделиться через


Функция XMVectorSelect (directxmath.h)

Выполняет выбор компонента между двумя входными векторами и возвращает результирующий вектор.

Синтаксис

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

Параметры

[in] V1

Первый сравниваемый вектор.

[in] V2

Второй сравниваемый вектор.

[in] Control

Маска вектора, используемая для выбора компонента вектора из V1 или V2. Если компонент Control равен нулю, соответствующий компонент возвращаемого вектора будет компонентом первого вектора. Если компонент Control 0xFF, соответствующий компонент возвращаемого вектора будет компонентом второго вектора. Подробные сведения о работе маски вектора см. в разделе "Примечания".

Как правило, вектор, используемый для Control , будет либо выходными данными функции сравнения векторов (например , XMVectorEqual, XMVectorLess или XMVectorGreater), либо выходными данными XMVectorSelectControl.

Возвращаемое значение

Возвращает результат выбора отдельных компонентов.

Комментарии

Если задан какой-либо заданный бит control , используется соответствующий бит из версии 2 , в противном случае используется соответствующий бит из версии 1 . Следующий псевдокод демонстрирует работу функции:

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;

Создание вектора управления вручную не требуется. Существует два простых способа создания соответствующего вектора управления:

  • Использование функции XMVectorSelectControl для создания вектора управления.

    Сведения об использовании этой функции см. в статье Использование XMVectorSelect и XMVectorSelectControl .

  • Вектор управления можно создать с помощью константы XM_SELECT_[0,1] (см. раздел Константы библиотеки DirectXMath). Например, в псевдокоде экземпляр Control с элементами:
       Control = { XM_SELECT_0,   XM_SELECT_1,   XM_SELECT_0,   XM_SELECT_1 }
    

    возвращает вектор Result со следующими компонентами V1 и V2

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

Требования к платформе

Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и Windows Phone 8 приложений.

Требования

   
Целевая платформа Windows
Header directxmath.h (включая DirectXMath.h)

См. также раздел

Векторные функции на уровне компонентов

XMVectorSelectControl