Platform SDK: DirectX

D3DXMATRIX 拡張機能

D3DXMATRIX 構造体は、次の演算子オーバーロードと型変換を提供している。

#ifdef __cplusplus
public:
  D3DXMATRIX() {};
  D3DXMATRIX( const float * );
  D3DXMATRIX( const D3DMATRIX& );
  D3DXMATRIX( 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 );
 
 
  // アクセス許可
  float& operator () ( UINT iRow, UINT iCol );
  float  operator () ( UINT iRow, UINT iCol ) const;
 
  // 演算子の型変換
  operator float* ();
  operator const float* () const;
 
  operator D3DMATRIX* ();
  operator const D3DMATRIX* () const;
 
// 代入演算子
  D3DXMATRIX& operator *= ( const D3DXMATRIX& );
  D3DXMATRIX& operator += ( const D3DXMATRIX& );
  D3DXMATRIX& operator -= ( const D3DXMATRIX& );
  D3DXMATRIX& operator *= ( float );
  D3DXMATRIX& operator /= ( float );
 
// 単項演算子
  D3DXMATRIX operator + () const;
  D3DXMATRIX operator - () const;
 
// 2 項演算子
  D3DXMATRIX operator * ( const D3DXMATRIX& ) const;
  D3DXMATRIX operator + ( const D3DXMATRIX& ) const;
  D3DXMATRIX operator - ( const D3DXMATRIX& ) const;
  D3DXMATRIX operator * ( float ) const;
  D3DXMATRIX operator / ( float ) const;
 
  friend D3DXMATRIX operator * ( float, const D3DXMATRIX& );
 
  BOOL operator == ( const D3DXMATRIX& ) const;
  BOOL operator != ( const D3DXMATRIX& ) const;
 
 
#endif //__cplusplus
 
  union
  {
    float m[4][4];
#ifdef __cplusplus
    struct
    {
      float m00, m01, m02, m03;
      float m10, m11, m12, m13;
      float m20, m21, m22, m23;
      float m30, m31, m32, m33;
    };
#endif //__cplusplus