pfill_area_set3_data(3g) — Subroutines
Name
pfill_area_set3_data − Creates a structure element that specifies values for data and data flags, defining the 3D form of the output primitive.
Operating States: PHOP, ∗, STOP, ∗
PHIGS PLUS function
Creates a structure element
Syntax
void pfill_area_set3_data (
Pint colr_type, /∗ (I) Color type ∗/
const Pfacet ∗facet_data, /∗ (I) Facet data ∗/
const Pedge_flag_set ∗edge_flags, /∗ (I) List of edge flag lists ∗/
const Pvertex3_set ∗vertex_data /∗ (I) List of vertex lists ∗/
)
Data Structures
typedef struct {
Pint num_data_per_facet; /∗ number of data values per facet ∗/
Pcolrv ∗facet_colrv; /∗ facet color ∗/
Pvec3 ∗facet_norm; /∗ facet normal ∗/
Pfloat ∗facet_data; /∗ list of facet data ∗/
} Pfacet;
typedef union {
Pint colr_ind; /∗ color index ∗/
Pcolr_rep colr_rep; /∗ color representation ∗/
} Pcolrv;
typedef union {
Prgb rgb; /∗ red, green, and blue color
specification ∗/
Pcieluv cieluv; /∗ CIELUV color specification ∗/
Phls hls; /∗ hue, lightness, and saturation color
specification ∗/
Phsv hsv; /∗ hue, saturation, and value color
specification ∗/
Pdata unsupp; /∗ color in an unsupported color
model ∗/
int impl_dep; /∗ implementation-defined ∗/
} Pcolr_rep;
typedef struct {
Pfloat red; /∗ red intensity ∗/
Pfloat green; /∗ green intensity ∗/
Pfloat blue; /∗ blue intensity ∗/
} Prgb;
typedef struct {
Pfloat cieluv_x; /∗ x coefficient ∗/
Pfloat cieluv_y; /∗ y coefficient ∗/
Pfloat cieluv_y_lum; /∗ y luminance ∗/
} Pcieluv;
typedef struct {
Pfloat hue; /∗ hue ∗/
Pfloat lightness; /∗ lightness ∗/
Pfloat satur; /∗ saturation ∗/
} Phls;
typedef struct {
Pfloat hue; /∗ hue ∗/
Pfloat satur; /∗ saturation ∗/
Pfloat value; /∗ value ∗/
} Phsv;
typedef struct {
size_t size; /∗ size of data ∗/
void ∗data; /∗ pointer to the data ∗/
} Pdata;
typedef struct {
Pfloat delta_x; /∗ delta x value ∗/
Pfloat delta_y; /∗ delta y value ∗/
Pfloat delta_z; /∗ delta z value ∗/
} Pvec3;
typedef struct {
Pint num_lists; /∗ number of edge flag lists ∗/
Pedge_flag_list ∗edge_flags; /∗ list of edge flag lists ∗/
} Pedge_flag_set;
typedef struct {
Pint num_edges; /∗ number of edges in the list ∗/
Pedge_flag ∗edge_flags; /∗ list of edge flags ∗/
} Pedge_flag_list;
typedef enum {
PEDGE_OFF, /∗ edges off ∗/
PEDGE_ON /∗ edges 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 colors ∗/
Pvec3 ∗vertex_norms; /∗ list of vertex normals ∗/
Pfloat ∗vertex_data; /∗ list of vertex data
lists ∗/
} Pvertex3_list;
typedef struct {
Pfloat x; /∗ x coordinate ∗/
Pfloat y; /∗ y coordinate ∗/
Pfloat z; /∗ z coordinate ∗/
} Ppoint3;
typedef union {
Pint ∗colr_inds; /∗ pointer to color indexes ∗/
Pcolr_rep_ptr colr_reps; /∗ pointer to color
representations ∗/
} Pcolrv_ptr;
typedef union {
Prgb ∗rgb; /∗ pointer to the RGB color
values ∗/
Pcieluv ∗cieluv; /∗ pointer to the CIELUV color
values ∗/
Phls ∗hls; /∗ pointer to the HLS color
values ∗/
Phsv ∗hsv; /∗ pointer to the HSV color
values ∗/
Pdata ∗unsupp; /∗ pointer to the unsupported color
values ∗/
} Pcolr_rep_ptr;
Constants
Defined Argument Constant Description
---------------------------------------------------------------------------
colr_type PCOLR_INDIRECT Indirect (indexed) color
PCOLR_RGB Direct specification of red,
green, and blue
PCOLR_CIELUV Direct specification in the format
of the Commission Internationale
de l’Eclairage
PCOLR_HSV Direct specification of hue,
saturation, and value
PCOLR_HLS Direct specification of hue,
lightness, and saturation
---------------------------------------------------------------------------
Description
pfill_area_set3_data creates a structure element that specifies values for the following:
•Data per fill area set flag
•Data per edge flag
•Data per vertex flag
•Fill area set data
•Edge data flag
•Vertex data
It fully specifies the three-dimensional form of the output primitive.
Depending on the current edit mode, this function either inserts the new structure element directly after the element indicated by the pointer or replaces the element indicated by the pointer. The pointer then points to the new fill area set 3 with data element.
The edge visibility data consists of an ON/OFF flag for each edge of the fill area set. The following restrictions apply:
•The first entry of the first list in the edge visibility data corresponds to the edge between the first two vertices of the first contour.
•One visibility flag must exist for each vertex.
•The last entry of the list for each contour controls the visibility of the edge, from the last to the first vertex of the contour.
•If the edge visibility data is specified, an edge will be displayed only when both the edge flag attribute is ON and the edge visibility flag is ON.
If the data per vertex flag indicates that a color per vertex is specified, a direct color model value must also be specified for the output primitive.
If the data per vertex flag specifies coordinates and color, or coordinates, colors, and normals, you must specify a list of colors (one for each vertex). If the data per vertex flag specifies coordinates and normals, or is coordinates, colors, and normals, you must specify a list of normals (one for each vertex).
If the data per vertex flag indicates that you have specified a color per vertex, you must also have specified a direct color model value.
During structure traversal, the following occurs:
•Digital PHIGS draws a fill area set 3 with data primitive.
•Digital PHIGS generates an implicitly closed polygonal area. An area with less than three vertices is considered degenerate and its appearance is indeterminate. The appearance of a nonplanar fill area may vary with orientation.
If Digital PHIGS is in immediate mode, it performs this function immediately, but the function does not create a structure element.
You can pass a null value for the facet_data or edge_flags arguments because that data is optional.
See Also
padd_names_set
pinq_edge_facs
pinq_int_facs
premove_names_set
pset_back_int_colr
pset_back_int_shad_method
pset_back_int_style
pset_back_int_style_ind
pset_back_refl_model
pset_back_refl_props
pset_depth_cue_ind
pset_edge_colr
pset_edge_colr_ind
pset_edge_flag
pset_edge_ind
pset_edgetype
pset_edgewidth
pset_facet_cull_mode
pset_facet_disting_mode
pset_hlhsr_id
pset_indiv_asf
pset_int_colr
pset_int_colr_ind
pset_int_ind
pset_int_shad_method
pset_int_style
pset_int_style_ind
pset_light_source_st
pset_pick_id
pset_refl_model
pset_refl_props
pset_view_ind