MirBSD manpage: glMap1(3), glMap1d(3), glMap1f(3)


GLMAP1(3G)          UNIX Programmer's Manual           GLMAP1(3G)

NAME

     glMap1d, glMap1f - define a one-dimensional evaluator

C SPECIFICATION

     void glMap1d( GLenum target,
                   GLdouble u1,
                   GLdouble u2,
                   GLint stride,
                   GLint order,
                   const GLdouble *points )
     void glMap1f( GLenum target,
                   GLfloat u1,
                   GLfloat u2,
                   GLint stride,
                   GLint order,
                   const GLfloat *points )

PARAMETERS

     target  Specifies the kind of values that are generated by
             the evaluator. Symbolic constants GL_MAP1_VERTEX_3,
             GL_MAP1_VERTEX_4, GL_MAP1_INDEX, GL_MAP1_COLOR_4,
             GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1,
             GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3,
             and GL_MAP1_TEXTURE_COORD_4 are accepted.

     u1, u2  Specify a linear mapping of u, as presented to
             glEvalCoord1, to ^, the variable that is evaluated
             by the equations specified by this command.

     stride  Specifies the number of floats or doubles between
             the beginning of one control point and the beginning
             of the next one in the data structure referenced in
             points. This allows control points to be embedded in
             arbitrary data structures. The only constraint is
             that the values for a particular control point must
             occupy contiguous memory locations.

     order   Specifies the number of control points. Must be
             positive.

     points  Specifies a pointer to the array of control points.

DESCRIPTION

     Evaluators provide a way to use polynomial or rational poly-
     nomial mapping to produce vertices, normals, texture coordi-
     nates, and colors. The values produced by an evaluator are
     sent to further stages of GL processing just as if they had
     been presented using glVertex, glNormal, glTexCoord, and
     glColor commands, except that the generated values do not

MirBSD #10-current     Printed 2021-12-07                       1

GLMAP1(3G)          UNIX Programmer's Manual           GLMAP1(3G)

     update the current normal, texture coordinates, or color.

     All polynomial or rational polynomial splines of any degree
     (up to the maximum degree supported by the GL implementa-
     tion) can be described using evaluators. These include
     almost all splines used in computer graphics: B-splines,
     Bezier curves, Hermite splines, and so on.

     Evaluators define curves based on Bernstein polynomials.
     Define p(^) as
                                   n  n(^)Ri
                         p(^)  =   ≥̅ Bn(^) is the ith Bernstein
     polynomialsof degreelnp(_o_r_de|_nnd=|ni+ 1):
                       n(^)  =  |i  |^i(1-^)n-i
                      Bi        |   |
     Recall that
                                  |n   |
                       00 _ 1 and | 0  |  _  1
                                  |    |
     glMap1 is used to define the basis and to specify what kind
     of values are produced. Once defined, a map can be enabled
     and disabled by calling glEnable and glDisable with the map
     name, one of the nine predefined values for target described
     below. glEvalCoord1 evaluates the one-dimensional maps that
     are enabled. When
     glEvalCoord1 presents a value u, the Bernstein functions are
     evaluated using ^, where
                                  ______1_
                            ^  =  u2 - u1

     target is a symbolic constant that indicates what kind of
     control points are provided in points, and what output is
     generated when the map is evaluated. It can assume one of
     nine predefined values:

     GL_MAP1_VERTEX_3         Each control point is three
                              floating-point values representing
                              x, y, and z. Internal glVertex3
                              commands are generated when the map
                              is evaluated.

     GL_MAP1_VERTEX_4         Each control point is four
                              floating-point values representing
                              x, y, z, and w. Internal glVertex4
                              commands are generated when the map
                              is evaluated.

     GL_MAP1_INDEX            Each control point is a single

MirBSD #10-current     Printed 2021-12-07                       2

