DoNURBSurf(3D)

NAME
DoNURBSurf - Create a non-uniform rational B-Spline surface primitive object

SYNOPSIS
C:
DtObject DoNURBSurf(colormodel, ctrlpointtype, uv_area,
	order_u, n_knot_u, knot_u, order_v, n_knot_v,
	knot_v, n_ctrl_u, n_ctrl_v, ctrl_vertices)
DtColorModel colormodel;
DtCtrlPointType ctrlpointtype;
DtNArea uv_area;
DtInt order_u, order_v;
DtInt n_knot_u, n_knot_v;
DtReal knot_u[], knot_v[];
DtInt n_ctrl_u, n_ctrl_v;
DtReal ctrl_vertices[];

FORTRAN:
INTEGER*4 DONRBS(COLMOD, CPTTYP, UVAREA,
	ORDERU, NKNOTU, KNOTU, ORDERV,
	NKNOTV, KNOTV, NCTRLU, NCTRLV,
	CTLVTX)
INTEGER*4 COLMOD
INTEGER*4 CPTTYP
REAL*8 UVAREA(4)
INTEGER*4 ORDERU, ORDERV
INTEGER*4 NKNOTU, NKNOTV
REAL*8 KNOTU(NKNOTU), KNOTV(NKNOTV)
INTEGER*4 NCTRLU, NCTRLV
REAL*8 CTLVTX(4, NCTRLV, NCTRLU)

DESCRIPTION
DoNURBSurf defines a non-uniform rational B-Spline surface primitive object.

The parameter colormodel specifies the color model used if the control points contain color information for shading purposes. The parameter ctrlpointtype, which specifies the nature of the control points, can have only one value, which specifies the nature of the control point, DcCtr.

The parameter uv_area consists of two pairs of real numbers that define the parametric intervals used by the NURBS surface. The parameters n_knot_u and n_knot_v specify the number of values in the lists knot_u and knot_v. The parameters order_u and order_v express the overall order of the NURBS along u and v. The parameters n_ctrl_u and n_ctrl_v specify the layout of vertices as a grid. The vertices themselves (ctrl_vertices) are contained in a one-dimensional array of four dimensional control points. They are ordered in the array the same as if they were being read as sequential values from a two-dimensional array of u and v with v varying fastest. FORTRAN array element FOO(j+1,i+1).

If this primitive object defines a closed surface or will be oriented with backfacing parts of the surface away from the viewer, then backface culling may speed up the rendering time. See DoBackfaceCullable and DoBackfaceCullSwitch.

ERRORS
n_knot_u must equal the sum of order_u and n_ctrl_u, and n_knot_v must equal the sum of order_v and n_ctrl_v.

[WARNING - value out of range]

DoNURBSurf will fail if order_u and order_v are not between 0 and 25, inclusive.

[SEVERE - bad curve order]

SEE ALSO
DoBackfaceCullSwitch(3D), DoBackfaceCullable(3D), DoPatch(3D), DoRepType(3D), DoSubDivSpec(3D), DoInterpType(3D)