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

**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.

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')