gluNurbsSurface

define the shape of a NURBS surface

Signature

gluNurbsSurface( GLUnurbs* ( nurb ) , GLint ( sKnotCount ) , GLfloat* ( sKnots ) , GLint ( tKnotCount ) , GLfloat* ( tKnots ) , GLint ( sStride ) , GLint ( tStride ) , GLfloat* ( control ) , GLint ( sOrder ) , GLint ( tOrder ) , GLenum ( type ) )-> void
gluNurbsSurface( nurb , sKnotCount , sKnots , tKnotCount , tKnots , sStride , tStride , control , sOrder , tOrder , type )
Pythonic version of gluNurbsSurface

    Calculates knotCount, stride, and order automatically
    

Parameters

VariablesDescription
nurb
Specifies the NURBS object (created with gluNewNurbsRenderer ).
sKnotCount
Specifies the number of knots in the parametric u direction.
sKnots
Specifies an array of sKnotCount nondecreasing knot values in the parametric u direction.
tKnotCount
Specifies the number of knots in the parametric v direction.
tKnots
Specifies an array of tKnotCount nondecreasing knot values in the parametric v direction.
sStride
Specifies the offset (as a number of single-precision floating-point values) between successive control points in the parametric u direction in control .
tStride
Specifies the offset (in single-precision floating-point values) between successive control points in the parametric v direction in control .
control
Specifies an array containing control points for the NURBS surface. The offsets between successive control points in the parametric u and v directions are given by sStride and tStride .
sOrder
Specifies the order of the NURBS surface in the parametric u direction. The order is one more than the degree, hence a surface that is cubic in u has a u order of 4.
tOrder
Specifies the order of the NURBS surface in the parametric v direction. The order is one more than the degree, hence a surface that is cubic in v has a v order of 4.
type
Specifies type of the surface. type can be any of the valid two-dimensional evaluator types (such as GLU_MAP2_VERTEX_3 or GLU_MAP2_COLOR_4 ).

Description

Use gluNurbsSurface within a NURBS (Non-Uniform Rational B-Spline) surface definition to describe the shape of a NURBS surface (before any trimming). To mark the beginning of a NURBS surface definition, use the gluBeginSurface command. To mark the end of a NURBS surface definition, use the gluEndSurface command. Call gluNurbsSurface within a NURBS surface definition only.
Positional, texture, and color coordinates are associated with a surface by presenting each as a separate gluNurbsSurface between a gluBeginSurface / gluEndSurface pair. No more than one call to gluNurbsSurface for each of color, position, and texture data can be made within a single gluBeginSurface / gluEndSurface pair. Exactly one call must be made to describe the position of the surface (a type of GLU_MAP2_VERTEX_3 or GLU_MAP2_VERTEX_4 ).
A NURBS surface can be trimmed by using the commands gluNurbsCurve and gluPwlCurve between calls to gluBeginTrim and gluEndTrim .
Note that a gluNurbsSurface with sKnotCount knots in the u direction and tKnotCount knots in the v direction with orders sOrder and tOrder must have ( sKnotCount - sOrder ) times ( tKnotCount - tOrder ) control points.

Example

The following commands render a textured NURBS surface with normals; the texture coordinates and normals are also NURBS surfaces:
gluBeginSurface(nobj); gluNurbsSurface(nobj, ..., GL_MAP2_TEXTURE_COORD_2); gluNurbsSurface(nobj, ..., GL_MAP2_NORMAL); gluNurbsSurface(nobj, ..., GL_MAP2_VERTEX_4); gluEndSurface(nobj);

See Also

Sample Code References

The following code samples have been found which appear to reference the functions described here. Take care that the code may be old, broken or not even use PyOpenGL.

gluNurbsSurface
OpenGLContext OpenGLContext/scenegraph/nurbs.py Lines: 194, 201
OpenGLContext tests/redbook_surface.py Lines: 77
OpenGLContext tests/redbook_trim.py Lines: 104
OpenGLContext tests/redbook_surface_cb.py Lines: 96
OpenGL-Demo PyOpenGL-Demo/proesch/nurbs/nurbs.py Lines: 117
OpenGL-Demo PyOpenGL-Demo/GLUT/molehill.py Lines: 149, 150, 156, 157, 163, 164, 170, 171

MathML Rendering

Powered by MathJax