1GLUNURBSPROPERTY(3G) OpenGL Manual GLUNURBSPROPERTY(3G)
2
3
4
6 gluNurbsProperty - set a NURBS property
7
9 void gluNurbsProperty(GLUnurbs* nurb, GLenum property, GLfloat value);
10
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
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
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
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
170 opengl.org
171
172
173
174opengl.org 07/13/2018 GLUNURBSPROPERTY(3G)