.\"##
.\" $XConsortium: p298,v 5.2 94/04/17 20:57:54 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 COLOUR MAPPING REPRESENTATION\s+2
.TH "SET COLOUR MAPPING REPRESENTATION" 3P+ "29 February 1991"
.SH NAME
SET COLOUR MAPPING REPRESENTATION \- define a colour mapping representation entry in the workstation table of defined colour mapping representations
.IX "PHIGS Extension Functions" "SET COLOUR MAPPING REPRESENTATION"
.IX "Special Attributes" "SET COLOUR MAPPING REPRESENTATION"
.IX "Attributes, Special Attributes" "SET COLOUR MAPPING REPRESENTATION"
.IX "Attribute Representations" "SET COLOUR MAPPING REPRESENTATION"
.IX "Depth Cueing" "SET COLOUR MAPPING REPRESENTATION"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void 
pset_colr_map_rep ( ws, index, map_method, map_data )
Pint	ws;	\fIworkstation identifier\fP
Pint	index;	\fIcolour mapping bundle index\fP
Pint	map_method;	\fI mapping method\fP
Pcolr_map_data	*map_data;	\fI mapping method data record\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, WSOP, *, *)
.SH DESCRIPTION
.SS Purpose
\s-2SET COLOUR MAPPING REPRESENTATION\s+2
defines or sets a colour mapping representation in the specified
workstation's colour mapping table.
.IP \fIws\fP
The workstation identifier specifies the workstation for which
the colour mapping representation is to be defined.
.IP \fIindex\fP
The index of the colour mapping representation to set.
.IP \fImap_method\fP
The colour mapping method.
The colour mapping methods are defined in phigs.h as follows:
.ta .5i +.5i
.nf
	1	PCOLR_MAP_TRUE
	2	PCOLR_MAP_PSEUDO
	3	PCOLR_MAP_PSEUDO_N
.fi
.SS C Output Parameters
.IP \fImap_data\fP
A pointer to a pointer to a Pcolr_map_data structure that contains the
information specific to the data mapping method.
Pcolr_map_data is defined in phigs.h as follows:
.nf
.ta .5i +.5i +1i
.sp .4
typedef union {
.sp .2
	struct {
		Pint		colr_model;
		Pfloat_list	weights;
		Pcolr_rep_list	colrs;
	} method_r2
.sp .2
	struct {
		Pint		colr_model;
		Pfloat_list_list	colr_lists;
	} method_r3
.sp .2
} Pcolr_map_data;
.fi
.sp .4
Pfloat_list is defined in phigs.h as follows:
.ta .5i +1i +1.25i
.nf
.sp .4
typedef struct {
.sp .2
	Pint	num_floats;	/* number of Pfloats in list */
	Pfloat	*floats;	/* list of floats *
.sp .2
} Pfloat_list;
.fi
.sp .4
Pfloat_list_list is defined in phigs.h as follows:
.ta .5i +1i +1.25i
.nf
.sp .4
typedef struct {
.sp .2
	Pint	num_lists;	/* number of lists in list */
	Pfloat_list	*lists;	/* list of float lists */
.sp .2
} Pfloat_list_list;
.fi
.sp .4
Pcolr_rep_list is defined in phigs.h as follows:
.ta .5i +1i +1.25i
.nf
.sp .4
typedef struct {
.sp .2
	Pint	num_colr_reps;	/* number of colours */
	Pcolr_rep	*colr_reps;	/* array of colours */
.sp .2
} Pcolr_rep_list;
.fi
.sp .4
Pcolr_rep is defined in phigs.h as follows:
.ta .5i +1i +1i
.nf
.sp .2
typedef union {
.sp .2
	Prgb	rgb;	/* Red Green Blue colour specification */
	Pcieluv	cieluv;	/* CIE L*U*V* colour specification */
	Phls	hls;	/* Hue Lightness Saturation colour specification */
	Phsv	hsv;	/* Hue Saturation Value colour specification */
	Pdata	unsupp;	/* Colour in unsupported colour model */
.sp .2
} Pcolr_rep;
.sp .2
.fi
.IP
Prgb is defined in phigs.h as follows:
.nf
.ta .5i +1i +1i
.sp .2
typedef struct {
.sp .2
	Pfloat	red;	/* red, hue, etc */
	Pfloat	green;	/* green, saturation, lightness, etc */
	Pfloat	blue;	/* blue, value, saturation, etc */
.sp .2
} Prgb;
.fi
.IP
Pcieluv is defined in phigs.h as follows:
.nf
.ta .5i +1i +1i
.sp .2
typedef struct {
.sp .2
	Pfloat	cieluv_x;	/* x coefficient */
	Pfloat	cieluv_y;	/* y coefficient */
	Pfloat	cieluv_y_lum;	/* y luminance */
.sp .2
} Pcieluv;
.fi
.IP
Phsv is defined in phigs.h as follows:
.nf
.ta .5i +1i +1i
.sp .2
typedef struct {
.sp .2
	Pfloat	hue;	/* hue */
	Pfloat	satur;	/* saturation */
	Pfloat	value;	/* value */
.sp .2
} Phsv;
.fi
.IP
Phls is defined in phigs.h as follows:
.nf
.ta .5i +1i +1i
.sp .2
typedef struct {
.sp .2
	Pfloat	hue;	/* hue */
	Pfloat	lightness;	/* lightness */
	Pfloat	satur;	/* saturation */
.sp .2
} Phls;
.fi
.IP
Pdata is defined in phigs.h as follows:
.nf
.ta .5i +1i +1i
.sp .2
typedef struct {
.sp .2
	size_t	size;	/* size of data */	
	char	*data	/*pointer to data */
.sp .2
} Pdata;
.fi
.IP
There is no data associated with mapping method \s-2PCOLR_MAP_TRUE\s+2.
The data for method \s-2PCOLR_MAP_PSEUDO\s+2 is a list of weights
and a list of direct colours.  \fIcolr_model\fR specifies the
type of colours given in the list of colours, \fIcolrs\fR.
The colour models are defined in phigs.h as follows:
.ta .5i +.5i
.nf
	1	PMODEL_RGB
	2	PMODEL_CIELUV
	3	PMODEL_HSV
	4	PMODEL_HLS
.fi
.IP
The data for mapping method \s-2PCOLR_MAP_PSEUDO_N\s+2
is \fIN\fR lists of direct colours.  These colours may be of the same
types as for \s-2PCOLR_MAP_PSEUDO\s+2.
.SS Execution
When \s-2SET COLOUR MAPPING REPRESENTATION\s+2 is called, the specified
entry in the table of defined colour mapping representations
of the specified workstation is set to the values specified.
.LP
During structure traversal, the current colour mapping representation
is selected from the workstation table by a structure element
created by the \s-2SET COLOUR MAPPING INDEX\s+2
subroutine.
.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
nor \s-2OUTIN\s+2)
.IP 103
Ignoring function, setting this bundle table entry would exceed
the maximum number of entries allowed in the workstation bundle
table
.IP 110
Ignoring function, the specified colour model is not available
on the workstation
.IP 121
Ignoring function, colour mapping index is less than 0.
.IP 125
Ignoring function, the total of the colour range fields in all the
table entries is too large.
.IP 126
Ignoring function, the specified colour mapping method is not available
on the specified workstation.
.IP 136
Ignoring function, one of the components of the colour specification
is out of range
.IP 138
Ignoring function, one or more of the fields in the specified data record
is inconsistent with te specified type.
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "SET COLOUR MAPPING INDEX (3P+)"
.SM "INQUIRE COLOUR MAPPING REPRESENTATION (3P+)"
.fi
