.NH 2
Output Primitive Functions
.XS
\*(SN Output Primitive Functions
.XE
.IN "output commands"
.IN "primitives"
.LP
This section describes all the output primitive functions.
.NH 3
Common Data Structures
.XS
\*(SN Common Data Structures
.XE
.LP
Below are the data structures used that are common to more than one function
described in this section.
.RS
.Co
/* coordinates */
.ID
typedef struct {
    float               x;
    float               y;
    float               z;
} PEXCoord;
.sp
typedef struct {
    float               x;
    float               y;
} PEXCoord2D;
.sp
typedef struct {
    unsigned long       count;                  /* number of points */
    PEXCoord            *points;
} PEXListOfCoord;       /* Pointer to an array of 3D points */
.sp
typedef struct {
    unsigned long       count;                  /* number of points */
    PEXCoord2D          *points;
} PEXListOfCoord2D;     /* Pointer to an array of 2D points */
.DE
/* vectors */
.ID
typedef struct {
    float               x;
    float               y;
    float               z;
} PEXVector;
.DE
/* facet data */
.ID
typedef union {
    PEXColorIndexed     index;
    PEXColorRGB         rgb;
    PEXColorHSV         hsv;
    PEXColorHLS         hls;
    PEXColorCIE         cie;
    PEXColorRGB8        rgb8;
    PEXColorRGB16       rgb16;
    PEXVector           normal;
    PEXColorIndexedNormal index_normal;
    PEXColorRGBNormal   rgb_normal;
    PEXColorHSVNormal   hsv_normal;
    PEXColorHLSNormal   hls_normal;
    PEXColorCIENormal   cie_normal;
    PEXColorRGB8Normal  rgb8_normal;
    PEXColorRGB16Normal rgb16_normal;
} PEXFacetData;
.sp
typedef union {
    PEXColorIndexed     *index;
    PEXColorRGB         *rgb;
    PEXColorHSV         *hsv;
    PEXColorHLS         *hls;
    PEXColorCIE         *cie;
    PEXColorRGB8        *rgb8;
    PEXColorRGB16       *rgb16;
    PEXVector           *normal;
    PEXColorIndexedNormal *index_normal;
    PEXColorRGBNormal   *rgb_normal;
    PEXColorCIENormal   *cie_normal;
    PEXColorHSVNormal   *hsv_normal;
    PEXColorHLSNormal   *hls_normal;
    PEXColorRGB8Normal  *rgb8_normal;
    PEXColorRGB16Normal *rgb16_normal;
} PEXArrayOfFacetData;
.sp
typedef struct {
    PEXTableIndex       index;
    unsigned short      reserved;
} PEXColorIndexed;
.sp
typedef unsigned short  PEXTableIndex;
.sp
typedef struct {
    float               red;
    float               green;
    float               blue;
} PEXColorRGB;
.sp
typedef struct {
    float               hue;
    float               saturation;
    float               value;
} PEXColorHSV;
.sp
typedef struct {
    float               hue;
    float               lightness;
    float               saturation;
} PEXColorHLS;
.sp
typedef struct {
    float               x;
    float               y;
    float               z;
} PEXColorCIE;
.sp
typedef struct {
    unsigned char       red;
    unsigned char       green;
    unsigned char       blue;
    unsigned char       reserved;
} PEXColorRGB8;
.sp
typedef struct {
    unsigned short      red;
    unsigned short      green;
    unsigned short      blue;
    unsigned short      reserved;
} PEXColorRGB16;
.sp
typedef struct {
    PEXColorIndexed     index;
    PEXVector           normal;
} PEXColorIndexedNormal;
.sp
typedef struct {
    PEXColorRGB         rgb;
    PEXVector           normal;
} PEXColorRGBNormal;
.sp
typedef struct {
    PEXColorCIE         cie;
    PEXVector           normal;
} PEXColorCIENormal;
.sp
typedef struct {
    PEXColorHSV         hsv;
    PEXVector           normal;
} PEXColorHSVNormal;
.sp
typedef struct {
    PEXColorHLS         hls;
    PEXVector           normal;
} PEXColorHLSNormal;
.sp
typedef struct {
    PEXColorRGB8        rgb8;
    PEXVector           normal;
} PEXColorRGB8Normal;
.sp
typedef struct {
    PEXColorRGB16       rgb16;
    PEXVector           normal;
} PEXColorRGB16Normal;
.DE
/* vertex data */
.ID
typedef struct {
    unsigned long       count;                  /* number of vertices */
    PEXArrayOfVertex    vertices;               /* pointer to vertices */
} PEXListOfVertex;
.sp
typedef union {
    PEXCoord                    *no_data;
    PEXVertexIndexed            *index;
    PEXVertexRGB                *rgb;
    PEXVertexHSV                *hsv;
    PEXVertexHLS                *hls;
    PEXVertexCIE                *cie;
    PEXVertexRGB8               *rgb8;
    PEXVertexRGB16              *rgb16;
    PEXVertexNormal             *normal;
    PEXVertexEdge               *edge;
    PEXVertexIndexedNormal      *index_normal;
    PEXVertexRGBNormal          *rgb_normal;
    PEXVertexHSVNormal          *hsv_normal;
    PEXVertexHLSNormal          *hls_normal;
    PEXVertexCIENormal          *cie_normal;
    PEXVertexRGB8Normal         *rgb8_normal;
    PEXVertexRGB16Normal        *rgb16_normal;
    PEXVertexIndexedEdge        *index_edge;
    PEXVertexRGBEdge            *rgb_edge;
    PEXVertexHSVEdge            *hsv_edge;
    PEXVertexHLSEdge            *hls_edge;
    PEXVertexCIEEdge            *cie_edge;
    PEXVertexRGB8Edge           *rgb8_edge;
    PEXVertexRGB16Edge          *rgb16_edge;
    PEXVertexNormalEdge         *normal_edge;
    PEXVertexIndexedNormalEdge  *index_normal_edge;
    PEXVertexRGBNormalEdge      *rgb_normal_edge;
    PEXVertexHSVNormalEdge      *hsv_normal_edge;
    PEXVertexHLSNormalEdge      *hls_normal_edge;
    PEXVertexCIENormalEdge      *cie_normal_edge;
    PEXVertexRGB8NormalEdge     *rgb8_normal_edge;
    PEXVertexRGB16NormalEdge    *rgb16_normal_edge;
} PEXArrayOfVertex;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorIndexed     index;
} PEXVertexIndexed;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB         rgb;
} PEXVertexRGB;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHSV         hsv;
} PEXVertexHSV;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHLS         hls;
} PEXVertexHLS;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorCIE         cie;
} PEXVertexCIE;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB8        rgb8;
} PEXVertexRGB8;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB16       rgb16;
} PEXVertexRGB16;
.sp
typedef struct {
    PEXCoord            point;
    PEXVector           normal;
} PEXVertexNormal;
.sp
typedef struct {
    PEXCoord            point;
    unsigned int        edge;
} PEXVertexEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorIndexed     index;
    PEXVector           normal;
} PEXVertexIndexedNormal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB         rgb;
    PEXVector           normal;
} PEXVertexRGBNormal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHSV         hsv;
    PEXVector           normal;
} PEXVertexHSVNormal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHLS         hls;
    PEXVector           normal;
} PEXVertexHLSNormal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorCIE         cie;
    PEXVector           normal;
} PEXVertexCIENormal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB8        rgb8;
    PEXVector           normal;
} PEXVertexRGB8Normal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB16       rgb16;
    PEXVector           normal;
} PEXVertexRGB16Normal;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorIndexed     index;
    unsigned int        edge;
} PEXVertexIndexedEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB         rgb;
    unsigned int        edge;
} PEXVertexRGBEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHSV         hsv;
    unsigned int        edge;
} PEXVertexHSVEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHLS         hls;
    unsigned int        edge;
} PEXVertexHLSEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorCIE         cie;
    unsigned int        edge;
} PEXVertexCIEEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB8        rgb8;
    unsigned int        edge;
} PEXVertexRGB8Edge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB16       rgb16;
    unsigned int        edge;
} PEXVertexRGB16Edge;
.sp
typedef struct {
    PEXCoord            point;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexNormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorIndexed     index;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexIndexedNormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB         rgb;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexRGBNormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHSV         hsv;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexHSVNormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorHLS         hls;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexHLSNormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorCIE         cie;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexCIENormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB8        rgb8;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexRGB8NormalEdge;
.sp
typedef struct {
    PEXCoord            point;
    PEXColorRGB16       rgb16;
    PEXVector           normal;
    unsigned int        edge;
} PEXVertexRGB16NormalEdge;
.DE
/* similar to XErrorEvent - use to access additional info in OC error */
.ID
typedef struct {
    int             type;
    Display         *display;      /* Display the event was read from */
    XID             resourceid;    /* resource id of renderer or structure */
    unsigned long   serial;        /* serial number of failed request */
    unsigned char   error_code;    /* error code of failed request */
    unsigned char   request_code;  /* Major op-code of failed request */
    unsigned char   minor_code;    /* Minor op-code of failed request */
    unsigned short  op_code;       /* op-code of failed output command */
    unsigned short  count;         /* number of output commands successfully */
                                   /* executed before error */
} PEXOCErrorEvent;
.DE
.ft P
.RE
.bp
.XS
Function Descriptions
.XE
.SH
PEXAnnotationText - 3D Annotation Text Primitive
.XS
	PEXAnnotationText
.XE
.SH
Synopsis
.RS
.FD 0
void PEXAnnotationText\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord *\fIorigin\fP\^, PEXCoord *\fIoffset\fP\^, int \fIlength\fP\^, char *\fIstring\fP\^)
.FN
.RE
.IN "PEXAnnotationText" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIoffset\fP 1i
The relative position of the text string from the origin.
.IP \fIlength\fP 1i
The number of bytes in the text string.
.IP \fIstring\fP 1i
A pointer to the text string.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates an annotation text output primitive.
.LP
The first character set in the text font will be used.
.LP
The origin
defines, in modeling coordinates, the position of the
first character in the text string.
The offset specifies an offset from the origin in normalized
projection coordinates.	 The point where the text string is
placed is called the annotation point.  The annotation point is
computed by adding the value of offset to the transformed
origin point.  The z-component of the annotation point
specifies the x-y plane in normalized projection coordinate
space on which the annotation text string is placed.
.LP
Depending on the text attribute
source flag values, the text color, text precision,
character expansion, character spacing, and text font index attributes are
either obtained directly from
the current text attribute values or
from the entry in the text bundle
specified by the current text bundle index attribute.
The annotation text height, annotation text path,
annotation text alignment, annotation text up vector,
and annotation text style are also used to render the text string.
.LP
The annotation text string's color is affected only by the
depth-cueing computation (the reflectance stage of the
rendering pipeline affects only surface primitives) and is mapped to a
device color.  The entire annotation text primitive is clipped
if the origin is clipped.  If the origin is not clipped, the
annotation text is clipped according to text clipping rules.
The connection line, if any, is clipped according to
polyline clipping rules, except that modeling clipping is
ignored.  The current set of polyline attributes is used to render the
connection line.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.PN PEXSetCharExpansion ,
.br
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.PN PEXSetTextColor ,
.br
.PN PEXSetATextHeight ,
.PN PEXSetATextUpVector ,
.PN PEXSetATextPath ,
.br
.PN PEXSetATextAlignment ,
.PN PEXSetATextStyle ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXAnnotationText2D - 2D Annotation Text Primitive
.XS
	PEXAnnotationText2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXAnnotationText2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord2D *\fIorigin\fP\^, PEXCoord2D *\fIoffset\fP\^, int \fIlength\fP\^, char *\fIstring\fP\^)
