nurb:SetProperty(property, value)
property
sind wie folgt:
#GLU_NURBS_MODE
value
sollte so eingestellt werden, dass es entweder #GLU_NURBS_RENDERER
oder
#GLU_NURBS_TESSELLATOR
ist. Wenn es auf #GLU_NURBS_RENDERER
eingestellt ist,
werden NURBS-Objekte in OpenGL-Grundmuster tesselliert und zum Rendern an die
Leitung gesendet. Wenn es auf #GLU_NURBS_TESSELLATOR
eingestellt ist, werden
NURBS-Objekte in OpenGL-Grundmuster tesselliert, die Knoten, Normalen,
Farben und/oder Texturen über eine Callback-Schnittstelle abgerufen
(siehe nurb:Callback()). Dies ermöglicht es dem Benutzer, das
tessellierte Ergebnisse zur weiteren Verarbeitung zwischenzuspeichern. Der
Initialwert ist #GLU_NURBS_RENDERER
.
#GLU_SAMPLING_METHOD
value
kann
#GLU_PATH_LENGTH
, #GLU_PARAMETRIC_ERROR
, #GLU_DOMAIN_DISTANCE
,
#GLU_OBJECT_PATH_LENGTH
oder #GLU_OBJECT_PARAMETRIC_ERROR
sein. Wenn
#GLU_PATH_LENGTH
gesetzt ist, wird die Oberfläche so gerendert, dass die
maximale Länge der Kanten der Tesselierungspolygone in Pixeln nicht größer
ist als das, was durch #GLU_SAMPLING_TOLERANCE
angegeben wird.
#GLU_PARAMETRIC_ERROR
gibt an, dass die Oberfläche so gerendert wird, dass
der durch #GLU_PARAMETRIC_TOLERANCE
angegebene Wert den maximalen Abstand
in Pixeln zwischen den Mosaikpolygonen und den von ihnen angenäherten
Oberflächen beschreibt.
#GLU_DOMAIN_DISTANCE
ermöglicht es dem Benutzer, in parametrischen Koordinaten
anzugeben, wie viele Abtastpunkte pro Längeneinheit in u-, v-Richtung genommen
werden.
#GLU_OBJECT_PATH_LENGTH
ist ähnlich wie #GLU_PATH_LENGTH
, nur dass die Ansicht
unabhängig ist, d.h. die Oberfläche wird so gerendert, dass die maximale Länge
der Kanten der Tesselierungspolygone im Objektraum nicht größer ist als das,
was durch #GLU_SAMPLING_TOLERANCE
angegeben wird.
#GLU_OBJECT_PARAMETRIC_ERROR
ist ähnlich wie #GLU_PARAMETRIC_ERROR
, mit
der Ausnahme, dass die Ansicht unabhängig ist, d.h. die Oberfläche wird so
gerendert, dass der durch #GLU_PARAMETRIC_TOLERANCE
angegebene Wert den
maximalen Abstand im Objektraum zwischen den Mosaikpolygonen und den von
ihnen angenäherten Oberflächen beschreibt.
Der Initialwert von #GLU_SAMPLING_METHOD
ist #GLU_PATH_LENGTH
.
#GLU_SAMPLING_TOLERANCE
#GLU_PATH_LENGTH
oder
#GLU_OBJECT_PATH_LENGTH
gesetzt ist. Der NURBS-Code ist bei der Darstellung
einer Kurve oder Fläche konservativ, so dass die tatsächliche Länge etwas
kürzer sein kann. Der Anfangswert beträgt 50,0 Pixel.
#GLU_PARAMETRIC_TOLERANCE
#GLU_PARAMETRIC_ERROR
oder
#GLU_OBJECT_PARAMETRIC_ERROR
ist. Der Anfangswert ist 0,5.
#GLU_U_STEP
#GLU_SAMPLING_METHOD
auf #GLU_DOMAIN_DISTANCE
gesetzt ist. Der Anfangswert ist 100.
#GLU_V_STEP
#GLU_SAMPLING_METHOD
auf #GLU_DOMAIN_DISTANCE
gesetzt ist. Der Anfangswert ist 100.
#GLU_DISPLAY_MODE
value
kann auf #GLU_OUTLINE_POLYGON
, #GLU_FILL
oder #GLU_OUTLINE_PATCH
gesetzt werden.
Wenn #GLU_NURBS_MODE
auf #GLU_NURBS_RENDERER
gesetzt ist, definiert value
,
wie eine NURBS-Oberfläche gerendert werden soll. Wenn value
auf #GLU_FILL
gesetzt ist, wird die Oberflächen-Option als ein Satz von Polygonen dargestellt.
Wenn der Wert auf #GLU_OUTLINE_POLYGON
gesetzt ist, zeichnet die NURBS-Bibliothek
nur die Umrisse der Polygone, die durch Tesselierung erzeugt wurden. Wenn
der Wert auf #GLU_OUTLINE_PATCH
gesetzt ist, werden nur die Umrisse vom
Benutzer definierten Patches und Trimmkurven gezeichnet.
Wenn #GLU_NURBS_MODE
auf #GLU_NURBS_TESSELLATOR
gesetzt ist, definiert value
,
wie eine NURBS-Oberfläche tesselliert werden soll. Wenn #GLU_DISPLAY_MODE
auf
#GLU_FILL
oder #GLU_OUTLINE_POLYGON
gesetzt ist, wird die NURBS-Oberfläche
in OpenGL-Dreieck-Grundmuster tesselliert, die durch Callback-Funktionen
zurückgeholt werden können. Wenn #GLU_DISPLAY_MODE
auf #GLU_OUTLINE_PATCH
gesetzt ist, werden nur die Umrisse der Patches und Trimmkurven als eine
Folge von Linienstreifen erzeugt, die über Callback-Funktionen abgerufen
werden können.
Der Initialwert ist #GLU_FILL
.
#GLU_CULLING
value
ist ein boolescher Wert, der, wenn er auf #GLU_TRUE
gesetzt ist,
anzeigt, dass eine NURBS-Kurve vor der Tesselierung verworfen werden sollte,
wenn ihre Kontrollpunkte außerhalb des aktuellen Ansichtsfensters liegen.
Der Initialwert ist #GLU_FALSE
.
#GLU_AUTO_LOAD_MATRIX
value
ist ein boolescher Wert. Wenn er auf #GLU_TRUE
gesetzt ist, lädt
der NURBS-Code die Projektionsmatrix, die Modellansichtsmatrix und
das Ansichtsfenster vom GL-Server herunter, um Sample- und
Selektionsmatrizen für jede gerenderte NURBS-Kurve zu berechnen.
Sample- und Selektionsmatrizen sind erforderlich, um die
Tesselierung einer NURBS-Oberfläche in Liniensegmente oder Polygone
zu bestimmen und eine NURBS-Oberfläche zu selektieren, wenn sie
außerhalb des Darstellungsbereichs liegt.
Wenn dieser Modus auf #GLU_FALSE
eingestellt ist, muss das Programm
eine Projektionsmatrix, eine Modelansichts-Matrix, bereitstellen und ein
Ansichtsfenster für den NURBS-Renderer, mit dem Sample- und
Selektionsmatrizen konstruiert werden können. Dies kann mit dem Befehl
nurb:LoadSamplingMatrices() geschehen.
Dieser Modus ist zunächst auf #GLU_TRUE
eingestellt. Das
Ändern von #GLU_TRUE
auf #GLU_FALSE
hat keinen Einfluss auf die
Sample- und Selektionsmatrizen bis
nurb:LoadSamplingMatrices()
aufgerufen wird.
Wenn #GLU_AUTO_LOAD_MATRIX
True
ist, kann es vorkommen, dass das Samplen
und Selektieren falsch ausgeführt wird, wenn NURBS-Routinen in eine
Display-Liste kompiliert werden.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.