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


структура XMXDECN4 (directxpackedvector.h)

4D-вектор для хранения подписанных нормализованных значений в виде 10-разрядных подписанных компонентов x-, y-, и z- и неподписанных нормализованных значений в виде 2-разрядного компонента w-компонента без знака.

Список дополнительных функций, таких как конструкторы и операторы, доступные при XMXDECN4 программировании на C++, см. в разделе расширения XMXDECN4.

Примечание Сведения об эквивалентных объектах D3DDECLTYPE, D3DFORMAT и DXGI_FORMAT см. в разделе Эквивалентность типов библиотеки DirectXMath.
 

Синтаксис

struct XMXDECN4 {
  union {
    struct {
      int32_t  x : 10;
      int32_t  y : 10;
      int32_t  z : 10;
      uint32_t w : 2;
    };
             uint32_t v;
  };
  void       XMXDECN4();
  void       XMXDECN4(
    const XMXDECN4 & unnamedParam1
  );
  XMXDECN4 & operator=(
    const XMXDECN4 & unnamedParam1
  );
  void       XMXDECN4(
    XMXDECN4 && unnamedParam1
  );
  XMXDECN4 & operator=(
    XMXDECN4 && unnamedParam1
  );
  void       XMXDECN4(
    uint32_t Packed
  );
  void       XMXDECN4(
    float _x,
    float _y,
    float _z,
    float _w
  ) noexcept;
  void       XMXDECN4(
    const float *pArray
  ) noexcept;
  void       operator uint32_t() noexcept;
  XMXDECN4 & operator=(
    uint32_t Packed
  ) noexcept;
};

Члены

x

Целочисленное значение со знаком в диапазоне [-511, 511], описывающее координату X вектора.

y

Целочисленное значение со знаком в диапазоне [-511, 511], описывающее координату Y вектора.

z

Целочисленное значение со знаком в диапазоне [-511, 511], описывающее z-координату вектора.

w

Целочисленное значение без знака в диапазоне [0, 3], описывающее w-координату вектора.

v

32-разрядное целое число без знака, представляющее вектор 4D.

void XMXDECN4()

Конструктор по умолчанию для XMXDECN4.

Конструктор по умолчанию для XMXDECN4 .

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

void XMXDECN4( const XMXDECN4 & unnamedParam1)

Конструктор для XMXDECN4 .

Конструктор для XMXDECN4.

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

XMXDECN4 & operator=( const XMXDECN4 & unnamedParam1)

void XMXDECN4( XMXDECN4 && unnamedParam1)

Конструктор для XMXDECN4 .

Конструктор для XMXDECN4.

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

XMXDECN4 & operator=( XMXDECN4 && unnamedParam1)

Назначает данные компонента вектора из одного экземпляра XMXDECN4 в текущий XMXDECN4экземпляр .

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

void XMXDECN4( uint32_t Упакованы)

Инициализирует новый экземпляр XMXDECN4 из переменной uint32_t , содержащей данные компонента в упакованном формате.

Этот конструктор инициализирует новый экземпляр XMXDECN4 из переменной uint32_t , содержащей данные компонента в упакованном формате.

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

void XMXDECN4( float _x, float _y, float _z, float _w) noexcept

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

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

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

void XMXDECN4( const float *pArray) noexcept

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

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

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

Оператор void uint32_t() noexcept

Возвращает экземпляр класса , uint32_t содержащий компоненты экземпляра XMXDECN4 в упакованном формате.

Возвращает экземпляр класса , uint32_t содержащий компоненты экземпляра XMXDECN4 в упакованном формате.

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

XMXDECN4 & operator=( uint32_t Упакованы) noexcept

Назначает данные компонента вектора, упакованные в экземпляр uint32_t , текущему экземпляру XMXDECN4.

Этот оператор назначает данные компонента вектора, упакованные в экземпляр uint32_t , текущему экземпляру XMXDECN4.

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

Комментарии

Эти XMXDECN4 конструкторы, использующие аргументы с плавающей запятой, требуют нормализованных входных данных, которые должны находиться в диапазоне [-1.0.-1.0] для x-, y-, z-components и 0.0 для w-компонента. Во время создания экземпляра входные данные, указывающие компоненты x, y и z, умножаются на 511,0f, а w-компонент — на 3,0f, эти результаты округляются и присваиваются соответствующим членам XMXDECN4.

XMXDECN4 Можно использовать для загрузки экземпляров XMVECTOR из нормализованных значений с помощью XMLoadXDecN4, который делит x-, y-и z-компоненты на 511.0f, w-компонент на 3.0f, округляет результат, а затем назначает компоненты экземпляру XMVECTOR .

XMVECTOR Экземпляры, содержащие нормализованные значения, можно хранить в XMXDECN4 с помощью XMStoreXDecN4, который умножает x-, y-и z-компоненты на 511,0f, w-компонент на 3,0f, округляя результат, прежде чем присваивать значения соответствующим XMXDECN4 членам.

Пространства имен: Использование DirectX::P ackedVector

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

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

Требования

   
Верхняя часть directxpackedvector.h

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

Структуры библиотек DirectXMath

Расширения XMXDECN4