.FN
.RE
.IN "PEXAnnotationText2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIoffset\fP 1i
The relative position of the text string from the origin.
.IP \fIlength\fP 1i
The number of bytes in the text string.
.IP \fIstring\fP 1i
A pointer to the text string.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D annotation text output primitive.
.LP
This primitive functions like
.PN PEXAnnotationText
except that the origin and offset positions are specified 
using only x- and y-components, and the z-component is always 
assumed to be zero.  This primitive is two-dimensional only in
that the z-component is implied, since geometry
transformations are still carried out in three dimensions.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.PN PEXSetCharExpansion ,
.br
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.PN PEXSetTextColor ,
.br
.PN PEXSetATextHeight ,
.PN PEXSetATextUpVector ,
.PN PEXSetATextPath ,
.br
.PN PEXSetATextAlignment ,
.PN PEXSetATextStyle ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXCellArray - 3D Cell Array Primitive
.XS
	PEXCellArray
.XE
.SH
Synopsis
.RS
.FD 0
void PEXCellArray\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord *\fIpoint1\fP\^, PEXCoord *\fIpoint2\fP\^, PEXCoord *\fIpoint3\fP\^, unsigned int \fIcol_count\fP\^, unsigned int \fIrow_count\fP\^, PEXTableIndex *\fIcolor_indices\fP\^)
.FN
.RE
.IN "PEXCellArray" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIpoint1\fP 1i
The first cell array definition point.
.IP \fIpoint2\fP 1i
The second cell array definition point.
.IP \fIpoint3\fP 1i
The third cell array definition point.
.IP \fIcol_count\fP 1i
The number of cell columns (number of cells in the X direction).
.IP \fIrow_count\fP 1i
The number of cell rows (number of cells in the Y direction).
.IP \fIcolor_indices\fP 1i
An array of color table index values which specify the color of each cell.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 3D cell-array output primitive.
.LP
A 3D cell-array primitive is a parallelogram of equally-sized
cells, each of which is a parallelogram with a single color.
Each cell has a width defined by:
.DS C
.EQ
width ~=~ sqrt {(point1->x ~-~ point2->x) sup 2 ~+~ (point1->y ~-~ point2->y) sup 2 ~+~ (point1->z ~-~ point2->z) sup 2} over col_count
.EN
.DE
.IP
and a height defined by:
.DS C
.EQ
height ~=~ sqrt {(point1->x ~-~ point3->x) sup 2 ~+~ (point1->y ~-~ point3->y) sup 2 ~+~ (point1->z ~-~ point3->z) sup 2} over row_count
.EN
.DE
.LP
Cell colors are specified in a one-dimensional array where the colors are stored
in row-major order.
The first color in the array is the color at the cell at the
corner of point1, and subsequent colors represent the colors
of cells proceeding to point2.
.LP
If any color index is not defined, color index one is used.  If color index
one is not defined, the resulting color is implementation-dependent.
The column count and row count can not be zero.
.RE
.SH
Data Structures
.ID
.Co
typedef unsigned short  PEXTableIndex;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXCellArray2D - 2D Cell Array Primitive
.XS
	PEXCellArray2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXCellArray2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord2D *\fIpoint1\fP\^, PEXCoord2D *\fIpoint2\fP\^, unsigned int \fIcol_count\fP\^, unsigned int \fIrow_count\fP\^, PEXTableIndex *\fIcolor_indices\fP\^)
.FN
.RE
.IN "PEXCellArray2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIpoint1\fP 1i
The first cell array definition point.
.IP \fIpoint2\fP 1i
The second cell array definition point.
.IP \fIcol_count\fP 1i
The number of cell columns (number of cells in the X direction).
.IP \fIrow_count\fP 1i
The number of cell rows (number of cells in the Y direction).
.IP \fIcolor_indices\fP 1i
An array of color table index values which specify the color of each cell.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D cell array output primitive.
.LP
A 2D cell-array is a rectangle of equally-sized
cells, each of which is a rectangle which has a single color.
The primitive is specified by two points which define a rectangle
aligned with the modeling coordinate axes.
The width and height of each cell is defined as in
.PN PEXCellArray
where the z component is zero.
.LP
All other aspects of this primitive are the same as
.PN PEXCellArray .
.RE
.SH
Data Structures
.ID
.Co
typedef unsigned short  PEXTableIndex;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXEncodedAnnoText - Encoded 3D Annotation Text Primitive
.XS
	PEXEncodedAnnoText
.XE
.SH
Synopsis
.RS
.FD 0
void PEXEncodedAnnoText\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord *\fIorigin\fP\^, PEXCoord *\fIoffset\fP\^, unsigned int \fIcount\fP\^, PEXEncodedTextData *\fIencoded_text\fP\^)
.FN
.RE
.IN "PEXEncodedAnnoText" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIoffset\fP 1i
The relative position of the text string from the origin.
.IP \fIcount\fP 1i
The number of encoded text strings.
.IP \fIencoded_text\fP 1i
An array of encoded text strings.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates an annotation text output primitive.
.LP
This function is similar to
.PN PEXAnnotationText ,
except
that multiple encoded text strings are specified.  Each text 
string in the encoded text array has a character set, a character
set width, an encoding state, and a list of characters.
.LP
The character
set is an index into the current font group.  Font groups contain
individual fonts which are numbered starting at one; a value of 
three selects the third font in the font group currently being 
used.  If a character set is not available in the current font 
group then the entire string will be rendered using the default 
font group.  If a character set value is not available in the 
default font group then that portion of the string will be rendered 
in an implementation-dependent manner.  The character set width indicates 
the width or size of characters in the strings.  
Valid values for character set width are
.PN PEXCSByte , 
.PN PEXCSShort
and
.PN PEXCSLong .
The encoding state is provided for use by the application and is not 
interpreted by the PEX server.
.LP
All other aspects of this primitive are the same as
.PN PEXAnnotationText .
.RE
.SH
Data Structures
.ID
.Co
typedef struct {
    unsigned short      character_set;
    unsigned char       character_set_width;	/* PEXCSByte, PEXCSShort, PEXCSLong */
    unsigned char       encoding_state;
    unsigned short      reserved;
    unsigned short      length;
    char                *ch;
} PEXEncodedTextData;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.PN PEXSetCharExpansion ,
.br
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.PN PEXSetTextColor ,
.br
.PN PEXSetATextHeight ,
.PN PEXSetATextUpVector ,
.PN PEXSetATextPath ,
.br
.PN PEXSetATextAlignment ,
.PN PEXSetATextStyle ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXEncodedAnnoText2D - Encoded 2D Annotation Text Primitive
.XS
	PEXEncodedAnnoText2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXEncodedAnnoText2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord2D *\fIorigin\fP\^, PEXCoord2D *\fIoffset\fP\^, unsigned int \fIcount\fP\^, PEXEncodedTextData *\fIencoded_text\fP\^)
