G3_Scale

# G3*_Scale

## C Specification

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

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

      // Below are APIs for creating the display list (command list)
      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);

## Description

This function premultiplies the current matrix by the scale matrix. Each element of the matrix is a signed fixed-point number (sign + 19-bit integer + 12-bit decimal). If the current matrix is `C`, then the new current matrix, `Cnew` is in the following format.

Even when `Position-Vector simultaneous set` mode is specified by the matrix mode command, the `G3_Scale` command multiplication applies only to the position coordinate matrix. This is to prevent changing the lighting effect by changing the direction or length of vector if applied to the directional vector matrix.

## Arguments

`info` | Command list information
`x` | Scale along the x-axis
`y` | Scale along the y-axis
`z` | Scale along the z-axis

## Return Values

None

## See Also

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

## Revision History

01/19/2004 Initial Version