[ Previous | Next | Contents | Glossary | Home | Search ]
The graPHIGS Programming Interface : Subroutine Reference

GPCFA2 - Composite Fill Area 2

GPCFA2 (ncontour, ncurve, curveinfo, knot, tess, vwidth, vdata)

Purpose

Use GPCFA2 to insert a Composite Fill Area 2 structure element into the open structure following the element pointer or to replace the element pointed at by the element pointer with a Composite Fill Area 2 structure element depending on the current edit mode.

During structure traversal, the planar area geometry defined by the specified contours is drawn using the polygon attributes in the traversal state list. Each contour consists of one or more types of curves. The normal on Composite Fill Area 2 is (0,0,1)

When the current edge flag is set to 2=ON or 3=GEOMETRY_ONLY , each curve with its boundary flag ON is rendered as an edge of the area geometry. You must connect curves within a contour in a head to tail fashion. To ensure that the contour is closed, the graPHIGS API connects each pair of curves by a straight line as is the first point and the last point. The boundary flag for the connecting line segment is determined by the boundary flag of the preceding curve.

Polygon attributes are applied to this primitive.

GPCFA2 is identified as GDP 1027.

Note:

Not all GDPs are supported on all workstations. Use the Inquire List of Generalized Drawing Primitives (GPQGD) subroutine to determine the GDPs supported by an opened workstation. See also the workstation description in The graPHIGS Programming Interface: Technical Reference

Parameters

ncontour -- specified by user, fullword integer

Number of contours to be generated (>=0)
ncurve -- specified by user, array of fullword integers

Number of curves in each contour. Each entry must be greater than or equal to one. The length of this array is defined by the value of the ncontour parameter.
curveinfo -- specified by user, array of 6 fullwords of data

Array containing information about each curve. Each entry of this parameter must have the following fields in this order. However, for some curve types, one or more fields may be ignored.
Type of curve -- fullword integer

This field must contain one of the following values:

1 -
Line Segments
2 -
Elliptical Arc
3 -
Non-Uniform B-Spline Curve
Options -- fullword integer

This parameter specifies various options for the curve. Each option is specified as a bit in this word. The following bits are currently defined:

Bit
Meaning
0-28
Reserved. Must be set to zero.
29
Tessellation quality flag.

This option is valid for the Non-Uniform B-Spline Curve only. If set, a tessellation quality value for each span of this curve is specified in the tess parameter.

30
Weight flag.

This option is valid for the Non-Uniform B-Spline Curve only. If set, the curve is rational and the weight is specified for each control point in the vdata parameter.

31
Boundary flag.

If set, the curve is treated as an edge of the composite fill area.

Order -- fullword integer

Order of the curve. For each curve type, this parameter has the following meaning:

1 -
Ignored.
2 -
Ignored.
3 -
Corresponds to the order parameter of the Non-Uniform B-Spline Curve 2.
Number of vectors -- fullword integer

Number of entries of the vdata parameter used to define the curve. This parameter has the following meaning for each curve type:

1 -
Corresponds to the npoint parameter of Polyline 2. The specified number's entries of the vdata parameter are used as its pointlist parameter.
2 -
Must be three. Three entries of the vdata parameter are used as the center, first and second reference vectors of the Elliptical Arc 2.
3 -
Corresponds to the npoint parameter of the Non-Uniform B-Spline Curve 2. The specified number's entries of the vdata parameter are used as its ctlpts parameter.
Start -- short floating-point number

The parameter value representing the start point of the curve. For each curve type, this parameter has the following meaning:

1 -
Ignored.
2 -
Corresponds to the startv parameter of the Elliptical Arc 2.
3 -
Corresponds to the tmin parameter of the Non-Uniform B-Spline Curve 2.
End -- short floating-point number

The parameter value representing the end point of the curve. For each curve type, this parameter has the following meaning:

1 -
Ignored.
2 -
Corresponds to the endv parameter of the Elliptical Arc 2.
3 -
Corresponds to the tmax parameter of the Non-Uniform B-Spline Curve 2.
knot -- specified by user, array of short floating-point numbers

Array of knot values. This array must contain one list for each Non-Uniform B-Spline curve within the curveinfo parameter. For other curves, this array is not referenced. The sequence of each list in this array is assumed to match the order of the curve definitions in curveinfo The length of each list is equal to the order + number of vectors for the curve.
tess -- specified by user, array of short floating-point numbers

Array of tessellation quality values. This array must contain one list for each Non-Uniform B-Spline curve with a tessellation quality flag set to a value of one (specified). For other curves, this array is not referenced. The sequence of each list in this array is assumed to match the order of the curve definitions in curveinfo The length of each list is equal to the number of vectors - order + 1 of the curve.
vwidth -- specified by user, fullword integer

Specifies the number of fullwords between each entry of the array in vdata If there is any rational curve in the curveinfo parameter, this parameter must be at least three. Otherwise, it must be larger than or equal to a value of two.
vdata -- specified by user, array of short floating-point numbers

This array must contain one list for each curve. The sequence of each list in this array is assumed to match the order of the curve definitions in curveinfo The length of each list is equal to the number of vectors specified in the curveinfo parameter.

For each entry, the following fields are defined and the fields must be specified in this order without any gap:

x and y components --
two short floating-point numbers
weight --
short floating-point number

Error Codes

5
FUNCTION REQUIRES STATE STOP OR NROP (NOT STCL)
100
NUMBER OF POINTS < ZERO
107
REFERENCE VECTORS ARE COLINEAR
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
353
NUMBER OF CONTOURS < ZERO
354
NUMBER OF CURVES PER CONTOUR < ONE
355
CURVE TYPE IS INVALID
361
CURVE OPTIONS FIELD IS INVALID
362
TESSELLATION CONTROL VALUE IS INVALID
557
WIDTH PARAMETER < MINIMUM ALLOWED

Related Subroutines

GPBICD
Set Back Interior Color Direct
GPBICI
Set Back Interior Color Index
GPBSCD
Set Back Specular Color Direct
GPBSCI
Set Back Specular Color Index
GPBSPR
Set Back Surface Properties
GPECD
Set Edge Color Direct
GPECI
Set Edge Color Index
GPEI
Set Edge Index
GPELT
Set Edge Linetype
GPESC
Set Edge Scale Factor
GPFDMO
Set Face Distinguish Mode
GPICD
Set Interior Color Direct
GPICI
Set Interior Color Index
GPII
Set Interior Index
GPIS
Set Interior Style
GPISI
Set Interior Style Index
GPLMO
Set Lighting Calculation Mode
GPLSS
Set Light Source State
GPPGC
Set Polygon Culling
GPSAC
Set Surface Approximation Criteria
GPSCD
Set Specular Color Direct
GPSCI
Set Specular Color Index
GPSPR
Set Surface Properties
GPTCAC
Set Trimming Curve Approximation Criteria

RCP code

201345026 (X'0C004802')


[ Previous | Next | Contents | Glossary | Home | Search ]