.\"##
.\" $XConsortium: p326,v 5.3 94/04/17 20:58:13 hersh 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 INDIVIDUAL ASF" 3P "29 February 1991"
.SH NAME
SET INDIVIDUAL ASF \- create structure element to set the current
Aspect Source Flag (\s-2ASF\s+2) 
for an attribute
.IX "Aspect Source Flags" "SET INDIVIDUAL ASF"
.IX "Attributes, Bundled" "SET INDIVIDUAL ASF"
.IX "Bundled Attributes" "SET INDIVIDUAL ASF"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pset_indiv_asf ( att_id, att_source )
Paspect	att_id;	\fIattribute identifier\fP
Pasf	att_source;	\fIattribute source\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, STOP, *)
.SH DESCRIPTION
.SS Purpose
\s-2SET INDIVIDUAL ASF\s+2 creates a structure element
containing the Aspect Source Flag (\s-2ASF\s+2) value
for a specified output primitive attribute.
The \s-2ASF\s+2 setting for each attribute determines if the
value used for that attribute is taken from a defined attribute bundle
(for example, from the polymarker representation selected by the current 
polymarker index) or from an attribute value defined individually
(for example, from the current marker type set by 
\s-2SET MARKER TYPE (3P)\s+2).
.LP
If the current edit mode is \s-2INSERT\s+2,
the structure element created is inserted into the currently open
structure after the element pointed to by the current element pointer. If
the edit mode is \s-2REPLACE\s+2, the new \s-2SET INDIVIDUAL ASF\s+2
element replaces the element pointed to by the element pointer. 
In either case, the
element pointer is updated to point to the new element.
.SS C Input Parameters
.IP \fIatt_id\fP
An enumerated attribute identifier value specifying the attribute
for which the \s-2ASF\s+2 is to be set.  Possible values are:
.nf
.sp
typedef enum {
.sp .2
.ta .5i
	PASPECT_LINETYPE,
	PASPECT_LINEWIDTH,
	PASPECT_LINE_COLR_IND,
	PASPECT_MARKER_TYPE,
	PASPECT_MARKER_SIZE,
	PASPECT_MARKER_COLR_IND,
	PASPECT_TEXT_FONT,
	PASPECT_TEXT_PREC,
	PASPECT_CHAR_EXPAN,
	PASPECT_CHAR_SPACE,
	PASPECT_TEXT_COLR_IND,
	PASPECT_INT_STYLE,
	PASPECT_INT_STYLE_IND,
	PASPECT_INT_COLR_IND,
	PASPECT_EDGE_FLAG,
	PASPECT_EDGETYPE,
	PASPECT_EDGEWIDTH,
	PASPECT_EDGE_COLR_IND,
	PASPECT_LINE_SHAD_METH,
	PASPECT_INT_SHAD_METH,
	PASPECT_REFL_PROPS,
	PASPECT_INT_REFL_EQN,
	PASPECT_BACK_INT_STYLE,
	PASPECT_BACK_INT_STYLE_IND,
	PASPECT_BACK_INT_COLR,
	PASPECT_BACK_INT_SHAD_METH,
	PASPECT_BACK_REFL_PROPS,
	PASPECT_BACK_INT_REFL_EQN,
	PASPECT_CURVE_APPROX_CRIT,
	PASPECT_SURF_APPROX_CRIT
.sp .2
} Paspect;
.fi
.IP \fIatt_source\fP
An enumerated \s-2ASF\s+2 value specifying the source that should be
used for the attribute identifier or \fIatt_id\fP.
Values defined are:
.nf
.sp .4
.ta .5i +\w'BUNDLED,     'u
typedef enum {
.sp .2
	PASF_BUNDLED,
	PASF_INDIV
.sp .2
} Pasf;
.fi
.SS Execution
When the \s-2SET INDIVIDUAL ASF\s+2 element is encountered during
traversal, the \s-2ASF\s+2 entry in the traversal state list 
for the attribute identifier is set to the \s-2ASF\s+2 value.
.LP
The current setting of the \s-2ASF\s+2 for an attribute determines whether the
current value of that attribute is taken from an attribute bundle or from an
individually specified value set by the appropriate 
\s-2SET INDIVIDUAL ASF\s+2 attribute function.
.LP
For example, when the current text font \s-2ASF\s+2 is set to
\s-2INDIVIDUAL\s+2, the value of the current text font (as set by
\s-2SET TEXT FONT\s+2) is used for text output primitives.
When the current text font \s-2ASF\s+2 is set to \s-2BUNDLED\s+2,
the text font from the workstation's text representation
indicated by the current text index is used instead.
.SH ERRORS
.IP 005
Ignoring function, function requires state 
(\s-2PHOP\s+2, \s-2*\s+2, \s-2STOP\s+2, \s-2*\s+2)
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "PHIGS WORKSTATION DESCRIPTION TABLE (7P)"
.SM "SET POLYLINE REPRESENTATION (3P)"
.SM "SET POLYMARKER REPRESENTATION (3P)"
.SM "SET TEXT REPRESENTATION (3P)"
.SM "SET INTERIOR REPRESENTATION (3P)"
.SM "SET EDGE REPRESENTATION (3P)"
.SM "SET EDGE REPRESENTATION PLUS (3P+)"
.SM "SET INTERIOR REPRESENTATION PLUS (3P+)"
.SM "SET POLYLINE REPRESENTATION PLUS (3P+)"
.SM "SET POLYMARKER REPRESENTATION PLUS (3P+)"
.SM "SET TEXT REPRESENTATION PLUS (3P+)"
.fi
