Condividi tramite


Struttura XMMATRIX (directxmath.h)

Descrive una matrice 4*4 allineata a un limite di 16 byte che esegue il mapping a quattro registri di vettori hardware.

DirectXMath usa matrici principali di riga, vettori di righe e pre-moltiplicazione. La mano è determinata dalla versione della funzione utilizzata (RH vs. LH).

Per un elenco di funzionalità aggiuntive, ad esempio costruttori e operatori disponibili quando XMMATRIX si esegue la programmazione in C++, vedere Estensioni XMMATRIX.

 

Sintassi

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;
};

Members

r[4]

Matrice di quattro vettori che rappresentano le righe della matrice.

_11

_12

_13

_14

_21

_22

_23

_24

_31

_32

_33

_34

_41

_42

_43

_44

m[4]

void XMMATRIX()

Costruttore predefinito per XMMATRIX.

Costruttore predefinito per XMMATRIX.

Nota Questo costruttore è disponibile solo quando si sviluppa con C++.
 

void XMMATRIX( const XMMATRIX & unnamedParam1)

Costruttore per XMMATRIX.

Costruttore per XMMATRIX.

Nota Questo costruttore è disponibile solo quando si sviluppa con C++.

XMMATRIX & operator=( const XMMATRIX & M) noexcept

Assegna i dati matrice di un'istanza di all'istanza corrente di XMMATRIXXMMATRIX e restituisce un reference oggetto all'istanza corrente.

Questo operatore assegna i dati matrice di un'istanza di XMMATRIX all'istanza corrente di XMMATRIX e restituisce un reference all'istanza corrente.

Nota Questo operatore è disponibile solo quando si sviluppa con 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

Inizializza una nuova istanza della struttura XMMATRIX da quattro istanze di XMVECTOR.

Inizializza una nuova istanza della struttura XMMATRIX da quattro istanze di XMVECTOR Data Type.

Nota Questo costruttore è disponibile solo quando si sviluppa con 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) noexcept3

Inizializza una nuova istanza della XMMATRIX struttura da sedici valori scalari float .

Inizializza una nuova istanza della struttura XMMATRIX da sedici valori scalari float .

Nota Questo costruttore è disponibile solo quando si sviluppa con C++.
 

void XMMATRIX( const float *pArray) noexcept

Inizializza una nuova istanza della struttura XMMATRIX da una matrice di elementi float sedici.

Inizializza una nuova istanza della struttura XMMATRIX da una matrice di elementi float sedici.

Nota Questo costruttore è disponibile solo quando si sviluppa con C++.
 

float operator()( size_t Row, size_t Column) noexcept

operatore float &()( size_t Riga, size_t Colonna) noexcept

Restituisce un oggetto reference a un elemento matrice di un'istanza XMMATRIX come specificato dagli argomenti di riga e colonna.

Questo operatore restituisce un oggetto a un reference elemento matrice di un'istanza di XMMATRIX come specificato dagli argomenti di riga e colonna.

Nota Questo operatore è disponibile solo quando si sviluppa con 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

Esegue una moltiplicazione matrice dell'istanza corrente di da un'altra istanza di XMMATRIXXMMATRIX e restituisce un riferimento all'istanza corrente, che è stata aggiornata.

Questo operatore esegue una moltiplicazione matrice dell'istanza corrente di XMMATRIX da un'altra istanza di XMMATRIX e restituisce un riferimento all'istanza corrente, che è stata aggiornata.

Nota Questo operatore è disponibile solo quando si sviluppa con 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

XMMATRIX XM_CALLCONV operator*( FXMMATRIX M) noexcept

Esegue una moltiplicazione matrice dell'istanza corrente di XMMATRIX da un'altra istanza di XMMATRIX.

Questo operatore esegue una moltiplicazione matrice dell'istanza corrente di XMMATRIX da un'altra istanza di XMMATRIX.

Nota Questo operatore è disponibile solo quando si sviluppa con C++.
 

XMMATRIX operator*( float S) noexcept

XMMATRIX operator/( float S) noexcept

Commenti

Nel file di intestazione DirectXMath.h il sistema usa un alias per l'oggetto XMMATRIX , in particolare CXMMATRIX. L'intestazione usa l'alias per rispettare le convenzioni di chiamata in linea ottimali di diversi compilatori. Per la maggior parte dei progetti che usano DirectXMath è sufficiente trattarlo semplicemente come alias esatto a XMMATRIX.

Efficacemente:


typedef const XMMATRIX CXMMATRIX;

Per i progetti che necessitano di informazioni dettagliate sul modo in cui vengono gestite le convenzioni di chiamata della piattaforma diverse, vedere Librerie interne.

XMMATRIX è row-major e tutte le funzioni DirectXMath che accettano un XMMATRIX come parametro si prevede che i dati siano organizzati come row-major.

I dati in un XMMATRIX oggetto hanno il layout seguente.


_11 _12 _13 _14
_21 _22 _23 _24
_31 _32 _33 _34
_41 _42 _43 _44

DirectXMath definisce XMMATRIX come tipo completamente opaco. Per accedere a singoli elementi di XMMATRIX, usare tipi equivalenti, ad esempio XMFLOAT4 per una determinata riga o XMFLOAT4X4 per l'intera matrice.

Nota XNAMath 2.x definisce XMMATRIX come un'unione con _11 a _44 membri e un membro della matrice m . Quando si usano questi membri dell'unione, risultati di prestazioni scarsi. DirectXMath.h definisce comunque questi XMMATRIX membri dell'unione per quando si compila un'app con _XM_NO_INTRINSICS_. XNAMath versione 2.05 fornisce un XM_STRICT_XMMATRIX esplicito per applicare il comportamento DirectXMath.
 
Namespace: Usare DirectX

Requisiti della piattaforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK per Windows 8. Supportato per app desktop Win32, app di Windows Store e Windows Phone 8 app.

Requisiti

Requisito Valore
Intestazione directxmath.h

Vedi anche

Strutture della libreria DirectXMath

XMFLOAT4X4

Estensioni XMMATRIX