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()

NAME | C SPECIFICATION | PARAMETERS | DESCRIPTION | SEE ALSO

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

home | help