.\"##
.\" $XConsortium: p310,v 5.2 94/04/17 20:58:02 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 EDGE REPRESENTATION" 3P "29 February 1991"
.SH NAME
SET EDGE REPRESENTATION \- define an edge attribute bundle on the workstation
.IX "Attribute Representations" "SET EDGE REPRESENTATION"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pset_edge_rep ( ws, index, rep )
Pint	ws;	\fIworkstation identifier\fP
Pint	index;	\fIedge bundle index\fP
Pedge_bundle	*rep;	\fIedge representation pointer\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
\s-2SET EDGE REPRESENTATION\s+2 defines a bundle of edge attributes for
a specified entry in the workstation's edge bundle table.  
Depending on the ASF for each of the edge attributes, 
the bundled attributes may apply to the following primitives:
.RS
.LP
\(bu
.SM "FILL AREA SET"
.LP
\(bu 
.SM "FILL AREA SET 3"
.LP
\(bu
.SM "GENERALIZED DRAWING PRIMITIVE (\fIFill Area Set Primitives\fP)"
.LP
\(bu
.SM "GENERALIZED DRAWING PRIMITIVE 3 (\fIFill Area Set Primitives\fP)"
.LP
\(bu
.SM "NON-UNIFORM B-SPLINE SURFACE"
.LP
\(bu
.SM "SET OF FILL AREA SET 3 WITH DATA"
.LP
\(bu
.SM "QUADRILATERAL MESH 3 WITH DATA"
.LP
\(bu
.SM "TRIANGLE STRIP 3 WITH DATA"
.RE
.\"PHIGS+:	FILL AREA SET WITH DATA
.\"PHIGS+:	FILL AREA SET 3 WITH DATA
.SS C Input Parameters
.IP \fIws\fP
The identifier of the workstation for which the edge
representation is being defined.
.IP \fIindex\fP
The \fIedge index\fP of the entry being defined.
.IP \fIrep\fP
A pointer to a structure containing the 
attribute values defining the edge representation, defined as follows:
.nf
.ta .5i +\w'Pedge_flag     'u +\w'colr_ind;     'u
.sp .4
typedef struct {
.sp .2
	Pedge_flag	flag;	/* edge flag */
	Pint	type;	/* edgetype */
	Pfloat	width;	/* edgewidth scale factor */
	Pint	colr_ind;	/* edge colour index */
.sp .2
} Pedge_bundle;
.fi
.IP
\fIrep\fR\(->\fIflag\fP is an enumerated value, specifying
whether edges are to be displayed or not. Valid values are:
.nf
.ta .5i +.5i +1.5i +1i
.sp
	PEDGE_OFF	\fIOff\fP
	PEDGE_ON	\fIOn\fP
.fi
.IP
\fIrep->type\fP is an enumerated value, specifying one of the following:
.nf
.ta .5i +.5i +1.5i +1i
.sp
	1	PLINE_SOLID	\fISolid\fP
	2	PLINE_DASH	\fIDashed\fP
	3	PLINE_DOT	\fIDotted\fP
	4	PLINE_DOT_DASH	\fIDot-dashed\fP
.fi
.sp
Support for edgetypes is workstation-dependent.
.IP
\fIrep\fR\(->\fIwidth\fP is an edgewidth scale factor value.
.IP 
\fIrep\fR\(->\fIcolr_ind\fP is the edge colour index,
which selects a colour value from the workstation's colour table.
.SS Execution
When \s-2SET EDGE REPRESENTATION\s+2 is called, the edge index entry in 
the table of defined edge representations on the workstation is set 
to the edge flag, edgetype, edgewidth scale factor, 
and edge colour index values.  
.LP
When area-defining output primitives are displayed, the edge
representation specified by the \fIcurrent edge index\fP entry in the
traversal state list provides the edge attributes
for which the Aspect Source Flag \s-2(ASF)\s+2 is \s-2BUNDLED\s+2.  
For example, when the current edgetype \s-2ASF\s+2 is set to \s-2BUNDLED\s+2,
the effective edgetype is
the edgetype attribute in the edge representation selected by
the current edge index.  The current edge index
is set by \s-2SET EDGE INDEX\s+2 elements.  
.\"PHIGS+:	.LP
.\"PHIGS+:	The source for edge colour is determined by a combination
.\"PHIGS+:	of the edge Colour Source Flag (CSF) and the edge colour
.\"PHIGS+:	index ASF. While the edge CSF is set to \s-2DIRECT\s+2,
.\"PHIGS+:	edge colour is determined by a direct colour specification
.\"PHIGS+:	set with the \s-2SET EDGE COLOUR\s+2 subroutine, and the
.\"PHIGS+:	edge colour index ASF has no effect. When the edge
.\"PHIGS+:	colour CSF is set to \s-2INDEXED\s+2, the edge colour
.\"PHIGS+:	index ASF determines whether the attribute is defined by a
.\"PHIGS+:	bundled or individual specification in the same way as the
.\"PHIGS+:	other attributes.
.LP
The edge bundle table is numbered from 1.
.LP
See
.SM "GENERALIZED DRAWING PRIMITIVE"
(3P) and
.SM "GENERALIZED DRAWING PRIMITIVE 3"
(3P) to determine which of the generalized primitives use the fill area set
attributes.
.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
(in other words, 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 113
Ignoring function, the colour index value is less than zero
.IP 107
Ignoring function, the specified edge type is not available
on the specified workstation
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "SET EDGE INDEX (3P)"
.SM "SET EDGE FLAG (3P)"
.SM "SET EDGE COLOUR INDEX (3P)"
.SM "SET INDIVIDUAL ASF (3P)"
.SM "INQUIRE EDGE REPRESENTATION (3P)"
.SM "SET EDGE REPRESENTATION PLUS (3P+)"
.fi
