gluNurbsProperty

Aus DGL Wiki
(Weitergeleitet von GluNurbsProperty)
Wechseln zu: Navigation, Suche

gluNurbsProperty

Name

gluNurbsProperty - setzt eine Eigenschaft eines NURBS-Objekts.


Delphi-Spezifikation

procedure gluNurbsProperty(nobj: PGLUnurbs; aproperty: TGLEnum; value: TGLfloat);


Parameter

nobj Das NURBS-Objekt dessen Eigenschaften verändert werden sollen. (Erstellt mit gluNewNurbsRenderer)
aproperty Gibt die Eigenschaft an, die geändert werden soll. Akzeptiert werden:
GLU_SAMPLING_TOLERANCE, GLU_DISPLAY_MODE, GLU_CULLING, GLU_AUTO_LOAD_MATRIX, GLU_PARAMETRIC_TOLERANCE, GLU_SAMPLING_METHOD, GLU_U_STEP, und GLU_V_STEP
value Gibt den Wert an, auf den die Eigenschaft gesetzt werden soll.

value kann ein numerischer Wert oder einer der folgenden sein.

GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR, oder GLU_DOMAIN_DISTANCE



Beschreibung

gluNurbsProperty wird benutzt um die Eigenschaften des NURBS-Objekts zu steuern. Diese Eigenschaften beeinflussen die Art und Weise wie die NURBS-Kurve gerendert wird.
Gültige Werte für property sind folgende:

GLU_SAMPLING_TOLERANCE

Gibt die maximale Länge in Pixeln an, die benutzt werden soll, wenn die Samplingmethode auf GLU_PATH_LENGHT gesetzt wurde.
Der Vorgabewert ist 50.0 Pixel.

GLU_DISPLAY_MODE

Der Parameter value definiert wie eine NURBS-Oberfläche gerendert werden soll.
value akzeptiert GLU_FILL, GLU_OUTLINE_POLYGON, oder GLU_OUTLINE_PATCH.
Bei GLU_FILL wird die Oberfläche als eine Menge von Polygonen gezeichnet.
GLU_OUTLINE_POLYGONE weißt die NURBS-Bibiothek an, nur die Umrandungen der Polygone (die bei der Tesselierung entstehen) zu zeichnen.
GLU_OUTLINE_PATCH sorgt dafür, dass nur die Umrandung der Abschnitte und Trimkurven (trim curves), die der Nutzer definiert hat, gezeichnet werden.
Vorgabewert ist GLU_FILL.

GLU_CULLING

value ist ein Boolean wert der, wenn auf GL_TRUE gesetzt, angibt, dass NURBS Kurven bereits vor der Tesselierung verworfen werden können, wenn die Kontrollpunkte außerhalb des momentanen Viewports liegen.
Der Vorgabewert ist GL_FALSE (weil eine NURBS-Kurve nicht komplett innerhalb der konvexen Hülle (festgelegt durch die Kontrollpunkte) liegen kann).

GLU_PARAMETRIC_TOLERANCE

Gibt den maximalen Abstand, in Pixeln, an, der benutzt werden soll wenn die Samplingmethode GLU_PARAMETRIC_ERROR ist.
Vorgabewert ist 0.5.

GLU_SAMPLING_METHOD

Gibt an wie ein NURBS-Objekt tesseliert werden soll.
GLU_SAMPLING_METHOD kann drei Werte annehmen:
GLU_PATH_LENGHT
Legt fest, dass die Flächen, die mit der maximalen Länge - angegeben in Pixeln, gemessen ab den Ecken der tessellierten Polygonen - gerendert wurden, nicht größer als der Wert sind, der durch GLU_PARAMETRIC_TOLERANCE angegeben ist.
GLU_PARAMETRIC_ERROR
Legt fest, dass die Fläche mit dem Wert von GLU_PARAMETRIC_TOLERANCE gerendert wird. Diese Konstante gibt die maximale Distanz, in Pixel gerechnet, zwischen den tessellierten Polygonen und den entsprechenden Flächen an.
GLU_DOMAIN_DISTANCE
Gibt an, wie viele Punkte in den u und v-Richtungen angenommen werden. Die Angabe erfolgt in Parametrischen-Koordinaten.
Der Vorgabewert ist GLU_PATH_LENGTH.

GLU_U_STEP

Gibt die Anzahl der Punkte an, die in u-Richtung angenommen werden. Der Wert von GLU_U_STEP wird verwendet, wennn GLU_SAMPLING_METHOD auf GLU_DOMAIN_DISTANCE gesetzt wird. Der Standard-Wert ist 100.

GLU_V_STEP

Gibt die Anzahl der Punkte an, die in v-Richtung angenommen werden. Der Wert von GLU_V_STEP wird verwendet, wennn GLU_SAMPLING_METHOD auf GLU_DOMAIN_DISTANCE gesetzt wird. Der Standard-Wert ist 100.

GLU_AUTO_LOAD_MATRIX

value ist ein Booleanwert mit folgender Bedeutung.
Wenn er GL_TRUE ist, lädt der NURBS-Code die Projektions- und Modelviewmatrix sowie den Viewport vom OpenGL Server um die Sampling- und Cullingmatrizen zu berechnen, die jede NURBS-Kurve benutzen soll, die gezeichnet wird.
Sampling- und Cullingmatrizen werden benötigt um die Tesselierung einer NURBS-Oberfläche in Linien oder Polygone, bzw. das Culling der NURBS-Oberfläche, wenn diese sich außerhalb des Viewport/ Sichtbereichs befindet, durchzuführen.
Wenn value GL_FALSE gesetzt wird, muss der User selbst die genannten Matrizen dem NURBS-Renderer zur verfügung stellen, damit dieser die Sampling- bzw. Cullingmatrizen konstruieren kann.
Dieses kann mit der gluLoadSamplingMatrices Funktion gemacht werden.
Eine Änderung von GL_TRUE auf GL_FALSE wirkt sich solange nicht auf die Sampling- bzw. Cullingmatrix aus, bis gluLoadSamplingMatrices aufgerufen wurde.
Vorgabewert ist GL_TRUE.



Hinweise

Die folgenden Parameter für aproperty werden erst ab GLU Version 1.1 oder später unterstützt:

GLU_PARAMETRIC_TOLERANCE, GLU_SAMPLING_METHOD, GLU_U_STEP, und GLU_V_STEP

Die folgenden Parameter für value werden erst ab GLU Version 1.1 oder später unterstützt:

GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR, GLU_DOMAIN_DISTANCE


Siehe auch

gluGetNurbsProperty, gluGetString, gluLoadSamplingMatrices, gluNewNurbsRenderer

Hintergrundwissen: NURBS