Microsoft DirectX 8.0 (C++)

D3DXMATRIX

行列を記述する。

typedef struct D3DXMATRIX : public D3DMATRIX {
public:
    D3DXMATRIX() {};
    D3DXMATRIX( CONST FLOAT * );
    D3DXMATRIX( CONST D3DMATRIX& );
    D3DXMATRIX( 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& operator () ( UINT Row, UINT Col );
    FLOAT  operator () ( UINT Row, UINT Col ) const;

    // 演算子のキャスティング
    operator FLOAT* ();
    operator CONST FLOAT* () 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;

} D3DXMATRIX, *LPD3DXMATRIX;

注意

この構造体は D3DMATRIX 構造体のメンバを継承する。C のプログラマは D3DXMATRIX 構造体を使用できない。C のプログラマは D3DMATRIX 構造体を使用する必要がある。

Direct3DX で射影行列の _34 要素には、負の値を設定できない。アプリケーションは、この要素で負の値を使用しなければならない場合、その代わりに射影行列全体を –1 によりスケーリングする。

C++ プログラマは、演算子のオーバーロード機能や型変換機能を利用できる。D3DXMATRIX 構造体を C++ で実装すると、オーバーロードされたコンストラクタやオーバーロードされた代入演算子、単項演算子、および 2 項演算子 (等価演算子を含む) が実装される。詳細については、「C++ 固有の機能」を参照すること。

動作環境

  ヘッダー : d3dx8math.h で宣言。