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.
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]
Standardkonstruktor für XMMATRIX
.
Standardkonstruktor für XMMATRIX.
void XMMATRIX( const XMMATRIX & unnamedParam1)
Ein Konstruktor für XMMATRIX
.
Ein Konstruktor für XMMATRIX.
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.
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.
Initialisiert eine neue instance der XMMATRIX
Struktur aus sechzehn skalaren float
Werten.
Initialisiert eine neue instance der XMMATRIX-Struktur aus sechzehn skalaren float
Werten.
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
.
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.
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.
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
.
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 XMMATRIX
behandeln.
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.
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.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 |