1GLUNURBSSURFACE(3G) OpenGL Manual GLUNURBSSURFACE(3G)
2
3
4
6 gluNurbsSurface - define the shape of a NURBS surface
7
9 void gluNurbsSurface(GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots,
10 GLint tKnotCount, GLfloat* tKnots, GLint sStride,
11 GLint tStride, GLfloat* control, GLint sOrder,
12 GLint tOrder, GLenum type);
13
15 nurb
16 Specifies the NURBS object (created with gluNewNurbsRenderer()).
17
18 sKnotCount
19 Specifies the number of knots in the parametric u direction.
20
21 sKnots
22 Specifies an array of sKnotCount nondecreasing knot values in the
23 parametric u direction.
24
25 tKnotCount
26 Specifies the number of knots in the parametric v direction.
27
28 tKnots
29 Specifies an array of tKnotCount nondecreasing knot values in the
30 parametric v direction.
31
32 sStride
33 Specifies the offset (as a number of single-precision
34 floating-point values) between successive control points in the
35 parametric u direction in control.
36
37 tStride
38 Specifies the offset (in single-precision floating-point values)
39 between successive control points in the parametric v direction in
40 control.
41
42 control
43 Specifies an array containing control points for the NURBS surface.
44 The offsets between successive control points in the parametric u
45 and v directions are given by sStride and tStride.
46
47 sOrder
48 Specifies the order of the NURBS surface in the parametric u
49 direction. The order is one more than the degree, hence a surface
50 that is cubic in u has a u order of 4.
51
52 tOrder
53 Specifies the order of the NURBS surface in the parametric v
54 direction. The order is one more than the degree, hence a surface
55 that is cubic in v has a v order of 4.
56
57 type
58 Specifies type of the surface. type can be any of the valid
59 two-dimensional evaluator types (such as GLU_MAP2_VERTEX_3 or
60 GLU_MAP2_COLOR_4).
61
63 Use gluNurbsSurface within a NURBS (Non-Uniform Rational B-Spline)
64 surface definition to describe the shape of a NURBS surface (before any
65 trimming). To mark the beginning of a NURBS surface definition, use the
66 gluBeginSurface() command. To mark the end of a NURBS surface
67 definition, use the gluEndSurface() command. Call gluNurbsSurface
68 within a NURBS surface definition only.
69
70 Positional, texture, and color coordinates are associated with a
71 surface by presenting each as a separate gluNurbsSurface between a
72 gluBeginSurface()/gluEndSurface() pair. No more than one call to
73 gluNurbsSurface for each of color, position, and texture data can be
74 made within a single gluBeginSurface()/gluEndSurface() pair. Exactly
75 one call must be made to describe the position of the surface (a type
76 of GLU_MAP2_VERTEX_3 or GLU_MAP2_VERTEX_4).
77
78 A NURBS surface can be trimmed by using the commands gluNurbsCurve()
79 and gluPwlCurve() between calls to gluBeginTrim() and gluEndTrim().
80
81 Note that a gluNurbsSurface with sKnotCount knots in the u direction
82 and tKnotCount knots in the v direction with orders sOrder and tOrder
83 must have (sKnotCount - sOrder) times (tKnotCount - tOrder) control
84 points.
85
87 The following commands render a textured NURBS surface with normals;
88 the texture coordinates and normals are also NURBS surfaces:
89
90 gluBeginSurface(nobj);
91 gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2);
92 gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL);
93 gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4);
94 gluEndSurface(nobj);
95
96
97
99 gluBeginSurface(), gluBeginTrim(), gluNewNurbsRenderer(),
100 gluNurbsCurve(), gluPwlCurve()
101
103 Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed
104 under the SGI Free Software B License. For details, see
105 http://oss.sgi.com/projects/FreeB/.
106
108 opengl.org
109
110
111
112opengl.org 06/10/2014 GLUNURBSSURFACE(3G)