XMMATRIX 構造体 (directxmath.h)

4 つのハードウェア ベクター レジスタにマップされる 16 バイト境界に配置された 4*4 行列について説明します。

DirectXMath では、行主行列、行ベクトル、および事前乗算が使用されます。 ハンドドネスは、使用される関数バージョン (RH と LH) によって決まります。

C++ でのプログラミング時に使用 XMMATRIX できるコンストラクターや演算子などの追加機能の一覧については、「 XMMATRIX Extensions」を参照してください。

 

構文

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

メンバー

r[4]

行列の行を表す 4 つのベクトルの配列。

_11

_12

_13

_14

_21

_22

_23

_24

_31

_32

_33

_34

_41

_42

_43

_44

m[4]

void XMMATRIX()

の既定の XMMATRIXコンストラクター。

XMMATRIX の既定のコンストラクター。

メモ このコンストラクターは、C++ を使用して開発する場合にのみ使用できます。
 

void XMMATRIX( const XMMATRIX & unnamedParam1)

XMMATRIXコンストラクター。

XMMATRIX のコンストラクター。

メモ このコンストラクターは、C++ を使用して開発する場合にのみ使用できます。

XMMATRIX & operator=( const XMMATRIX & M) noexcept

の 1 つのインスタンスのマトリックス データを の現在のXMMATRIXインスタンスXMMATRIXに割り当て、 を現在のインスタンスに返referenceします。

この演算子は、 XMMATRIX の 1 つのインスタンスのマトリックス データを の現在の XMMATRIX インスタンスに割り当て、 を現在のインスタンスに返 reference します。

メモ この演算子は、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

の 4 つのインスタンスから XMMATRIX 構造体の XMVECTOR新しいインスタンスを初期化します。

XMVECTOR データ型の 4 つのインスタンスから XMMATRIX 構造体の新しいインスタンスを初期化します。

メモ このコンストラクターは、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) noexceptcept

16 個のスカラーfloat値から 構造体のXMMATRIX新しいインスタンスを初期化します。

16 個のスカラーfloat値から XMMATRIX 構造体の新しいインスタンスを初期化します。

メモ このコンストラクターは、C++ を使用して開発する場合にのみ使用できます。
 

void XMMATRIX( const float *pArray) noexcept

16 個の要素float配列から XMMATRIX 構造体の新しいインスタンスを初期化します。

16 個の要素float配列から XMMATRIX 構造体の新しいインスタンスを初期化します。

メモ このコンストラクターは、C++ を使用して開発する場合にのみ使用できます。
 

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

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

reference行引数と列引数で指定されたインスタンスXMMATRIXのマトリックス要素に を返します。

この演算子は、 reference 行引数と列引数で指定されたインスタンス XMMATRIX のマトリックス要素に を返します。

メモ この演算子は、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

の別XMMATRIXのインスタンスによって の現在のインスタンスのXMMATRIX行列乗算を実行し、更新された現在のインスタンスへの参照を返します。

この演算子は、 の別XMMATRIXのインスタンスによって XMMATRIX の現在のインスタンスの行列乗算を実行し、更新された現在のインスタンスへの参照を返します。

メモ この演算子は、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

XMMATRIX XM_CALLCONV 演算子*( FXMMATRIX M) noexcept

の別のインスタンスによる の現在のインスタンスの XMMATRIX 行列乗算を実行します XMMATRIX

この演算子は、 の別のインスタンスによる XMMATRIX の現在のインスタンスの XMMATRIX行列乗算を実行します。

メモ この演算子は、C++ を使用して開発する場合にのみ使用できます。
 

XMMATRIX operator*( float S) noexcept

XMMATRIX operator/( float S) noexcept

注釈

DirectXMath.h ヘッダー ファイルでは、オブジェクトの別名 XMMATRIX (具体的には CXMMATRIX) が使用されます。 ヘッダーでは、 エイリアスを使用して、さまざまなコンパイラの最適なインライン呼び出し規則に準拠します。 DirectXMath を使用するほとんどのプロジェクトでは、これを の正確なエイリアス XMMATRIXとして扱うだけで十分です。

効果的:


typedef const XMMATRIX CXMMATRIX;

さまざまなプラットフォームの呼び出し規則の処理方法に関する詳細情報が必要なプロジェクトについては、「 Library Internals」を参照してください。

XMMATRIX は行メジャーであり、 をパラメーターとして受け取 XMMATRIX る DirectXMath 関数はすべて、データが行メジャーとして整理されることを想定しています。

内の XMMATRIX データのレイアウトは次のとおりです。


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

DirectXMath は 、XMMATRIX を完全に不透明な型として定義します。 XMMATRIX の個々の要素にアクセスするには、特定の行のXMFLOAT4やマトリックス全体のXMFLOAT4X4など、同等の型を使用します。

メモXNAMath 2.x は、_11 から _44 のメンバーと m 配列メンバーを持つ共用体として定義しますXMMATRIX。 共用体のこれらのメンバーを使用すると、パフォーマンスが低下します。 DirectXMath.h では、_XM_NO_INTRINSICS_を使用してアプリをビルドするときに、これらのXMMATRIX共用体メンバーが引き続き定義されます。 XNAMath バージョン 2.05 には、DirectXMath 動作を適用するためのオプトイン XM_STRICT_XMMATRIXが用意されています。
 
名前 空間: DirectX を使用する

プラットフォームの要件

Microsoft Visual Studio 2010 または Microsoft Visual Studio 2012 と Windows SDK for Windows 8。 Win32 デスクトップ アプリ、Windows ストア アプリ、Windows Phone 8 アプリでサポートされます。

要件

要件
Header directxmath.h

こちらもご覧ください

DirectXMath ライブラリの構造

XMFLOAT4X4

XMMATRIX 拡張機能