.FN
.RE
.IN "PEXEncodedAnnoText2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIoffset\fP 1i
The relative position of the text string from the origin.
.IP \fIcount\fP 1i
The number of encoded text strings.
.IP \fIencoded_text\fP 1i
An array of encoded text strings.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D annotation text output primitive.
.LP
This function is similar to
.PN PEXAnnotationText2D ,
except
that multiple encoded text strings are specified.  Each text 
string in the encoded text array has a character set, a character
set width, an encoding state, and a list of characters.
.LP
The character
set is an index into the current font group.  Font groups contain
individual fonts which are numbered starting at one; a value of 
three selects the third font in the font group currently being 
used.  If a character set is not available in the current font 
group then the entire string will be rendered using the default 
font group.  If a character set value is not available in the 
default font group then that portion of the string will be rendered 
in an implementation-dependent manner.  The character set width indicates 
the width or size of characters in the strings.  
Valid values for character set width are
.PN PEXCSByte , 
.PN PEXCSShort
and
.PN PEXCSLong .
The encoding state is provided for use by the application and is not 
interpreted by the PEX server.
.LP
All other aspects of this primitive are the same as
.PN PEXAnnotationText2D .
.RE
.SH
Data Structures
.ID
.Co
typedef struct {
    unsigned short      character_set;
    unsigned char       character_set_width;	/* PEXCSByte, PEXCSShort, PEXCSLong */
    unsigned char       encoding_state;
    unsigned short      reserved;
    unsigned short      length;
    char                *ch;
} PEXEncodedTextData;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.PN PEXSetCharExpansion ,
.br
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.PN PEXSetTextColor ,
.br
.PN PEXSetATextHeight ,
.PN PEXSetATextUpVector ,
.PN PEXSetATextPath ,
.br
.PN PEXSetATextAlignment ,
.PN PEXSetATextStyle ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXEncodedText - Encoded 3D Text Primitive
.XS
	PEXEncodedText
.XE
.SH
Synopsis
.RS
.FD 0
void PEXEncodedText\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord *\fIorigin\fP\^, PEXVector *\fIvector1\fP\^, PEXVector *\fIvector2\fP\^, unsigned int \fIcount\fP\^, PEXEncodedTextData *\fIencoded_text\fP\^)
.FN
.RE
.IN "PEXEncodedText" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIvector1\fP 1i
A vector defining the positive x-direction of the text local coordinate system.
.IP \fIvector2\fP 1i
A vector defining the positive y-direction of the text local coordinate system.
.IP \fIcount\fP 1i
The number of encoded text strings.
.IP \fIencoded_text\fP 1i
An array of encoded text strings.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a text output primitive.
.LP
This function is similar to
.PN PEXText ,
except
that multiple encoded text strings are specified.  Each text 
string in encoded text array has a character set, a character
set width, an encoding state, and a list of characters.
.LP
The character
set is an index into the current font group.  Font groups contain
individual fonts which are numbered starting at one; a value of 
three selects the third font in the font group currently being 
used.  If a character set is not available in the current font 
group then the entire string will be rendered using the default 
font group.  If a character set value is not available in the 
default font group then that portion of the string will be rendered 
in an implementation-dependent manner.  The character set width indicates 
the width or size of characters in the strings.  
Valid values for character set width are
.PN PEXCSByte , 
.PN PEXCSShort
and
.PN PEXCSLong .
The encoding state is provided for use by the application and is not 
interpreted by the PEX server.
.LP
All other aspects of this primitive are the same as
.PN PEXText .
.RE
.SH
Data Structures
.ID
.Co
typedef struct {
    unsigned short      character_set;
    unsigned char       character_set_width;	/* PEXCSByte, PEXCSShort, PEXCSLong */
    unsigned char       encoding_state;
    unsigned short      reserved;
    unsigned short      length;
    char                *ch;
} PEXEncodedTextData;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.br
.PN PEXSetCharExpansion ,
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.br
.PN PEXSetTextColor ,
.PN PEXSetCharHeight ,
.PN PEXSetCharUpVector ,
.br
.PN PEXSetTextPath ,
.PN PEXSetTextAlignment ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXEncodedText2D - Encoded 2D Text Primitive
.XS
	PEXEncodedText2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXEncodedText2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord2D *\fIorigin\fP\^, unsigned int \fIcount\fP\^, PEXEncodedTextData *\fIencoded_text\fP\^)
.FN
.RE
.IN "PEXEncodedText2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIcount\fP 1i
The number of encoded text strings.
.IP \fIencoded_text\fP 1i
An array of encoded text strings.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D text output primitive.
.LP
This function is similar to
.PN PEXText2D ,
except
that multiple encoded text strings are specified.  Each text 
string in encoded text array has a character set, a character
set width, an encoding state, and a list of characters.
.LP
The character
set is an index into the current font group.  Font groups contain
individual fonts which are numbered starting at one; a value of 
three selects the third font in the font group currently being 
used.  If a character set is not available in the current font 
group then the entire string will be rendered using the default 
font group.  If a character set value is not available in the 
default font group then that portion of the string will be rendered 
in an implementation-dependent manner.  The character set width indicates 
the width or size of characters in the strings.  
Valid values for character set width are
.PN PEXCSByte , 
.PN PEXCSShort
and
.PN PEXCSLong .
The encoding state is provided for use by the application and is not 
interpreted by the PEX server.
.LP
All other aspects of this primitive are the same as
.PN PEXText2D .
.RE
.SH
Data Structures
.ID
.Co
typedef struct {
    unsigned short      character_set;
    unsigned char       character_set_width;	/* PEXCSByte, PEXCSShort, PEXCSLong */
    unsigned char       encoding_state;
    unsigned short      reserved;
    unsigned short      length;
    char                *ch;
} PEXEncodedTextData;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.br
.PN PEXSetCharExpansion ,
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.br
.PN PEXSetTextColor ,
.PN PEXSetCharHeight ,
.PN PEXSetCharUpVector ,
.br
.PN PEXSetTextPath ,
.PN PEXSetTextAlignment ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXExtendedCellArray - Extended 3D Cell Array Primitive
.XS
	PEXExtendedCellArray
.XE
.SH
Synopsis
.RS
.FD 0
void PEXExtendedCellArray\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord *\fIpoint1\fP\^, PEXCoord *\fIpoint2\fP\^, PEXCoord *\fIpoint3\fP\^, unsigned int \fIcol_count\fP\^, unsigned int \fIrow_count\fP\^, int \fIcolor_type\fP\^, PEXArrayOfColor \fIcolors\fP\^)
.FN
.RE
.IN "PEXExtendedCellArray" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIpoint1\fP 1i
The first cell array definition point.
.IP \fIpoint2\fP 1i
The second cell array definition point.
.IP \fIpoint3\fP 1i
The third cell array definition point.
.IP \fIcol_count\fP 1i
The number of cell columns (number of cells in the X direction).
.IP \fIrow_count\fP 1i
The number of cell rows (number of cells in the Y direction).
.IP \fIcolor_type\fP 1i
The type of color for the cell colors
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIcolors\fP 1i
An array of colors specifying the color of each cell.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 3D cell array output primitive.
.LP
This function is similar to
.PN PEXCellArray ,
except the colors are passed as either
indexed color values or direct color values, depending on the color type.
.RE
.SH
Data Structures
.ID
.Co
typedef union {
    PEXColorIndexed     *indexed;
    PEXColorRGB         *rgb;
    PEXColorHSV         *hsv;
    PEXColorHLS         *hls;
    PEXColorCIE         *cie;
    PEXColorRGB8        *rgb8;
    PEXColorRGB16       *rgb16;
} PEXArrayOfColor;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXFillArea - 3D Fill Area Primitive
.XS
	PEXFillArea
