void pfill_area_set3_data(
Pint colr_type, /* colour type */ const Pfacet *facet_data, /* facet data (optional) */ const Pedge_flag_set *edge_flags, /* list of edge flag lists (optional) */ const Pvertex3_set *vertex_data /* list of vertex lists */
)
#define PCOLR_INDIRECT 0
#define PCOLR_RGB 1
#define PCOLR_CIELUV 2
#define PCOLR_HSV 3
#define PCOLR_HLS 4
typedef struct {
Pint num_data_per_facet; /* number of data values per facet */
Pcolrv *facet_colrv; /* facet colour */
Pvec3 *facet_norm; /* facet normal */
Pfloat *facet_data; /* facet data */
} Pfacet;
typedef union {
Pint colr_ind; /* colour index */
Pcolr_rep colr_rep; /* colour representation */
} Pcolrv;
typedef union {
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 */
} Pcolr_rep;
typedef struct {
Pint num_lists; /* number of edges flag list */
Pedge_flag_list *edge_flags; /* list of edge flags lists */
} Pedge_flag_set;
typedef struct {
Pint num_edges; /* number of edges in list */
Pedge_flag *edge_flags; /* list of edge flags */
} Pedge_flag_list;
typedef enum {
PEDGE_OFF,
PEDGE_ON
} Pedge_flag;
typedef struct {
Pint num_lists; /* number of vertex lists */
Pvertex3_list *vertices; /* list of vertex lists */
} Pvertex3_set;
typedef struct {
Pint num_vertices; /* number of vertices */
Pint num_data_per_vertex; /* number of data values per vertex */
Ppoint3 *vertex_points; /* list of vertex points */
Pcolrv_ptr vertex_colrvs; /* list of vertex colours */
Pvec3 *vertex_norms; /* list of vertex normals */
Pfloat *vertex_data; /* list of vertex data lists */
} Pvertex3_list;
typedef union {
Pint *color_inds; /* pointer to colour indices */
Pcolr_rep_ptr colr_reps; /* pointer to colour representations */
} Pcolrv_ptr;
typedef union {
Prgb *rgb; /* pointer to RGB colour values */
Pcieluv *cieluv; /* pointer to CIELUV colour values */
Phls *hls; /* pointer to HLS colour values */
Phsv *hsv; /* pointer to HSV colour values */
} Pcolr_rep_ptr;
This function specifies the 3D characteristics of the fill area set with data function.
The FILL AREA SET 3 WITH DATA element is inserted in the open structure after element pointer or replaces the element indicated by element pointer, depending on the edit mode value. Element pointer is updated and points to the FILL AREA SET 3 WITH DATA structure element. The values specified in the function are associated with the element.
A NULL value for the facet_data or edge_flags parameters indicates the corresponding optional data is not supplied.
When an element of this type is interpreted, a set of polygonal areas made up of a collection of subareas is generated. A subarea is defined by a single list of vertex data. Each subarea is implicitly closed. The current values of the fill area set 3 with data attributes specified in and stored in the traversal state list are bound to the primitive.
A fill area set 3 with data element containing no lists of vertex data or one or more subareas with less than three vertices will be placed in the open structure. When such an element is encountered it will have no visual effect. A fill area set 3 with data element containing non-coplanar vertex coordinates is treated in an workstation dependent manner.
The lists of edge visibility flags consist of a flag for each edge of the fill area set. If edge visibility flags are specified there must be as many lists of edge visibility flags as there are lists of vertices, and corresponding lists must have the same length. Hence, the first entry of the first list of edge visibility flags corresponds to the edge between the first two vertices of the first vertex list. The last entry of each list of edge visibility flags corresponds to the edge from the last vertex of the corresponding vertex list to the first vertex of that list. If edge visibility flags are specified, an edge will only be displayed when the edge flag aspect is ON.
Attributes associated with Fill Area Set With Data:
INTERIOR STYLE
INTERIOR STYLE INDEX
INTERIOR COLOUR
EDGE FLAG
EDGE TYPE
EDGE WIDTH SCALE FACTOR
EDGE COLOUR
DATA MAPPING METHOD

If used in one of the two GPHIGS specific modes NRS or NDDS, the effect of this function is different from the effect described in the standard.
In NRS mode, (see OPEN PIPE), the element is not stored in a structure. It is sent to the workstation on which the pipe is opened.
In NDDS mode, (see BEGIN NON DUPLICATE DATA STORE), the element is stored in the structure but its content is not copied into the CSS. GPHIGS stores only the pointer to the user's data.
See GPHIGS user guide for more details on NRS and NDDS modes.
open structure, open pipe (ext), begin non duplicate data storage (ext), set interior index, set interior style, set interior style index, set interior colour, set interior colour index, set edge flag, set edgetype, set edgewidth scale factor, set edge colour, set edge colour index, fill area set with data, fill area set 3, inquire current element content, inquire current element type and size, set data mapping representation