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]
Costruttore predefinito per XMMATRIX
.
Costruttore predefinito per XMMATRIX.
void XMMATRIX( const XMMATRIX & unnamedParam1)
Costruttore per XMMATRIX
.
Costruttore per XMMATRIX.
XMMATRIX & operator=( const XMMATRIX & M) noexcept
Assegna i dati matrice di un'istanza di all'istanza corrente di XMMATRIX
XMMATRIX
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.
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.
Inizializza una nuova istanza della XMMATRIX
struttura da sedici valori scalari float
.
Inizializza una nuova istanza della struttura XMMATRIX da sedici valori scalari float
.
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.
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.
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 XMMATRIX
XMMATRIX
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.
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
.
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.
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.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 |