.XE
.SH
Synopsis
.RS
.FD 0
void PEXFillArea\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, int \fIignore_edges\fP\^, unsigned int \fIcount\fP\^, PEXCoord *\fIpoints\fP\^)
.FN
.RE
.IN "PEXFillArea" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape of the fill area
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIignore_edges\fP 1i
A flag that determines if surface edges are rendered
.Pn ( True
or
.PN False ).
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
An array of points defining the fill area.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a fill area output primitive.
.LP
The area is defined by the list of points joined together to form a planar
surface.
Fill areas are not strictly required to be planar,
but shading artifacts may occur if a fill area is not planar or
nearly so.  The first vertex of the fill area is connected to the
second, the second to the third, and so on.  The last vertex is
implicitly connected to the first.
.LP
During the rendering process, the fill area vertices are
transformed to positions in device coordinates.  The surface
colors are affected by the reflectance calculations
which uses the light state, interior style,
and reflection model attributes.  Surface colors are further affected
by the depth-cueing computation and then mapped to device colors.
Fill areas outside the currently-defined clipping volume are
not displayed.  Fill areas crossing the clipping volume are
clipped, and only the portions inside the clipping volume are displayed.
.LP
A fill area with fewer than three vertices is considered
degenerate.  It is stored in a structure, but when rendered, the primitive
is ignored and has no visual effect.
.LP
A fill area may cross over itself to create a complex shape.  The odd-even
rule is used for determining the area that lies in the interior of the fill
area.
The shape hint is provided to enable performance improvements
for certain shapes.
Fill areas that are of higher complexity than indicated by the shape hint
are rendered
in an implementation-dependent manner.  Consequently,
applications should pass
.PN PEXShapeUnknown
as the shape unless they are
certain the fill area's shape is one of the other three.
.LP
The ignore edges flag is a boolean value specifying whether surface edges
are rendered.  If the flag is
.PN True ,
no surface edges are
rendered for the fill area.  If the ignore edges flag is
.PN False ,
surface edges are rendered according to the surface edge attributes if
the surface edge flag attribute is
.PN PEXOn .
Depending on the setting of the surface edge ASF values,
the surface edges, surface edge color, surface
edge type, and surface edge width attributes are obtained from one
of two sources.  These attributes are obtained directly from
the current surface edge attribute values or from the
edge bundle lookup table entry specified by the current edge
bundle index attribute
depending on the setting of the surface edge ASF attribute.
.LP
Depending on the setting of the surface attribute ASF values, the
surface color, interior style, interior style index,
surface interpolation method, and reflection model attributes are
obtained from one of two sources.  These attributes are obtained
directly from the current surface attributes values or
from the interior bundle lookup table entry specified by the current
interior bundle index attribute.
.LP
When a surface is rendered, the surface color and reflection attributes
are used to
compute the colors of the surface if it is front-facing with respect to
the point of view and the current culling mode allows
front-faces to be rendered.  If the surface is back-facing, the current
distinguish mode is
.PN True ,
and the current culling mode allows
back-faces to be rendered, the corresponding back-facing attributes
are used instead.
.LP
Regardless of the fill area orientation, if the interior style is
.PN PEXInteriorStylePattern ,
the pattern size, pattern reference point and pattern reference vectors
are used to pattern the fill area.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXFillArea2D - 2D Fill Area Primitive
.XS
	PEXFillArea2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXFillArea2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, int \fIignore_edges\fP\^, unsigned int \fIcount\fP\^, PEXCoord2D *\fIpoints\fP\^)
.FN
.RE
.IN "PEXFillArea2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape of the fill area
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIignore_edges\fP 1i
A flag that determines if surface edges are rendered
.Pn ( True
or
.PN False ).
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
An array of points defining the fill area.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D fill area output primitive.
.LP
This function is like
.PN PEXFillArea ,
except that the vertices consist of only x- and y-components.  The
z-component is assumed to be zero.  This primitive is two-dimensional
only in that the z-components are implied.  Geometry
transformations are still carried out in three dimensions.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXFillAreaWithData - 3D Fill Area Primitive With Additional Data
.XS
	PEXFillAreaWithData
.XE
.SH
Synopsis
.RS
.FD 0
void PEXFillAreaWithData\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, int \fIignore_edges\fP\^, unsigned int \fIfacet_attributes\fP\^, unsigned int \fIvertex_attributes\fP\^, int \fIcolor_type\fP\^, PEXFacetData *\fIfacet_data\fP\^, unsigned int \fIcount\fP\^, PEXArrayOfVertex \fIvertices\fP\^)
.FN
.RE
.IN "PEXFillAreaWithData" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape of the fill area
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIignore_edges\fP 1i
A flag that determines if surface edges are rendered
.Pn ( True
or
.PN False ).
.IP \fIfacet_attributes\fP 1i
A mask indicating the facet attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIvertex_attributes\fP 1i
A mask indicating the vertex attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIcolor_type\fP 1i
The type of color data provided
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIfacet_data\fP 1i
A pointer to facet data.
.IP \fIcount\fP 1i
The number of vertices.
.IP \fIvertices\fP 1i
An array of vertices defining the fill area.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a fill area output primitive.
.LP
This function is like
.PN PEXFillArea
except that it allows
additional information to be specified for the fill area and for each vertex.
Color values passed must be of the specified color type.
.LP
The facet attributes indicate the content of the facet data.
This data may be a color, a normal, or a color followed by a normal.
Use the constants
.PN PEXGANone ,
.PN PEXGAColor
and
.PN PEXGANormal
to construct a mask indicating the data provided.
If specified, the facet color takes precedence over the
surface color.
If specified, the facet normal is used to
determine whether the fill area is back-facing.
.LP
The vertex attributes indicate the content of each fill area vertex.
In addition to the coordinate (x,y,z), applications may specify
a color, a normal, or a color followed by a normal for each vertex.
Use the constants
.PN PEXGANone ,
.PN PEXGAColor
and
.PN PEXGANormal
to construct a mask indicating the data provided.
If specified, vertex colors will override facet color or the current
surface color.
If specified, vertex normals are taken to be normals at the vertices of
the fill area.
.LP
The reflection model and the surface interpolation will
affect how the additional data is used in rendering the surface.
.LP
Normals are assumed to be unit length vectors.  The effect if the normal
is not unit length is implementation-dependent.
.LP
All other aspects of this primitive are the same as
.PN PEXFillArea .
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXFillAreaSet - 3D Set of Fill Areas Primitive
.XS
	PEXFillAreaSet
.XE
.SH
Synopsis
.RS
.FD 0
void PEXFillAreaSet\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, int \fIignore_edges\fP\^, int \fIcontour_hint\fP\^, unsigned int \fIcount\fP\^, PEXListOfCoord *\fIpoint_lists\fP\^)
.FN
.RE
.IN "PEXFillAreaSet" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape which describes all of the contours
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIignore_edges\fP 1i
A flag that determines if surface edges are rendered
.Pn ( True
or
.PN False ).
.IP \fIcontour_hint\fP 1i
A flag that indicates whether contours are disjoint or overlapping
.Pn ( PEXContourDisjoint ,
.PN PEXContourNested ,
.PN PEXContourIntersecting ,
.PN PEXContourUnknown ).
.IP \fIcount\fP 1i
The number of fill areas in the set.
.IP \fIpoint_lists\fP 1i
A pointer to the list of point arrays defining each contour of the fill area set.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a fill area set output primitive.
.LP
This function is similar to
.PN PEXFillArea ,
but allows for the creation
of areas with "islands" or "holes".
.LP
If any fill area in the set has fewer than three vertices, or if there are
no contours defined, the primitive is considered degenerate.
The primitive is stored in a structure, but when rendered, the primitive
is ignored and has no visual effect.
.LP
A fill area set consists of an array of fill areas
that define "contours" (disjoint pieces or holes) making up
the primitive.  Each fill area, or contour, is defined by
a list of vertices joined together to form a planar surface.
.LP
The contour hint provides further information about the
relationships between contours in the fill area set.
If the contour hint is 
.PN PEXContourDisjoint ,
all contours will be spatially disjoint.  No overlapping 
or intersection occurs between any contours in the fill area set.  If 
the contour hint is
.PN PEXContourNested ,
contours will either be disjoint or 
wholly contained within another contour.  No contour will have edges 
that intersect or are coincident with edges of any other contour.  If 
the contour hint is
.PN PEXContourIntersecting ,
separated contours may have edges 
that are coincident or overlap.  If the contour hint is
.PN PEXContourUnknown
nothing is known about the interrelationships between contours.  Fill 
area sets with contours that have higher complexity interrelationships 
than that indicated by the contour hint are rendered in an 
implementation-dependent manner.
.LP
The ignore edges flag is applied to each of the fill areas in the set.
.LP
All other aspects of this primitive are the same as
.PN PEXFillArea .
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXFillAreaSet2D - 2D Set of Fill Areas Primitive
.XS
	PEXFillAreaSet2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXFillAreaSet2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, int \fIignore_edges\fP\^, int \fIcontour_hint\fP\^, unsigned int \fIcount\fP\^, PEXListOfCoord2D *\fIpoint_lists\fP\^)
.FN
.RE
.IN "PEXFillAreaSet2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape which describes all of the contours
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIignore_edges\fP 1i
A flag that determines if surface edges are rendered
.Pn ( True
or
.PN False ).
.IP \fIcontour_hint\fP 1i
A flag that indicates whether contours are disjoint or overlapping
.Pn ( PEXContourDisjoint ,
.PN PEXContourNested ,
.PN PEXContourIntersecting ,
.PN PEXContourUnknown ).
.IP \fIcount\fP 1i
The number of fill areas in the set.
.IP \fIpoint_lists\fP 1i
A pointer to the list of point arrays defining each contour of the fill area set.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D fill area set output primitive.
.LP
This function is like
.PN PEXFillAreaSet ,
except
that the vertices consist of only x- and y-components.  The
z-component is assumed to be zero.  This primitive is two-dimensional
only in that the z-components are implied.  Geometry
transformations are still carried out in three dimensions.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXFillAreaSetWithData - 3D Set of Fill Areas Primitive With Additional Data
.XS
	PEXFillAreaSetWithData
