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


Тип вектора

Вектор — это тип данных, содержащий от одного до четырех скалярных компонентов. Каждый компонент вектора должен иметь одинаковый тип.

Объявление типа

Можно объявить векторные переменные с помощью скалярного типа имени содержимого вектора с количеством компонентов, которые он содержит:

TypeComponents Name

Где Type является скалярным типом каждого компонента, Components является константным целочисленным выражением от 1 до 4 включительно, указывающее количество компонентов и Name является строкой ASCII, которая однозначно идентифицирует имя переменной.

Примеры:

int     iScalar;     // integer scalar
int1    iVector = 1; // vector containing one integer
float3  fVector = { 0.2f, 0.3f, 0.4f }; // vector containing three floats

Объявление в стиле шаблона

Альтернативный синтаксис объявления использует аргументы ключевого слова vector и шаблона, чтобы указать скалярный тип и количество компонентов:

vector <Type=float, Components=4> Name

Где снова Type является скалярным типом каждого компонента, Components является целым числом от 1 до 4 включительно, указывая количество компонентов, но они указаны в угловых скобках в стиле шаблона. Name — это строка ASCII, которая однозначно идентифицирует имя переменной,

Обратите внимание, что параметр шаблона по умолчанию позволяет указывать 4-компонентные векторы заданного типа, оставляя последний параметр или 4-компонентные векторы с плавающей запятой, оставляя оба.

Ниже приведены некоторые примеры.

vector <int,    1> iVector = 1;
vector <double, 4> dVector = { 0.2f, 0.3f, 0.4f, 0.5f };
vector <float16_t> hVector = { 0.1f, 0.2f, 0.3f, 0.4f };     // Defaults to 4-component float16 vector
vector             fVector = { -0.4f, -0.3f, -0.2f, -0.1f }; // Defaults to 4-component float vector

См. также

типов данных (DirectX HLSL)