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


Функция XMU555::XMU555(constfloat*,bool) (directxpackedvector.h)

Инициализирует новый экземпляр XMU555 из массива из трех элементов float и одного bool аргумента.

Этот конструктор инициализирует новый экземпляр XMU555 из трехэлементного float массива (с указанием x-, y- и z-component) и одного bool аргумента (с указанием w-компонента).

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

Синтаксис

void XMU555(
  const float *pArray,
  bool        _w
) noexcept;

Параметры

pArray

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

_w

Значение w-компонента экземпляра.

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

None

Remarks

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

Элемент XMU555 Аргумент Диапазон
x pArray[0] 0.0, 31.0
y pArray[1] 0.0, 31.0
z pArray[2] 0.0, 31.0
w 0.0, 1.0

Аргументы конструкторов будут зажаты в допустимом диапазоне перед назначением соответствующему члену XMU555.

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

XMU555 instance;
_x1=min( max( pArray[0], 0.0 ), 31.0 );
_y1=min( max( pArray[1], 0.0 ), 31.0 );
_z1=min( max( pArray[2], 0.0 ), 31.0 );
_w1=min( max( _w, 0 ), 1 );

instance.v =  (((uint16_t)_w1 ? 0x8000 : 0) |
              (((uint16_t)_z1 & 0x1F) << 10) |
              (((uint16_t)_y1 & 0x1F) << 5) |  
              (((uint16_t)_x1 & 0x1F)));

Требования

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

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

XMU555

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