.XE
.SH
Synopsis
.RS
.FD 0
void PEXFillAreaSetWithData\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, int \fIignore_edges\fP\^, int \fIcontour_hint\fP\^, unsigned int \fIfacet_attributes\fP\^, unsigned int \fIvertex_attributes\fP\^, int \fIcolor_type\fP\^, unsigned int \fIcount\fP\^, PEXFacetData *\fIfacet_data\fP\^, PEXListOfVertex *\fIvertex_lists\fP\^)
.FN
.RE
.IN "PEXFillAreaSetWithData" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape which describes all of the contours
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIignore_edges\fP 1i
A flag that determines if surface edges are rendered
.Pn ( True
or
.PN False ).
.IP \fIcontour_hint\fP 1i
A flag that indicates whether contours are disjoint or overlapping
.Pn ( PEXContourDisjoint ,
.PN PEXContourNested ,
.PN PEXContourIntersecting ,
.PN PEXContourUnknown ).
.IP \fIfacet_attributes\fP 1i
A mask indicating the facet attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIvertex_attributes\fP 1i
A mask indicating the vertex attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ,
.PN PEXGAEdges ).
.IP \fIcolor_type\fP 1i
The type of color data provided
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIcount\fP 1i
The number of fill areas in the set.
.IP \fIfacet_data\fP 1i
A pointer to facet data.
.IP \fIvertex_lists\fP 1i
A pointer to the list of vertex arrays defining each contour of the fill area set.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a fill area set output primitive.
.LP
This function is like
.PN PEXFillAreaSet
except that it allows
additional information to be specified for each fill area and for each vertex.
It is similar to
.PN PEXFillAreaWithData
but allows for the creation
of areas with "islands" or "holes".
Color values passed must be of the specified color type.
.LP
The facet attributes indicate the content of the facet data.
This data may be a color, a normal, or a color followed by a normal.
Use the constants
.PN PEXGANone ,
.PN PEXGAColor
and
.PN PEXGANormal
to construct a mask indicating the data provided.
If specified, the
facet color takes precedence over the
surface color.
If specified, the facet normal is used to
determine whether the fill area is back-facing.
.LP
The vertex attributes indicate the content of each fill area vertex.
In addition to the coordinate (x,y,z), applications may specify
a color, a normal, an edge flag, or any combination of the three specified in
the order given.
Use the constants
.PN PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal
and
.PN PEXGAEdges
to construct a mask indicating the data provided.
If specified, vertex colors will override facet color or the current
surface color.
If specified, vertex normals are taken to be normals at the vertices of
the fill area.
.LP
The reflection model and the surface interpolation will
affect how the additional data is used in rendering the surface.
Edge controls are used to indicate those edges rendered if the surface edges
are enabled.  The edge control for vertex i indicates whether or
not to render the edge between vertex i and vertex i+1.
Surface edges are always rendered with the surface edge color and are not
affected by the facet or vertex colors.
.LP
Normals are assumed to be unit length vectors.  The effect if the normal
is not unit length is implementation-dependent.
.LP
All other aspects of this primitive are the same as
.PN PEXFillAreaSet .
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXGDP - 3D Generalized Drawing Primitive
.XS
	PEXGDP
.XE
.SH
Synopsis
.RS
.FD 0
void PEXGDP\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, long \fIgdp_id\fP\^, unsigned int \fIcount\fP\^, PEXCoord *\fIpoints\fP\^, unsigned long \fIlength\fP\^, char *\fIdata\fP\^)
.FN
.RE
.IN "PEXGDP" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIgdp_id\fP 1i
The identifier of the GDP.
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
The points used by the GDP.
.IP \fIlength\fP 1i
The length, in bytes, of the data.
.IP \fIdata\fP 1i
Additional data used by the GDP.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a generalized drawing primitive.
.LP
The complete interface and behavior for each GDP identifier
should be available with the individual PEX server implementations.
There are no standard PEX GDPs.
If the specified GDP identifier is not supported,
then the output command is ignored.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXGDP2D - 2D Generalized Drawing Primitive
.XS
	PEXGDP2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXGDP2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, long \fIgdp_id\fP\^, unsigned int \fIcount\fP\^, PEXCoord2D *\fIpoints\fP\^, unsigned long \fIlength\fP\^, char *\fIdata\fP\^)
.FN
.RE
.IN "PEXGDP2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIgdp_id\fP 1i
The identifier of the GDP.
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
The points used by the GDP.
.IP \fIlength\fP 1i
The length, in bytes, of the data.
.IP \fIdata\fP 1i
Additional data used by the GDP.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D generalized drawing primitive.
.LP
The complete interface and behavior for each GDP identifier
should be available with the individual PEX server implementations.
There are no standard PEX GDPs.
If the specified GDP identifier is not supported,
then the output command is ignored.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXMarkers - 3D Markers Primitive
.XS
	PEXMarkers
.XE
.SH
Synopsis
.RS
.FD 0
void PEXMarkers\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, unsigned int \fIcount\fP\^, PEXCoord *\fIpoints\fP\^)
.FN
.RE
.IN "PEXMarkers" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
An array of points specifying marker locations.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a markers output primitive.
.LP
A marker is a geometric primitive with a position as its only geometric
attribute.
The position is specified in modeling coordinates.
.LP
Rendering transforms the marker's position to a position in device coordinates.
A marker has no geometric size, so geometric transformations
do not affect the displayed size of the marker.
The marker's color is affected only by depth-cueing
and mapped to a device color.
The clipping of markers whose position is inside the clipping volume but whose
rendering is outside the clipping volume is implementation-dependent.
.LP
Depending on the setting of the marker ASF attributes, 
the marker color, marker type, and marker scale attributes are obtained
either directly from the current marker attributes or from the marker bundle.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetMarkerType ,
.PN PEXSetMarkerScale ,
.PN PEXSetMarkerColorIndex ,
.br
.PN PEXSetMarkerColor ,
.PN PEXSetMarkerBundleIndex
.RE
.bp
.SH
PEXMarkers2D - 2D Markers Primitive
.XS
	PEXMarkers2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXMarkers2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, unsigned int \fIcount\fP\^, PEXCoord2D *\fIpoints\fP\^)
.FN
.RE
.IN "PEXMarkers2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
An array of points specifying marker locations.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D markers output primitive.
.LP
This function is like
.PN PEXMarkers ,
except that the vertices consist of only x- and y-components.  The
z-component is assumed to be zero.  This primitive is two-dimensional
only in that the z-components are implied.  Geometry
transformations are still carried out in three dimensions.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetMarkerType ,
.PN PEXSetMarkerScale ,
.PN PEXSetMarkerColorIndex ,
.br
.PN PEXSetMarkerColor ,
.PN PEXSetMarkerBundleIndex
.RE
.bp
.SH
PEXNURBCurve - Non-Uniform Rational B-spline Curve Primitive
.XS
	PEXNURBCurve
.XE
.SH
Synopsis
.RS
.FD 0
void PEXNURBCurve\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIrationality\fP\^, int \fIorder\fP\^, float *\fIknots\fP\^, unsigned int \fIcount\fP\^, PEXArrayOfCoord \fIpoints\fP\^, double \fItmin\fP\^, double \fItmax\fP\^)
.FN
.RE
.IN "PEXNURBCurve" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIrationality\fP 1i
The type of B-spline curve, whether rational or non-rational
.Pn ( PEXRational
or
.PN PEXNonRational ).
.IP \fIorder\fP 1i
The order of the polynomial expression.
.IP \fIknots\fP 1i
An array of floats specifying the B-spline curve knots.
.IP \fIcount\fP 1i
The number of control points that define the curve.
.IP \fIpoints\fP 1i
An array of control points defining the B-spline curve.
.IP \fItmin\fP 1i
The minimum parameter value at which to evaluate the curve.
.IP \fItmax\fP 1i
The maximum parameter value at which to evaluate the curve.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.LP
This function creates a non-uniform B-spline curve output primitive.
.LP
The curve order is specified as a positive number.
.PN PEXGetImpDepConstants
can be called to determine the largest supported value for curve order.
The spline shape is specified using
a list of knots in the parametric
coordinate space and a list of control points
in modeling coordinates.
The number of control points must be at least as large as the
order.
The number of knots is the sum of the curve order plus the number of control
points.
The sequence of knots must be non-decreasing, i.e.
t(0) <= t(1) <= ... <= t(k-1) where k is the number of knots.
.LP
If the rationality is
.PN PEXRational ,
the control points must be specified in homogeneous (4D) modeling coordinates.
PEXlib assumes that 4D modeling coordinates (x,y,z) have already been
multiplied by the homogeneous coordinate (w).
If the rationality is
.PN PEXNonRational ,
the control points must be
specified in non-homogeneous (3D) modeling coordinates.
.LP
Evaluation of the spline is restricted to a specific region in the
parametric coordinate space.  The
parametric limits, tmin and tmax, specify the region in the
parametric coordinate space over which the spline is to
be evaluated (tmin must be less than tmax).
The parametric bounds must also satisfy the
restriction tmin >= t(order), tmax <= t(k+1-order).
.LP
Depending on the ASF attributes, line color,
line type, line width and curve approximation attributes are
obtained either directly from the current line attributes or from
the line bundle.
.LP
If the specified curve order is not supported, the output primitive
is stored in a structure, but when rendered, the primitive
is ignored and has no visual effect.
.LP
Also, the curve order must not be less than one.
.RE
.SH
Data Structures
.ID
.Co
typedef union {
    PEXCoord2D          *point_2d;
    PEXCoord            *point;
    PEXCoord4D          *point_4d;
} PEXArrayOfCoord;      /* Pointer to array of points */
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetLineType ,
.PN PEXSetLineWidth ,
.PN PEXSetLineColorIndex ,
.PN PEXSetLineColor ,
.br
.PN PEXSetLineBundleIndex ,
.PN PEXSetCurveApprox ,
.PN PEXGetImpDepConstants
.RE
.bp
.SH
PEXNURBSurface - Non-Uniform Rational B-spline Surface Primitive
.XS
	PEXNURBSurface
