Angeben des Polygons, für das ein Mosaik erstellt werden soll

Sie geben ein Polygon (möglicherweise mit Lücken) an, das mit folgendem Mosaik versehen werden soll:

Für Polygone ohne Lücken ist der Spezifikationsprozess genau wie in OpenGL:

  1. Beginnen Sie mit gluBeginPolygon.
  2. Rufen Sie gluTessVertex für jeden Scheitelpunkt in der Grenze auf.
  3. Beenden Sie das Polygon mit einem Aufruf von gluEndPolygon.

Wenn ein Polygon aus mehreren Konturen besteht, einschließlich Lücken und Lücken innerhalb von Lücken, geben Sie die Konturen nacheinander an, die jeweils gluNextContour voranstellen. Wenn Sie gluEndPolygon aufrufen,signalisiert es das Ende der letzten Kontur und startet das Mosaik. Sie können den Aufruf von gluNextContour vor der ersten Kontur weglassen. Die gluBeginPolygon-Funktion beginnt mit der Spezifikation eines Polygons, das mosaikiert werden soll, und ordnet ihm das Mosaikobjekt tessobj zu. Die zu verwendenden Rückruffunktionen sind die, die Sie mit gluTessCallbackan das Mosaikobjekt binden.

Die gluTessVertex-Funktion gibt einen Scheitelpunkt im Polygon an, für den ein Mosaik erstellt werden soll. Rufen Sie gluTessVertex für jeden Scheitelpunkt im Polygon auf. Der tessobj-Parameter der Funktion ist das zu verwendende Mosaikobjekt, v enthält die dreidimensionalen Scheitelpunktkoordinaten, und die Daten sind ein beliebiger Zeiger, der an den Rückruf gesendet wird, der GLU _ VERTEX zugeordnet ist. In der Regel enthalten Daten Scheitelpunktdaten, Texturkoordinaten, Farbinformationen oder alles, was die Anwendung möglicherweise benötigt.

Die gluNextContour-Funktion markiert den Anfang der nächsten Kontur, wenn mehrere Konturen die Grenze des Polygons bildet, das mosaikiert werden soll. Der Typparameter der Funktion kann GLU EXTERIOR, GLU _ INTERIOR, GLU _ CCW, GLU _ CW oder GLU _ UNKNOWN sein. _ Diese Konstanten dienen nur als Hinweise auf das Mosaik. Wenn Sie sie richtig finden, kann das Mosaik schneller gehen. Wenn sie falsch sind, werden sie ignoriert, und das Mosaik funktioniert weiterhin.

Bei einem Polygon mit Lücken ist eine Kontur die äußere Kontur, und die anderen sind innen. Wenn Sie gluNextContour nicht unmittelbar nach gluBeginPolygonaufrufen, wird davon ausgegangen, dass die erste Kontur vom Typ GLU _ EXTERIOR ist.

GLU _ CW und GLU _ CCW geben polygone im Uhrzeigersinn und gegen den Uhrzeigersinn an. Die Auswahl, welche im Uhrzeigersinn und welche gegen den Uhrzeigersinn sind, ist in drei Dimensionen willkürlich, aber in jeder Ebene gibt es zwei unterschiedliche Ausrichtungen: Verwenden Sie die Typen GLU _ CW und GLU _ CCW konsistent. Verwenden Sie GLU _ UNKNOWN, wenn Sie nicht wissen, welche Verwendet werden soll.

Die gluEndPolygon-Funktion gibt das Ende der Polygonspezifikation an. Es gibt auch an, dass das Mosaik mit der Verwendung des Mosaikobjekts tessobj beginnen kann.