gluTessProperty: Unterschied zwischen den Versionen
Aus DGL Wiki
DGLBot (Diskussion | Beiträge) K (GluTessProperty wurde nach gluTessProperty verschoben) |
K (Wiki-Syntax für Tabelle, Hinweis zu "Unvollständig" ergänzt.) |
||
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | {{Unvollständig}} | + | {{Unvollständig|Der Artikel muss noch fertig übersetzt werden, siehe Abschnitt Beschreibung, '''GLU_TESS_WINDING_RULE'''.}} |
= gluTessProperty = | = gluTessProperty = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
− | '''gluTessProperty''' - | + | '''gluTessProperty''' - Legt Eigenschaften eines Tesselierungsobjektes fest. |
+ | |||
+ | |||
− | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
procedure '''gluTessProperty'''(''tess'': PGLUtesselator; ''which'': TGLEnum; ''value'': TGLdouble); | procedure '''gluTessProperty'''(''tess'': PGLUtesselator; ''which'': TGLEnum; ''value'': TGLdouble); | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
− | + | {| border=1 rules=all | |
− | + | ! ''tess'' | |
− | + | | Bestimmt ein Tesselierungsobjekt (erstellt mit [[gluNewTess]]). | |
− | + | |- | |
− | + | ! ''which'' | |
− | + | | Bestimmt die Eigenschaft, die geändert werden soll. Akzeptiert werden:<br> | |
− | + | '''GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY,''' und '''GLU_TESS_TOLERANCE'''. | |
− | + | |- | |
− | '''GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY,''' und '''GLU_TESS_TOLERANCE'''. | + | ! ''value'' |
− | + | | Beschreibt den neuen Wert auf den die ausgewählte Eigenschaft gesetzt werden soll. | |
− | + | |} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | == Beschreibung == | + | |
− | '''gluTessProperty''' steuert die Eigenschaften die in einem Tesselierungsobjekt abgespeichert sind. Die Eigenschaften beeinflussen die Art und Weise in der die Polygone interpretiert und gerendert werden. | + | == Beschreibung == |
+ | '''gluTessProperty''' steuert die Eigenschaften die in einem Tesselierungsobjekt abgespeichert sind. Die Eigenschaften beeinflussen die Art und Weise in der die Polygone interpretiert und gerendert werden. | ||
+ | |||
Akzeptiert werden folgende Werte: | Akzeptiert werden folgende Werte: | ||
Zeile 44: | Zeile 44: | ||
</i></b> | </i></b> | ||
'''GLU_TESS_BOUNDARY_ONLY''' | '''GLU_TESS_BOUNDARY_ONLY''' | ||
− | : Definiert einen booleschen Wert(sollte auf '''GL_TRUE''' oder '''GL_FALSE''' gesetzt sein). Ist er auf '''GL_TRUE''' gesetzt, so werden anstatt einer [[Tesselierung]] eine Menge von geschlossenen Konturen/Umrissen, die das Innere vom Äusseren des Polygons trennen, zurückgegeben. Die äußeren Umrisse sind gegen den Uhrzeigersinn angeordnet und berücksichtigen die Normale, die inneren sind im Uhrzeigersinn ausgerichtet. Die [[Callback]]s GLU_TESS_BEGIN und GLU_TESS_BEGIN_DATA benutzen den GL_LINE_LOOP-Typ für die einzelnen Konturen. | + | : Definiert einen booleschen Wert(''value'' sollte auf '''GL_TRUE''' oder '''GL_FALSE''' gesetzt sein). Ist er auf '''GL_TRUE''' gesetzt, so werden anstatt einer [[Tesselierung]] eine Menge von geschlossenen Konturen/Umrissen, die das Innere vom Äusseren des Polygons trennen, zurückgegeben. Die äußeren Umrisse sind gegen den Uhrzeigersinn angeordnet und berücksichtigen die Normale, die inneren sind im Uhrzeigersinn ausgerichtet. Die [[Callback]]s GLU_TESS_BEGIN und GLU_TESS_BEGIN_DATA benutzen den GL_LINE_LOOP-Typ für die einzelnen Konturen. |
− | |||
− | |||
− | |||
'''GLU_TESS_TOLERANCE''' | '''GLU_TESS_TOLERANCE''' | ||
− | : Bestimmt eine Toleranz | + | : Bestimmt eine Toleranz Merkmale zu mischen um die Größe des Outputs reduzieren. Zum Beispiel können zwei Vertices, die sehr nahe aneinenader liegen, durch einen einzelnen [[Vertex]] ersetzt werden. Die Toleranz wird mit dem größten Koordinatenausmaß aller Input-Vertices multipliziert; das Ergebnis bestimmt die maximale Entfernung um die jedes Merkmal als Ergebnis einer einzelnen Verschmelzungsoperation verschoben werden kann. Wenn ein einzelnens Merkmal an mehreren Verschmelzungsvorgängen teilnimmt, so kann die Verschiebungsdistanz insgesamt größer sein. Merkmalsverschmelzung ist komplett optional; die Toleranz ist nur ein Hinweis. Die Implementation darf frei verschmelzen, oder gar nicht verschmelzen. Standardmäßig ist die Toleranz 0. |
: Die aktuelle Implementation verschmelzt Vertices nur wenn sie exakt übereinstimmen, ohne die aktuelle Toleranz zu berücksichtigen. Ein Vertex wird nur zu einer Kante verbunden, wenn die Implemenation nicht unterscheiden kann, auf welcher Seite der Kante das Vertex liegt. Zwei Kanten werden nur verschmolzen, wenn beide Endpunkte identisch sind. | : Die aktuelle Implementation verschmelzt Vertices nur wenn sie exakt übereinstimmen, ohne die aktuelle Toleranz zu berücksichtigen. Ein Vertex wird nur zu einer Kante verbunden, wenn die Implemenation nicht unterscheiden kann, auf welcher Seite der Kante das Vertex liegt. Zwei Kanten werden nur verschmolzen, wenn beide Endpunkte identisch sind. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | + | == Zugehörige Wertrückgaben == |
[[gluGetTessProperty]] | [[gluGetTessProperty]] | ||
+ | |||
Aktuelle Version vom 6. Juni 2008, 14:09 Uhr
(Mehr Informationen/weitere Artikel) Der Artikel muss noch fertig übersetzt werden, siehe Abschnitt Beschreibung, GLU_TESS_WINDING_RULE. |
Inhaltsverzeichnis
gluTessProperty
Name
gluTessProperty - Legt Eigenschaften eines Tesselierungsobjektes fest.
Delphi-Spezifikation
procedure gluTessProperty(tess: PGLUtesselator; which: TGLEnum; value: TGLdouble);
Parameter
tess | Bestimmt ein Tesselierungsobjekt (erstellt mit gluNewTess). |
---|---|
which | Bestimmt die Eigenschaft, die geändert werden soll. Akzeptiert werden: GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY, und GLU_TESS_TOLERANCE. |
value | Beschreibt den neuen Wert auf den die ausgewählte Eigenschaft gesetzt werden soll. |
Beschreibung
gluTessProperty steuert die Eigenschaften die in einem Tesselierungsobjekt abgespeichert sind. Die Eigenschaften beeinflussen die Art und Weise in der die Polygone interpretiert und gerendert werden.
Akzeptiert werden folgende Werte:
GLU_TESS_WINDING_RULE
- Bestimmt welche Teile des Polygons "innen" sind.
- value sollte dabei einen der folgenden Werte besitzen:
- GLU_TESS_WINDING_ODD, GLU_TESS_WINDING_NONZERO, GLU_TESS_WINDING_POSITIVE, oder GLU_TESS_WINDING_NEGATIVE, oder GLU_TESS_WINDING_ABS_GEQ_TWO.
- To understand how the winding rule works, first consider that the input contours partition the plane into regions. The winding rule determines which of these regions are inside the polygon.
- For a single contour C, the winding number of a point x is simply the signed number of revolutions we make around x as we travel once around C (where counterclockwise is positive). When there are several contours, the individual winding numbers are summed. This procedure associates a signed integer value with each point x in the plane. Note that the winding number is the same for all points in a single region.The winding rule classifies a region as "inside" if its winding number belongs to the chosen category (odd, non-zero, positive, negative, or absolute value of at least two). The previous GLU tessellator (prior to GLU 1.2) used the "odd" rule. The "non-zero" rule is another common way to define the interior. The other three rules are useful for polygon CSG operations.
GLU_TESS_BOUNDARY_ONLY
- Definiert einen booleschen Wert(value sollte auf GL_TRUE oder GL_FALSE gesetzt sein). Ist er auf GL_TRUE gesetzt, so werden anstatt einer Tesselierung eine Menge von geschlossenen Konturen/Umrissen, die das Innere vom Äusseren des Polygons trennen, zurückgegeben. Die äußeren Umrisse sind gegen den Uhrzeigersinn angeordnet und berücksichtigen die Normale, die inneren sind im Uhrzeigersinn ausgerichtet. Die Callbacks GLU_TESS_BEGIN und GLU_TESS_BEGIN_DATA benutzen den GL_LINE_LOOP-Typ für die einzelnen Konturen.
GLU_TESS_TOLERANCE
- Bestimmt eine Toleranz Merkmale zu mischen um die Größe des Outputs reduzieren. Zum Beispiel können zwei Vertices, die sehr nahe aneinenader liegen, durch einen einzelnen Vertex ersetzt werden. Die Toleranz wird mit dem größten Koordinatenausmaß aller Input-Vertices multipliziert; das Ergebnis bestimmt die maximale Entfernung um die jedes Merkmal als Ergebnis einer einzelnen Verschmelzungsoperation verschoben werden kann. Wenn ein einzelnens Merkmal an mehreren Verschmelzungsvorgängen teilnimmt, so kann die Verschiebungsdistanz insgesamt größer sein. Merkmalsverschmelzung ist komplett optional; die Toleranz ist nur ein Hinweis. Die Implementation darf frei verschmelzen, oder gar nicht verschmelzen. Standardmäßig ist die Toleranz 0.
- Die aktuelle Implementation verschmelzt Vertices nur wenn sie exakt übereinstimmen, ohne die aktuelle Toleranz zu berücksichtigen. Ein Vertex wird nur zu einer Kante verbunden, wenn die Implemenation nicht unterscheiden kann, auf welcher Seite der Kante das Vertex liegt. Zwei Kanten werden nur verschmolzen, wenn beide Endpunkte identisch sind.
Zugehörige Wertrückgaben