# glMapGrid

define a one- or two-dimensional mesh

## Signature

glMapGrid( )->
glMapGrid1d( GLint ( un ) , GLdouble ( u1 ) , GLdouble ( u2 ) )-> void
glMapGrid1d( un , u1 , )
glMapGrid1f( GLint ( un ) , GLfloat ( u1 ) , GLfloat ( u2 ) )-> void
glMapGrid1f( un , u1 , )
glMapGrid2d( GLint ( un ) , GLdouble ( u1 ) , GLdouble ( u2 ) , GLint ( vn ) , GLdouble ( v1 ) , GLdouble ( v2 ) )-> void
glMapGrid2d( un , u1 , u2 , vn , v1 , )
glMapGrid2f( GLint ( un ) , GLfloat ( u1 ) , GLfloat ( u2 ) , GLint ( vn ) , GLfloat ( v1 ) , GLfloat ( v2 ) )-> void
glMapGrid2f( un , u1 , u2 , vn , v1 , )

## Parameters

VariablesDescription
un
Specifies the number of partitions in the grid range interval [ u1 , u2 ]. Must be positive.
u1, u2
Specify the mappings for integer grid domain values $\mathit{i}=0$ and $\mathit{i}=\mathit{un}$ .
vn
Specifies the number of partitions in the grid range interval [ v1 , v2 ] ( glMapGrid2 only).
v1, v2
Specify the mappings for integer grid domain values $\mathit{j}=0$ and $\mathit{j}=\mathit{vn}$ ( glMapGrid2 only).

## Description

glMapGrid and glEvalMesh are used together to efficiently generate and evaluate a series of evenly-spaced map domain values. glEvalMesh steps through the integer domain of a one- or two-dimensional grid, whose range is the domain of the evaluation maps specified by glMap1 and glMap2 .
glMapGrid1 and glMapGrid2 specify the linear grid mappings between the $\mathit{i}$ (or $\mathit{i}$ and $\mathit{j}$ ) integer grid coordinates, to the $\mathit{u}$ (or $\mathit{u}$ and $\mathit{v}$ ) floating-point evaluation map coordinates. See glMap1 and glMap2 for details of how $\mathit{u}$ and $\mathit{v}$ coordinates are evaluated.
glMapGrid1 specifies a single linear mapping such that integer grid coordinate 0 maps exactly to u1 , and integer grid coordinate un maps exactly to u2 . All other integer grid coordinates $\mathit{i}$ are mapped so that
$\mathit{u}=\frac{\mathit{i}\left(\mathit{u2}-\mathit{u1}\right)}{\mathit{un}}+\mathit{u1}$
glMapGrid2 specifies two such linear mappings. One maps integer grid coordinate $\mathit{i}=0$ exactly to u1 , and integer grid coordinate $\mathit{i}=\mathit{un}$ exactly to u2 . The other maps integer grid coordinate $\mathit{j}=0$ exactly to v1 , and integer grid coordinate $\mathit{j}=\mathit{vn}$ exactly to v2 . Other integer grid coordinates $\mathit{i}$ and $\mathit{j}$ are mapped such that
$\mathit{u}=\frac{\mathit{i}\left(\mathit{u2}-\mathit{u1}\right)}{\mathit{un}}+\mathit{u1}$
$\mathit{v}=\frac{\mathit{j}\left(\mathit{v2}-\mathit{v1}\right)}{\mathit{vn}}+\mathit{v1}$
The mappings specified by glMapGrid are used identically by glEvalMesh and glEvalPoint .

## Errors

GL_INVALID_VALUE is generated if either un or vn is not positive.
GL_INVALID_OPERATION is generated if glMapGrid is executed between the execution of glBegin and the corresponding execution of glEnd .

## Associated Gets

glGet with argument GL_MAP1_GRID_DOMAIN
glGet with argument GL_MAP2_GRID_DOMAIN
glGet with argument GL_MAP1_GRID_SEGMENTS
glGet with argument GL_MAP2_GRID_SEGMENTS