glEvalCoord.3gl




Name

  glEvalCoord1d, glEvalCoord1f,	glEvalCoord2d, glEvalCoord2f, glEvalCoord1dv,
  glEvalCoord1fv, glEvalCoord2dv, glEvalCoord2fv - evaluate enabled one- and
  two-dimensional maps


C Specification

  void glEvalCoord1d( GLdouble u )
  void glEvalCoord1f( GLfloat u	)
  void glEvalCoord2d( GLdouble u,
		      GLdouble v )
  void glEvalCoord2f( GLfloat u,
		      GLfloat v	)


Parameters


  u  Specifies a value that is the domain coordinate u to the basis function
     defined in	a previous glMap1 or glMap2 command.

  v  Specifies a value that is the domain coordinate v to the basis function
     defined in	a previous glMap2 command.  This argument is not present in
     an	glEvalCoord1 command.

C Specification

  void glEvalCoord1dv( const GLdouble *u )
  void glEvalCoord1fv( const GLfloat *u	)
  void glEvalCoord2dv( const GLdouble *u )
  void glEvalCoord2fv( const GLfloat *u	)


Parameters


  u    Specifies a pointer to an array containing either one or	two domain
       coordinates.  The first coordinate is u.	 The second coordinate is v,
       which is	present	only in	glEvalCoord2 versions.

Description

  glEvalCoord1 evaluates enabled one-dimensional maps at argument u.
  glEvalCoord2 does the	same for two-dimensional maps using two	domain
  values, u and	v.  Maps are defined with glMap1 and glMap2 and	enabled	and
  disabled with	 glEnable and glDisable.

  When one of the glEvalCoord commands is issued, all currently	enabled	maps
  of the indicated dimension are evaluated.  Then, for each enabled map, it
  is as	if the corresponding GL	command	was issued with	the computed value.
  That is, if GL_MAP1_INDEX or GL_MAP2_INDEX is	enabled, a glIndex command is
  simulated.  If GL_MAP1_COLOR_4 or GL_MAP2_COLOR_4 is enabled,	a glColor
  command is simulated.	 If GL_MAP1_NORMAL or GL_MAP2_NORMAL is	enabled, a
  normal vector	is produced, and if any	of GL_MAP1_TEXTURE_COORD_1,
  GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4,
  GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3,
  or GL_MAP2_TEXTURE_COORD_4 is	enabled, then an appropriate glTexCoord
  command is simulated.

  The GL uses evaluated	values instead of current values for those
  evaluations that are enabled,	and current values otherwise, for color,
  color	index, normal, and texture coordinates.	 However, the evaluated
  values do not	update the current values.  Thus, if glVertex commands are
  interspersed with glEvalCoord	commands, the color, normal, and texture
  coordinates associated with the glVertex commands are	not affected by	the
  values generated by the glEvalCoord commands,	but rather only	by the most
  recent glColor, glIndex, glNormal, and glTexCoord commands.

  No commands are issued for maps that are not enabled.	 If more than one
  texture evaluation is	enabled	for a particular dimension (for	example,
  GL_MAP2_TEXTURE_COORD_1 and GL_MAP2_TEXTURE_COORD_2),	then only the
  evaluation of	the map	that produces the larger number	of coordinates (in
  this case, GL_MAP2_TEXTURE_COORD_2) is carried out.  GL_MAP1_VERTEX_4
  overrides GL_MAP1_VERTEX_3, and GL_MAP2_VERTEX_4 overrides
  GL_MAP2_VERTEX_3, in the same	manner.	 If neither a three- nor four-
  component vertex map is enabled for the specified dimension, the
  glEvalCoord command is ignored.

  If automatic normal generation is enabled, by	calling	glEnable with
  argument GL_AUTO_NORMAL, glEvalCoord2	generates surface normals
  analytically,	regardless of the contents or enabling of the GL_MAP2_NORMAL
  map.	Let

                                        Dp   Dp
				    m = -- · --
                                        Du   Dv

  where D represents the partial differential operator.

  Then the generated normal n is

				           m
                                    n =  -----
				         ||m||

  If automatic normal generation is disabled, the corresponding	normal map
  GL_MAP2_NORMAL, if enabled, is used to produce a normal.  If neither
  automatic normal generation nor a normal map is enabled, no normal is
  generated for	glEvalCoord2 commands.

Associated Gets

  glIsEnabled with argument GL_MAP1_VERTEX_3
  glIsEnabled with argument GL_MAP1_VERTEX_4
  glIsEnabled with argument GL_MAP1_INDEX
  glIsEnabled with argument GL_MAP1_COLOR_4
  glIsEnabled with argument GL_MAP1_NORMAL
  glIsEnabled with argument GL_MAP1_TEXTURE_COORD_1
  glIsEnabled with argument GL_MAP1_TEXTURE_COORD_2
  glIsEnabled with argument GL_MAP1_TEXTURE_COORD_3
  glIsEnabled with argument GL_MAP1_TEXTURE_COORD_4
  glIsEnabled with argument GL_MAP2_VERTEX_3
  glIsEnabled with argument GL_MAP2_VERTEX_4
  glIsEnabled with argument GL_MAP2_INDEX
  glIsEnabled with argument GL_MAP2_COLOR_4
  glIsEnabled with argument GL_MAP2_NORMAL
  glIsEnabled with argument GL_MAP2_TEXTURE_COORD_1
  glIsEnabled with argument GL_MAP2_TEXTURE_COORD_2
  glIsEnabled with argument GL_MAP2_TEXTURE_COORD_3
  glIsEnabled with argument GL_MAP2_TEXTURE_COORD_4
  glIsEnabled with argument GL_AUTO_NORMAL
  glGetMap

See Also

  glBegin, glColor, glEnable, glEvalMesh, glEvalPoint, glIndex,	glMap1,
  glMap2, glMapGrid, glNormal, glTexCoord, glVertex


Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV