Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Computes a two-dimensional grid of points or lines.
Syntax
void WINAPI glEvalMesh2(
GLenum mode,
GLint i1,
GLint i2,
GLint j1,
GLint j2
);
Parameters
-
mode
-
A value that specifies whether to compute a two-dimensional mesh of points, lines, or polygons. The following symbolic constants are accepted: GL_POINT, GL_LINE, and GL_FILL.
-
i1
-
The first integer value for grid ___domain variable i.
-
i2
-
The last integer value for grid ___domain variable i.
-
j1
-
The first integer value for grid ___domain variable j.
-
j2
-
The last integer value for grid ___domain variable j.
Return value
This function does not return a value.
Error codes
The following error codes can be retrieved by the glGetError function.
Name | Meaning |
---|---|
|
Indicates that mode is not an accepted value. |
|
The function was called between a call to glBegin and the corresponding call to glEnd. |
Remarks
Use glMapGrid and glEvalMesh in tandem to efficiently generate and evaluate a series of evenly spaced map ___domain values. The glEvalMesh function 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. The mode parameter determines whether the resulting vertices are connected as points, lines, or filled polygons.
In the two-dimensional case, glEvalMesh2, let
? u = (u2 u1)/n
? v = (v2 v1)/m,
where n, u1, u2, m, v1, and v2 are the arguments to the most recent glMapGrid2 function. Then, if mode is GL_FILL, glEvalMesh2 is equivalent to:
for (j = j1; j < j2; j += 1)
{
glBegin(GL_QUAD_STRIP);
for (i = i1; i <= i2; i += 1)
{
glEvalCoord2(i? u + u1 ( ) , j ? v + v1);
glEvalCoord2(i? u + u1 ( ) , (j+1) ? v + v1);
}
glEnd( ); }
If mode is GL_LINE, then a call to glEvalMesh2 is equivalent to:
for (j = j1; j <= j2; j += 1)
{
glBegin(GL_LINE_STRIP);
for (i = i1; i <= i2; i += 1)
{
glEvalCoord2(i? u + u1, j? v + v1);
}
glEnd( );
}
for (i = i1; i <= i2; i += 1)
{
glBegin(GL_LINE_STRIP);
for (j = j1; j <= j1; j += 1)
{
glEvalCoord2(i? u + u1, j? v + v1);
}
glEnd( );
}
And finally, if mode is GL_POINT, then a call to glEvalMesh2 is equivalent to:
glBegin(GL_POINTS);
for (j = j1; j <= j2; j += 1)
{
for (i = i1; i <= i2; i += 1)
{
glEvalCoord2(i? u + u1, j? v + v1);
}
}
glEnd( );
In all three cases, the only absolute numeric requirements are that if i = n, then the value computed from i? u + u1 is exactly u2, and if j = m, then the value computed from j? v + v1 is exactly v2. The following functions retrieve information relating to glEvalMesh:
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
Requirements
Requirement | Value |
---|---|
Minimum supported client |
Windows 2000 Professional [desktop apps only] |
Minimum supported server |
Windows 2000 Server [desktop apps only] |
Header |
|
Library |
|
DLL |
|