.\"
.\" $XConsortium: p147,v 5.2 94/04/17 20:56:08 rws Exp $
.\"
.\" 
$XMCOPY
.\" Copyright (c) 1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
.\" 
.\"                         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 names of Sun Microsystems,
.\" and the X Consortium 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-2INQUIRE INTERIOR REPRESENTATION PLUS\s+2
.TH "INQUIRE INTERIOR REPRESENTATION PLUS" 3P+ "29 February 1991"
.SH NAME
INQUIRE INTERIOR REPRESENTATION PLUS \- inquire the values of an
extended interior representation on a workstation
.IX "Attribute Representations" "INQUIRE INTERIOR REPRESENTATION PLUS"
.IX "Inquiry functions" "INQUIRE INTERIOR REPRESENTATION PLUS"
.IX "PHIGS Extension Functions" "INQUIRE INTERIOR REPRESENTATION PLUS"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pinq_int_rep_plus ( ws, index, type, error_ind, rep )
Pint	ws;	\fIworkstation identifier\fP
Pint	index;	\fIinterior index\fP
Pinq_type	type;	\fItype of returned value\fP
Pint	*error_ind;	\fIOUT error indicator\fP
Pint_bundle_plus	*rep;	\fIOUT interior representation\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
\s-2INQUIRE INTERIOR REPRESENTATION PLUS\s+2
returns the values of a specified entry in a workstation
extended interior bundle table.
.SS C Input Parameters
.IP \fIws\fP
The workstation identifier.
.IP \fIindex\fP
Index of the entry to be returned.
If this entry is not present in the table, and the type of returned value
parameter is \s-2PINQ_REALIZED\s+2, the representation for interior index one is
returned.
.IP \fItype\fP
An enumerated value specifying whether the values to be returned are 
those originally specified by the application (\s-2PINQ_SET\s+2), or
those resulting after \s-2PHIGS\s+2 mapped them to ones available on the
workstation (\s-2PINQ_REALIZED\s+2).  A Pinq_type structure is defined as:
.nf
.ta .5i +\w'PINQ_REALIZED     'u
.sp .3
typedef enum {
.sp .2
	PINQ_SET,
	PINQ_REALIZED
.sp .2
} Pinq_type;
.fi
.SS C Output Parameters
.IP "\fIerror_ind\fP"
A pointer to the location to store the error number of any error detected
by this function.
.IP \fIrep\fP
A pointer to a Pint_bundle_plus structure that returns the
specified extended interior representation.
Pint_bundle_plus is defined as:
.nf
.ta .5i +1.25i  +1.25i
.sp .3
typedef struct {
.sp .2
	Pint_style	style;	/* interior style */
	Pint	style_ind;	/* interior style index */
	Pgcolr	colr;	/* interior colour */
	Pint	refl_eqn;	/* reflectance equation */
	Pint	shad_meth;	/* shading method */
	Prefl_props	refl_props;	/* area properties */
	Pint_style	back_style;	/* interior style */
	Pint	back_style_ind;	/* interior style index */
	Pgcolr	back_colr;	/* interior colour */
	Pint	back_refl_eqn;	/* back reflectance equation */
	Pint	back_shad_meth;	/* back shading method */
	Prefl_props	back_refl_props;	/* back area properties */
	Pint	approx_type;	/* approximation method */
	Pfloat	approx_val[2];	/* approximation values, u and v */
.sp .2
} Pint_bundle_plus;
.IP
.fi
Pint_style is defined as:
.ta .5i
.nf
.sp .3
typedef enum {
.sp .2
	PSTYLE_HOLLOW,
	PSTYLE_SOLID,
	PSTYLE_PAT,
	PSTYLE_HATCH,
	PSTYLE_EMPTY,
.sp .2
} Pint_style;
.fi
.\".IP
.\"See \s-2SET INTERIOR STYLE PLUS\s+2 for a description of each style.
.IP
Pgcolr is defined as:
.ta .5i +.5i +.5i +.5i +.5i
.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;
.IP
.fi
Prefl_props is defined as:
.nf
.ta .5i +\w'Pfloat     'u +\w'specular_colour;     'u
.sp .3
typedef struct {
.sp .2
	Pfloat	ambient_coef;	/* ambient reflectance coefficient */
	Pfloat	diffuse_coef;	/* diffuse reflectance coefficient */
	Pfloat	specular_coef;	/* specular reflectance coefficient */
	Pgcolr	specular_colr;	/* specular colour */
	Pfloat	specular_exp;	/* specular exponent */
	Pfloat	transpar_coef;	/* transparency coefficient */
.sp .2
} Prefl_props;
.fi
.sp
The values for ambient, diffuse, specular,
and transparency coefficients must all be in the range [0,1].
The specular exponent must be greater than zero.
.sp
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, Blue\fP
2	PMODEL_CIELUV	\fICIE\fP
3	PMODEL_HSV	\fIHue, Saturation, Value\fP
4	PMODEL_HLS	\fIHue, Lightness, Saturation\fP
.fi
.sp
The index member of the \fIval\fR union is used for 
type \s-2PINDIRECT\s+2.
The general member is used for the other types.
.sp
Predefined reflectance equation values are:
.sp
.nf
.ta .5i +\w'0     'u +\w'PREFL_AMB_DIFF_SPEC     'u
1	PREFL_NONE	\fINo Reflectance Calculation Performed\fP
2	PREFL_AMBIENT	\fIUse Ambient Term\fP
3	PREFL_AMB_DIFF	\fIUse Ambient and Diffuse Terms\fP
4	PREFL_AMB_DIFF_SPEC	\fIUse Ambient, Diffuse, and Specular Terms\fP
.fi
.sp
Predefined constants for interior shading method are:
.sp
.nf
.ta .5i +\w'0     'u +\w'PSD_DOT_PRODUCT     'u
1	PSD_NONE	\fINo Shading\fP
2	PSD_COLOUR	\fIColour Interpolation Shading\fP
3	PSD_DOT_PRODUCT	\fIDot Product Interpolation Shading\fP
4	PSD_NORMAL	\fINormal Interpolation Shading\fP
.fi
.sp
Constants defined for surface approximation type are:
.sp
.nf
.ta .5i
1	PSURF_WS_DEP
2	PSURF_CONSTANT_PARAMETRIC_BETWEEN_KNOTS
3	PSURF_CHORDAL_SIZE_WC
4	PSURF_CHORDAL_SIZE_NPC
5	PSURF_CHORDAL_SIZE_DC
6	PSURF_PLANAR_DEVIATION_WC  
7	PSURF_PLANAR_DEVIATION_NPC  
8	PSURF_PLANAR_DEVIATION_DC 
.fi
.sp
See 
\s-2SET SURFACE APPROXIMATION CRITERIA\s+2
for a description of their
meaning.
.SS Execution
.LP
If the inquired information is available, the error indicator is returned
as zero and the requested information is returned in the output parameters.
.LP
If the specified interior index is not present in the interior bundle table
on the workstation and the specified type of returned value is
\fIRealized\fP,
the representation for interior index one is returned.
.LP
If the inquired information is not available, the values returned in the
output parameters are undefined and the error indicator is
set to one of the error numbers below to indicate the reason for
non-availability.
.LP
The extended interior bundle table contains bundled entries of the
\s-2PHIGS\s+2 and \s-2PHIGS\s0 Extension interior attributes.
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
interior bundle table is a portion of the extended
table.  The function 
\s-2INQUIRE INTERIOR REPRESENTATION\s+2 
returns the
following attributes from the extended table:
interior style, interior style index, and colour index.
.LP
Since this is an inquiry function, \s-2ERROR HANDLING\s+2 is not invoked
when an error is detected by this function.
.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 101
Ignoring function, the specified representation has not been defined
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "SET INTERIOR REPRESENTATION PLUS (3P+)"
.SM "INQUIRE INTERIOR REPRESENTATION (3P)"
.SM "INQUIRE PREDEFINED INTERIOR REPRESENTATION PLUS (3P+)"
.IP
.fi
