Freigeben über


gluTessProperty-Funktion

Die Funktion gluTessProperty legt die Eigenschaft eines Tessellationsobjekts fest.

Syntax

void WINAPI gluTessProperty(
   GLUtesselator *tess,
   GLenum        which,
   GLdouble      value
);

Parameter

Tess

Das Tessellationsobjekt (erstellt mit gluNewTess).

welche

Der festzulegende Eigenschaftswert. Die folgenden Werte sind gültig: GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY und GLU_TESS_TOLERANCE.

Wert Bedeutung
GLU_TESS_WINDING_RULE
Bestimmt, welche Teile des Polygons sich im Inneren befinden. Der Wertparameter kann auf einen der folgenden Werte festgelegt werden: GLU_TESS_WINDING_ODD, GLU_TESS_WINDING_NONZERO, GLU_TESS_WINDING_POSITIVE, GLU_TESS_WINDING_NEGATIVE oder GLU_TESS_WINDING_ABS_GEQ_TWO.
Um zu verstehen, wie die Wicklungsregel funktioniert, sollten Sie zuerst berücksichtigen, dass die Eingabekonturen die Ebene in Regionen unterteilen. Die Wickelregel bestimmt, welche dieser Regionen sich innerhalb des Polygons befinden.
Für eine einzelne Kontur C ist die Wickelzahl eines Punkts x einfach die signierte Anzahl von Umdrehungen, die wir um x machen, wenn wir einmal um C herumfahren (wobei gegen den Uhrzeigersinn positiv ist). Wenn mehrere Konturen vorhanden sind, werden die einzelnen Wickelzahlen summiert. Bei dieser Prozedur wird jedem Punkt x auf der Ebene ein ganzzahliger Vorzeichenwert zugeordnet. Beachten Sie, dass die Wickelzahl für alle Punkte in einer einzelnen Region gleich ist.
Die Wicklungsregel klassifiziert eine Region als "innen", wenn ihre Wickelzahl zur ausgewählten Kategorie gehört (ungerade, nichtzero, positiv, negativ oder absoluter Wert von mindestens zwei). Der vorherige GLU-Tessellator (vor GLU 1.2) verwendete die "ungerade" Regel. Die "nonzero"-Regel (GLU_TESS_WINDING_NONZERO) ist eine weitere gängige Methode zum Definieren des Innenraums. Die anderen drei Regeln (GLU_TESS_WINDING_POSITIVE, GLU_TESS_WINDING_NEGATIVE, GLU_TESS_WINDING_ABS_GEQ_TWO) sind für Polygon-CSG-Vorgänge nützlich.
GLU_TESS_BOUNDARY_ONLY
Gibt einen booleschen Wert an (wert auf GL_TRUE oder GL_FALSE festlegen). Wenn Sie den Wert auf GL_TRUE festlegen, wird anstelle einer Tessellation ein Satz geschlossener Konturen zurückgegeben, die das Polygon innen und außen trennen. Außenkonturen sind gegen den Uhrzeigersinn im Hinblick auf die Normalität ausgerichtet; Innenkonturen sind im Uhrzeigersinn ausgerichtet. Die GLU_TESS_BEGIN- und GLU_TESS_BEGIN_DATA-Rückrufe verwenden den Typ GL_LINE_LOOP für jede Kontur.
GLU_TESS_TOLERANCE
Gibt eine Toleranz für zusammenführende Features an, um die Größe der Ausgabe zu reduzieren. Beispielsweise können zwei Scheitelpunkte, die sehr nahe beieinander liegen, durch einen einzelnen Scheitelpunkt ersetzt werden. Die Toleranz wird mit der größten Koordinatengröße eines Eingabevertex multipliziert; Dies gibt den maximalen Abstand an, den sich ein Feature als Ergebnis eines einzelnen Mergevorgangs verschieben kann. Wenn ein einzelnes Feature an mehreren Mergevorgängen teilnimmt, kann die gesamt verschobene Entfernung größer sein.
Das Zusammenführen von Features ist vollständig optional. die Toleranz ist nur ein Hinweis. Die Implementierung kann in einigen Fällen zusammenführen, in anderen nicht oder überhaupt keine Features zusammenführen. Die Standardtoleranz ist 0.
Die aktuelle Implementierung führt Scheitelpunkte nur zusammen, wenn sie genau zufällig sind, unabhängig von der aktuellen Toleranz. Ein Scheitelpunkt wird nur dann in eine Kante eingespleißt, wenn die Implementierung nicht unterscheiden kann, auf welcher Seite des Rands der Scheitelpunkt liegt. Zwei Kanten werden nur zusammengeführt, wenn beide Endpunkte identisch sind.

value

Der Wert der angegebenen Eigenschaft.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Die Funktion gluTessProperty steuert Eigenschaften, die in einem Tessellationsobjekt gespeichert sind. Diese Eigenschaften wirken sich auf die Art und Weise aus, wie die Polygone interpretiert und gerendert werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Glu.h
Bibliothek
Glu32.lib
DLL
Glu32.dll

Siehe auch

gluGetTessProperty

gluNewTess