ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



GLUNURBSCALLBACK(3G)                                                                    GLUNURBSCALLBACK(3G)



NAME
       gluNurbsCallback - define a callback for a NURBS object


C SPECIFICATION
       void gluNurbsCallback( GLUnurbs* nurb,
                              GLenum which,
                              GLvoid * CallBackFunc )


PARAMETERS
       nurb          Specifies the NURBS object (created with gluNewNurbsRenderer).

       which         Specifies   the   callback   being   defined.    Valid   values   are  GLU_NURBS_BEGIN,
                     GLU_NURBS_VERTEX,    GLU_NURBS_NORMAL,    GLU_NURBS_COLOR,     GLU_NURBS_TEXTURE_COORD,
                     GLU_NURBS_END,   GLU_NURBS_BEGIN_DATA,   GLU_NURBS_VERTEX_DATA,  GLU_NURBS_NORMAL_DATA,
                     GLU_NURBS_COLOR_DATA,     GLU_NURBS_TEXTURE_COORD_DATA,     GLU_NURBS_END_DATA,     and
                     GLU_NURBS_ERROR.

       CallBackFunc  Specifies the function that the callback calls.

DESCRIPTION
       gluNurbsCallback  is  used to define a callback to be used by a NURBS object.  If the specified call-back callback
       back is already defined, then it is replaced.  If CallBackFunc is NULL, then this callback  will  not
       get invoked and the related data, if any, will be lost.

       Except  the error callback, these callbacks are used by NURBS tessellator (when GLU_NURBS_MODE is set
       to be GLU_NURBS_TESSELLATOR) to return back the OpenGL polygon primitives resulting from the  tessel-lation. tessellation.
       lation. Note that there are two versions of each callback: one with a user data pointer and one with-out. without.
       out. If both versions for a particular callback are specified then the callback with  the  user  data
       pointer  will be used. Note that ``userData'' is a copy of the pointer that was specified at the last
       call to gluNurbsCallbackData.

       The error callback function is effective no matter which value that GLU_NURBS_MODE is  set  to.   All
       other callback functions are effective only when GLU_NURBS_MODE is set to GLU_NURBS_TESSELLATOR.

       The legal callbacks are as follows:

       GLU_NURBS_BEGIN
                 The begin callback indicates the start of a primitive. The function takes a single argument
                 of  type  GLenum,  which  can  be  one   of   GL_LINES,   GL_LINE_STRIP,   GL_TRIANGLE_FAN,
                 GL_TRIANGLE_STRIP,  GL_TRIANGLES,  or GL_QUAD_STRIP. The default begin callback function is
                 NULL. The function prototype for this callback looks like:
                 void begin ( GLenum type );

       GLU_NURBS_BEGIN_DATA
                 The same as the GLU_NURBS_BEGIN callback except that it takes an additional  pointer  argu-ment. argument.
                 ment.  This  pointer  is  a  copy  of  the  pointer  that was specified at the last call to
                 gluNurbsCallbackData.  The default callback function is NULL. The  function  prototype  for
                 this callback function looks like:
                 void beginData (GLenum type, void *userData);

       GLU_NURBS_VERTEX
                 The  vertex callback indicates a vertex of the primitive. The coordinates of the vertex are
                 stored in the parameter ``vertex''. All the generated vertices have dimension 3,  that  is,
                 homogeneous  coordinates  have been transformed into affine coordinates. The default vertex
                 callback function is NULL. The function prototype for this callback function looks like:
                 void vertex ( GLfloat *vertex );

       GLU_NURBS_VERTEX_DATA
                 This is the same as the GLU_NURBS_VERTEX callback,  except  that  it  takes  an  additional
                 pointer argument. This pointer is a copy of the pointer that was specified at the last call
                 to gluNurbsCallbackData.  The default callback function is NULL. The function prototype for
                 this callback function looks like:
                 void vertexData ( GLfloat *vertex, void *userData );

       GLU_NURBS_NORMAL
                 The  normal  callback  is invoked as the vertex normal is generated.  The components of the
                 normal are stored in the parameter ``normal''.  In the case of a NURBS curve, the  callback
                 function  is  effective  only when the user provides a normal map (GL_MAP1_NORMAL).  In the
                 case of a NURBS surface, if a normal map (GL_MAP2_NORMAL) is provided, then  the  generated
                 normal  is  computed  from  the normal map.  If a normal map is not provided then a surface
                 normal is computed in a manner similar to that described for evaluators when GL_AUTO_NORMAL
                 is enabled.
                 The  default  normal  callback  function  is NULL. The function prototype for this callback
                 function looks like:
                 void normal ( GLfloat *normal );

       GLU_NURBS_NORMAL_DATA
                 The same as the GLU_NURBS_NORMAL callback except that it takes an additional pointer  argu-ment. argument.
                 ment.  This  pointer  is  a  copy  of  the  pointer  that was specified at the last call to
                 gluNurbsCallbackData.  The default callback function is NULL. The  function  prototype  for
                 this callback function looks like:
                 void normalData ( GLfloat *normal, void *userData );

       GLU_NURBS_COLOR
                 The color callback is invoked as the color of a vertex is generated.  The components of the
                 color are stored in the parameter ``color''.  This callback is effective only when the user
                 provides  a  color map (GL_MAP1_COLOR_4 or GL_MAP2_COLOR_4). ``color'' contains four compo-nents: components:
                 nents: R,G,B,A. The default color callback function is NULL. The prototype for  this  call-back callback
                 back function looks like:
                 void color ( GLfloat *color );

       GLU_NURBS_COLOR_DATA
                 The  same  as the GLU_NURBS_COLOR callback except that it takes an additional pointer argu-ment. argument.
                 ment. This pointer is a copy of the  pointer  that  was  specified  at  the  last  call  to
                 gluNurbsCallbackData.   The  default  callback function is NULL. The function prototype for
                 this callback function looks like:
                 void colorData ( GLfloat *color, void *userData );

       GLU_NURBS_TEXTURE_COORD
                 The texture callback is invoked as the texture coordinates of a vertex are generated. These
                 coordinates are stored in the parameter ``texCoord''. The number of texture coordinates can
                 be  1,  2,  3,  or  4  depending  on  which  type  of   texture   map   is   specified   (-GL_MAP1_TEXTURE_COORD_1, (GL_MAP1_TEXTURE_COORD_1,
                 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,  GL_MAP2_TEXTURE_COORD_4).   If  no texture map is specified, this
                 callback function will not be called.
                 The default texture callback function is NULL. The function  prototype  for  this  callback
                 function looks like:
                 void texCoord ( GLfloat *texCoord );

        GLU_NURBS_TEXTURE_COORD_DATA
                 This  is  the  same  as the GLU_NURBS_TEXTURE_COORD callback, except that it takes an addi-tional additional
                 tional pointer argument. This pointer is a copy of the pointer that was  specified  at  the
                 last  call  to  gluNurbsCallbackData.   The default callback function is NULL. The function
                 prototype for this callback function looks like:
                 void texCoordData (GLfloat *texCoord, void *userData);

       GLU_NURBS_END
                 The end callback is invoked at the end of a primitive. The default end callback function is
                 NULL. The function prototype for this callback function looks like:
                 void end ( void );

       GLU_NURBS_END_DATA
                 This  is the same as the GLU_NURBS_END callback, except that it takes an additional pointer
                 argument. This pointer is a copy of the pointer that was specified  at  the  last  call  to
                 gluNurbsCallbackData.   The  default  callback function is NULL. The function prototype for
                 this callback function looks like:
                 void endData ( void  *userData );

       GLU_NURBS_ERROR
                 The error function is called when an error is encountered.  Its single argument is of  type
                 GLenum,  and  it indicates the specific error that occurred.  There are 37 errors unique to
                 NURBS named GLU_NURBS_ERROR1 through GLU_NURBS_ERROR37.  Character strings describing these
                 errors can be retrieved with gluErrorString.
NOTES
       gluNurbsCallback is available only if the GLU version is 1.2 or greater.

       GLU version 1.2 supports only the GLU_ERROR parameter for which. The GLU_ERROR value is deprecated in
       GLU version 1.3 in favor of GLU_NURBS_ERROR.  All other accepted values for CallBackFunc  are  avail-able available
       able only if the GLU version is 1.3 or greater.

SEE ALSO
       gluErrorString(3G), gluNewNurbsRenderer(3G), gluNurbsCallbackData(3G), gluNurbsProperty(3G)





                                                                                        GLUNURBSCALLBACK(3G)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.