Compartilhar via


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.

Nota Consulte Equivalências de tipo de biblioteca DirectXMath para obter informações sobre objetos de D3DDECLTYPE, D3DFORMAT e DXGI_FORMAT equivalentes.
 

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]

void XMMATRIX()

Construtor padrão para XMMATRIX.

Construtor padrão para XMMATRIX.

Nota Esse construtor só está disponível ao desenvolver com C++.
 

void XMMATRIX( const XMMATRIX & unnamedParam1)

Um construtor para XMMATRIX.

Um construtor para XMMATRIX.

Nota Esse construtor só está disponível ao desenvolver com C++.

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.

Nota Esse operador só está disponível ao desenvolver com C++.
 

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.

Nota Esse construtor só está disponível ao desenvolver com C++.

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

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 .

Nota Esse construtor só está disponível ao desenvolver com C++.
 

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 .

Nota Esse construtor só está disponível ao desenvolver com C++.
 

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.

Nota Esse operador só está disponível ao desenvolver com C++.
 

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.

Nota Esse operador só está disponível ao desenvolver com C++.
 

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.

Nota Esse operador só está disponível ao desenvolver com C++.
 

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.

Nota XNAMath 2.x define como uma união com membrosXMMATRIX _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.
 
Namespace: Usar o DirectX

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

Confira também

Estruturas da Biblioteca DirectXMath

XMFLOAT4X4

Extensões XMMATRIX