![[Next]](buttons/ArrowRightOff.gif)
C Specification
void glEvalMesh1(
GLenum mode,
GLint i1,
GLint i2)
void glEvalMesh2(
GLenum mode,
GLint i1,
GLint i2,
GLint j1,
GLint j2)
Parameters
DescriptionIn the one-dimensional case, glEvalMesh1, the mesh is generated as if the following code fragment were executed:
glBegin (type); for (i = i1; iwherei2; i += 1) glEvalCoord1(i·
u + u1) glEnd();
u =
(u2
u1) / n
and n, u1, and u2 are the arguments
to the most recent glMapGrid1
command. type is GL_POINTS if mode is
GL_POINT, or GL_LINES if mode
is GL_LINE. The one absolute numeric requirement is that if
i=n, then the value computed from u + u1
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 command. Then, if mode is GL_FILL, the glEvalMesh2 command 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; jj2; 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; jj2; 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.
Errors
Associated Gets
See Also