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


Функция XMXDEC4::XMXDEC4(constfloat*) (directxpackedvector.h)

Инициализирует новый экземпляр XMXDEC4 из аргумента массива с четырьмя элементами float .

Этот конструктор инициализирует новый экземпляр XMXDEC4 из аргумента массива с четырьмя элементами float .

Примечание Этот конструктор доступен только в C++.

Синтаксис

void XMXDEC4(
  const float *pArray
) noexcept;

Параметры

pArray

Четырехэлемерный массив с плавающей запятой, содержащий значения, используемые для инициализации четырех компонентов нового экземпляра XMXDEC4.

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

None

Remarks

Так как XMXDEC4 представляет четырехкомпонентный целочисленный вектор, дробная часть элемента pArray будет усечена.

Элементы массива сопоставляются с компонентами вектора нового экземпляра XMXDEC4 следующим образом:

Элемент XMXDEC4 Элемент Array Диапазон
x pArray[0] -511, 511
y pArray[1] -511, 511
z pArray[2] -511, 511
w pArray[3] 0, 3

Элементы pArray будут зажаты в допустимом диапазоне до назначения соответствующему члену XMXDEC4.

Следующий псевдокод демонстрирует работу этого конструктора, который использует объединение четырех компонентов вектора XMXDEC4 с экземпляром uint32_t в определении структуры:

XMXDEC4 instance;
_x1=min( max( pArray[0], -511.0 ), 511.0 );
_y1=min( max( pArray[1], -511.0 ), 511.0 );
_z1=min( max( pArray[2], -511.0 ), 511.0 );
_w1=min( max( pArray[3], 0.0 ), 3.0 );

instance.v =  ( (int32_t)_w1 << 30) |
              (((int32_t)_z1 & 0x3FF) << 20) |
              (((int32_t)_y1 & 0x3FF) << 10) |
              (((uint32_t)_x1 & 0x3FF));

Требования

   
Целевая платформа Windows
Header directxpackedvector.h

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

XMXDEC4

Конструкторы XMXDEC4