.XE
.SH
Synopsis
.RS
.FD 0
void PEXNURBSurface\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIrationality\fP\^, int \fIuorder\fP\^, int \fIvorder\fP\^, float *\fIuknots\fP\^, float *\fIvknots\fP\^, unsigned int \fIcol_count\fP\^, unsigned int \fIrow_count\fP\^, PEXArrayOfCoord \fIpoints\fP\^, unsigned int \fIcurve_count\fP\^, PEXListOfTrimCurve *\fItrim_curves\fP\^)
.FN
.RE
.IN "PEXNURBSurface" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIrationality\fP 1i
The type of B-spline surface, whether rational or non-rational
.Pn ( PEXRational
or
.PN PEXNonRational ).
.IP \fIuorder\fP 1i
The order of the polynomial expression in the u direction.
.IP \fIvorder\fP 1i
The order of the polynomial expression in the v direction.
.IP \fIuknots\fP 1i
An array of floats specifying the B-spline curve knots in the u direction.
.IP \fIvknots\fP 1i
An array of floats specifying the B-spline curve knots in the v direction.
.IP \fIcol_count\fP 1i
The number of columns in the points array (number of points in the u direction).
.IP \fIrow_count\fP 1i
The number of rows in the points array (number of points in the v direction).
.IP \fIpoints\fP 1i
An array of points defining the B-spline surface.
.IP \fIcurve_count\fP 1i
The number of trimming curves.
.IP \fItrim_curves\fP 1i
A pointer to a list of trimming curves.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a non-uniform B-spline surface output primitive.
.LP
The surface is generated as a function of the parametric
variables u and v.
The u and v order must be positive integers and
indicate the order of the surface in each of the u and v parameter dimensions.
.PN PEXGetImpDepConstants
can be called to determine
the largest supported value for surface u and v order.
The spline
shape is specified using two lists of knots in the parametric coordinate
space, plus an array of control points specified in
modeling coordinates.  The u and v knot
sequences must each form a non-decreasing sequence of numbers.
The column count indicates the number of control points in the u direction and
the row count indicates the number of control points in the v direction.
The control points are stored in the array in row-major order (i.e., the column
number varies fastest as vertices are stored in the array) and the rows increase
in the direction of increasing v.
The number of knots in the u direction is the sum of the order in the u
direction and column count.
The number of knots in the v direction is the sum of the order in the v
direction and row count.
The number of control points in each direction must be at least as large as the
corresponding order.
.LP
The minimum and maximum knot values define the range over 
which the B-spline surface is evaluated in the u or v parametric direction,.
.LP
If the rationality is
.PN PEXRational ,
the control point list must be specified in
homogeneous (4D) modeling coordinates.  If rationality is
.PN PEXNonRational ,
the control point list must be specified in non-homogeneous (3D) modeling
coordinates.
.LP
In addition to the parametric bounds, a list of trimming loops may also
be specified.  Trimming loops serve to further restrict the region in
parametric coordinate space over which the surface is evaluated.
Each trimming loop is defined as a list of one or more B-spline trimming curves
that are connected head-to-tail.  Each trim curve is a completely specified
NURB curve, i.e. it is rational or non-rational, has its own order, etc.
The list must be explicitly closed so that the tail of the last curve
joins the head of the first.  Each trimming curve is parameterized
independently.  If there is floating point inaccuracy in closure or in
head-to-tail connectivity between curves, closure or connectivity will be
assumed.  Trimming loops are defined in the parameter space of the surface
and may not go outside the parameter space of the surface.
.LP
When no trimming
loops are specified, the rectangular parameter limits of the surface are
renderer as the edges of the surface based on the edge flag attribute.
.LP
Trimming loops define the region of the surface that is to be rendered based
on the following two rules:  (1) a point is in the portion of the surface to
be rendered if any ray projected from it to infinity has an odd number of
intersections with trimming loops, and (2) traveling in the direction of a
trimming loop, the portion of the surface to be trimmed away should be on
the right and the portion to be retained should be on the left.  In other
words, a loop defined in counter-clockwise order will cause the interior of
the loop to be retained and the exterior to be trimmed away.
A clockwise loop will cause the exterior of
the loop to be retained and the interior to be trimmed away.
If loops are
nested, they must alternate in direction.  In all cases, the outermost loop
must be counter-clockwise.  No trimming curve may intersect
itself and no trimming loop may intersect itself or any other trimming loop.
Trimming loops that do
not obey these rules will result in implementation-dependent behavior.
.LP
Each trimming curve has a visibility flag that controls its visibility
for the purposes of surface edge display.  Depending on the surface edge
attributes and the visibility flags associated with trimming curves, the
curves in trimming loops may be drawn as surface edges.
.LP
All attributes affecting the representation of fill area sets
also affect the representation of the non-unform B-spline surface
primitive.  In addition, the surface approximation 
is used to determine how to
approximate the B-spline surface and the parametric surface characteristics
are used to specify the appearance of the surface.
.LP
If either of the specified surface orders are not supported, the output
primitive
is stored in a structure, but when rendered, the primitive
is ignored and has no visual effect.
.LP
Trimming curve specification must abide by the constraints of NURB curve
(e.g. number of control points at least as large as the order, non-decreasing
knot sequence, order plus number of controls points equals the number of
knots).
Also, the trim curve order must not be less than two.
.RE
.SH
Data Structures
.ID
.Co
typedef union {
    PEXCoord2D          *point_2d;
    PEXCoord            *point;
    PEXCoord4D          *point_4d;
} PEXArrayOfCoord;      /* Pointer to array of points */
.sp
typedef struct {
    unsigned short      count;                  /* number of curves */
    PEXTrimCurve        *curves;
} PEXListOfTrimCurve;
.sp
typedef struct {
    PEXSwitch           visibility;		/* True or False */
    unsigned char       reserved;
    unsigned short      order;
    PEXCoordType        rationality;		/* PEXRational or PEXNonRational */
    PEXEnumTypeIndex    approx_method;		/* see PEXGetEnumTypeInfo */
    float               tolerance;
    float               tmin, tmax;
    PEXListOfFloat      knots;
    unsigned short      count;                  /* number of control points */
    PEXArrayOfCoord     control_points;
} PEXTrimCurve;
.sp
typedef unsigned char   PEXSwitch;
typedef unsigned short  PEXCoordType;
typedef short           PEXEnumTypeIndex;
.sp
typedef struct {
    unsigned short      count;                  /* number of floats */
    float               *floats;
} PEXListOfFloat;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetSurfaceApprox ,
.br
.PN PEXSetFacetCullingMode ,
.PN PEXSetFacetDistinguishFlag ,
.br
.PN PEXSetPatternSize ,
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.br
.PN PEXSetInteriorBundleIndex ,
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.br
.PN PEXSetSurfaceEdgeWidth ,
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.br
.PN PEXSetEdgeBundleIndex ,
.PN PEXSetParaSurfCharacteristics ,
.PN PEXGetImpDepConstants
.RE
.bp
.SH
PEXPolyline - 3D Polyline Primitive
.XS
	PEXPolyline
.XE
.SH
Synopsis
.RS
.FD 0
void PEXPolyline\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, unsigned int \fIcount\fP\^, PEXCoord *\fIpoints\fP\^)
.FN
.RE
.IN "PEXPolyline" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
An array of points defining the polyline.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a polyline output primitive.
.LP
The points, specified in modeling coordinates,
are joined together by line segments.
The first point is joined to the second, the second to the third,
and so on.  The last point is not joined to the first.
.LP
The polyline colors are affected only by depth-cueing
and are mapped to device colors.  Polylines
are not displayed if they are outside the currently defined
clipping volume.  Polylines crossing the clipping volume are
clipped and only the portions inside the clipping volume
are displayed.
.LP
Depending on the ASF attributes, the line color, line type,
line width, and polyline interpolation method attributes are
obtained either directly from 
the current attributes or from the line bundle.
.LP
A polyline with fewer than two points is considered degenerate.
It is stored in a structure, but when rendered, the primitive
is ignored and has no visual effect.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetLineType ,
.PN PEXSetLineWidth ,
.br
.PN PEXSetLineColorIndex ,
.PN PEXSetLineColor ,
.PN PEXSetLineBundleIndex
.RE
.bp
.SH
PEXPolyline2D - 2D Polyline Primitive
.XS
	PEXPolyline2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXPolyline2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, unsigned int \fIcount\fP\^, PEXCoord2D *\fIpoints\fP\^)
