'\"! tbl|eqn | mmdoc '\"macro stdmacro .ds Vn Version 1.2 .ds Dt 6 March 1997 .ds Re Release 1.1.0 .ds Dp Mar 17 18:07 .ds Dm Mar 6 20:0 .ds Xs 53174 6 mapgrid.gl .TH GLMAPGRID .SH NAME .B "glMapGrid1d, glMapGrid1f, glMapGrid2d, glMapGrid2f \- define a one- or two-dimensional mesh .SH C SPECIFICATION void \f3glMapGrid1d\fP( GLint \fIun\fP, .nf .ta \w'\f3void \fPglMapGrid1d( 'u GLdouble \fIu1\fP, GLdouble \fIu2\fP ) .fi void \f3glMapGrid1f\fP( GLint \fIun\fP, .nf .ta \w'\f3void \fPglMapGrid1f( 'u GLfloat \fIu1\fP, GLfloat \fIu2\fP ) .fi void \f3glMapGrid2d\fP( GLint \fIun\fP, .nf .ta \w'\f3void \fPglMapGrid2d( 'u GLdouble \fIu1\fP, GLdouble \fIu2\fP, GLint \fIvn\fP, GLdouble \fIv1\fP, GLdouble \fIv2\fP ) .fi void \f3glMapGrid2f\fP( GLint \fIun\fP, .nf .ta \w'\f3void \fPglMapGrid2f( 'u GLfloat \fIu1\fP, GLfloat \fIu2\fP, GLint \fIvn\fP, GLfloat \fIv1\fP, GLfloat \fIv2\fP ) .fi .EQ delim $$ .EN .SH PARAMETERS .TP \w'\f2un\fP\ \ 'u \f2un\fP Specifies the number of partitions in the grid range interval [\f2u1\fP, \f2u2\fP]. Must be positive. .TP \f2u1\fP, \f2u2\fP Specify the mappings for integer grid domain values $i=0$ and $i="un"$. .TP \f2vn\fP Specifies the number of partitions in the grid range interval [\f2v1\fP, \f2v2\fP] .br (\f3glMapGrid2\fP only). .TP \f2v1\fP, \f2v2\fP Specify the mappings for integer grid domain values $j=0$ and $j="vn"$ .br (\f3glMapGrid2\fP only). .SH DESCRIPTION \f3glMapGrid\fP and \f3glEvalMesh\fP are used together to efficiently generate and evaluate a series of evenly-spaced map domain values. \f3glEvalMesh\fP steps through the integer domain of a one- or two-dimensional grid, whose range is the domain of the evaluation maps specified by \f3glMap1\fP and \f3glMap2\fP. .P \f3glMapGrid1\fP and \f3glMapGrid2\fP specify the linear grid mappings between the $i$ (or $i$ and $j$) integer grid coordinates, to the $u$ (or $u$ and $v$) floating-point evaluation map coordinates. See \f3glMap1\fP and \f3glMap2\fP for details of how $u$ and $v$ coordinates are evaluated. .P \f3glMapGrid1\fP specifies a single linear mapping such that integer grid coordinate 0 maps exactly to \f2u1\fP, and integer grid coordinate \f2un\fP maps exactly to \f2u2\fP. All other integer grid coordinates $i$ are mapped so that .sp .ce .EQ u ~=~ i ("u2" - "u1") / "un" ~+~ "u1" .EN .sp \f3glMapGrid2\fP specifies two such linear mappings. One maps integer grid coordinate $i=0$ exactly to \f2u1\fP, and integer grid coordinate $i="un"$ exactly to \f2u2\fP. The other maps integer grid coordinate $j=0$ exactly to \f2v1\fP, and integer grid coordinate $j="vn"$ exactly to \f2v2\fP. Other integer grid coordinates $i$ and $j$ are mapped such that .P .ce .EQ u ~=~ i ("u2" - "u1") / "un" ~+~ "u1" .EN .P .ce .EQ v ~=~ j ("v2" - "v1") / "vn" ~+~ "v1" .EN .P The mappings specified by \f3glMapGrid\fP are used identically by \f3glEvalMesh\fP and \f3glEvalPoint\fP. .SH ERRORS \f3GL_INVALID_VALUE\fP is generated if either \f2un\fP or \f2vn\fP is not positive. .P \f3GL_INVALID_OPERATION\fP is generated if \f3glMapGrid\fP is executed between the execution of \f3glBegin\fP and the corresponding execution of \f3glEnd\fP. .SH ASSOCIATED GETS \f3glGet\fP with argument \f3GL_MAP1_GRID_DOMAIN\fP .br \f3glGet\fP with argument \f3GL_MAP2_GRID_DOMAIN\fP .br \f3glGet\fP with argument \f3GL_MAP1_GRID_SEGMENTS\fP .br \f3glGet\fP with argument \f3GL_MAP2_GRID_SEGMENTS\fP .SH SEE ALSO \f3glEvalCoord\fP, \f3glEvalMesh\fP, \f3glEvalPoint\fP, \f3glMap1\fP, \f3glMap2\fP