1GLUNURBSPROPERTY(3G)             OpenGL Manual            GLUNURBSPROPERTY(3G)
2
3
4

NAME

6       gluNurbsProperty - set a NURBS property
7

C SPECIFICATION

9       void gluNurbsProperty(GLUnurbs* nurb, GLenum property, GLfloat value);
10

PARAMETERS

12       nurb
13           Specifies the NURBS object (created with gluNewNurbsRenderer()).
14
15       property
16           Specifies the property to be set. Valid values are
17           GLU_SAMPLING_TOLERANCE, GLU_DISPLAY_MODE, GLU_CULLING,
18           GLU_AUTO_LOAD_MATRIX, GLU_PARAMETRIC_TOLERANCE,
19           GLU_SAMPLING_METHOD, GLU_U_STEP, GLU_V_STEP, or GLU_NURBS_MODE.
20
21       value
22           Specifies the value of the indicated property. It may be a numeric
23           value or one of GLU_OUTLINE_POLYGON, GLU_FILL, GLU_OUTLINE_PATCH,
24           GLU_TRUE, GLU_FALSE, GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR,
25           GLU_DOMAIN_DISTANCE, GLU_NURBS_RENDERER, or GLU_NURBS_TESSELLATOR.
26

DESCRIPTION

28       gluNurbsProperty is used to control properties stored in a NURBS
29       object. These properties affect the way that a NURBS curve is rendered.
30       The accepted values for property are as follows:
31
32       GLU_NURBS_MODE
33           value should be set to be either GLU_NURBS_RENDERER or
34           GLU_NURBS_TESSELLATOR. When set to GLU_NURBS_RENDERER, NURBS
35           objects are tessellated into OpenGL primitives and sent to the
36           pipeline for rendering. When set to GLU_NURBS_TESSELLATOR, NURBS
37           objects are tessellated into OpenGL primitives but the vertices,
38           normals, colors, and/or textures are retrieved back through a
39           callback interface (see gluNurbsCallback()). This allows the user
40           to cache the tessellated results for further processing. The
41           initial value is GLU_NURBS_RENDERER.
42
43       GLU_SAMPLING_METHOD
44           Specifies how a NURBS surface should be tessellated.  value may be
45           one of GLU_PATH_LENGTH, GLU_PARAMETRIC_ERROR, GLU_DOMAIN_DISTANCE,
46           GLU_OBJECT_PATH_LENGTH, or GLU_OBJECT_PARAMETRIC_ERROR. When set to
47           GLU_PATH_LENGTH, the surface is rendered so that the maximum
48           length, in pixels, of the edges of the tessellation polygons is no
49           greater than what is specified by GLU_SAMPLING_TOLERANCE.
50
51           GLU_PARAMETRIC_ERROR specifies that the surface is rendered in such
52           a way that the value specified by GLU_PARAMETRIC_TOLERANCE
53           describes the maximum distance, in pixels, between the tessellation
54           polygons and the surfaces they approximate.
55
56           GLU_DOMAIN_DISTANCE allows users to specify, in parametric
57           coordinates, how many sample points per unit length are taken in u,
58           v direction.
59
60           GLU_OBJECT_PATH_LENGTH is similar to GLU_PATH_LENGTH except that it
61           is view independent; that is, the surface is rendered so that the
62           maximum length, in object space, of edges of the tessellation
63           polygons is no greater than what is specified by
64           GLU_SAMPLING_TOLERANCE.
65
66           GLU_OBJECT_PARAMETRIC_ERROR is similar to GLU_PARAMETRIC_ERROR
67           except that it is view independent; that is, the surface is
68           rendered in such a way that the value specified by
69           GLU_PARAMETRIC_TOLERANCE describes the maximum distance, in object
70           space, between the tessellation polygons and the surfaces they
71           approximate.
72
73           The initial value of GLU_SAMPLING_METHOD is GLU_PATH_LENGTH.
74
75       GLU_SAMPLING_TOLERANCE
76           Specifies the maximum length, in pixels or in object space length
77           unit, to use when the sampling method is set to GLU_PATH_LENGTH or
78           GLU_OBJECT_PATH_LENGTH. The NURBS code is conservative when
79           rendering a curve or surface, so the actual length can be somewhat
80           shorter. The initial value is 50.0 pixels.
81
82       GLU_PARAMETRIC_TOLERANCE
83           Specifies the maximum distance, in pixels or in object space length
84           unit, to use when the sampling method is GLU_PARAMETRIC_ERROR or
85           GLU_OBJECT_PARAMETRIC_ERROR. The initial value is 0.5.
86
87       GLU_U_STEP
88           Specifies the number of sample points per unit length taken along
89           the u axis in parametric coordinates. It is needed when
90           GLU_SAMPLING_METHOD is set to GLU_DOMAIN_DISTANCE. The initial
91           value is 100.
92
93       GLU_V_STEP
94           Specifies the number of sample points per unit length taken along
95           the v axis in parametric coordinate. It is needed when
96           GLU_SAMPLING_METHOD is set to GLU_DOMAIN_DISTANCE. The initial
97           value is 100.
98
99       GLU_DISPLAY_MODE
100           value can be set to GLU_OUTLINE_POLYGON, GLU_FILL, or
101           GLU_OUTLINE_PATCH. When GLU_NURBS_MODE is set to be
102           GLU_NURBS_RENDERER, value defines how a NURBS surface should be
103           rendered. When value is set to GLU_FILL, the surface is rendered as
104           a set of polygons. When value is set to GLU_OUTLINE_POLYGON, the
105           NURBS library draws only the outlines of the polygons created by
106           tessellation. When value is set to GLU_OUTLINE_PATCH just the
107           outlines of patches and trim curves defined by the user are drawn.
108
109           When GLU_NURBS_MODE is set to be GLU_NURBS_TESSELLATOR, value
110           defines how a NURBS surface should be tessellated. When
111           GLU_DISPLAY_MODE is set to GLU_FILL or GLU_OUTLINE_POLYGON, the
112           NURBS surface is tessellated into OpenGL triangle primitives that
113           can be retrieved back through callback functions. If
114           GLU_DISPLAY_MODE is set to GLU_OUTLINE_PATCH, only the outlines of
115           the patches and trim curves are generated as a sequence of line
116           strips that can be retrieved back through callback functions.
117
118           The initial value is GLU_FILL.
119
120       GLU_CULLING
121           value is a boolean value that, when set to GLU_TRUE, indicates that
122           a NURBS curve should be discarded prior to tessellation if its
123           control points lie outside the current viewport. The initial value
124           is GLU_FALSE.
125
126       GLU_AUTO_LOAD_MATRIX
127           value is a boolean value. When set to GLU_TRUE, the NURBS code
128           downloads the projection matrix, the modelview matrix, and the
129           viewport from the GL server to compute sampling and culling
130           matrices for each NURBS curve that is rendered. Sampling and
131           culling matrices are required to determine the tessellation of a
132           NURBS surface into line segments or polygons and to cull a NURBS
133           surface if it lies outside the viewport.
134
135           If this mode is set to GLU_FALSE, then the program needs to provide
136           a projection matrix, a modelview matrix, and a viewport for the
137           NURBS renderer to use to construct sampling and culling matrices.
138           This can be done with the gluLoadSamplingMatrices() function. This
139           mode is initially set to GLU_TRUE. Changing it from GLU_TRUE to
140           GLU_FALSE does not affect the sampling and culling matrices until
141           gluLoadSamplingMatrices() is called.
142

