DoNURBSurf(3D) — Stardent Computer Inc. (\*(Dd)
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 BSpline surface primitive object.
The parameter colormodel specifies the color model used if the control points contain color information for shading purposes. The parameter ctrlpointtype specifies the nature of the control points.
The parameter uv_area consists of two pairs of DtReals that define the parametric intervals used by the NURB 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 NURB 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 sequencial values from a two-dimensional array of u and v with v varying fastest. Note that the C array element foo[i][j] is equivalent to the 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 and not between 0 and 25, inclusive.
[SEVERE - bad curve order]
SEE ALSO
DoBackfaceCullSwitch(3D), DoBackfaceCullable(3D), DoPatch(3D), DoRepType(3D), DoSubDivSpec(3D), DoInterpType(3D)
September 29, 2021