структура XMFLOAT3PK (directxpackedvector.h)
Описывает трехмерный вектор с компонентами X и Y, хранящимися в виде 11-разрядного числа с плавающей запятой, и компонентом Z, хранящимся в виде 10-разрядного значения с плавающей запятой.
Список дополнительных функций, таких как конструкторы и операторы, доступные при XMFLOAT3PK
программировании на C++, см. в разделе расширения XMFLOAT3PK.
Синтаксис
struct XMFLOAT3PK {
union {
struct {
uint32_t xm : 6;
uint32_t xe : 5;
uint32_t ym : 6;
uint32_t ye : 5;
uint32_t zm : 5;
uint32_t ze : 5;
};
uint32_t v;
};
void XMFLOAT3PK();
void XMFLOAT3PK(
const XMFLOAT3PK & unnamedParam1
);
XMFLOAT3PK & operator=(
const XMFLOAT3PK & unnamedParam1
);
void XMFLOAT3PK(
XMFLOAT3PK && unnamedParam1
);
XMFLOAT3PK & operator=(
XMFLOAT3PK && unnamedParam1
);
void XMFLOAT3PK(
uint32_t Packed
) noexcept;
void XMFLOAT3PK(
float _x,
float _y,
float _z
) noexcept;
void XMFLOAT3PK(
const float *pArray
) noexcept;
void operator uint32_t() noexcept;
XMFLOAT3PK & operator=(
uint32_t Packed
) noexcept;
};
Члены
6 xm
6-разрядная мантисса для компонента x.
5 xe
5-разрядная степень смещением для компонента x.
6 ym
6-разрядная мантисса для компонента y.
5 ye
5-битовая степень смещения для компонента y.
5 zm
5-разрядная мантисса для компонента z.
5 ze
5-битовая степень смещением для компонента z.
v
32-разрядное целое число без знака, представляющее трехмерный вектор.
Конструктор по умолчанию для XMFLOAT3PK
.
Конструктор по умолчанию для XMFLOAT3PK.
void XMFLOAT3PK( const XMFLOAT3PK & unnamedParam1)
Конструктор для XMFLOAT3PK
.
Конструктор для XMFLOAT3PK.
XMFLOAT3PK & operator=( const XMFLOAT3PK & unnamedParam1)
void XMFLOAT3PK( XMFLOAT3PK && unnamedParam1)
Назначает данные компонента вектора из одного экземпляра XMFLOAT3SE
в текущий XMFLOAT3SE
экземпляр .
Этот оператор назначает данные компонента вектора из одного экземпляра XMFLOAT3SE текущему экземпляру XMFLOAT3SE
.
XMFLOAT3PK & operator=( XMFLOAT3PK && unnamedParam1)
Назначает данные компонента вектора из одного экземпляра XMFLOAT3PK
в текущий XMFLOAT3PK
экземпляр .
Этот оператор назначает данные компонента вектора из одного экземпляра XMFLOAT3PK текущему экземпляру XMFLOAT3PK
.
void XMFLOAT3PK( uint32_t Упакованы) noexcept
Инициализирует новый экземпляр XMFLOAT3PK
из переменной uint32_t
, содержащей данные компонента в упакованном формате.
Этот конструктор инициализирует новый экземпляр XMFLOAT3PK из переменной uint32_t
, содержащей данные компонента в упакованном формате.
void XMFLOAT3PK( float _x, float _y, float _z) noexcept
Инициализирует новый экземпляр из XMFLOAT3PK
трех float
аргументов.
Этот конструктор инициализирует новый экземпляр XMFLOAT3PK из трех float
аргументов.
void XMFLOAT3PK( const float *pArray) noexcept
Инициализирует новый экземпляр XMFLOAT3PK из аргумента массива с тремя элементами float
.
Этот конструктор инициализирует новый экземпляр XMFLOAT3PK из аргумента массива из трех элементов float
.
Оператор void uint32_t() noexcept
Возвращает экземпляр класса , uint32_t
содержащий компоненты экземпляра XMFLOAT3PK
в упакованном формате.
Этот оператор возвращает экземпляр класса , uint32_t
содержащий компоненты экземпляра XMFLOAT3PK в упакованном формате.
XMFLOAT3PK & operator=( uint32_t Упакованы) noexcept
Этот оператор назначает данные компонента вектора, упакованные uint32_t
в экземпляр , текущему экземпляру XMFLOAT3PK.
Комментарии
Нет знаковых битов. Это означает, что все числа частичной точности являются положительными. Компонент z хранится в наиболее значимых битах, а компонент x — в наименее значимых битах, как показано ниже:
(Z10Y11X11): [31] ZZZZZzzz zzYYYYYy yyyyyXXX XXxxxxxx [0]
Или подробно:
- Биты 0–5 v — это 6-разрядная мантисса значения с плавающей запятой компонента x : элемент xm структуры.
- Биты 6–10 v — это 5-битовая степень значения с плавающей запятой компонента x , являющегося элементом xe структуры.
- Биты 11–16 v — это 6-битовая мантисса значения с плавающей запятой компонента y : элемент ym структуры.
- Биты 17–21 v — это 5-битовая степень значения с плавающей запятой компонента y : член структуры ye .
- Биты 22–26 v — это 5-разрядная мантисса значения с плавающей запятой компонента z : элемент zm структуры.
- Биты 27–31 v — это 5-битовая степень значения с плавающей запятой компонента z : элемент ze структуры.
XMFLOAT3PK
можно загрузить в экземпляры XMVECTOR с помощью XMLoadFloat3PK.
Экземпляры XMVECTOR
могут храниться в экземпляре XMFLOAT3PK
с XMStoreFloat3PK.
MIN_F10 / MIN_F11 = 6,10352e-5
MAX_F10 = 64512
MAX_F11 = 65024
Пространства имен: Использование DirectX::P ackedVector
Требования к платформе
Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и приложений Windows Phone 8.Требования
Верхняя часть | directxpackedvector.h |