NOTES

144       If GLU_AUTO_LOAD_MATRIX is true, sampling and culling may be executed
145       incorrectly if NURBS routines are compiled into a display list.
146
147       A property of GLU_PARAMETRIC_TOLERANCE, GLU_SAMPLING_METHOD,
148       GLU_U_STEP, or GLU_V_STEP, or a value of GLU_PATH_LENGTH,
149       GLU_PARAMETRIC_ERROR, GLU_DOMAIN_DISTANCE are only available if the GLU
150       version is 1.1 or greater. They are not valid parameters in GLU 1.0.
151
152       gluGetString() can be used to determine the GLU version.
153
154       GLU_NURBS_MODE is only available if the GLU version is 1.3 or greater.
155
156       The GLU_OBJECT_PATH_LENGTH and GLU_OBJECT_PARAMETRIC_ERROR values for
157       the GLU_SAMPLING_METHOD property are only available if the GLU version
158       is 1.3 or greater.
159

SEE ALSO

161       gluGetNurbsProperty(), gluGetString(), gluLoadSamplingMatrices(),
162       gluNewNurbsRenderer(), gluNurbsCallback()
163
165       Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed
166       under the SGI Free Software B License. For details, see
167       http://oss.sgi.com/projects/FreeB/.
168

AUTHORS

170       opengl.org
171
172
173
174opengl.org                        07/13/2018              GLUNURBSPROPERTY(3G)
Impressum