Structure XMMATRIX (directxmath.h)
Décrit une matrice 4*4 alignée sur une limite de 16 octets qui correspond à quatre registres de vecteurs matériels.
DirectXMath utilise des matrices principales de ligne, des vecteurs de ligne et une pré-multiplication. La remise est déterminée par la version de fonction utilisée (RH et LH).
Pour obtenir la liste des fonctionnalités supplémentaires, telles que les constructeurs et les opérateurs disponibles XMMATRIX
lors de la programmation en C++, consultez Extensions XMMATRIX.
Syntaxe
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;
};
Membres
r[4]
Tableau de quatre vecteurs, représentant les lignes de la matrice.
_11
_12
_13
_14
_21
_22
_23
_24
_31
_32
_33
_34
_41
_42
_43
_44
m[4]
Constructeur par défaut pour XMMATRIX
.
Constructeur par défaut pour XMMATRIX.
void XMMATRIX( const XMMATRIX & unnamedParam1)
Constructeur pour XMMATRIX
.
Constructeur pour XMMATRIX.
XMMATRIX & operator=( const XMMATRIX & M) noexcept
Affecte les données de matrice d’un instance de XMMATRIX
à la instance actuelle de XMMATRIX
et retourne un reference
à la instance actuelle.
Cet opérateur affecte les données de matrice d’une instance de XMMATRIX à la instance actuelle de XMMATRIX
et retourne un reference
à la instance actuelle.
XMMATRIX & operator=( const XMMATRIX & unnamedParam1)
void XMMATRIX( XMMATRIX && unnamedParam1)
XMMATRIX & operator=( XMMATRIX && unnamedParam1)
void XMMATRIX( FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) noexcept
Initialise une nouvelle instance de la structure XMMATRIX à partir de quatre instances de XMVECTOR
.
Initialise une nouvelle instance de la structure XMMATRIX à partir de quatre instances de type de données XMVECTOR.
Initialise une nouvelle instance de la XMMATRIX
structure à partir de seize valeurs scalairesfloat
.
Initialise une nouvelle instance de la structure XMMATRIX à partir de seize valeurs scalairesfloat
.
void XMMATRIX( const float *pArray) noexcept
Initialise une nouvelle instance de la structure XMMATRIX à partir d’un tableau de seize élémentsfloat
.
Initialise une nouvelle instance de la structure XMMATRIX à partir d’un tableau de seize élémentsfloat
.
float operator()( size_t Row, size_t Column) noexcept
float & operator()( size_t Row, size_t Column) noexcept
Retourne un reference
à un élément de matrice d’un instance XMMATRIX
tel que spécifié par les arguments de ligne et de colonne.
Cet opérateur retourne un reference
à un élément de matrice d’un instance XMMATRIX tel que spécifié par les arguments de ligne et de colonne.
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
Effectue une multiplication matricielle du instance actuel de XMMATRIX
par un autre instance de XMMATRIX
et retourne une référence à la instance actuelle, qui a été mise à jour.
Cet opérateur effectue une multiplication matricielle de la instance actuelle de XMMATRIX par un autre instance de XMMATRIX
et retourne une référence à la instance actuelle, qui a été mise à jour.
XMMATRIX & operator*=( float S) noexcept
XMMATRIX & operator/=( float S) noexcept
XMMATRIX XM_CALLCONV operator+( FXMMATRIX M) noexcept
XMMATRIX XM_CALLCONV operator-( FXMMATRIX M) noexcept
Opérateur XM_CALLCONV XMMATRIX*( FXMMATRIX M) noexcept
Effectue une multiplication matricielle du instance actuel de XMMATRIX
par un autre instance de XMMATRIX
.
Cet opérateur effectue une multiplication matricielle de la instance actuelle de XMMATRIX par un autre instance de XMMATRIX
.
XMMATRIX operator*( float S) noexcept
XMMATRIX operator/( float S) noexcept
Remarques
Dans le fichier d’en-tête DirectXMath.h, le système utilise un alias pour l’objet XMMATRIX
, en particulier CXMMATRIX.
L’en-tête utilise l’alias pour se conformer aux conventions d’appel en ligne optimales de différents compilateurs. Pour la plupart des projets utilisant DirectXMath, il suffit de traiter simplement cela comme un alias exact de XMMATRIX
.
Efficacement:
typedef const XMMATRIX CXMMATRIX;
Pour les projets qui ont besoin d’informations détaillées sur la façon dont les différentes conventions d’appel de plateforme sont gérées, consultez Bibliothèque interne.
XMMATRIX
est row-major et toutes les fonctions DirectXMath qui acceptent un XMMATRIX
en tant que paramètre s’attendent à ce que les données soient organisées en tant que row-major.
Les données d’un XMMATRIX
ont la disposition suivante.
_11 _12 _13 _14
_21 _22 _23 _24
_31 _32 _33 _34
_41 _42 _43 _44
DirectXMath définit XMMATRIX comme un type entièrement opaque. Pour accéder à des éléments individuels de XMMATRIX, utilisez des types équivalents tels que XMFLOAT4 pour une ligne donnée ou XMFLOAT4X4 pour l’ensemble de la matrice.
XMMATRIX
comme une union avec _11 à _44 membres et un membre de tableau m . Lorsque vous utilisez ces membres du syndicat, les résultats en matière de performances sont médiocres. DirectXMath.h définit toujours ces XMMATRIX
membres d’union lorsque vous créez une application avec _XM_NO_INTRINSICS_. XNAMath version 2.05 fournit une XM_STRICT_XMMATRIX d’adhésion pour appliquer le comportement DirectXMath.Configuration requise pour la plateforme
Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 avec le SDK Windows pour Windows 8. Pris en charge pour les applications de bureau Win32, les applications du Windows Store et les applications Windows Phone 8.Configuration requise
Condition requise | Valeur |
---|---|
En-tête | directxmath.h |