Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GLMULTMATRIX()							GLMULTMATRIX()

NAME
       glMultMatrixd,  glMultMatrixf  -	 multiply  the current matrix with the
       specified matrix

C SPECIFICATION
       void glMultMatrixd( const GLdouble *m )
       void glMultMatrixf( const GLfloat *m )

       delim $$

PARAMETERS
       m  Points to 16 consecutive values that are used	as the elements	 of  a
	  $4 times 4$ column-major matrix.

DESCRIPTION
       glMultMatrix multiplies the current matrix with the one specified using
       m, and replaces the current matrix with the product.

       The  current matrix is determined by the	current	matrix mode (see glMa-
       trixMode). It is	either the projection matrix, modelview	matrix,	or the
       texture matrix.

EXAMPLES
       If the current matrix is	$C$, and the  coordinates  to  be  transformed
       are,  $v	 = (v[0], v[1],	v[2], v[3])$.  Then the	current	transformation
       is $C ~times~ v$, or

				      down 130
       {{ left (  matrix {
	  ccol { c[0] above c[1] above c[2] above c[3] }
	  ccol { c[4] above c[5] above c[6] above c[7] }
	  ccol { c[8] above c[9] above c[10] above c[11] }
	  ccol { c[12]~	above c[13]~ above c[14]~ above	c[15]~ } } right  )  }
       ~~ times	~~ {left ( matrix { ccol { v[0]~ above v[1]~ above v[2]~ above
       v[3]~ } } right )} }

       Calling glMultMatrix with an argument of	$"m" = m[0], m[1], ...,	m[15]$
       replaces	the current transformation with	$(C ~times~ M) ~times~ v$, or

				      down 130
       {{ left (  matrix {
	  ccol { c[0] above c[1] above c[2] above c[3] }
	  ccol { c[4] above c[5] above c[6] above c[7] }
	  ccol { c[8] above c[9] above c[10] above c[11] }
	  ccol	{  c[12]~ above	c[13]~ above c[14]~ above c[15]~ } } right ) }
       ~~ times	~~ { left (  matrix {
	  ccol { m[0] above m[1] above m[2] above m[3] }
	  ccol { m[4] above m[5] above m[6] above m[7] }
	  ccol { m[8] above m[9] above m[10] above m[11] }
	  ccol { m[12]~	above m[13]~ above m[14]~ above	m[15]~ } } right  )  }
       ~~ times	~~ {left ( matrix { ccol { v[0]~ above v[1]~ above v[2]~ above
       v[3]~ } } right )} }

       Where  '$times$'	 denotes matrix	multiplication,	and $v$	is represented
       as a $4 ~times~ 1$ matrix.

NOTES
       While the elements of the matrix	may be specified with single or	double
       precision, the GL may store or operate on these	values	in  less  than
       single precision.

       In  many	 computer languages $4 times 4$	arrays are represented in row-
       major order. The	transformations	just described represent these	matri-
       ces  in	column-major order.  The order of the multiplication is	impor-
       tant. For example, if the current transformation	is a rotation, and gl-
       MultMatrix is called with a translation matrix, the translation is done
       directly	on the coordinates to be transformed, while  the  rotation  is
       done on the results of that translation.

ERRORS
       GL_INVALID_OPERATION  is	 generated if glMultMatrix is executed between
       the execution of	glBegin	and the	corresponding execution	of 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
       glLoadIdentity, glLoadMatrix, glMatrixMode, glPushMatrix

								GLMULTMATRIX()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=glMultMatrixf&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>

home | help