.FN
.RE
.IN "PEXPolyline2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIcount\fP 1i
The number of points.
.IP \fIpoints\fP 1i
An array of points defining the polyline.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D polyline output primitive.
.LP
This function is like
.PN PEXPolyline ,
except
that the points consist of only x- and y-components.  The
z-component is assumed to be zero.  This primitive is two-dimensional
only in that the z-components are implied.  Geometry
transformations are still carried out in three dimensions.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetLineType ,
.PN PEXSetLineWidth ,
.br
.PN PEXSetLineColorIndex ,
.PN PEXSetLineColor ,
.PN PEXSetLineBundleIndex
.RE
.bp
.SH
PEXPolylineSetWithData - 3D Set of Polylines Primitive
.XS
	PEXPolylineSetWithData
.XE
.SH
Synopsis
.RS
.FD 0
void PEXPolylineSetWithData\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, unsigned int \fIvertex_attributes\fP\^, int \fIcolor_type\fP\^, unsigned int \fIcount\fP\^, PEXListOfVertex *\fIvertex_lists\fP\^)
.FN
.RE
.IN "PEXPolylineSetWithData" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIvertex_attributes\fP 1i
A mask indicating the vertex attributes provided
.Pn ( PEXGANone
or
.PN PEXGAColor ).
.IP \fIcolor_type\fP 1i
The type of color data provided
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIcount\fP 1i
The number of polylines.
.IP \fIvertex_lists\fP 1i
A pointer to a list of vertex arrays defining each polyline in the set.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a polyline set output primitive.
.LP
This function is similar to
.PN PEXPolyline
except that it allows
applications to specify a number of polylines as well as additional data.
These polylines may contain a color value at each vertex.
The vertex attributes indicate the content of the additional data.
Color values passed must be of the specified color type.
.LP
If colors are passed for each vertex, they are used instead of
the line color attribute.
The polyline interpolation method, which depending on the ASF attribute is
obtained directly from the current polyline interpolation attribute or from
the line bundle, controls how the polylines are shaded.
.LP
All other aspects of this primitive are the same as
.PN PEXPolyline .
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetLineType ,
.PN PEXSetLineWidth ,
.br
.PN PEXSetLineColorIndex ,
.PN PEXSetLineColor ,
.PN PEXSetPolylineInterpMethod ,
.br
.PN PEXSetLineBundleIndex
.RE
.bp
.SH
PEXQuadrilateralMesh - 3D Quadrilateral Mesh Primitive
.XS
	PEXQuadrilateralMesh
.XE
.SH
Synopsis
.RS
.FD 0
void PEXQuadrilateralMesh\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, unsigned int \fIfacet_attributes\fP\^, unsigned int \fIvertex_attributes\fP\^, int \fIcolor_type\fP\^, PEXArrayOfFacetData \fIfacet_data\fP\^, unsigned int \fIcol_count\fP\^, unsigned int \fIrow_count\fP\^, PEXArrayOfVertex \fIvertices\fP\^)
.FN
.RE
.IN "PEXQuadrilateralMesh" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape which describes all of the quadrilaterals
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIfacet_attributes\fP 1i
A mask indicating the facet attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIvertex_attributes\fP 1i
A mask indicating the vertex attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIcolor_type\fP 1i
The type of color data provided
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIfacet_data\fP 1i
An array of facet data.
.IP \fIcol_count\fP 1i
The number of columns in the vertex array.
.IP \fIrow_count\fP 1i
The number of rows in the vertex array.
.IP \fIvertices\fP 1i
A two-dimensional (row-major) array of vertices defining the quadrilateral mesh.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a quadrilateral mesh output primitive.
.LP
The quadrilateral mesh surface is created from the vertices.
The vertex array is accessed in row major order (i.e. the column
number varies fastest as vertices are accessed).
The (ith, jth), (i+1th, jth), (i+1th, j+1th), and (ith, j+1th)
vertices are connected to create a single facet.  Adjacent vertices
are interconnected until the entire facet network is processed.
.LP
Normals for quadrilaterals, if not provided explicitly, are computed by taking
the cross product of the diagonals.  For a quadrilateral with the above 
vertices, the cross product would be formed as follows:
.ID
normal(i,j) = (point(i+1, j+1) - point(i, j)) X (point(i, j+1) - point(i+1, j))
.DE
.LP
Normals are assumed to be unit length vectors.  If not unit length, the
result is implementation-dependent.
.LP
There must be an entry in the facet data array for each facet, if facet data
is indicated by the facet attributes.
.LP
All other aspects of this primitive are the same as
.PN PEXFillAreaSetWithData .
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXSetOfFillAreaSets - 3D Set of Fill Area Sets Primitive
.XS
	PEXSetOfFillAreaSets
.XE
.SH
Synopsis
.RS
.FD 0
void PEXSetOfFillAreaSets\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIshape_hint\fP\^, unsigned int \fIfacet_attributes\fP\^, unsigned int \fIvertex_attributes\fP\^, unsigned int \fIedge_attributes\fP\^,
int \fIcontour_hint\fP\^, int \fIcontours_all_one\fP\^, int \fIcolor_type\fP\^, unsigned int \fIset_count\fP\^, PEXArrayOfFacetData \fIfacet_data\fP\^, unsigned int \fIvertex_count\fP\^, PEXArrayOfVertex \fIvertices\fP\^, unsigned int \fIindex_count\fP\^, PEXSwitch *\fIedge_flags\fP\^, PEXConnectivityData *\fIconnectivity\fP\^)
.FN
.RE
.IN "PEXSetOfFillAreaSets" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIshape_hint\fP 1i
The shape which describes all of the contours
.Pn ( PEXShapeComplex ,
.PN PEXShapeNonConvex ,
.PN PEXShapeConvex ,
.PN PEXShapeUnknown ).
.IP \fIfacet_attributes\fP 1i
A mask indicating the facet attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIvertex_attributes\fP 1i
A mask indicating the vertex attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIedge_attributes\fP 1i
A mask indicating the edge attributes provided
.Pn ( PEXGANone
or
.PN PEXGAEdges ).
.IP \fIcontour_hint\fP 1i
A flag indicating whether contours are disjoint or overlapping
.Pn ( PEXContourDisjoint ,
.PN PEXContourNested ,
.PN PEXContourIntersecting ,
.PN PEXContourUnknown ).
.IP \fIcontours_all_one\fP 1i
.PN True
if each fill area set contains only one contour;
.PN False
otherwise.
.IP \fIcolor_type\fP 1i
The type of color data provided
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIset_count\fP 1i
The number of fill area sets.
.IP \fIfacet_data\fP 1i
An array of facet data.
.IP \fIvertex_count\fP 1i
The number of vertices.
.IP \fIvertices\fP 1i
An array of vertices.
.IP \fIindex_count\fP 1i
The number of vertex connectivity indices (also number of edge flags, if edges are specified).
.IP \fIedge_flags\fP 1i
An array of edge flags.
.IP \fIconnectivity\fP 1i
A pointer to the list of contour connectivity data.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a set of fill area sets output primitive.
.LP
A fill area may cross over itself to create a complex shape.  The odd-even
rule is used for determining the area that lies in the interior of the fill
area.
The shape hint is provided to enable performance improvements
for certain shapes.
Fill areas that are of higher complexity than indicated by the shape hint
are rendered
in an implementation-dependent manner.  Consequently,
applications should pass
.PN PEXShapeUnknown
as the shape unless they are
certain the fill area's shape is one of the other three.
Note that a fill area set with more than one contour is always allowed to have
contours that intersect.  If is quite possible that the only times rendering
optimization can occur are when the number of contours in a fill area set
is equal to one or if the "contours all one" flag is
.PN True ,
and the shape hint is
.PN PEXShapeConvex .
.LP
The contour hint provides further information about the 
relationships between contours in the fill area set.
If the contour hint is 
.PN PEXContourDisjoint ,
all contours will be spatially disjoint.  No overlapping 
or intersection occurs between any contours in the fill area set.  If 
the contour hint is
.PN PEXContourNested ,
contours will either be disjoint or 
wholly contained within another contour.  No contour will have edges 
that intersect or are coincident with edges of any other contour.  If 
the contour hint is
.PN PEXContourIntersecting ,
separated contours may have edges 
that are coincident or overlap.  If the contour hint is
.PN PEXContourUnknown
nothing is known about the interrelationships between contours.  Fill 
area sets with contours that have higher complexity interrelationships 
than that indicated by the contour hint are rendered in an 
implementation-dependent manner.
.LP
The facet attributes indicate the content of the facet data.
This data may be a color, a normal, or a color followed by a normal.
Use the constants
.PN PEXGANone ,
.PN PEXGAColor
and
.PN PEXGANormal
to construct a mask indicating the data provided.
If specified, the
facet color takes precedence over the
surface color.
If specified, the facet normal is used to
determine whether the fill area is back-facing.
.LP
The vertex attributes indicate the content of each fill area vertex.
In addition to the coordinate (x,y,z), applications may specify
a color, a normal, or a color followed by a normal for each vertex.
Use the constants
.PN PEXGANone ,
.PN PEXGAColor
and
.PN PEXGANormal
to construct a mask indicating the data provided.
If specified, vertex colors will override facet color or the current
surface color.
If specified, vertex normals are taken to be normals at the vertices of
the fill area.
.LP
The reflection model and the surface interpolation will
affect how the additional data is used in rendering the surface.
.LP
Color values passed must be of the specified color type.
Normals are assumed to be unit length vectors.  The effect if the normal
is not unit length is implementation-dependent.
.LP
The edge attributes indicate the content of the edge flags.  Use
.PN PEXGAEdges
to indicate edge flags are provided or
.PN PEXGANone
if no edge flags are provided.
The edge flags, if present, are set to
.PN PEXOn
or
.PN PEXOff
and are
used to indicate which edges should be rendered.
The edge control for vertex i indicates whether or
not to render the edge between vertex i and vertex i+1.
Surface edges are always rendered with the surface edge color and are not
affected by the facet or vertex colors.
.LP
The connectivity of the primitive is defined by the connectivity list.
The connectivity list is a pointer to an array of
.PN PEXConnectivityData
structures.  Each entry in the array gives the contours for one fill area set
in the set of fill area sets, and, in turn, contains a pointer to an array of
.PN PEXListOfUShort
structures.  Each of these latter structures gives the index of the vertices
of one contour in that fill area set.  The indices select a vertex in the array
of vertices.
Vertices are numbered with indices starting from zero (i.e. the first 
vertex is referenced as vertex 0).
As a special case, if the "contours all one" flag is
.PN True
then the contour count 
field in each fill area set is guaranteed to be one.
.LP
All attributes affecting the representation of fill area sets also
affect the representation of this primitive.
.RE
.SH
Data Structures
.ID
.Co
typedef struct {
    unsigned short      count;                  /* number of lists */
    PEXListOfUShort     *lists;
} PEXConnectivityData;
.sp
typedef struct {
    unsigned short      count;                  /* number of shorts */
    unsigned short      *shorts;
} PEXListOfUShort;
.sp
typedef unsigned char   PEXSwitch;
.sp
See also the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
.SH
PEXText - 3D Text Primitive
.XS
	PEXText
