XMMATRIX-Struktur (directxmath.h)

Beschreibt eine 4*4-Matrix, die an einer 16-Byte-Grenze ausgerichtet ist und vier Hardwarevektorregistern zugeordnet ist.

DirectXMath verwendet Zeilenmatrizen, Zeilenvektoren und Prämultiplikation. Die Händigkeit wird durch die verwendete Funktionsversion (RH im Vergleich zu LH) bestimmt.

Eine Liste mit zusätzlichen Funktionen wie Konstruktoren und Operatoren, die bei der Programmierung in C++ verfügbar XMMATRIX sind, finden Sie unter XMMATRIX-Erweiterungen.

Hinweis Informationen zu entsprechenden D3DDECLTYPE-, D3DFORMAT- und DXGI_FORMAT-Objekten finden Sie unter DirectXMath Library Type Equivalences.
 

Syntax

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

Member

r[4]

Array von vier Vektoren, die die Zeilen der Matrix darstellen.

_11

_12

_13

_14

_21

_22

_23

_24

_31

_32

_33

_34

_41

_42

_43

_44

m[4]

void XMMATRIX()

Standardkonstruktor für XMMATRIX.

Standardkonstruktor für XMMATRIX.

Hinweis Dieser Konstruktor ist nur bei der Entwicklung mit C++ verfügbar.
 

void XMMATRIX( const XMMATRIX & unnamedParam1)

Ein Konstruktor für XMMATRIX.

Ein Konstruktor für XMMATRIX.

Hinweis Dieser Konstruktor ist nur bei der Entwicklung mit C++ verfügbar.

XMMATRIX & operator=( const XMMATRIX & M) noexcept

Weist die Matrixdaten einer instance von XMMATRIX dem aktuellen instance von XMMATRIX zu und gibt ein reference an den aktuellen instance zurück.

Dieser Operator weist die Matrixdaten einer instance von XMMATRIX dem aktuellen instance von zu XMMATRIX und gibt ein reference an den aktuellen instance zurück.

Hinweis Dieser Operator ist nur bei der Entwicklung mit C++ verfügbar.
 

XMMATRIX & operator=( const XMMATRIX & unnamedParam1)

void XMMATRIX( XMMATRIX && unnamedParam1)

XMMATRIX & operator=( XMMATRIX && unnamedParam1)

void XMMATRIX( FXMVECTOR R0, FXMVECTOR R1, FXMVECTOR R2, CXMVECTOR R3) noexcept

Initialisiert eine neue instance der XMMATRIX-Struktur aus vier Instanzen von XMVECTOR.

Initialisiert eine neue instance der XMMATRIX-Struktur aus vier Instanzen des XMVECTOR-Datentyps.

Hinweis Dieser Konstruktor ist nur bei der Entwicklung mit C++ verfügbar.

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

Initialisiert eine neue instance der XMMATRIX Struktur aus sechzehn skalaren float Werten.

Initialisiert eine neue instance der XMMATRIX-Struktur aus sechzehn skalaren float Werten.

Hinweis Dieser Konstruktor ist nur bei der Entwicklung mit C++ verfügbar.
 

void XMMATRIX( const float *pArray) noexcept

Initialisiert eine neue instance der XMMATRIX-Struktur aus einem sechzehn Elementarrayfloat.

Initialisiert eine neue instance der XMMATRIX-Struktur aus einem sechzehn Elementarrayfloat.

Hinweis Dieser Konstruktor ist nur bei der Entwicklung mit C++ verfügbar.
 

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

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

Gibt ein reference in ein Matrixelement einer instance zurück, XMMATRIX wie durch Zeilen- und Spaltenargumente angegeben.

Dieser Operator gibt ein reference zu einem Matrixelement einer instance XMMATRIX zurück, wie durch Zeilen- und Spaltenargumente angegeben.

Hinweis Dieser Operator ist nur bei der Entwicklung mit C++ verfügbar.
 

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

Führt eine Matrixmultiplikation der aktuellen instance von XMMATRIX durch eine andere instance von aus XMMATRIX und gibt einen Verweis auf den aktuellen instance zurück, der aktualisiert wurde.

Dieser Operator führt eine Matrixmultiplikation der aktuellen instance von XMMATRIX durch eine andere instance von aus XMMATRIX und gibt einen Verweis auf den aktuellen instance zurück, der aktualisiert wurde.

Hinweis Dieser Operator ist nur bei der Entwicklung mit C++ verfügbar.
 

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

Führt eine Matrixmultiplikation der aktuellen instance von XMMATRIX durch eine andere instance von ausXMMATRIX.

Dieser Operator führt eine Matrixmultiplikation der aktuellen instance von XMMATRIX durch eine andere instance von ausXMMATRIX.

Hinweis Dieser Operator ist nur bei der Entwicklung mit C++ verfügbar.
 

XMMATRIX operator*( float S) noexcept

XMMATRIX operator/( float S) noexcept

Hinweise

In der DirectXMath.h-Headerdatei verwendet das System einen Alias für das XMMATRIX Objekt, insbesondere CXMMATRIX. Der Header verwendet den Alias, um die optimalen Inlineaufrufkonventionen verschiedener Compiler zu erfüllen. Für die meisten Projekte, die DirectXMath verwenden, reicht es aus, dies einfach als exakten Alias für zu XMMATRIXbehandeln.

Effektiv:


typedef const XMMATRIX CXMMATRIX;

Projekte, die ausführliche Informationen zur Behandlung der Aufrufkonventionen verschiedener Plattformen benötigen, finden Sie unter Bibliotheksinternes.

XMMATRIX ist Zeilen-Major, und alle DirectXMath-Funktionen, die einen XMMATRIX als Parameter akzeptieren, erwarten, dass Daten als Zeilenmajor organisiert werden.

Daten in einem XMMATRIX haben das folgende Layout.


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

DirectXMath definiert XMMATRIX als vollständig undurchsichtigen Typ. Um auf einzelne Elemente von XMMATRIX zuzugreifen, verwenden Sie gleichwertige Typen wie XMFLOAT4 für eine bestimmte Zeile oder XMFLOAT4X4 für die gesamte Matrix.

Hinweis XNAMath 2.x definiert XMMATRIX eine Union mit _11 - bis _44-Membern und einem m-Arraymitglied . Wenn Sie diese Mitglieder der Gewerkschaft verwenden, ergibt sich eine schlechte Leistung. DirectXMath.h definiert diese XMMATRIX Union-Mitglieder weiterhin für, wenn Sie eine App mit _XM_NO_INTRINSICS_ erstellen. XNAMath Version 2.05 bietet eine Opt-In-XM_STRICT_XMMATRIX, um das DirectXMath-Verhalten zu erzwingen.
 
Namespace: Verwenden von DirectX

Plattformanforderungen

Microsoft Visual Studio 2010 oder Microsoft Visual Studio 2012 mit dem Windows SDK für Windows 8. Unterstützt für Win32-Desktop-Apps, Windows Store-Apps und Windows Phone 8-Apps.

Anforderungen

Anforderung Wert
Header directxmath.h

Weitere Informationen

DirectXMath-Bibliotheksstrukturen

XMFLOAT4X4

XMMATRIX-Erweiterungen