GLMAP1(3G)          UNIX Programmer's Manual           GLMAP1(3G)

                              floating-point value representing a
                              color index. Internal glIndex com-
                              mands are generated when the map is
                              evaluated but the current index is
                              not updated with the value of these
                              glIndex commands.

     GL_MAP1_COLOR_4          Each control point is four
                              floating-point values representing
                              red, green, blue, and alpha. Inter-
                              nal glColor4 commands are generated
                              when the map is evaluated but the
                              current color is not updated with
                              the value of these glColor4 com-
                              mands.

     GL_MAP1_NORMAL           Each control point is three
                              floating-point values representing
                              the x, y, and z components of a
                              normal vector. Internal glNormal
                              commands are generated when the map
                              is evaluated but the current normal
                              is not updated with the value of
                              these glNormal commands.

     GL_MAP1_TEXTURE_COORD_1  Each control point is a single
                              floating-point value representing
                              the s texture coordinate. Internal
                              glTexCoord1 commands are generated
                              when the map is evaluated but the
                              current texture coordinates are not
                              updated with the value of these
                              glTexCoord commands.

     GL_MAP1_TEXTURE_COORD_2  Each control point is two
                              floating-point values representing
                              the s and t texture coordinates.
                              Internal
                              glTexCoord2 commands are generated
                              when the map is evaluated but the
                              current texture coordinates are not
                              updated with the value of these
                              glTexCoord commands.

     GL_MAP1_TEXTURE_COORD_3  Each control point is three
                              floating-point values representing
                              the s, t, and r texture coordi-
                              nates. Internal glTexCoord3 com-
                              mands are generated when the map is
                              evaluated but the current texture
                              coordinates are not updated with
                              the value of these glTexCoord

MirBSD #10-current     Printed 2021-12-07                       3

GLMAP1(3G)          UNIX Programmer's Manual           GLMAP1(3G)

                              commands.

     GL_MAP1_TEXTURE_COORD_4  Each control point is four
                              floating-point values representing
                              the s, t, r, and q texture coordi-
                              nates. Internal
                              glTexCoord4 commands are generated
                              when the map is evaluated but the
                              current texture coordinates are not
                              updated with the value of these
                              glTexCoord commands.

     stride, order, and points define the array addressing for
     accessing the control points. points is the location of the
     first control point, which occupies one, two, three, or four
     contiguous memory locations, depending on which map is being
     defined. order is the number of control points in the array.
     stride specifies how many float or double locations to
     advance the internal memory pointer to reach the next con-
     trol point.

NOTES

     As is the case with all GL commands that accept pointers to
     data, it is as if the contents of points were copied by
     glMap1 before glMap1 returns. Changes to the contents of
     points have no effect after glMap1 is called.

ERRORS

     GL_INVALID_ENUM is generated if target is not an accepted
     value.

     GL_INVALID_VALUE is generated if u1 is equal to u2.

     GL_INVALID_VALUE is generated if stride is less than the
     number of values in a control point.

     GL_INVALID_VALUE is generated if order is less than 1 or
     greater than the return value of GL_MAX_EVAL_ORDER.

     GL_INVALID_OPERATION is generated if glMap1 is executed
     between the execution of glBegin and the corresponding exe-
     cution of glEnd.

     When the GL_ARB_multitexture extension is supported,
     GL_INVALID_OPERATION is generated if glMap1 is called and
     the value of GL_ACTIVE_TEXTURE_ARB is not GL_TEXTURE0_ARB.

ASSOCIATED GETS

     glGetMap
     glGet with argument GL_MAX_EVAL_ORDER
     glIsEnabled with argument GL_MAP1_VERTEX_3
     glIsEnabled with argument GL_MAP1_VERTEX_4

MirBSD #10-current     Printed 2021-12-07                       4

GLMAP1(3G)          UNIX Programmer's Manual           GLMAP1(3G)

     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

SEE ALSO

     glBegin(3G), glColor(3G), glEnable(3G), glEvalCoord(3G),
     glEvalMesh(3G), glEvalPoint(3G), glMap2(3G), glMapGrid(3G),
     glNormal(3G), glTexCoord(3G), glVertex(3G)

MirBSD #10-current     Printed 2021-12-07                       5

Generated on 2021-12-07 11:07:08 by $MirOS: src/scripts/roff2htm,v 1.103 2021/01/23 20:24:35 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2021 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.