.XE
.SH
Synopsis
.RS
.FD 0
void PEXText\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord *\fIorigin\fP\^, PEXVector *\fIvector1\fP\^, PEXVector *\fIvector2\fP\^, int \fIlength\fP\^, char *\fIstring\fP\^)
.FN
.RE
.IN "PEXText" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIvector1\fP 1i
A vector defining the positive x-direction of the text local coordinate system.
.IP \fIvector2\fP 1i
A vector defining the positive y-direction of the text local coordinate system.
.IP \fIlength\fP 1i
The number of bytes in the text string.
.IP \fIstring\fP 1i
A pointer to the text string.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a text output primitive.
.LP
The first character set in the text font will be used.
.LP
The text string is located on a plane defined by
its position and direction vectors.  The origin defines the position, in
model coordinates,
at which to render the text string.  The two direction vectors define the
positive x- and y-directions of the text local coordinate system.
If the two vectors are parallel or if one of the vectors has zero
length, the vector values <1,0,0> and <0,1,0> are used.
.LP
During rendering, the string's position is
transformed to a position in device coordinates.  The string's
color is only affected by depth-cueing
and is mapped to a device color.  The text string is clipped depending
on the current text precision attribute.  If the text precision is
.PN PEXStringPrecision ,
clipping is done in an implementation-dependent fashion.
If the text precision is
.PN PEXCharPrecision ,
clipping is done on at least a character-by-character basis.
If the text precision is
.PN PEXStrokePrecision ,
clipping is performed at the clipping boundaries for each character.
.LP
Depending on the text ASF values, the text color, text precision,
character expansion, character spacing, and text font attributes are
obtained either directly from the current text attribute values or
from the entry in the text bundle
specified by the current text bundle index attribute.
The current character height, text path, text alignment attributes 
and character up vector are also used to render the text string.
The directions specified by the character up vector and text path
are relative to the text local coordinate system.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.br
.PN PEXSetCharExpansion ,
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.br
.PN PEXSetTextColor ,
.PN PEXSetCharHeight ,
.PN PEXSetCharUpVector ,
.br
.PN PEXSetTextPath ,
.PN PEXSetTextAlignment ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXText2D - 2D Text Primitive
.XS
	PEXText2D
.XE
.SH
Synopsis
.RS
.FD 0
void PEXText2D\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXCoord2D *\fIorigin\fP\^, int \fIlength\fP\^, char *\fIstring\fP\^)
.FN
.RE
.IN "PEXText2D" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIorigin\fP 1i
The origin of the text string.
.IP \fIlength\fP 1i
The number of bytes in the text string.
.IP \fIstring\fP 1i
A pointer to the text string.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a 2D text output primitive.
.LP
This function is like
.PN PEXText ,
except that the origin position consists of only x- and y-components.  The
z-component is assumed to be zero.  This primitive is two-dimensional
only in that the z-component is implied.  Geometry
transformations are still carried out in three dimensions.
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetTextFontIndex ,
.PN PEXSetTextPrecision ,
.br
.PN PEXSetCharExpansion ,
.PN PEXSetCharSpacing ,
.PN PEXSetTextColorIndex ,
.br
.PN PEXSetTextColor ,
.PN PEXSetCharHeight ,
.PN PEXSetCharUpVector ,
.br
.PN PEXSetTextPath ,
.PN PEXSetTextAlignment ,
.PN PEXSetTextBundleIndex
.RE
.bp
.SH
PEXTriangleStrip - 3D Triangle Strip Primitive
.XS
	PEXTriangleStrip
.XE
.SH
Synopsis
.RS
.FD 0
void PEXTriangleStrip\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, unsigned int \fIfacet_attributes\fP\^, unsigned int \fIvertex_attributes\fP\^, int \fIcolor_type\fP\^, PEXArrayOfFacetData \fIfacet_data\fP\^, unsigned int \fIcount\fP\^, PEXArrayOfVertex \fIvertices\fP\^)
.FN
.RE
.IN "PEXTriangleStrip" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIfacet_attributes\fP 1i
A mask indicating the facet attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIvertex_attributes\fP 1i
A mask indicating the vertex attributes provided
.Pn ( PEXGANone ,
.PN PEXGAColor ,
.PN PEXGANormal ).
.IP \fIcolor_type\fP 1i
The type of color data provided
.Pn ( PEXColorTypeIndexed ,
.PN PEXColorTypeRGB ,
.PN PEXColorTypeCIE ,
.PN PEXColorTypeHSV ,
.PN PEXColorTypeHLS ,
.PN PEXColorTypeRGB8 ,
.PN PEXColorTypeRGB16 ).
.IP \fIfacet_data\fP 1i
An array of facet data.
.IP \fIcount\fP 1i
The number of vertices.
.IP \fIvertices\fP 1i
An array of vertices defining the triangle strip.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a triangle strip output primitive.
.LP
The triangle strip is created from the array of vertices.  There are
two less facets in the strip than the number of vertices.
The first triangle in the strip
is formed from the first three vertices in the list, the second
triangle is formed by the second through the fourth vertices in
the list, etc., up to the last triangle, which is formed by the
last three vertices in the list.
There must be an entry in the facet data array for each facet, if facet data
is indicated by the facet attributes.
.LP
Normals are assumed to be unit length vectors.  If not unit length, the
result is implementation-dependent.
.LP
A triangle strip with fewer than
three vertices is considered degenerate.
It is stored in a structure, but when rendered, the primitive
is ignored and has no visual effect.
.LP
All other aspects of this primitive are the same as
.PN PEXFillAreaWithData .
.RE
.SH
Data Structures
.ID
.Co
See the \fICommon Data Structures\f section.
.ft P
.DE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXSetInteriorStyle ,
.PN PEXSetInteriorStyleIndex ,
.PN PEXSetSurfaceColorIndex ,
.br
.PN PEXSetSurfaceColor ,
.PN PEXSetReflectionAttributes ,
.PN PEXSetReflectionModel ,
.br
.PN PEXSetSurfaceInterpMethod ,
.PN PEXSetBFInteriorStyle ,
.PN PEXSetBFInteriorStyleIndex ,
.br
.PN PEXSetBFSurfaceColorIndex ,
.PN PEXSetBFSurfaceColor ,
.PN PEXSetBFReflectionAttributes ,
.br
.PN PEXSetBFReflectionModel ,
.PN PEXSetBFSurfaceInterpMethod ,
.PN PEXSetFacetCullingMode ,
.br
.PN PEXSetFacetDistinguishFlag ,
.PN PEXSetPatternSize ,
.br
.PN PEXSetPatternAttributes ,
.PN PEXSetPatternAttributes2D ,
.PN PEXSetInteriorBundleIndex ,
.br
.PN PEXSetSurfaceEdgeFlag ,
.PN PEXSetSurfaceEdgeType ,
.PN PEXSetSurfaceEdgeWidth ,
.br
.PN PEXSetSurfaceEdgeColor ,
.PN PEXSetSurfaceEdgeColorIndex ,
.PN PEXSetEdgeBundleIndex
.RE
.bp
