Структура XMMATRIX (directxmath.h)
Описывает матрицу 4*4, выровненную по 16-байтовой границе, которая сопоставляется с четырьмя регистрами аппаратного вектора.
DirectXMath использует матрицы с основными строками, векторы строк и предварительное умножение. Значение сдачности определяется используемой версией функции (RH и LH).
Список дополнительных функций, таких как конструкторы и операторы, доступные при XMMATRIX
программировании на C++, см. в разделе Расширения XMMATRIX.
Синтаксис
struct XMMATRIX {
union {
XMVECTOR r[4];
struct {
float _11;
float _12;
float _13;
float _14;
float _21;
float _22;
float _23;
float _24;
float _31;
float _32;
float _33;
float _34;
float _41;
float _42;
float _43;
float _44;
};
float m[4][4];
};
XMVECTOR r[4];
void XMMATRIX();
void XMMATRIX(
const XMMATRIX & unnamedParam1
);
XMMATRIX & operator=(
const XMMATRIX & M
) noexcept;
XMMATRIX & operator=(
const XMMATRIX & unnamedParam1
);
void XMMATRIX(
XMMATRIX && unnamedParam1
);
XMMATRIX & operator=(
XMMATRIX && unnamedParam1
);
void XMMATRIX(
FXMVECTOR R0,
FXMVECTOR R1,
FXMVECTOR R2,
CXMVECTOR R3
) noexcept;
void XMMATRIX(
float m00,
float m01,
float m02,
float m03,
float m10,
float m11,
float m12,
float m13,
float m20,
float m21,
float m22,
float m23,
float m30,
float m31,
float m32,
float m33
) noexcept;
void XMMATRIX(
const float *pArray
) noexcept;
float operator()(
size_t Row,
size_t Column
) noexcept;
float & operator()(
size_t Row,
size_t Column
) noexcept;
XMMATRIX operator+() noexcept;
XMMATRIX operator-() noexcept;
XMMATRIX &XM_CALLCONV operator+=(
FXMMATRIX M
) noexcept;
XMMATRIX &XM_CALLCONV operator-=(
FXMMATRIX M
) noexcept;
XMMATRIX &XM_CALLCONV operator*=(
FXMMATRIX M
) noexcept;
XMMATRIX & operator*=(
float S
) noexcept;
XMMATRIX & operator/=(
float S
) noexcept;
XMMATRIX XM_CALLCONV operator+(
FXMMATRIX M
) noexcept;
XMMATRIX XM_CALLCONV operator-(
FXMMATRIX M
) noexcept;
XMMATRIX XM_CALLCONV operator*(
FXMMATRIX M
) noexcept;
XMMATRIX operator*(
float S
) noexcept;
XMMATRIX operator/(
float S
) noexcept;
};
Члены
r[4]
Массив из четырех векторов, представляющих строки матрицы.
_11
_12
_13
_14
_21
_22
_23
_24
_31
_32
_33
_34
_41
_42
_43
_44
m[4]
Конструктор по умолчанию для XMMATRIX
.
Конструктор по умолчанию для XMMATRIX.
void XMMATRIX( const XMMATRIX & unnamedParam1)
Конструктор для XMMATRIX
.
Конструктор для XMMATRIX.
XMMATRIX & operator=( const XMMATRIX & M) noexcept
Назначает матричные данные одного экземпляра XMMATRIX
для текущего экземпляра XMMATRIX
и возвращает в reference
текущий экземпляр .
Этот оператор назначает матричные данные одного экземпляра XMMATRIX текущему экземпляру и возвращает reference
для текущего экземпляра XMMATRIX
.
XMMATRIX & operator=( const XMMATRIX & unnamedParam1)
void XMMATRIX( XMMATRIX && unnamedParam1)
XMMATRIX & operator=( XMMATRIX && unnamedParam1)
void XMMATRIX( FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) noexcept
Инициализирует новый экземпляр структуры XMMATRIX из четырех экземпляров XMVECTOR
.
Инициализирует новый экземпляр структуры XMMATRIX из четырех экземпляров типа данных XMVECTOR.
Инициализирует новый экземпляр XMMATRIX
структуры из шестнадцати скалярных float
значений.
Инициализирует новый экземпляр структуры XMMATRIX из шестнадцати скалярных float
значений.
void XMMATRIX( const float *pArray) noexcept
Инициализирует новый экземпляр структуры XMMATRIX из шестнадцатиэленого массива элементов float
.
Инициализирует новый экземпляр структуры XMMATRIX из шестнадцатиэленого массива элементов float
.
float operator()( size_t Row, size_t Column) noexcept
float & operator()( size_t Row, size_t Column) noexcept
Возвращает в reference
элемент матрицы экземпляра XMMATRIX
, как указано аргументами строки и столбца.
Этот оператор возвращает в reference
матричный элемент экземпляра XMMATRIX , как указано аргументами строки и столбца.
XMMATRIX operator+() noexcept
XMMATRIX operator-() noexcept
XMMATRIX &XM_CALLCONV operator+=( FXMMATRIX M) noexcept
XMMATRIX &XM_CALLCONV operator-=( FXMMATRIX M) noexcept
XMMATRIX &XM_CALLCONV operator*=( FXMMATRIX M) noexcept
Выполняет матричное умножение текущего экземпляра на XMMATRIX
другой экземпляр XMMATRIX
и возвращает ссылку на текущий экземпляр , который был обновлен.
Этот оператор выполняет матричное умножение текущего экземпляра XMMATRIX на другой экземпляр XMMATRIX
и возвращает ссылку на текущий экземпляр, который был обновлен.
XMMATRIX & operator*=( float S) noexcept
XMMATRIX & operator/=( float S) noexcept
XMMATRIX XM_CALLCONV operator+( FXMMATRIX M) noexcept
XMMATRIX XM_CALLCONV operator-( FXMMATRIX M) noexcept
Оператор XM_CALLCONV XMMATRIX*( FXMMATRIX M) noexcept
Выполняет матричное умножение текущего экземпляра на XMMATRIX
другой экземпляр XMMATRIX
.
Этот оператор выполняет матричное умножение текущего экземпляра XMMATRIX на другой экземпляр XMMATRIX
.
XMMATRIX operator*( float S) noexcept
XMMATRIX operator/( float S) noexcept
Комментарии
В файле заголовка DirectXMath.h система использует псевдоним объекта XMMATRIX
, в частности CXMMATRIX.
Заголовок использует псевдоним для соответствия оптимальным соглашениям о вызовах в строке различных компиляторов. Для большинства проектов, использующих DirectXMath, достаточно просто рассматривать это как точный псевдоним для XMMATRIX
.
Эффективно:
typedef const XMMATRIX CXMMATRIX;
Сведения о проектах, которым требуются подробные сведения о том, как обрабатываются соглашения о вызовах различных платформ, см. в разделе Внутренние компоненты библиотеки.
XMMATRIX
параметр имеет значение row-major, и все функции DirectXMath, которые принимают в XMMATRIX
качестве параметра, ожидают, что данные будут организованы как основные строки.
Данные в имеют XMMATRIX
следующий макет.
_11 _12 _13 _14
_21 _22 _23 _24
_31 _32 _33 _34
_41 _42 _43 _44
DirectXMath определяет XMMATRIX как полностью непрозрачный тип. Чтобы получить доступ к отдельным элементам XMMATRIX, используйте эквивалентные типы, такие как XMFLOAT4 для данной строки или XMFLOAT4X4 для всей матрицы.
XMMATRIX
_11 – _44 и элементом массива m . Если вы используете эти члены объединения, это приводит к снижению производительности. DirectXMath.h по-прежнему определяет эти XMMATRIX
члены объединения для при создании приложения с _XM_NO_INTRINSICS_. XNAMath версии 2.05 предоставляет XM_STRICT_XMMATRIX согласия для принудительного применения поведения DirectXMath.Требования к платформе
Microsoft Visual Studio 2010 или Microsoft Visual Studio 2012 с windows SDK для Windows 8. Поддерживается для классических приложений Win32, приложений Магазина Windows и приложений Windows Phone 8.Требования
Требование | Значение |
---|---|
Заголовок | directxmath.h |