.\"##
.\" $XConsortium: p362,v 5.2 94/04/17 20:58:40 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.
.ds f \s-2SET POLYLINE REPRESENTATION PLUS\s+2
.TH "SET POLYLINE REPRESENTATION PLUS" 3P+ "29 February 1991"
.SH NAME
SET POLYLINE REPRESENTATION PLUS \- set an extended polyline attribute
bundle on a workstation
.IX "PHIGS Extension Functions" "SET POLYLINE REPRESENTATION PLUS"
.IX "Attribute Representations" "SET POLYLINE REPRESENTATION PLUS"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pset_line_rep_plus ( ws, index, rep )
Pint	ws;	\fIworkstation identifier\fP
Pint	index;	\fIpolyline bundle index\fP
Pline_bundle_plus	*rep;	\fIextended polyline representation pointer\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
\s-2SET POLYLINE REPRESENTATION PLUS\s+2
sets a bundle of extended
polyline attributes for a specified entry in a workstation
extended polyline bundle table.
.SS C Input Parameters
.IP \fIws\fP
The identifier of the workstation for which the extended polyline 
representation is being set.
.IP \fIindex\fP
The index of the entry being set.
.IP \fIrep\fP
A pointer to a Pline_bundle_plus structure.  
Pline_bundle_plus is defined as:
.sp .2
.nf
.ta .5i +1i  +1.25i  +1.5i
.sp .2
typedef struct {
.sp .2
	Pint	type;	/* line type */
	Pfloat	width;	/* linewidth scale factor */
	Pgcolr	colr;	/* polyline colour */
	Pint	shad_meth;	/* polyline shading method */
	Pint	approx_type;	/* curve approximation criteria */
	Pfloat	approx_val;	/* curve approximation criteria */
.sp .2
} Pline_bundle_plus;
.fi
.IP
Constants defined for linetype are:
.sp
.nf
.\"	\fIValue	Linetype\fP
.ta .5i +\w'-1     'u +\w'PLINE_DOT_DASHDOT     'u
1	PLINE_SOLID	\fISolid\fP
2	PLINE_DASH	\fIDashed\fP
3	PLINE_DOT 	\fIDotted\fP
4	PLINE_DOT_DASH	\fIDot-dashed\fP
.fi
.sp
Pgcolr is defined as:
.ta .5i +1.5i   +1i  +2i
.nf
.sp .4
typedef struct {
.sp .2
	Pint	type;	/* indirect, RGB, CIE, HSV, HLS */
	union {
	     Pint	ind;	/* index in workstation colour bundle table */
	     struct {
	          Pfloat	x;	/* red, hue, etc. */
	          Pfloat	y;	/* green, saturation, lightness, etc. */
	          Pfloat	z;	/* blue, value, saturation, etc. */
	     } general;
	} val;
} Pgcolr;
.fi
.IP
Constants defined for colour type are:
.sp
.nf
.ta .5i +\w'0     'u +\w'PMODEL_CIELUV     'u
0	PINDIRECT	\fIIndirect\fP
1	PMODEL_RGB	\fIRed, Green, and Blue\fP
2	PMODEL_CIELUV	\fICIE\fP
3	PMODEL_HSV	\fIHue, Saturation, and Value\fP
4	PMODEL_HLS	\fIHue, Lightness, and Saturation\fP
.fi
.sp
The \fIind\fR member of the val union is used for
type \s-2PINDIRECT\s+2.
The \fIgeneral\fR member is used for the other types.
.sp
Constants defined for polyline shading method are:
.sp
.nf
.ta .5i +\w'0     'u +\w'PSD_COLOUR     'u
1	PSD_NONE	\fINo Shading\fP
2	PSD_COLOUR	\fIColour Interpolation Shading\fP
3	PSD_DOT_PRODUCT
4	PSD_NORMAL
.fi
.sp
Constants defined for curve approximation type are:
.sp
.nf
.ta .5i
1	PCURV_WS_DEP
2	PCURV_CONSTANT_PARAMETRIC_BETWEEN_KNOTS
3	PCURV_CHORDAL_SIZE_WC
4	PCURV_CHORDAL_SIZE_NPC
5	PCURV_CHORDAL_SIZE_DC
6	PCURV_CHORDAL_DEVIATION_WC
7	PCURV_CHORDAL_DEVIATION_NPC
8	PCURV_CHORDAL_DEVIATION_DC
.fi
.sp
See \s-2SET CURVE APPROXIMATION CRITERIA\s+2
for a description of the meaning of these constants
and their use of the curve approximation value.
.sp
.SS Execution
\s-2SET POLYLINE REPRESENTATION PLUS\s+2
sets the specified extended polyline bundle table entry in the
specified workstation state list.
The extended polyline bundle table contains bundled entries of the
\s-2PHIGS\s+2 and \s-2PHIGS\s0 Extension polyline attributes.
\s-2SET POLYLINE REPRESENTATION PLUS\s+2 sets the individual
entries of this table.  During traversal, the attribute values of these
bundles are used when the corresponding aspect source flag in the
workstation state list is set to \s-2BUNDLED\s+2.
.LP
The 
\s-2PHIGS\s+2 polyline bundle table is a portion of the extended
table.  The function \s-2SET POLYLINE REPRESENTATION\s+2
sets the following attributes in the extended table:
linetype, linewidth scale factor, and colour index
(colour type of \fIIndirect\fP is assumed).
.LP
During structure traversal the current
polyline index refers to an entry in the workstation extended polyline
bundle table.  Depending on the settings of the aspect source flags, the
contents of that bundle table entry are used to determine the attributes
associated with output primitives that use the extended polyline bundle table.
These primitives are:
.nf
.sp .4
.IP
.SM "POLYLINE"
.SM "POLYLINE 3"
.SM "POLYLINE SET 3 WITH DATA"
.SM "NON-UNIFORM B-SPLINE CURVE"
.SM "GDP" \c
(\fILinear Primitives\fP)
.SM "GDP3" \c
(\fILinear Primitives\fP)
.SM "CELL ARRAY" (\fIWhen Performing Minimal Simulation\fP)
.SM "CELL ARRAY 3" \c
(\fIWhen Performing Minimal Simulation\fP)
.sp .4
.fi
.SH ERRORS
.IP 003
Ignoring function, function requires state (\s-2PHOP, WSOP, *, *\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 linetype is not available on the specified
workstation
.IP 110
Ignoring function, the specified colour model is not available on the
workstation
.IP 113
Ignoring function, the colour index value is less than zero
.IP 122
Ignoring function, the specified polyline shading method is not available on
the workstation
.IP 136
Ignoring function, one of the components of the colour specification is
out of range
.IP 127
Ignoring function, the specified approximation criteria type
is not available on the specified workstation
.IP 128
Ignoring function, the specified parametric surface characteristics
type is not available on the specified workstation
.IP 138
Ignoring function, one or more of the fields in the specified data
record is inconsistent with the specified type
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "INQUIRE POLYLINE FACILITIES PLUS (3P+)"
.SM "SET INDIVIDUAL ASF (3P)"
.SM "INQUIRE POLYLINE REPRESENTATION PLUS (3P+)"
.SM "SET CURVE APPROXIMATION CRITERIA (3P+)"
.SM "SET POLYLINE REPRESENTATION (3P)"
.SM "SET LINETYPE (3P)"
.SM "SET LINEWIDTH SCALE FACTOR (3P)"
.SM "SET POLYLINE COLOUR (3P+)"
.SM "SET POLYLINE COLOUR INDEX (3P)"
.SM "INQUIRE POLYLINE FACILITIES (3P)"
.fi
