G3_Translate

# G3*_Translate

## 構文

      #include <nitro/gx/g3imm.h>
      #include <nitro/gx/g3b.h>
      #include <nitro/gx/g3c.h>

      void G3_Translate(fx32 x, fx32 y, fx32 z);

      // 以下ディスプレイリスト（コマンド列）作成用API
      void G3B_Translate(GXDLInfo* info, fx32 x, fx32 y, fx32 z);
      void G3C_Translate(GXDLInfo* info, fx32 x, fx32 y, fx32 z);
      void G3BS_Translate(GXDLInfo* info, fx32 x, fx32 y, fx32 z);
      void G3CS_Translate(GXDLInfo* info, fx32 x, fx32 y, fx32 z);

## 引数

info | コマンドリスト情報
x | x軸方向の移動量
y | y軸方向の移動量
z | z軸方向の移動量

## 返り値

なし。

## 説明

カレント行列に平行移動行列を左から乗算します。行列の各要素は、符号付き固定小数点数で、符号+整数部19ビット+ 小数部12ビットとなります。
カレント行列をCとすると、新しいカレント行列Cnewは以下の式のとおりです。

※G3OP_MTX_TRANSコマンドは通常22サイクル、Position&Vectorモード時はには52サイクルの実行サイクルを必要とします。下のように3x3行列の乗算とセットにする事によって、G3OP_MTX_TRANSを使用せずにより効率よく処理させることも可能です。 なお`G3_*MultTransMtx33()` でも同様の処理を行ないます。

    struct {
       MtxFx33 mtx;
       VecFx32 trans;
    } mtx43;

    G3*_MultMtx43( (MtxFx43*)(&mtx43) );

## 参照

G3*_MtxMode, G3*_Identity, G3*_LoadMtx43, G3*_LoadMtx44, G3*_MultMtx43, G3*_MultMtx44, G3*_MultMtx33, G3*_PushMtx, G3*_PopMtx, G3*_StoreMtx, G3*_RestoreMtx, G3*_Scale, G3_*MultTransMtx33

## 履歴

Ver. 2004/07/26 3x3行列乗算とのパックによる高速化についての記述を追加
Ver. 2004/01/19 初版