Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GLUNURBSCALLBACK()					    GLUNURBSCALLBACK()

NAME
       gluNurbsCallback	- define a callback for	a NURBS	object

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

       delim $$

PARAMETERS
       nurb	     Specifies	the NURBS object (created with gluNewNurbsRen-
		     derer).

       which	     Specifies the callback being defined.  Valid  values  are
		     GLU_NURBS_BEGIN_EXT,    GLU_NURBS_VERTEX_EXT,    GLU_NOR-
		     MAL_EXT,	 GLU_NURBS_COLOR_EXT,	 GLU_NURBS_TEXTURE_CO-
		     ORD_EXT,	   GLU_END_EXT,	     GLU_NURBS_BEGIN_DATA_EXT,
		     GLU_NURBS_VERTEX_DATA_EXT,		  GLU_NORMAL_DATA_EXT,
		     GLU_NURBS_COLOR_DATA_EXT,		 GLU_NURBS_TEXTURE_CO-
		     ORD_DATA_EXT, GLU_END_DATA_EXT, and GLU_ERROR.

       CallBackFunc  Specifies the function that the callback calls.

DESCRIPTION
       gluNurbsCallback	is used	to define a callback to	be used	by a NURBS ob-
       ject.  If the specified callback	is already defined,  then  it  is  re-
       placed.	 If  CallBackFunc is NULL, then	this callback will not get in-
       voked and the related data, if any, will	be lost.

       Except the error	callback, these	callbacks are used by NURBS  tessella-
       tor (when GLU_NURBS_MODE_EXT is set to be GLU_NURBS_TESSELLATOR_EXT) to
       return  back  the openGL	polygon	primitives resulted from the tessella-
       tion. Note that there are two versions of each  callback:  one  with  a
       user  data  pointer  and	one without. 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 gluNurbsCallbackDataEXT.

       The error callback function is effective	no  matter  which  value  that
       GLU_NURBS_MODE_EXT  is set to.  All other callback functions are	effec-
       tive only when GLU_NURBS_MODE_EXT is set	to GLU_NURBS_TESSELLATOR_EXT.

       The legal callbacks are as follows:

       GLU_NURBS_BEGIN_EXT
		 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_STRIPS,  GL_TRIANGLE_FAN,  GL_TRIAN-
		 GLE_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_EXT
		 The  same  as the GLU_NURBS_BEGIN_EXT 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
		 gluNurbsCallbackDataEXT.  The default	callback  function  is
		 NULL. The function prototype for this callback	function looks
		 like:
		 void beginData	(GLenum	type, void *userData);

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

       GLU_NURBS_VERTEX_DATA_EXT
		 The  same as the GLU_NURBS_VERTEX_EXT 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
		 gluNurbsCallbackDataEXT.  The default	callback  function  is
		 NULL. The function prototype for this callback	function looks
		 like:
		 void vertexData ( GLfloat *vertex, void *userData );

       GLU_NORMAL_EXT
		 The normal callback is	invoked	as the vertex normal is	gener-
		 ated.	The components of the normal are stored	in the parame-
		 ter  "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_NORMAL_DATA_EXT
		 The  same as the GLU_NURBS_NORMAL_EXT 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
		 gluNurbsCallbackDataEXT.  The default	callback  function  is
		 NULL. The function prototype for this callback	function looks
		 like:
		 void normalData ( GLfloat *normal, void *userData );

       GLU_NURBS_COLOR_EXT
		 The  color  callback  is  invoked as the color	of a vertex is
		 generated.  The components of the color are stored in the pa-
		 rameter "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 components:  R,G,B,A.
		 The  default  color  callback function	is NULL. The prototype
		 for this callback function looks like:
		 void color ( GLfloat *color );

       GLU_NURBS_COLOR_DATA_EXT
		 The same as the GLU_NURBS_COLOR_EXT 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
		 gluNurbsCallbackDataEXT.   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_EXT
		 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_MAP*_TEXTURE_COORD_1, GL_MAP*_TEXTURE_COORD_2,
		 GL_MAP*_TEXTURE_COORD_3, GL_MAP*_TEXTURE_COORD_4 where	*  can
		 be  either  1	or  2).	  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_EXT
		 The same as the GLU_NURBS_TEXTURE_COORD_EXT  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
		 gluNurbsCallbackDataEXT.  The default	callback  function  is
		 NULL. The function prototype for this callback	function looks
		 like:
		 void texCoordData (GLfloat *texCoord, void *userData);

       GLU_END_EXT
		 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_END_DATA_EXT
		 The same as the GLU_NURBS_TEXTURE_COORD_EXT  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
		 gluNurbsCallbackDataEXT.  The default	callback  function  is
		 NULL. The function prototype for this callback	function looks
		 like:
		 void endData (	void  *userData	);

       GLU_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.

SEE ALSO
       gluErrorString, gluNewNurbsRenderer

							    GLUNURBSCALLBACK()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gluNurbsCallback&sektion=3&manpath=FreeBSD+Ports+15.0.quarterly>

home | help