Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Инициализирует новый экземпляр из XMXDECN4
четырех нормализованных float
аргументов.
Этот конструктор инициализирует новый экземпляр XMXDECN4 из четырех нормализованных float
аргументов.
Синтаксис
void XMXDECN4(
float _x,
float _y,
float _z,
float _w
) noexcept;
Параметры
_x
Нормализованное значение координаты X вектора.
Этот аргумент должен находиться в диапазоне от -1,0 до 1,0; во время создания экземпляра XMXDECN4
он умножается на 511.0f
, а затем сохраняется как элемент x структуры.
_y
Нормализованное значение для координаты Y вектора, y нового экземпляра XMXDECN4
.
Этот аргумент должен находиться в диапазоне от -1,0 до 1,0; во время создания экземпляра XMXDECN4
он умножается на 511.0f
и сохраняется как элемент y структуры.
_z
Нормализованное значение координаты z вектора, z нового экземпляра XMXDECN4
.
Этот аргумент должен находиться в диапазоне от -1,0 до 1,0; во время создания экземпляра XMXDECN4
он умножается на 511.0f
, а затем сохраняется как элемент z структуры.
_w
Нормализованное значение w-координаты вектора, w нового экземпляра XMXDECN4
.
Этот аргумент должен находиться в диапазоне от -1,0 до 1,0; во время создания экземпляра XMCOLOR он умножается на 3.0f
и сохраняется как w-член структуры.
Возвращаемое значение
None
Remarks
Все входные значения, _x, _y, _z и _w зажаты в диапазоне от -1,0 до 1,0.
Следующий псевдокод демонстрирует работу этого конструктора, который использует преимущества union
четырех компонентов вектора XMDECN4
с экземпляром uint32_t
в определении структуры:
XMDECN4 instance;
_x1=min( max( _x, -1.0 ), 1.0 );
_y1=min( max( _y, -1.0 ), 1.0 );
_z1=min( max( _z, -1.0 ), 1.0 );
_w1=min( max( _w, 0.0 ), 1.0 );
_x1 = round( _x1 * 511.0f);
_y1 = round( _y1 * 511.0f);
_z1 = round( _z1 * 511.0f);
_w1 = round( _w1 * 3.0f);
instance.v = ( (int32_t)_w1 << 30) |
(((int32_t)_z1 & 0x3FF) << 20) |
(((int32_t)_y1 & 0x3FF) << 10) |
(((uint32_t)_x1 & 0x3FF));
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | directxpackedvector.h |
См. также раздел
Справочные материалы