Estructura XMMATRIX (directxmath.h)

Describe una matriz de 4*4 alineada en un límite de 16 bytes que se asigna a cuatro registros vectoriales de hardware.

DirectXMath usa matrices principales de fila, vectores de fila y multiplicación previa. La entrega viene determinada por la versión de función que se usa (RH frente a LH).

Para obtener una lista de funcionalidades adicionales, como constructores y operadores que están disponibles mediante XMMATRIX cuando se programa en C++, consulte Extensiones XMMATRIX.

 

Sintaxis

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

Miembros

r[4]

Matriz de cuatro vectores, que representa las filas de la matriz.

_11

_12

_13

_14

_21

_22

_23

_24

_31

_32

_33

_34

_41

_42

_43

_44

m[4]

void XMMATRIX()

Constructor predeterminado para XMMATRIX.

Constructor predeterminado para XMMATRIX.

Nota Este constructor solo está disponible al desarrollar con C++.
 

void XMMATRIX( const XMMATRIX & unnamedParam1)

Constructor para XMMATRIX.

Constructor para XMMATRIX.

Nota Este constructor solo está disponible al desarrollar con C++.

XMMATRIX & operator=( const XMMATRIX & M) noexcept

Asigna los datos de matriz de una instancia de XMMATRIX a la instancia actual de XMMATRIX y devuelve un reference objeto a la instancia actual.

Este operador asigna los datos de matriz de una instancia de XMMATRIX a la instancia actual de XMMATRIX y devuelve un reference objeto a la instancia actual.

Nota Este operador solo está disponible al desarrollar con 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

Inicializa una nueva instancia de la estructura XMMATRIX a partir de cuatro instancias de XMVECTOR.

Inicializa una nueva instancia de la estructura XMMATRIX a partir de cuatro instancias del tipo de datos XMVECTOR.

Nota Este constructor solo está disponible al desarrollar con 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

Inicializa una nueva instancia de la XMMATRIX estructura a partir de dieciséis valores escalares float .

Inicializa una nueva instancia de la estructura XMMATRIX a partir de dieciséis valores escalares float .

Nota Este constructor solo está disponible al desarrollar con C++.
 

void XMMATRIX( const float *pArray) noexcept

Inicializa una nueva instancia de la estructura XMMATRIX a partir de una matriz de dieciséis elementos float .

Inicializa una nueva instancia de la estructura XMMATRIX a partir de una matriz de dieciséis elementos float .

Nota Este constructor solo está disponible al desarrollar con C++.
 

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

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

Devuelve un reference objeto a un elemento de matriz de una instancia XMMATRIX tal y como especifican los argumentos de fila y columna.

Este operador devuelve un reference objeto a un elemento de matriz de una instancia XMMATRIX tal como se especifica en los argumentos de fila y columna.

Nota Este operador solo está disponible al desarrollar con 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

Realiza una multiplicación de matriz de la instancia actual de XMMATRIX por otra instancia de XMMATRIX y devuelve una referencia a la instancia actual, que se ha actualizado.

Este operador realiza una multiplicación de matriz de la instancia actual de XMMATRIX por otra instancia de XMMATRIX y devuelve una referencia a la instancia actual, que se ha actualizado.

Nota Este operador solo está disponible al desarrollar con 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

Operador XMMATRIX XM_CALLCONV*( FXMMATRIX M) noexcept

Realiza una multiplicación de matriz de la instancia actual de XMMATRIX por otra instancia de XMMATRIX.

Este operador realiza una multiplicación de matriz de la instancia actual de XMMATRIX por otra instancia de XMMATRIX.

Nota Este operador solo está disponible al desarrollar con C++.
 

XMMATRIX operator*( float S) noexcept

XMMATRIX operator/( float S) noexcept

Comentarios

En el archivo de encabezado DirectXMath.h, el sistema usa un alias para el XMMATRIX objeto, específicamente CXMMATRIX. El encabezado usa el alias para cumplir con las convenciones de llamada en línea óptimas de diferentes compiladores. Para la mayoría de los proyectos que usan DirectXMath, basta con tratar esto como un alias exacto para XMMATRIX.

Eficazmente:


typedef const XMMATRIX CXMMATRIX;

Para los proyectos que necesitan información detallada sobre cómo se controlan las convenciones de llamada de diferentes plataformas, consulte Library Internals(Interna de biblioteca).

XMMATRIX es la fila principal y todas las funciones directXMath que aceptan como XMMATRIX parámetro esperan que los datos se organicen como filas principales.

Los datos de un objeto XMMATRIX tienen el siguiente diseño.


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

DirectXMath define XMMATRIX como un tipo totalmente opaco. Para acceder a elementos individuales de XMMATRIX, use tipos equivalentes como XMFLOAT4 para una fila determinada o XMFLOAT4X4 para toda la matriz.

Nota XNAMath 2.x define XMMATRIX como una unión con _11 a _44 miembros y un miembro de matriz m . Al usar estos miembros de la unión, los resultados de rendimiento son deficientes. DirectXMath.h sigue definiendo estos XMMATRIX miembros de unión para cuando se compila una aplicación con _XM_NO_INTRINSICS_. XNAMath versión 2.05 proporciona una XM_STRICT_XMMATRIX opcional para aplicar el comportamiento de DirectXMath.
 
Nombres: Uso de DirectX

Requisitos de la plataforma

Microsoft Visual Studio 2010 o Microsoft Visual Studio 2012 con Windows SDK para Windows 8. Compatible con aplicaciones de escritorio Win32, aplicaciones de la Tienda Windows y Windows Phone 8 aplicaciones.

Requisitos

Requisito Valor
Header directxmath.h

Consulte también

Estructuras de biblioteca de DirectXMath

XMFLOAT4X4

Extensiones XMMATRIX