структура XMFLOAT3SE (directxpackedvector.h)
Описывает трехмерный вектор из трех компонентов с плавающей запятой с 9-разрядными мантиссами, каждый из которых имеет одну и ту же 5-битовую экспоненту.
Список дополнительных функций, таких как конструкторы и операторы, доступные при XMFLOAT3SE
программировании на C++, см. в разделе расширения XMFLOAT3SE.
Синтаксис
struct XMFLOAT3SE {
union {
struct {
uint32_t xm : 9;
uint32_t ym : 9;
uint32_t zm : 9;
uint32_t e : 5;
};
uint32_t v;
};
void XMFLOAT3SE();
void XMFLOAT3SE(
const XMFLOAT3SE & unnamedParam1
);
XMFLOAT3SE & operator=(
const XMFLOAT3SE & unnamedParam1
);
void XMFLOAT3SE(
XMFLOAT3SE && unnamedParam1
);
XMFLOAT3SE & operator=(
XMFLOAT3SE && unnamedParam1
);
void XMFLOAT3SE(
uint32_t Packed
) noexcept;
void XMFLOAT3SE(
float _x,
float _y,
float _z
) noexcept;
void XMFLOAT3SE(
const float *pArray
) noexcept;
void operator uint32_t() noexcept;
XMFLOAT3SE & operator=(
uint32_t Packed
) noexcept;
};
Члены
9 xm
9-разрядный компонент x.
9 ym
9-разрядный компонент y.
9 zm
9-разрядный компонент z.
5 e
5-разрядная общая экспонента.
v
32-разрядное целое число без знака, представляющее трехмерный вектор.
Конструктор по умолчанию для XMFLOAT3SE
.
Конструктор по умолчанию для XMFLOAT3SE.
void XMFLOAT3SE( const XMFLOAT3SE & unnamedParam1)
Конструктор для XMFLOAT3SE
.
Конструктор для XMFLOAT3SE.
XMFLOAT3SE & operator=( const XMFLOAT3SE & unnamedParam1)
void XMFLOAT3SE( XMFLOAT3SE && unnamedParam1)
Конструктор для XMFLOAT3SE
.
Конструктор для XMFLOAT3SE.
XMFLOAT3SE & operator=( XMFLOAT3SE && unnamedParam1)
void XMFLOAT3SE( uint32_t Упаковано) noexcept
Инициализирует новый экземпляр из XMFLOAT3SE
переменной uint32_t
, содержащей данные компонента в упакованном формате.
Этот конструктор инициализирует новый экземпляр XMFLOAT3SE из переменной uint32_t
, содержащей данные компонента в упакованном формате.
void XMFLOAT3SE( float _x, float _y, float _z) noexcept
Инициализирует новый экземпляр из XMFLOAT3SE
трех float
аргументов.
Этот конструктор инициализирует новый экземпляр XMFLOAT3SE из трех float
аргументов.
void XMFLOAT3SE( const float *pArray) noexcept
Инициализирует новый экземпляр XMFLOAT3SE из аргумента массива из трех элементов float
.
Этот конструктор инициализирует новый экземпляр XMFLOAT3SE из аргумента массива с плавающей точкой из трех элементов.
Оператор void uint32_t() noexcept
Возвращает экземпляр класса , uint32_t
содержащий компоненты экземпляра XMFLOAT3SE
в упакованном формате.
Этот оператор возвращает экземпляр , uint32_t
содержащий компоненты экземпляра XMFLOAT3SE в упакованном формате.
XMFLOAT3SE & operator=( uint32_t Упаковано) noexcept
Этот оператор назначает данные компонента вектора, упакованные в экземпляре uint32_t
, текущему экземпляру XMFLOAT3SE.
Комментарии
Значения трех компонентов экземпляра хранятся в v экземпляра XMFLOAT3SE
в следующем формате: элемент XMFLOAT3SE
e структуры — экспонента, совместно используемая мантисами значений с плавающей запятой всех трех компонентов XMFLOAT3SE
, — хранится в самом порядке битов возвращаемого значения, а мантисса компонента x — в наименее значимых битах.
(E5Z9Y9X9): [31] EEEEEzzz zzzzzzyy yyyyyyyx xxxxxxxx [0]
Или подробно:
- Биты от 0 до 8 упакованных — это 9-битовая мантисса значения с плавающей запятой компонента x : элемент xm текущей структуры.
- Биты 9–17 упакованы — это 9-битовая мантисса значения с плавающей запятой компонента y : член ym текущей структуры.
- Биты 18–26 упакованы — это 9-битовая мантисса значения с плавающей запятой компонента z : zm-член текущей структуры.
- Биты 27–31 упакованы — это 5-битная экспонента , используемая с хранимыми мантиссами (xm, ym, zm) для представления размера каждого компонента: элемента e текущей структуры.
XMFLOAT3SE
структуре отсутствуют биты знака, все значения компонентов являются положительными.
XMFLOAT3SE
можно загрузить в экземпляры XMVECTOR с помощью XMLoadFloat3SE.
Экземпляры XMVECTOR
могут храниться в экземпляре XMFLOAT3SE
с помощью XMStoreFloat3SE.
Пространства имен: Использование DirectX::P ackedVector
Требования к платформе
Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и Windows Phone 8 приложений.Требования
Верхняя часть | directxpackedvector.h |