**glScale**

### NAME

**glScaled**, **glScalef** -- multiply the current matrix by a
general scaling matrix
### C SPECIFICATION

void **glScaled**(GLdouble *x*,
GLdouble *y*,
GLdouble *z*)
void **glScalef**(GLfloat *x*,
GLfloat *y*,
GLfloat *z*)

### PARAMETERS

*x*, *y*, *z*-
Specify scale factors along the
*x*, *y*, and *z*
axes, respectively.

### DESCRIPTION

**glScale** produces a general scaling along the *x*, *y*,
and *z* axes. The three arguments indicate the desired scale factors
along each of the three axes. The resulting matrix is

The current matrix (see
**glMatrixMode**)
is multiplied by this scale matrix, with the product replacing the
current matrix. That is, if M is the current matrix and S is the scale
matrix, then M is replaced with M * S.

If the matrix mode is either **GL_MODELVIEW** or **GL_PROJECTION**,
all objects drawn after **glScale** is called are scaled. Use
**glPushMatrix** and
**glPopMatrix**
to save and restore the unscaled coordinate system.

### NOTES

If scale factors other than 1.0 are applied to the modelview matrix and
lighting is enabled, automatic normalization of normals should probably
also be enabled
(**glEnable** and
**glDisable**
with argument **GL_NORMALIZE**).
### ERRORS

**GL_INVALID_OPERATION** is generated if **glScale** is called between
a call to **glBegin** and the corresponding
call to **glEnd**.
### ASSOCIATED GETS

**glGet** with argument
**GL_MATRIX_MODE**

**glGet** with argument
**GL_MODELVIEW_MATRIX**

**glGet** with argument
**GL_PROJECTION_MATRIX**

**glGet** with argument
**GL_TEXTURE_MATRIX**

### SEE ALSO

**glMatrixMode**,
**glMultMatrix**,
**glPushMatrix**,
**glRotate**,
**glTranslate**

back to the **OpenGL index page**

© *1995 Uwe Behrens. All rights reserved.*