📄 fglunurbssurface.html
字号:
<HTML><BODY><PRE> <STRONG>NAME</STRONG> <STRONG>fgluNurbsSurface</STRONG> - define the shape of a NURBS surface <STRONG>FORTRAN</STRONG> <STRONG>SPECIFICATION</STRONG> SUBROUTINE <STRONG>fgluNurbsSurface</STRONG>( CHARACTER*8 <EM>nurb</EM>, INTEGER*4 <EM>sKnotCount</EM>, CHARACTER*8 <EM>sKnots</EM>, INTEGER*4 <EM>tKnotCount</EM>, CHARACTER*8 <EM>tKnots</EM>, INTEGER*4 <EM>sStride</EM>, INTEGER*4 <EM>tStride</EM>, CHARACTER*8 <EM>control</EM>, INTEGER*4 <EM>sOrder</EM>, INTEGER*4 <EM>tOrder</EM>, INTEGER*4 <EM>type</EM> ) <STRONG>PARAMETERS</STRONG> <EM>nurb</EM> Specifies the NURBS object (created with <STRONG>fgluNewNurbsRenderer</STRONG>). <EM>sKnotCount</EM> Specifies the number of knots in the parametric <EM>u</EM> direction. <EM>sKnots</EM> Specifies an array of <EM>sKnotCount</EM> nondecreasing knot values in the parametric <EM>u</EM> direction. <EM>tKnotCount</EM> Specifies the number of knots in the parametric <EM>v</EM> direction. <EM>tKnots</EM> Specifies an array of <EM>tKnotCount</EM> nondecreasing knot values in the parametric <EM>v</EM> direction. <EM>sStride</EM> Specifies the offset (as a number of single- precision floating point values) between successive control points in the parametric <EM>u</EM> direction in <EM>control</EM>. <EM>tStride</EM> Specifies the offset (in single-precision floating-point values) between successive control points in the parametric <EM>v</EM> direction in <EM>control</EM>. <EM>control</EM> Specifies an array containing control points for the NURBS surface. The offsets between successive control points in the parametric <EM>u</EM> and <EM>v</EM> directions are given by <EM>sStride</EM> and <EM>tStride</EM>. <EM>sOrder</EM> Specifies the order of the NURBS surface in the parametric <EM>u</EM> direction. The order is one more than the degree, hence a surface that is cubic in <EM>u</EM> has a <EM>u</EM> order of 4. <EM>tOrder</EM> Specifies the order of the NURBS surface in the parametric <EM>v</EM> direction. The order is one more than the degree, hence a surface that is cubic in <EM>v</EM> has a <EM>v</EM> order of 4. <EM>type</EM> Specifies type of the surface. <EM>type</EM> can be any of the valid two-dimensional evaluator types (such as <STRONG>GL_MAP2_VERTEX_3</STRONG> or <STRONG>GL_MAP2_COLOR_4</STRONG>). <STRONG>DESCRIPTION</STRONG> Use <STRONG>fgluNurbsSurface</STRONG> 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 <STRONG>fgluBeginSurface</STRONG> command. To mark the end of a NURBS surface definition, use the <STRONG>fgluEndSurface</STRONG> command. Call <STRONG>fgluNurbsSurface</STRONG> within a NURBS surface definition only. Positional, texture, and color coordinates are associated with a surface by presenting each as a separate <STRONG>fgluNurbsSurface</STRONG> between a <STRONG>fgluBeginSurface</STRONG>/<STRONG>fgluEndSurface</STRONG> pair. No more than one call to <STRONG>fgluNurbsSurface</STRONG> for each of color, position, and texture data can be made within a single <STRONG>fgluBeginSurface</STRONG>/<STRONG>fgluEndSurface</STRONG> pair. Exactly one call must be made to describe the position of the surface (a <EM>type</EM> of <STRONG>GL_MAP2_VERTEX_3</STRONG> or <STRONG>GL_MAP2_VERTEX_4</STRONG>). A NURBS surface can be trimmed by using the commands <STRONG>fgluNurbsCurve</STRONG> and <STRONG>fgluPwlCurve</STRONG> between calls to <STRONG>fgluBeginTrim</STRONG> and <STRONG>fgluEndTrim</STRONG>. Note that a <STRONG>fgluNurbsSurface</STRONG> with <EM>sKnotCount</EM> knots in the <EM>u</EM> direction and <EM>tKnotCount</EM> knots in the <EM>v</EM> direction with orders <EM>sOrder</EM> and <EM>tOrder</EM> must have (<EM>sKnotCount</EM> - <EM>sOrder</EM>) x (<EM>tKnotCount</EM> - <EM>tOrder</EM>) control points. <STRONG>EXAMPLE</STRONG> 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); <STRONG>SEE</STRONG> <STRONG>ALSO</STRONG> <STRONG>fgluBeginSurface</STRONG>, <STRONG>fgluBeginTrim</STRONG>, <STRONG>fgluNewNurbsRenderer</STRONG>, <STRONG>fgluNurbsCurve</STRONG>, <STRONG>fgluPwlCurve</STRONG></PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -