Partager via


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]

void XMMATRIX()

Constructeur par défaut pour XMMATRIX.

Constructeur par défaut pour XMMATRIX.

Note Ce constructeur est disponible uniquement lors du développement avec C++.
 

void XMMATRIX( const XMMATRIX & unnamedParam1)

Constructeur pour XMMATRIX.

Constructeur pour XMMATRIX.

Note Ce constructeur est disponible uniquement lors du développement avec C++.

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.

Note Cet opérateur est disponible uniquement lors du développement avec 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

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.

Note Ce constructeur est disponible uniquement lors du développement avec 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

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.

Note Ce constructeur est disponible uniquement lors du développement avec C++.
 

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.

Note Ce constructeur est disponible uniquement lors du développement avec C++.
 

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.

Note Cet opérateur est disponible uniquement lors du développement avec 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

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.

Note Cet opérateur est disponible uniquement lors du développement avec 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

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.

Note Cet opérateur est disponible uniquement lors du développement avec C++.
 

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.

Note XNAMath 2.x définit 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.
 
Noms: Utiliser DirectX

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

Voir aussi

Structures de bibliothèque DirectXMath

XMFLOAT4X4

XMMATRIX Extensions