[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]
The graPHIGS Programming Interface : Subroutine Reference
GPRNBS - Reevaluate Non-Uniform B-Spline Surface
GPRNBS
(uorder,
vorder,
unum,
vnum,
uknots,
vknots,
tflag,
utdata,
vtdata,
cflags,
cwidth,
ctlpts,
umin,
umax,
vmin,
vmax,
option,
nelem) |
Purpose
Use
GPRNBS
to reevaluate a large surface into smaller surfaces.
This utilty creates
x number of structure elements to define
all the data and returns the number of structure elements created.
If an error occurs, processing stops and the actual number
of created structure elements is returned.
The reevaluation of the surface is based on the specified option.
If the option is specified as
1=CONTROL_POINTS
, then it
reevaluates the surface by looking at the number of control
points in the
u and
v dimension.
If the option is specified as
2=ELEMENT_SIZE
,
then it reevaluates the surface by looking at the size of
the surface.
If the element size exceeds 64K bytes, the surface is
partitioned such that the resulting surfaces
will not exceed 64K bytes.
If the option parameter is not a valid value, it defaults to
1=CONTROL_POINTS
Parameters
uorder -- specified by user, fullword integer
Order of the basis functions for the
u
parameter (>=2)
vorder -- specified by user, fullword integer
Order of the basis functions for the
v
parameter (>=2)
unum -- specified by user, fullword integer
Number of surface control points for the
u
direction (>=
uorder)
vnum -- specified by user, fullword integer
Number of surface control points for the
v
direction (>=
vorder)
uknots -- specified by user, array of floating-point
numbers
Knot values for the
u parameter.
The length of this array must be
uorder+
unum
This parameter must be a non-decreasing knot value sequence.
vknots -- specified by user, array of floating-point
numbers
Knot values for the
v parameter. The length
of this array must be
vorder+
vnum
This parameter must be a non-decreasing knot value sequence.
tflag -- specified by user, fullword integer
Surface tessellation quality value flag.
This parameter indicates whether the tessellation quality
values are specified or not.
Value |
Meaning |
0 |
Not specified. |
1 |
Specified. |
utdata -- specified by user, array of short
floating-point numbers
Tesselation quality values for the
u direction.
When the
tflag parameter is 1 (specified),
this parameter must contain
unum-
uorder+1 quality values.
These values are used in conjunction with Surface Approximation
Criteria method 8 to control the number of subdivisions made in
the
u direction.
The number of subdivisions performed for a patch is approximately:
value of
utdata [default]
u (the Surface
Approximation Criteria control value in the traversal state list).
vdata -- specified by user, array of short floating-point
numbers
Tessellation quality values for the
v direction.
When the
tflag parameter is 1 (specified), this parameter
must contain
vnum-
vorder+1 quality
values.
These values are used in conjunction with Surface Approximation
Criteria method 8 to control the number of subdivisions made in
the
v direction.
The number of subdivisions performed for a patch is approximately:
value of
vtdata [default]
v (the Surface
Approximation Criteria control value in the traversal state list).
cflags -- specified by user, fullword integer
Control point option data flags.
This parameter indicates what data is specified for each control point.
The value specified should be the sum of the following values based
on the fields that are specified by the
ctlpts parameter.
Value |
Meaning |
0 |
Control point coordinates. |
1 |
Weights are specified with each control point.This produces the rational form of the Non-Uniform
B-Spline Surface. |
cwidth -- specified by user, fullword integer
Number of words between subsequent entries of control points
array
ctlpts
ctlpts -- specified by user, array of short
floating-point numbers
Grid of control points. The control points are stored by
row where a row is considered to be the direction associated
with the
u parameter.
For example, the set of control points
^
| m n o p
| i j k l
Increasing v | e f g h
| a b c d
-------------->
Increasing u
is stored in the order a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p.
The
cwidth parameter must be at least 3.
If
cflags specifies that weights are included with each
control point, the
cwidth parameter must be at least 4.
Each weight
W must be greater than zero when specified.
Note: When
W is specified, the control points are not in
homogeneous form
(i.e.,
XW,
YW,
ZW,
W)
They are specified after division by
W or
(X,Y,Z,W)
umin -- specified by user, short floating-point number
The minimum parameter value in the
u direction at which
the surface is evaluated.
This value must be greater than or equal to the value of knot
uorder in the parameter
uknots
umax -- specified by user, short floating-point number
The maximum parameter value in the
u direction at which
the surface is evaluated.
This value must be less than or equal to the value of knot
unum+1 in the parameter
uknots
vmin -- specified by user, short floating-point number
The minimum parameter value in the
v direction
at which the surface is evaluated.
This value must be greater than or equal to the value of
vorder in the parameter
vknots
vmax -- specified by user, short floating-point number
The maximum parameter value in the
v direction at
which the surface is evaluated.
This value must be less than or equal to the value of knot
vnum+1 in the parameter
vknots
option -- specified by user, fullword integer
Option to use when reevaluating the surface
(1=CONTROL_POINTS
,
2=ELEMENT_SIZE
)
nelem -- returned by the graPHIGS API, fullword integer
The number of structure elements created by the
utility or 0 if
none were created.
Error Codes
- 4
- FUNCTION REQUIRES STATE STOP
- 341
- ORDER OF BASIS FUNCTION < TWO
- 342
- ORDER IS GREATER THAN NUMBER OF CONTROL POINTS
- 343
- KNOT VECTOR IS INVALID
- 345
- WEIGHT IN CONTROL POINT IS <= ZERO
- 347
- PARAMETER LIMITS ARE OUTSIDE VALID PARAMETER RANGE
- 348
- MINIMUM PARAMETER LIMIT > MAXIMUM
- 351
- OPTIONAL DATA AVAILABILITY FLAG IS INVALID
- 362
- TESSELLATION CONTROL VALUE IS INVALID
- 557
- WIDTH PARAMETER < MINIMUM ALLOWED
Related Subroutines
- GPNBS
- Non-Uniform B-Spline Surface
RCP code
201348097
(X'0C005401')
[ Previous |
Next |
Contents |
Glossary |
Home |
Search ]