G3_Scale

# G3*_Scale

## 構文

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

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

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

## 引数

info | コマンドリスト情報
x | x軸方向のスケール
y | y軸方向のスケール
z | z軸方向のスケール

## 返り値

なし。

## 説明

カレント行列にスケール(拡大縮小)行列を左から乗算します。行列の各要素は、符号付き固定小数点数で、符号+整数部19ビット+ 小数部12ビットとなります。
カレント行列をCとすると、新しいカレント行列Cnewは以下の式のとおりです。
`G3_Scale()` コマンドは、行列モードコマンドで Position・Vector 同時設定モードが指定されていた場合でも位置座標(Position)行列のみに乗算が適用されます。これは方向ベクトル(Vector)行列へ適用するとベクトルの方向や長さが変化することでライティングの結果が異なってしまうので、それを避けるためです。

## 参照

G3*_MtxMode, G3*_Identity, G3*_LoadMtx43, G3*_LoadMtx44, G3*_MultMtx43, G3*_MultMtx44, G3*_MultMtx33, G3*_PushMtx, G3*_PopMtx, G3*_StoreMtx, G3*_RestoreMtx, G3*_Translate

## 履歴

Ver. 2004/01/19