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



GLUTESSVERTEX(3G)                                                                          GLUTESSVERTEX(3G)



NAME
       gluTessVertex - specify a vertex on a polygon


C SPECIFICATION
       void gluTessVertex( GLUtesselator* tess,
                           GLdouble *location,
                           GLvoid* data )


PARAMETERS
       tess      Specifies the tessellation object (created with gluNewTess).

       location  Specifies the location of the vertex.

       data      Specifies  an opaque pointer passed back to the program with the vertex callback (as speci-fied specified
                 fied by gluTessCallback).

DESCRIPTION
       gluTessVertex describes a vertex on a polygon that  the  program  defines.  Successive  gluTessVertex
       calls  describe  a  closed  contour. For example, to describe a quadrilateral gluTessVertex should be
       called  four  times.   gluTessVertex   can   only   be   called   between   gluTessBeginContour   and
       gluTessEndContour.

       data  normally  points  to  a  structure  containing the vertex location, as well as other per-vertex
       attributes such as color  and  normal.   This  pointer  is  passed  back  to  the  user  through  the
       GLU_TESS_VERTEX  or  GLU_TESS_VERTEX_DATA callback after tessellation (see the gluTessCallback refer-ence reference
       ence page).

EXAMPLE
       A quadrilateral with a triangular hole in it can be described as follows:

       gluTessBeginPolygon(tobj, NULL);
        gluTessBeginContour(tobj);
          gluTessVertex(tobj, v1, v1);
          gluTessVertex(tobj, v2, v2);
          gluTessVertex(tobj, v3, v3);
          gluTessVertex(tobj, v4, v4);
        gluTessEndContour(tobj);
        gluTessBeginContour(tobj);
          gluTessVertex(tobj, v5, v5);
          gluTessVertex(tobj, v6, v6);
          gluTessVertex(tobj, v7, v7);
        gluTessEndContour(tobj); gluTessEndPolygon(tobj);


NOTES
       It is a common error to use a local variable for location or data and store values into it as part of
       a loop.  For example: for (i = 0; i < NVERTICES; ++i) {
         GLdouble data[3];
         data[0] = vertex[i][0];
         data[1] = vertex[i][1];
         data[2] = vertex[i][2];
         gluTessVertex(tobj, data, data);
         }

       This  doesn't  work.   Because  the pointers specified by location and data might not be dereferenced
       until gluTessEndPolygon is executed, all the vertex coordinates but the very last set could be  over-
       written before tessellation begins.

       Two common symptoms of this problem are consists of a single point (when a local variable is used for
       data) and a GLU_TESS_NEED_COMBINE_CALLBACK error (when a local variable is used for location).

SEE ALSO
       gluTessBeginPolygon(3G),    gluNewTess(3G),    gluTessBeginContour(3G),     gluTessCallback(3G),     gluTessProperty(3G),
       gluTessNormal(3G), gluTessEndPolygon(3G)






                                                                                           GLUTESSVERTEX(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.