Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pfill_area_set_data(3g) — PHIGS 5.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

pfill_area_set_data(3g)  —  Subroutines

Name

pfill_area_set_data − Creates a structure element that specifies values for data and data flags. 

Operating States: PHOP, ∗, STOP, ∗
PHIGS PLUS function
Creates a structure element

Syntax

void pfill_area_set_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 Pvertex_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 ∗/
    Pvertex_list    ∗vertices;     /∗ list of vertex lists ∗/
} Pvertex_set;
    typedef struct {
        Pint          num_vertices;          /∗ number of vertices ∗/
        Pint          num_data_per_vertex;   /∗ number of data values per
                                                vertex ∗/
        Ppoint       ∗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 ∗/
    } Pvertex_list;
        typedef struct {
            Pfloat   x;   /∗ x coordinate ∗/
            Pfloat   y;   /∗ y coordinate ∗/
        } Ppoint;
        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_set_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

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 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 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. 

Digital PHIGS Version 4.1 does not support this function.

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026