.\"##
.\" $XConsortium: p361,v 5.2 94/04/17 20:58:39 rws Exp $
.\"##
.\"## 
$XMCOPY
.\"## Copyright (c) 1990, 1991 by Sun Microsystems, Inc. 
.\"## 
.\"##                         All Rights Reserved
.\"## 
.\"## Permission to use, copy, modify, and distribute this software and its 
.\"## documentation for any purpose and without fee is hereby granted, 
.\"## provided that the above copyright notice appear in all copies and that
.\"## both that copyright notice and this permission notice appear in 
.\"## supporting documentation, and that the name of Sun Microsystems,
.\"## not be used in advertising or publicity 
.\"## pertaining to distribution of the software without specific, written 
.\"## prior permission.  
.\"## 
.\"## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\"## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\"## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\"## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\"## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\"## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\"## PERFORMANCE OF THIS SOFTWARE.
.TH "SET POLYLINE REPRESENTATION" 3P "29 February 1991"
.SH NAME
SET POLYLINE REPRESENTATION \- define a polyline attribute bundle on a
workstation
.IX "Attribute Representations" "SET POLYLINE REPRESENTATION"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.5i 3i
.nf
void
pset_line_rep ( ws, index, rep )
Pint	ws;	\fIworkstation identifier\fP
Pint	index;	\fIpolyline bundle index\fP
Pline_bundle	*rep;	\fIpolyline representation pointer\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
\s-2SET POLYLINE REPRESENTATION\s+2
defines a bundle of polyline attributes
for a specified entry in the workstation's polyline bundle table.  
Depending on the \s-1ASF\s0 for each of the polyline attributes,
the bundled attributes may apply to the following primitives:
.RS
.ta 0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i +0.2i
.LP
\(bu
.SM "POLYLINE"
.LP
\(bu 
.SM "POLYLINE 3"
.LP
\(bu
.SM "POLYLINE SET 3 WITH DATA"
.LP
\(bu
.SM "NON-UNIFORM B-SPLINE CURVE"
.LP
\(bu
.SM "ANNOTATION TEXT RELATIVE (when ``connected'' style is in use)"
.LP
\(bu
.SM "ANNOTATION TEXT RELATIVE 3 (when ``connected'' style is in use)"
.LP
\(bu
.SM "CELL ARRAY (when minimal simulation is performed)"
.LP
\(bu
.SM "CELL ARRAY 3 (when minimal simulation is performed)"
.ta
.RE
.\"PHIGS+:    \fBNote:\fP A separate subroutine, \s-2SET POLYLINE
.\"PHIGS+:    REPRESENTATION PLUS\s+2, sets these same attributes in the polyline
.\"PHIGS+:    bundle and also sets a value for polyline shading method. Use
.\"PHIGS+:    \s-2SET POLYLINE REPRESENTATION PLUS\s+2 when you are
.\"PHIGS+:    applying lighting and shading to your display
.SS C Input Parameters
.IP \fIws\fP
The identifier of the workstation for which the polyline
representation is being defined.  
.IP \fIindex\fP
The \fIpolyline index\fP of the entry being defined.  
.IP \fIrep\fP
A pointer to a structure containing the 
attribute values defining the polyline representation, defined as follows:  
.nf
.ta .5i +\w'Pinterstyle 'u +\w'*integers;    'u
.sp .2
typedef struct {
.sp .2
	Pint	type;	/* line type */
	Pfloat	width;	/* linewidth scale factor */
	Pint	colr_ind;	/* colour index */
.sp .2
} Pline_bundle;
.fi
.sp
\fIrep->type\fP is an integer value specifying a linetype;
the following line types are defined:  
.nf
.ta .5i +.5i +1.5i +1i
.sp .2
1	PLINE_SOLID	\fISolid\fP
2	PLINE_DASH	\fIDashed\fP
3	PLINE_DOT	\fIDotted\fP
4	PLINE_DOT_DASH	\fIDot-dashed\fP
.sp .2
.fi
Support for \fIlinetypes\fP is workstation dependent.  
.sp
\fIrep->width\fP is the \fIlinewidth scale factor\fP.  
.sp
\fIrep->colr_ind\fP is the \fIpolyline colour\fP
index, which selects a colour value from the workstation's colour table.  
.SS Execution
When \s-2SET POLYLINE REPRESENTATION\s+2 is called, the polyline index 
entry in the table of defined polyline representations on the workstation 
is set to the linetype, linewidth scale factor, and polyline colour index values.
.LP
When polyline output primitives are displayed, the polyline
representation specified by the current polyline index entry in the
traversal state list provides the polyline attributes
for which the Aspect Source Flag (\s-2ASF\s+2) is \s-2BUNDLED\s+2.  
For example, when the current linetype \s-2ASF\s+2 is set to \s-2BUNDLED\s+2,
the effective linetype is
the linetype attribute in the polyline representation selected by
the current polyline index.  The current polyline index
is set by \s-2SET POLYLINE INDEX\s+2 elements.  
.\"PHIGS+:  .LP
.\"PHIGS+:  The source for polyline colour is determined by a combination of
.\"PHIGS+:  the polyline Colour Source Flag (CSF) and the polyline colour
.\"PHIGS+:  index ASF. While the polyline CSF is set to \s-2DIRECT\s+2,
.\"PHIGS+:  polyline colour is determined by a direct colour specification set
.\"PHIGS+:  with the \s-2SET POLYLINE COLOUR\s+2 subroutine, and the polyline
.\"PHIGS+:  colour index ASF has no effect. When the polyline colour CSF
.\"PHIGS+:  is set to \s-2INDEXED\s+2, the polyline colour index ASF
.\"PHIGS+:  determines whether the attribute is defined by a bundled or
.\"PHIGS+:  individual specification in the same way as the other attributes.
.LP
The polyline bundle table is numbered from 1.  
.SH ERRORS
.IP 003
Ignoring function, function requires state 
(\s-2PHOP\s+2, \s-2WSOP\s+2, \s-2*\s+2, \s-2*\s+2)
.IP 054
Ignoring function, the specified workstation is not open
.IP 059
Ignoring function, the specified workstation does not have output capability
(that is, the workstation category is neither 
\s-2OUTPUT\s+2, \s-2OUTIN\s+2, nor \s-2MO\s+2)
.IP 100
Ignoring function, the bundle index value is less than one
.IP 103
Ignoring function, setting this bundle table entry would exceed
the maximum number of entries allowed in the workstation bundle table
.IP 104
Ignoring function, the specified line type is not available
on the specified workstation
.IP 113
Ignoring function, the colour index value is less than zero
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "SET POLYLINE INDEX (3P)"
.SM "SET INDIVIDUAL ASF (3P)"
.SM "INQUIRE POLYLINE FACILITIES (3P)"
.SM "INQUIRE POLYLINE REPRESENTATION (3P)"
.SM "SET LINETYPE (3P)"
.SM "SET LINEWIDTH SCALE FACTOR (3P)"
.SM "SET POLYLINE COLOUR INDEX (3P)"
.SM "SET POLYLINE COLOUR (3P+)"
.SM "SET POLYLINE REPRESENTATION PLUS (3P+)"
.fi
