Estrutura XMMATRIX (directxmath.h)
Descreve uma matriz 4*4 alinhada em um limite de 16 bytes que mapeia para quatro registros de vetor de hardware.
O DirectXMath usa matrizes principais de linha, vetores de linha e pré-multiplicação. A entrega é determinada por qual versão da função é usada (RH vs. LH).
Para obter uma lista de funcionalidades adicionais, como construtores e operadores que estão disponíveis usando XMMATRIX
quando você está programando em C++, consulte Extensões XMMATRIX.
Sintaxe
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;
};
Membros
r[4]
Matriz de quatro vetores, representando as linhas da matriz.
_11
_12
_13
_14
_21
_22
_23
_24
_31
_32
_33
_34
_41
_42
_43
_44
m[4]
Construtor padrão para XMMATRIX
.
Construtor padrão para XMMATRIX.
void XMMATRIX( const XMMATRIX & unnamedParam1)
Um construtor para XMMATRIX
.
Um construtor para XMMATRIX.
XMMATRIX & operator=( const XMMATRIX & M) noexcept
Atribui os dados de matriz de uma instância de XMMATRIX
à instância atual do XMMATRIX
e retorna um reference
à instância atual.
Esse operador atribui os dados de matriz de uma instância de XMMATRIX à instância atual do XMMATRIX
e retorna um reference
para a instância atual.
XMMATRIX & operator=( const XMMATRIX & unnamedParam1)
void XMMATRIX( XMMATRIX && unnamedParam1)
XMMATRIX & operator=( XMMATRIX && unnamedParam1)
void XMMATRIX( FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) noexcept
Inicializa uma nova instância da estrutura XMMATRIX de quatro instâncias do XMVECTOR
.
Inicializa uma nova instância da estrutura XMMATRIX de quatro instâncias do tipo de dados XMVECTOR.
Inicializa uma nova instância da estrutura de XMMATRIX
dezesseis valores escalares float
.
Inicializa uma nova instância da estrutura XMMATRIX de dezesseis valores escalares float
.
void XMMATRIX( const float *pArray) noexcept
Inicializa uma nova instância da estrutura XMMATRIX de uma matriz de 16 elementos float
.
Inicializa uma nova instância da estrutura XMMATRIX de uma matriz de 16 elementos float
.
float operator()( size_t Row, size_t Column) noexcept
float & operator()( size_t Row, size_t Column) noexcept
Retorna um reference
para um elemento de matriz de uma instância XMMATRIX
, conforme especificado por argumentos de linha e coluna.
Esse operador retorna um reference
a um elemento de matriz de uma instância XMMATRIX , conforme especificado por argumentos de linha e coluna.
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
Executa uma multiplicação de matriz da instância atual de XMMATRIX
por outra instância do XMMATRIX
e retorna uma referência à instância atual, que foi atualizada.
Esse operador executa uma multiplicação de matriz da instância atual do XMMATRIX por outra instância do XMMATRIX
e retorna uma referência à instância atual, que foi atualizada.
XMMATRIX & operator*=( float S) noexcept
XMMATRIX & operator/=( float S) noexcept
XMMATRIX XM_CALLCONV operator+( FXMMATRIX M) noexcept
XMMATRIX XM_CALLCONV operator-( FXMMATRIX M) noexcept
Operador de XM_CALLCONV XMMATRIX*( FXMMATRIX M) noexcept
Executa uma multiplicação de matriz da instância atual do XMMATRIX
por outra instância do XMMATRIX
.
Esse operador executa uma multiplicação de matriz da instância atual do XMMATRIX por outra instância do XMMATRIX
.
XMMATRIX operator*( float S) noexcept
XMMATRIX operator/( float S) noexcept
Comentários
No arquivo de cabeçalho DirectXMath.h, o sistema usa um alias para o XMMATRIX
objeto, especificamente CXMMATRIX.
O cabeçalho usa o alias para cumprir as convenções de chamada em linha ideais de diferentes compiladores. Para a maioria dos projetos que usam DirectXMath, é suficiente simplesmente tratar isso como um alias exato para XMMATRIX
.
Eficazmente:
typedef const XMMATRIX CXMMATRIX;
Para projetos que precisam de informações detalhadas sobre como as convenções de chamada de diferentes plataformas são tratadas, consulte Interno da Biblioteca.
XMMATRIX
é uma linha principal e todas as funções DirectXMath que aceitam um XMMATRIX
como parâmetro esperam que os dados sejam organizados como principais linhas.
Os dados em um XMMATRIX
têm o layout a seguir.
_11 _12 _13 _14
_21 _22 _23 _24
_31 _32 _33 _34
_41 _42 _43 _44
DirectXMath define XMMATRIX como um tipo totalmente opaco. Para acessar elementos individuais do XMMATRIX, use tipos equivalentes, como XMFLOAT4 para uma determinada linha ou XMFLOAT4X4 para toda a matriz.
XMMATRIX
_11 a _44 e um membro da matriz m. Quando você usa esses membros do sindicato, resultados de desempenho ruim. O DirectXMath.h ainda define esses XMMATRIX
membros da união para quando você cria um aplicativo com _XM_NO_INTRINSICS_. O XNAMath versão 2.05 fornece uma XM_STRICT_XMMATRIX de aceitação para impor o comportamento do DirectXMath.Requisitos de plataforma
Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 com o SDK do Windows para Windows 8. Com suporte para aplicativos da área de trabalho Win32, aplicativos da Windows Store e aplicativos Windows Phone 8.Requisitos
Requisito | Valor |
---|---|
Cabeçalho | directxmath.h |