[ Previous | Next | Contents | Glossary | Home | Search ]
The graPHIGS Programming Interface: ISO PHIGS Subroutine Reference

Chapter 17. ISO PHIGS C Type and Macro Definitions

/*-------------------------------------------------------------------*/
/* ISO PHIGS C binding type definitions and macro definitions        */
/*-------------------------------------------------------------------*/
 
/* Environmental type definitions */
 
typedef float Pfloat;
typedef int   Pint;
 
 
/* Implementation dependent type definitions */
 
/*--Pchoice_data   CHOICE DATA RECORD---------------------------------*/
 
typedef struct {
 
  union Pchoice_pets  {
 
     struct Pchoice_pet_r1  {
        Pint           number;          /* number of whatever         */
     }  pet_r1;
 
     struct Pchoice_pet_r2  {
        Pint           num_prompts;     /* number of prompts          */
        Ppr_switch        *prompts;     /* array of prompts           */
     }  pet_r2;
 
     struct Pchoice_pet_r3  {
        Pint           num_strings;     /* number of choice strings   */
        char           **strings;       /* array of choice strings    */
     }  pet_r3;
 
     struct Pchoice_pet_r4  {
        Pint           num_strings;     /* number of choice strings   */
        char           **strings;       /* array of choice strings    */
     }  pet_r4;
 
     struct Pchoice_pet_r5  {
        Pint           struct_id;       /* structure identifier       */
        Pint           num_pick_ids;    /* number of pick identifiers */
        Pint           *pick_ids;       /* array of pick identifiers  */
     }  pet_r5;
 
  } pets;
 
} Pchoice_data;
 
 

/*--Pchoice_data3   CHOICE DATA RECORD 3------------------------------*/
 
typedef struct {
 
  union Pchoice3_pets  {
 
     struct Pchoice3_pet_r1  {
        Pint           number;          /* number of whatever         */
     }  pet_r1;
 
     struct Pchoice3_pet_r2  {
        Pint           num_prompts;     /* number of prompts          */
        Ppr_switch     *prompts;        /* array of prompts           */
     }  pet_r2;
 
     struct Pchoice3_pet_r3  {
        Pint           num_strings;     /* number of choice strings   */
        char           **strings;       /* array of choice strings    */
     }  pet_r3;
 
     struct Pchoice3_pet_r4  {
        Pint           num_strings;     /* number of choice strings   */
        char           **strings;       /* array of choice strings    */
     }  pet_r4;
 
     struct Pchoice3_pet_r5  {
        Pint           struct_id;       /* struct identifier          */
        Pint           num_pick_ids;    /* number of pick identifiers */
        Pint           *pick_ids;       /* array of pick identifiers  */
     }  pet_r5;
 
  } pets;
 
} Pchoice_data3;
 
 
/*--Pcolr_rep   COLOR REPRESENTATION----------------------------------*/
 
typedef union {
 
  Prgb       rgb;       /* Red Green Blue color specification         */
  Pcieluv    cieluv;    /* CIE L*U*V* color specification             */
  Phls       hls;       /* Hue Lightness Saturation color specificat. */
  Phsv       hsv;       /* Hue Saturation Value color specification.  */
  Pdata      unsupp;    /* Color in an unsupported color model        */
 
} Pcolr_rep;
 
 
/*--Pescape_in_data   ESCAPE INPUT DATA RECORD------------------------*/
 
typedef union {
 
  struct Pescape_in_r1 {
     char        *string;           /* escape registration dependent  */
  } escape_in_r1;
 
} Pescape_in_data;
 
 

/*--Pescape_out_data   ESCAPE OUT DATA RECORD-------------------------*/
 
typedef union {
 
  struct Pescape_out_r1 {
     char        *string;           /* escape registration dependent  */
  } escape_out_r1;
 
  struct Pescape_out_r2 {
     Pint        ws_id;             /* workstation identifier         */
     char        *string;           /* escape output data record      */
  } escape_out_r2;
 
} Pescape_out_data;
 
 
/*--Pgdp_data   GDP DATA RECORD---------------------------------------*/
 
typedef union {
 
  struct Pgdp_r1 {
     char        *string;           /* registration dependent         */
  } gdp_r1;
 
  Pdata          unsupp;            /* unsupported GDP data record    */
 
} Pgdp_data;
 
 
/*--Pgdp_data3   GDP DATA RECORD 3------------------------------------*/
 
typedef union {
 
  struct Pgdp3_r1 {
     char        *string;           /* registration dependent         */
  } gdp3_r1;
 
  Pdata          unsupp;            /* unsupported GDP3 data record   */
 
} Pgdp_data3;
 
 
/*--Pgse_data   GSE DATA RECORD---------------------------------------*/
 
typedef union {
 
  struct  Pgse_r1 {
     char        *string;           /* registration dependent         */
  } gse_r1;
 
  Pdata          unsupp;            /* unsupported GSE data record    */
 
} Pgse_data;
 
 
/*--Pitem_data   ITEM DATA RECORD-------------------------------------*/
 
typedef union {
 
  char           *string;           /* Metafile Records               */
 
  Pdata          unsupp;            /* unsupported Metafile item data */
 
} Pitem_data;
 
 
/*--Ploc_data   LOCATOR DATA RECORD-----------------------------------*/
 
typedef struct {
 
  union Ploc_pets  {
 
     struct Ploc_pet_r1  {
        Pint           number;          /* number of whatever         */
     }  pet_r1;
 
     struct Ploc_pet_r2  {
        Pint           number;          /* number of whatever         */
     }  pet_r2;
 
     struct Ploc_pet_r3  {
        Pint           number;          /* number of whatever         */
     }  pet_r3;
 
     struct Ploc_pet_r4  {
        Pline_attrs       line_attrs;   /* polyline attributes        */
     }  pet_r4;
 
     struct Ploc_pet_r5  {
        Pline_fill_ctrl_flag   line_fill_ctrl_flag; /* control flag   */
        union Ploc_attrs  {
           Pline_attrs line_attrs;      /* polyline attributes        */
 
           Pint_attrs  int_attrs;       /* interior attributes        */
 
           struct Ploc_fill_set {
              Pint_attrs   int_attrs;   /* interior attributes        */
              Pedge_attrs  edge_attrs;  /* edge attributes            */
           }  fill_set;
 
        }  attrs;
     }  pet_r5;
 
     struct Ploc_pet_r6  {
        Pint           number;          /* number of whatever         */
     }  pet_r6;
 
  }  pets;
 
} Ploc_data;
 
 

/*--Ploc_data3   LOCATOR DATA RECORD 3--------------------------------*/
 
typedef struct {
 
  union Ploc3_pets  {
 
     struct Ploc3_pet_r1  {
        Pint           number;          /* number of whatever         */
     }  pet_r1;
 
     struct Ploc3_pet_r2  {
        Pint           number;          /* number of whatever         */
     }  pet_r2;
 
     struct Ploc3_pet_r3  {
        Pint           number;          /* number of whatever         */
     }  pet_r3;
 
     struct Ploc3_pet_r4  {
        Pline_attrs       line_attrs;   /* polyline attributes        */
     }  pet_r4;
 
     struct Ploc3_pet_r5  {
        Pline_fill_ctrl_flag   line_fill_ctrl_flag; /* control flag   */
 
        union Ploc3_attrs  {
           Pline_attrs   line_attrs;    /* polyline attributes        */
 
           Pint_attrs  int_attrs;       /* interior attributes        */
 
           struct Ploc3_fill_set  {
              Pint_attrs   int_attrs;   /* interior attributes        */
              Pedge_attrs  edge_attrs;  /* edge attributes            */
           }  fill_set;
 
        }  attrs;
 
     }  pet_r5;
 
     struct Ploc3_pet_r6  {
        Pint           number;          /* number of whatever         */
     }  pet_r6;
 
  }  pets;
 
} Ploc_data3;
 
 
/*--Ppick_data   PICK DATA RECORD-------------------------------------*/
 
typedef struct {
 
  union Ppick_pets {
 
     struct Ppick_pet_r1  {
        char           *string;         /* implementation dependent   */
     }  pet_r1;
 
  } pets;
 
}  Ppick_data;
 
 

/*--Ppick_data3   PICK DATA RECORD 3----------------------------------*/
 
typedef struct {
 
  union Ppick3_pets  {
 
     struct Ppick3_pet_r1  {
        char           *string;         /* implementation dependent   */
     }  pet_r1;
 
  } pets;
 
}  Ppick_data3;
 
 
 
/*--Pstring_data   STRING DATA RECORD---------------------------------*/
 
typedef struct {
 
  Pint                 in_buf_size;
  Pint                 init_pos;
 
  union Pstring_pets {
 
     struct Pstring_pet_r1    {
        char           **string;        /* implementation dependent   */
     }  pet_r1;
 
  } pets;
 
}  Pstring_data;
 
 
/*--Pstring_data3   STRING DATA RECORD 3------------------------------*/
 
typedef struct {
 
  Pint                 in_buf_size;
  Pint                 init_pos;
 
  union Pstring3_pets  {
 
     struct Pstring3_pet_r1   {
        char           **string;        /* implementation dependent   */
     }  pet_r1;
 
  } pets;
 
}  Pstring_data3;
 
 
 

/*--Pstroke_data   STROKE DATA RECORD---------------------------------*/
 
typedef struct {
 
  Pint                 in_buf_size;     /* input buffer size          */
  Pint                 init_pos;        /* initial editing position   */
  Pfloat               x_interval;      /* x interval                 */
  Pfloat               y_interval;      /* y interval                 */
  Pfloat               time_interval;   /* time interval              */
 
  union Pstroke_pets  {
 
     struct Pstroke_pet_r1 {
        char           **string;        /* implementation dependent   */
     }  pet_r1;
 
     struct Pstroke_pet_r2  {
        char           **string;        /* implementation dependent   */
     }  pet_r2;
 
     struct Pstroke_pet_r3  {
        Pmarker_attrs  marker_attrs;    /* marker attributes          */
     }  pet_r3;
 
     struct Pstroke_pet_r4  {
        Pline_attrs    line_attrs;      /* line attributes            */
     }  pet_r4;
 
  } pets;
 
}  Pstroke_data;
 
 
 
/*--Pstroke_data3   STROKE DATA RECORD 3------------------------------*/
 
typedef struct {
 
  Pint                 in_buf_size;     /* input buffer size          */
  Pint                 init_pos;        /* initial editing position   */
  Pfloat               x_interval;      /* x interval                 */
  Pfloat               y_interval;      /* y interval                 */
  Pfloat               z_interval;      /* z interval                 */
  Pfloat               time_interval;   /* time interval              */
 
  union Pstroke3_pets  {
 
     struct Pstroke3_pet_r1  {
        char           **string;        /* implementation dependent   */
     }  pet_r1;
 
     struct Pstroke3_pet_r2  {
        char           **string;        /* implementation dependent   */
     }  pet_r2;
 
     struct Pstroke3_pet_r3 {
        Pmarker_attrs  marker_attrs;    /* marker attributes          */
     }  pet_r3;
 
     struct Pstroke3_pet_r4 {
        Pline_attrs    line_attrs;      /* line attributes            */
     }  pet_r4;
 
 } pets;
 
}  Pstroke_data3;
 
 
/*--Pval_data   VALUATOR DATA RECORD----------------------------------*/
 
typedef struct {
 
  Pfloat              low_value;       /* low value of valuator range */
  Pfloat              high_value;      /* high value of valuator range*/
 
  union Pval_pets  {
 
     struct Pval_pet_r1 {
        char          **string;         /* implementation dependent   */
     } pet_r1;
 
  } pets;
 
} Pval_data;
 
 
/*--Pval_data3   VALUATOR DATA RECORD 3-------------------------------*/
 
typedef struct {
 
  Pfloat              low_value;       /* low value of valuator range */
  Pfloat              high_value;      /* high value of valuator range*/
 
  union Pval3_pets  {
 
     struct Pval3_pet_r1 {
        char          **string;         /* implementation dependent   */
     } pet_r1;
 
  } pets;
 
} Pval_data3;
 
 
 

/* Implementation independent type definitions */
 
/*--Par_file   ARCHIVE FILE-------------------------------------------*/
 
typedef struct {
 
  Pint           id;                /* archive file identifier        */
  char           *name;             /* archive file name              */
 
} Par_file;
 
 
/*--Par_file_list   ARCHIVE FILE LIST---------------------------------*/
 
typedef struct {
 
  Pint           num_ar_files;      /* number of archive files        */
  Par_file       *ar_files;         /* list of archive files          */
 
} Par_file_list;
 
 
/*--Par_st   ARCHIVE STATE--------------------------------------------*/
 
typedef enum {
  PST_ARCL
  PST_AROP
} Par_st;
 
 
/*--Pasf   ASPECT SOURCE FLAG-----------------------------------------*/
 
typedef enum {
  PASF_BUNDLED
  PASF_INDIV
} Pasf;
 
 
/*--Paspect   ASPECT--------------------------------------------------*/
 
typedef enum {
  PASPECT_LINETYPE
  PASPECT_LINEWIDTH
  PASPECT_LINE_COLR_IND
  PASPECT_MARKER_TYPE
  PASPECT_MARKER_SIZE
  PASPECT_MARKER_COLR_IND
  PASPECT_TEXT_FONT
  PASPECT_TEXT_PREC
  PASPECT_CHAR_EXPAN
  PASPECT_CHAR_SPACE
  PASPECT_TEXT_COLR_IND
  PASPECT_INT_STYLE
  PASPECT_INT_STYLE_IND
  PASPECT_INT_COLR_IND
  PASPECT_EDGE_FLAG
  PASPECT_EDGETYPE
  PASPECT_EDGEWIDTH
  PASPECT_EDGE_COLR_IND
} Paspect;
 
 

/*--Pattrs   ATTRIBUTES USED------------------------------------------*/
 
typedef enum {
  PATTR_LINE
  PATTR_MARKER
  PATTR_TEXT
  PATTR_INT
  PATTR_EDGE
} Pattrs;
 
 
/*--Pcieluv   CIE L*U*V*----------------------------------------------*/
 
typedef struct {
 
  Pfloat         cieluv_x;           /* x coefficient                 */
  Pfloat         cieluv_y;           /* y coefficient                 */
  Pfloat         cieluv_y_lum;       /* y luminance                   */
 
} Pcieluv;
 
 
/*--Pclip_ind   CLIPPING INDICATOR------------------------------------*/
 
typedef enum {
  PIND_NO_CLIP
  PIND_CLIP
} Pclip_ind;
 
 
/*--Pcolr_avail   COLOR AVAILABILITY----------------------------------*/
 
typedef enum {
  PAVAIL_MONOCHR
  PAVAIL_COLR
} Pcolr_avail;
 
 
/*--Pcolr_facs   COLOR FACILITIES-------------------------------------*/
 
typedef struct {
 
  Pint           num_colrs;     /* number of colors                   */
  Pcolr_avail    colr_avail;    /* color availability                 */
  Pint           num_pred_inds; /* number of predefined color indexes */
  Pcieluv        prim_colrs[3]/* primary colors                     */
} Pcolr_facs;
 
 
/*--Pcompose_type   COMPOSITION TYPE----------------------------------*/
 
typedef enum {
  PTYPE_PRECONCAT
  PTYPE_POSTCONCAT
  PTYPE_REPLACE
} Pcompose_type;
 
 
/*--Pconf_res   CONFLICT RESOLUTION-----------------------------------*/
 
typedef enum {
  PRES_MAINTAIN
  PRES_ABANDON
  PRES_UPD
} Pconf_res;
 
 
/*--Pctrl_flag   CONTROL FLAG-----------------------------------------*/
 
typedef enum {
  PFLAG_COND
  PFLAG_ALWAYS
} Pctrl_flag;
 
 
/*--Pdata   DATA------------------------------------------------------*/
 
typedef struct {
 
  size_t         size;               /* size of data                  */
  void           *data;              /* pointer to data               */
 
} Pdata;
 
 
/*--Pdc_units   DEVICE COORDINATE UNITS-------------------------------*/
 
typedef enum {
  PDC_METRES
  PDC_OTHER
} Pdc_units;
 
 
/*--Pdefer_mode   DEFERRAL MODE---------------------------------------*/
 
typedef enum {
  PDEFER_ASAP
  PDEFER_BNIG
  PDEFER_BNIL
  PDEFER_ASTI
  PDEFER_WAIT
}  Pdefer_mode;
 
 
/*--Pdisp_space_size   DISPLAY SPACE SIZE-----------------------------*/
 
typedef struct {
 
  Pdc_units      dc_units;        /* device coordinate units          */
  Pfloat_size    size_dc;         /* device size in coordinate units  */
  Pint_size      size_raster;     /* device size in raster units      */
 
} Pdisp_space_size;
 
 
/*--Pdisp_space_size3   DISPLAY SPACE SIZE 3--------------------------*/
 
typedef struct {
 
  Pdc_units      dc_units;        /* device coordinate units          */
  Pfloat_size3   size_dc;         /* device volume in coordinate units*/
  Pint_size3     size_raster;     /* device volume in raster units    */
 
} Pdisp_space_size3;
 
 
/*--Pdisp_surf_empty   DISPLAY SURFACE EMPTY--------------------------*/
 
typedef enum {
  PSURF_NOT_EMPTY
  PSURF_EMPTY
} Pdisp_surf_empty;
 
 
/*--Pdyns_structs   DYNAMICS OF STRUCTURES----------------------------*/
 
typedef struct {
 
  Pdyn_mod       content;           /* structure content              */
  Pdyn_mod       post;              /* post structure                 */
  Pdyn_mod       unpost;            /* unpost structure               */
  Pdyn_mod       del;               /* delete structures              */
  Pdyn_mod       ref;               /* structure reference            */
 
} Pdyns_structs;
 
 
/*--Pdyns_ws_attrs   DYNAMICS OF WORKSTATION ATTRIBUTES---------------*/
 
typedef struct {
 
  Pdyn_mod       line_bundle;       /* polyline bundle representation */
  Pdyn_mod       marker_bundle;     /* polymarker bundle representatio*/
  Pdyn_mod       text_bundle;       /* text bundle representation     */
  Pdyn_mod       int_bundle;        /* interior bundle representation */
  Pdyn_mod       edge_bundle;       /* edge bundle representation     */
  Pdyn_mod       pat_rep;           /* pattern representation         */
  Pdyn_mod       colr_rep;          /* color representation           */
  Pdyn_mod       view_rep;          /* view representation            */
  Pdyn_mod       ws_tran;           /* workstation transform          */
  Pdyn_mod       highl_filter;      /* highlight filter               */
  Pdyn_mod       invis_filter;      /* invisibility filter            */
  Pdyn_mod       hlhsr_mode;        /* HLHSR mode                     */
 
} Pdyns_ws_attrs;
 
 
/*--Pdyn_mod   DYNAMIC MODIFICATION-----------------------------------*/
 
typedef enum {
  PDYN_IRG
  PDYN_IMM
  PDYN_CBS
} Pdyn_mod;
 
 
/*--Pecho_switch   ECHO SWITCH----------------------------------------*/
 
typedef enum {
  PSWITCH_NO_ECHO
  PSWITCH_ECHO
} Pecho_switch;
 
 
/*--Pedge_attrs   EDGE ATTRIBUTES-------------------------------------*/
 
typedef struct {
 
  Pasf           flag_asf;           /* edge flag asf                 */
  Pasf           type_asf;           /* edge type asf                 */
  Pasf           width_asf;          /* edge width asf                */
  Pasf           colr_ind_asf;       /* edge color index asf          */
  Pint           ind;                /* edge index                    */
  Pedge_bundle   bundle;             /* edge bundle                   */
 
} Pedge_attrs;
 
 
/*--Pedge_bundle   EDGE BUNDLE----------------------------------------*/
 
typedef struct {
 
  Pedge_flag     flag;               /* edge flag                     */
  Pint           type;               /* edgetype                      */
  Pfloat         width;              /* edgewidth scale factor        */
  Pint           colr_ind;           /* edge color index              */
 
} Pedge_bundle;
 
 
/*--Pedge_facs   EDGE FACILITIES--------------------------------------*/
 
typedef struct {
 
  Pint_list   types;           /* list of edge types                  */
  Pint        num_widths;      /* number of available edge widths     */
  Pfloat      nom_width;       /* nominal edge width                  */
  Pfloat      min_width;       /* min edge width                      */
  Pfloat      max_width;       /* max edge width                      */
  Pint        num_pred_inds;   /* number of predefined bundle indexes */
 
} Pedge_facs;
 
 
/*--Pelem_data   ELEMENT DATA-----------------------------------------*/
 
typedef union {
 
  Pint                int_data;             /* integer valued data    */
  Pfloat              float_data;           /* float valued data      */
  Ppoint_list3        point_list3;          /* list of 3d points      */
  Ppoint_list         point_list;           /* list of 2d points      */
  Ppoint_list_list3   point_list_list3;     /* list of 3d point lists */
  Ppoint_list_list    point_list_list;      /* list of 2d point lists */
 
  struct Pelem_text3 {
                      Ppoint3 pos;          /* text position          */
                      Pvec3   dir[2]      /* direction vectors      */
                      char    *char_string; /* char string            */
  } text3;
 
  struct Pelem_text {
                      Ppoint  pos;          /* text position          */
                      char    *char_string; /* character string       */
  } text;
 
  struct Pelem_anno_text_rel3 {
                      Ppoint3  ref_point;    /* reference point        */
                      Pvec3    offset;       /* annotation offset      */
                      char     *char_string; /* character string       */
  } anno_text_rel3;
 
  struct Pelem_anno_text_rel {
                      Ppoint  ref_point;    /* reference point        */
                      Pvec    offset;       /* annotation offset      */
                      char    *char_string; /* character string       */
  } anno_text_rel;
 

  struct Pelem_cell_array3 {
                      Pparal   paral;       /* parallelogram          */
                      Ppat_rep colr_array;  /* color array            */
  } cell_array3;
 
  struct Pelem_cell_array {
                      Prect    rect;        /* rectangle              */
                      Ppat_rep colr_array;  /* color array            */
  } cell_array;
 
  struct Pelem_gdp3 {
                      Pint     id;                /* GDP3 id          */
                      Ppoint_list3  point_list;   /* point list       */
                      Pgdp_data3    data;         /* data record      */
  } gdp3;
 
  struct Pelem_gdp {
                      Pint     id;                /* GDP id           */
                      Ppoint_list   point_list;   /* point list       */
                      Pgdp_data     data;         /* data record      */
  } gdp;
 
  Ptext_prec          text_prec;             /* text precision        */
  Pvec                char_up_vec;           /* character up vector   */
  Ptext_path          text_path;             /* text path             */
  Ptext_align         text_align;            /* text alignment        */
  Pint_style          int_style;             /* interior style        */
  Pedge_flag          edge_flag;             /* edge flag             */
  Ppoint              pat_ref_point;         /* pattern refer. point  */
  Pfloat_size         pat_size;              /* pattern size          */
 
  struct Pelem_pat_ref_point_vecs {
                      Ppoint3  ref_point;    /* pattern refer. point  */
                      Pvec3    ref_vec[2]  /* vectors               */
  } pat_ref_point_vecs;
 
  Pint_list           names;                 /* name sets             */
 
  struct Pelem_asf {
                      Paspect  id;           /* attribute id          */
                      Pasf     source;       /* attribute source      */
  } asf;
 
  struct Pelem_local_tran3 {
                      Pcompose_type compose_type; /* composition type */
                      Pmatrix3      matrix;       /* matrix           */
  } local_tran3;
 
  struct Pelem_local_tran {
                      Pcompose_type compose_type; /* composition type */
                      Pmatrix       matrix;       /* matrix           */
  } local_tran;
 
  Pmatrix3            global_tran3;          /* global transform3     */
  Pmatrix             global_tran;           /* global transform      */
 
  struct Pelem_model_clip3 {
                      Pint              op;          /* operator      */
                      Phalf_space_list3 half_spaces; /*half space list*/
  } model_clip3;
 

  struct Pelem_model_clip {
                      Pint              op;          /* operator      */
                      Phalf_space_list  half_spaces; /*half space list*/
  } model_clip;
 
  Pclip_ind           clip_ind;             /* clipping indicator    */
  Pdata               appl_data;            /* application data      */
 
  struct Pelem_gse {
                      Pint       id;        /* GSE id                */
                      Pgse_data  data;      /* GSE data record       */
  } gse;
 
} Pelem_data;
 
 
/*--Pelem_ref   ELEMENT REFERENCE-------------------------------------*/
 
typedef struct {
 
  Pint   struct_id;              /* structure id                      */
  Pint   elem_pos;               /* element position                  */
 
} Pelem_ref;
 
 
/*--Pelem_ref_list   ELEMENT REFERENCE LIST---------------------------*/
 
typedef struct {
 
  Pint      num_elem_refs;       /* number of element references      */
  Pelem_ref *elem_refs;          /* list of element references        */
 
} Pelem_ref_list;
 
 
/*--Pelem_ref_list_list   ELEMENT REFERENCE LIST LIST-----------------*/
 
typedef struct {
 
  Pint           num_elem_ref_lists;  /* no.of element reference lists*/
  Pelem_ref_list *elem_ref_lists;     /* list of element refer. lists */
 
} Pelem_ref_list_list;
 
 
/*--Pelem_type   ELEMENT TYPE-----------------------------------------*/
 
typedef enum {
  PELEM_ALL
  PELEM_NIL
  PELEM_POLYLINE3
  PELEM_POLYLINE
  PELEM_POLYMARKER3
  PELEM_POLYMARKER
  PELEM_TEXT3
  PELEM_TEXT
  PELEM_ANNO_TEXT_REL3
  PELEM_ANNO_TEXT_REL
  PELEM_FILL_AREA3
  PELEM_FILL_AREA
  PELEM_FILL_AREA_SET3
  PELEM_FILL_AREA_SET
  PELEM_CELL_ARRAY3
  PELEM_CELL_ARRAY
  PELEM_GDP3
  PELEM_GDP
  PELEM_LINE_IND
  PELEM_MARKER_IND
  PELEM_TEXT_IND
  PELEM_INT_IND
  PELEM_EDGE_IND
  PELEM_LINETYPE
  PELEM_LINEWIDTH
  PELEM_LINE_COLR_IND
  PELEM_MARKER_TYPE
  PELEM_MARKER_SIZE
  PELEM_MARKER_COLR_IND
  PELEM_TEXT_FONT
  PELEM_TEXT_PREC
  PELEM_CHAR_EXPAN
  PELEM_CHAR_SPACE
  PELEM_TEXT_COLR_IND
  PELEM_CHAR_HT
  PELEM_CHAR_UP_VEC
  PELEM_TEXT_PATH
  PELEM_TEXT_ALIGN
  PELEM_ANNO_CHAR_HT
  PELEM_ANNO_CHAR_UP_VEC
  PELEM_ANNO_PATH
  PELEM_ANNO_ALIGN
  PELEM_ANNO_STYLE
  PELEM_INT_STYLE
  PELEM_INT_STYLE_IND
  PELEM_INT_COLR_IND
  PELEM_EDGE_FLAG
  PELEM_EDGETYPE
  PELEM_EDGEWIDTH
  PELEM_EDGE_COLR_IND
  PELEM_PAT_SIZE
  PELEM_PAT_REF_POINT_VECS
  PELEM_PAT_REF_POINT
  PELEM_ADD_NAMES_SET
  PELEM_REMOVE_NAMES_SET
  PELEM_INDIV_ASF
  PELEM_HLHSR_ID
  PELEM_LOCAL_MODEL_TRAN3
  PELEM_LOCAL_MODEL_TRAN
  PELEM_GLOBAL_MODEL_TRAN3
  PELEM_GLOBAL_MODEL_TRAN
  PELEM_MODEL_CLIP_VOL3
  PELEM_MODEL_CLIP_VOL
  PELEM_MODEL_CLIP_IND
  PELEM_RESTORE_MODEL_CLIP_VOL
  PELEM_VIEW_IND
  PELEM_EXEC_STRUCT
  PELEM_LABEL
  PELEM_APPL_DATA
  PELEM_GSE
  PELEM_PICK_ID
} Pelem_type;
 
 
/*--Pelem_type_list   ELEMENT TYPE LIST-------------------------------*/
 
typedef struct {
 
  Pint           num_elem_types;           /* number of element types */
  Pelem_type     *elem_types;              /* list of element types   */
 
} Pelem_type_list;
 
 
/*--Perr_mode   ERROR MODE--------------------------------------------*/
 
typedef enum {
  PERR_OFF
  PERR_ON
} Perr_mode;
 
 
/*--Pfilter   FILTER--------------------------------------------------*/
 
typedef struct {
 
  Pint_list      incl_set;          /* inclusion set                  */
  Pint_list      excl_set;          /* exclusion set                  */
 
} Pfilter;
 
 
/*--Pfilter_list   FILTER LIST----------------------------------------*/
 
typedef struct {
 
  Pint           num_filters;       /* number of filters              */
  Pfilter        *filters;          /* list of filters                */
 
} Pfilter_list;
 
 
/*--Pfloat_size   FLOAT SIZE------------------------------------------*/
 
typedef struct {
 
  Pfloat         size_x;            /* x size                         */
  Pfloat         size_y;            /* y size                         */
 
} Pfloat_size;
 
 
/*--Pfloat_size3   FLOAT SIZE 3---------------------------------------*/
 
typedef struct {
 
  Pfloat         size_x;            /* x size                         */
  Pfloat         size_y;            /* y size                         */
  Pfloat         size_z;            /* z size                         */
 
} Pfloat_size3;
 
 
/*--Pgse_id_dep   GSE IDENTIFIER DEPENDENCY---------------------------*/
 
typedef struct {
 
  Pint           id;             /* GSE identifier                    */
  Pws_dep_ind    ind;            /* WS independent/dependent indicator*/
 
} Pgse_id_dep;
 
 

/*--Pgse_id_dep_list   GSE IDENTIFIER DEPENDENCY LIST-----------------*/
 
typedef struct {
 
  Pint         num_id_facs;     /* # of identifiers/dependency element*/
  Pgse_id_dep  *id_facs;        /* list of GSE facilities             */
 
} Pgse_id_dep_list;
 
 
/*--Phalf_space   HALF SPACE------------------------------------------*/
 
typedef struct {
 
  Ppoint         point;             /* point                          */
  Pvec           norm;              /* normal                         */
 
} Phalf_space;
 
 
/*--Phalf_space3   HALF SPACE 3---------------------------------------*/
 
typedef struct {
 
  Ppoint3        point;             /* point                          */
  Pvec3          norm;              /* normal                         */
 
} Phalf_space3;
 
 
/*--Phalf_space_list   HALF SPACE LIST--------------------------------*/
 
typedef struct {
 
  Pint           num_half_spaces;   /* number of half spaces          */
  Phalf_space    *half_spaces;      /* list of half spaces            */
 
} Phalf_space_list;
 
 
/*--Phalf_space_list3   HALF SPACE LIST 3-----------------------------*/
 
typedef struct {
 
  Pint           num_half_spaces;   /* number of half spaces          */
  Phalf_space3   *half_spaces;      /* list of half spaces            */
 
} Phalf_space_list3;
 
 
/*--Phls   HUE LIGHTNESS SATURATION-----------------------------------*/
 
typedef struct {
 
  Pfloat         hue;                /* hue                           */
  Pfloat         lightness;          /* lightness                     */
  Pfloat         satur;              /* saturation                    */
 
} Phls;
 
 

/*--Phor_text_align   HORIZONTAL TEXT ALIGNMENT-----------------------*/
 
typedef enum {
  PHOR_NORM
  PHOR_LEFT
  PHOR_CTR
  PHOR_RIGHT
} Phor_text_align;
 
 
/*--Phsv   HUE SATURATION VALUE---------------------------------------*/
 
typedef struct {
 
  Pfloat         hue;                /* hue                           */
  Pfloat         satur;              /* saturation                    */
  Pfloat         value;              /* value                         */
 
} Phsv;
 
 
/*--Pinq_type   INQUIRE TYPE------------------------------------------*/
 
typedef enum {
  PINQ_SET
  PINQ_REALIZED
} Pinq_type;
 
 
/*--Pint_attrs   INTERIOR ATTRIBUTES----------------------------------*/
 
typedef struct {
 
  Pasf           style_asf;         /* interior asf                   */
  Pasf           style_ind_asf;     /* interior style asf             */
  Pasf           colr_ind_asf;      /* interior color index asf       */
  Pint           ind;               /* interior index                 */
  Pint_bundle    bundle;            /* interior bundle                */
 
} Pint_attrs;
 
 
/*--Pint_bundle   INTERIOR BUNDLE-------------------------------------*/
 
typedef struct {
 
  Pint_style     style;             /* interior style                 */
  Pint           style_ind;         /* interior style index           */
  Pint           colr_ind;          /* interior color index           */
 
} Pint_bundle;
 
 
/*--Pint_facs   INTERIOR FACILITIES-----------------------------------*/
 
typedef struct {
 
  Pint           num_int_styles; /* number of interior styles         */
  Pint_style     int_styles[5] /* list of available interior styles */
  Pint_list      hatch_styles;   /* list of available hatch styles    */
  Pint           num_pred_inds;  /* no. of predefined bundle indexes  */
 
} Pint_facs;
 
 

/*--Pint_list   INTEGER LIST------------------------------------------*/
 
typedef struct {
 
  Pint           num_ints;          /* number of Pints in list        */
  Pint           *ints;             /* list of integers               */
 
} Pint_list;
 
 
/*--Pint_size   INTEGER SIZE------------------------------------------*/
 
typedef struct {
 
  Pint           size_x;            /* x size                         */
  Pint           size_y;            /* y size                         */
 
} Pint_size;
 
 
/*--Pint_size3   INTEGER SIZE 3---------------------------------------*/
 
typedef struct {
 
  Pint           size_x;            /* x size                         */
  Pint           size_y;            /* y size                         */
  Pint           size_z;            /* z size                         */
 
} Pint_size3;
 
 
/*--Pint_style   INTERIOR STYLE---------------------------------------*/
 
typedef enum {
  PSTYLE_HOLLOW
  PSTYLE_SOLID
  PSTYLE_PAT
  PSTYLE_HATCH
  PSTYLE_EMPTY
} Pint_style;
 
 
/*--Pin_class   INPUT CLASS-------------------------------------------*/
 
typedef enum {
  PIN_NONE
  PIN_LOC
  PIN_STROKE
  PIN_VAL
  PIN_CHOICE
  PIN_PICK
  PIN_STRING
} Pin_class;
 
 
/*--Pin_status   INPUT STATUS-----------------------------------------*/
 
typedef enum {
  PIN_STATUS_NONE
  PIN_STATUS_OK
  PIN_STATUS_NO_IN
} Pin_status;
 
 

/*--Plimit   LIMIT----------------------------------------------------*/
 
typedef struct {
 
  Pfloat         x_min;             /* x min                          */
  Pfloat         x_max;             /* x max                          */
  Pfloat         y_min;             /* y min                          */
  Pfloat         y_max;             /* y max                          */
 
} Plimit;
 
 
/*--Plimit3   LIMIT 3-------------------------------------------------*/
 
typedef struct {
 
  Pfloat         x_min;             /* x min                          */
  Pfloat         x_max;             /* x max                          */
  Pfloat         y_min;             /* y min                          */
  Pfloat         y_max;             /* y max                          */
  Pfloat         z_min;             /* z min                          */
  Pfloat         z_max;             /* z max                          */
 
} Plimit3;
 
 
/*--Pline_attrs   POLYLINE ATTRIBUTES---------------------------------*/
 
typedef struct {
 
  Pasf           type_asf;           /* line type asf                 */
  Pasf           width_asf;          /* line width asf                */
  Pasf           colr_ind_asf;       /* line color index asf          */
  Pint           ind;                /* line index                    */
  Pline_bundle   bundle;             /* line bundle                   */
 
} Pline_attrs;
 
 
/*--Pline_bundle   POLYLINE BUNDLE------------------------------------*/
 
typedef struct {
 
  Pint           type;               /* line type                     */
  Pfloat         width;              /* linewidth scale factor        */
  Pint           colr_ind;           /* color index                   */
 
} Pline_bundle;
 
 
/*--Pline_facs   POLYLINE FACILITIES----------------------------------*/
 
typedef struct {
 
  Pint_list      types;             /* list of line types             */
  Pint           num_widths;        /* number of available linewidths */
  Pfloat         nom_width;         /* nominal linewidth              */
  Pfloat         min_width;         /* min linewidth                  */
  Pfloat         max_width;         /* max linewidth                  */
  Pint           num_pred_inds;     /* no.of predefined bundle indexes*/
 
} Pline_facs;
 
 

/*--Pline_fill_ctrl_flag   POLYLINE FILL CONTROL FLAG-----------------*/
 
typedef enum {
  PFLAG_LINE
  PFLAG_FILL
  PFLAG_FILL_SET
} Pline_fill_ctrl_flag;
 
 
/*--Pmarker_attrs   MARKER ATTRIBUTES---------------------------------*/
 
typedef struct {
 
  Pasf           type_asf;          /* marker type asf                */
  Pasf           size_asf;          /*marker style asf                */
  Pasf           colr_ind_asf;      /* marker color index asf         */
  Pint           ind;               /* marker index                   */
  Pmarker_bundle bundle;            /* marker bundle                  */
 
} Pmarker_attrs;
 
 
/*--Pmarker_bundle   POLYMARKER BUNDLE--------------------------------*/
 
typedef struct {
 
  Pint           type;               /* marker type                   */
  Pfloat         size;               /* marker size scale factor      */
  Pint           colr_ind;           /* color index                   */
 
} Pmarker_bundle;
 
 
/*--Pmarker_facs   POLYMARKER FACILITIES------------------------------*/
 
typedef struct {
 
  Pint_list      types;         /* list of marker types               */
  Pint           num_sizes;     /* number of available marker sizes   */
  Pfloat         nom_size;      /* nomimal marker size                */
  Pfloat         min_size;      /* min marker size                    */
  Pfloat         max_size;      /* max marker size                    */
  Pint           num_pred_inds; /* number of predefined bundle indexes*/
 
} Pmarker_facs;
 
 
/*--Pmatrix   MATRIX--------------------------------------------------*/
 
typedef Pfloat Pmatrix [3][3]
 
 
/*--Pmatrix3   MATRIX 3-----------------------------------------------*/
 
typedef Pfloat Pmatrix3 [4][4]
 
 
/*--Pmod_mode   MODIFICATION MODE-------------------------------------*/
 
typedef enum {
  PMODE_NIVE
  PMODE_UWOR
  PMODE_UQUM
} Pmod_mode;
 
 
/*--Pmore_simult_events   MORE SIMULTANEOUS EVENTS--------------------*/
 
typedef enum {
  PSIMULT_NO_MORE
  PSIMULT_MORE
} Pmore_simult_events;
 
 
/*--Pnum_in   NUMBER OF INPUT DEVICES---------------------------------*/
 
typedef struct {
 
  Pint           loc;               /* locators                       */
  Pint           stroke;            /* strokes                        */
  Pint           val;               /* valuators                      */
  Pint           choice;            /* choices                        */
  Pint           pick;              /* picks                          */
  Pint           string;            /* strings                        */
 
} Pnum_in;
 
 
/*--Popen_struct_status   OPEN STRUCTURE STATUS-----------------------*/
 
typedef enum {
  PSTRUCT_NONE
  PSTRUCT_OPEN
} Popen_struct_status;
 
 
/*--Pop_mode   OPERATING MODE-----------------------------------------*/
 
typedef enum {
  POP_REQ
  POP_SAMPLE
  POP_EVENT
} Pop_mode;
 
 
/*--Pparal   PARALLELOGRAM--------------------------------------------*/
 
typedef struct {
 
  Ppoint3        p;                 /* point p                        */
  Ppoint3        q;                 /* point q                        */
  Ppoint3        r;                 /* point r                        */
 
} Pparal;
 
 
/*--PPATH_ORDER   PATH ORDER------------------------------------------*/
 
typedef enum {
  PORDER_TOP_FIRST
  PORDER_BOTTOM_FIRST
} Ppath_order;
 
 
/*--Ppat_rep   PATTERN REPRESENTATION---------------------------------*/
 
typedef struct {
 
  Pint_size      dims;              /* pattern's dimensions           */
  Pint           *colr_array;       /* color index array              */
 
} Ppat_rep;
 
 
/*--Ppick_path   PICK PATH--------------------------------------------*/
 
typedef struct {
 
  Pint            depth;            /* pick path depth                */
  Ppick_path_elem *path_list;       /* pick path list                 */
 
} Ppick_path;
 
 
/*--Ppick_path_elem   PICK PATH ELEMENT-------------------------------*/
 
typedef struct {
 
  Pint           struct_id;         /* structure identifier           */
  Pint           pick_id;           /* pick identifier                */
  Pint           elem_pos;          /* element sequence number        */
 
} Ppick_path_elem;
 
 
/*--Ppoint   POINT----------------------------------------------------*/
 
typedef struct {
 
  Pfloat         x;                 /* x coordinate                   */
  Pfloat         y;                 /* y coordinate                   */
 
} Ppoint;
 
 
/*--Ppoint3    POINT 3------------------------------------------------*/
 
typedef struct {
 
  Pfloat         x;                 /* x coordinate                   */
  Pfloat         y;                 /* y coordinate                   */
  Pfloat         z;                 /* z coordinate                   */
 
} Ppoint3;
 
 
/*--Ppoint_list   POINT LIST------------------------------------------*/
 
typedef struct {
 
  Pint           num_points;        /* number of Ppoints in the list  */
  Ppoint         *points;           /* list of points                 */
 
} Ppoint_list;
 
 
/*--Ppoint_list3   POINT LIST 3---------------------------------------*/
 
typedef struct {
 
  Pint           num_points;        /* number of Ppoint3s in the list */
  Ppoint3        *points;           /* list of points                 */
 
} Ppoint_list3;
 
 

/*--Ppoint_list_list   POINT LIST LIST--------------------------------*/
 
typedef struct {
 
  Pint           num_point_lists;   /* number of point lists          */
  Ppoint_list    *point_lists;      /* list of point lists            */
 
} Ppoint_list_list;
 
 
/*--Ppoint_list_list3   POINT LIST LIST 3-----------------------------*/
 
typedef struct {
 
  Pint           num_point_lists;   /* number of point lists          */
  Ppoint_list3   *point_lists;      /* list of point lists            */
 
} Ppoint_list_list3;
 
 
/*--Pposted_struct   POSTED STRUCTURE---------------------------------*/
 
typedef struct {
 
  Pint     id;                    /* structure id                     */
  Pfloat   disp_pri;              /* display priority                 */
 
} Pposted_struct;
 
 
/*--Pposted_struct_list   POSTED STRUCTURE LIST-----------------------*/
 
typedef struct {
 
  Pint           num_postings;    /* number of structure postings     */
  Pposted_struct *postings;       /* list of postings                 */
 
} Pposted_struct_list;
 
 
/*--Pproj_type   PROJECTION TYPE--------------------------------------*/
 
typedef enum {
  PTYPE_PARAL
  PTYPE_PERSPECT
} Pproj_type;
 
 
/*--Ppr_switch   PROMPT SWITCH----------------------------------------*/
 
typedef enum {
  PPR_OFF
  PPR_ON
} Ppr_switch;
 
 
/*--Prect   RECTANGLE-------------------------------------------------*/
 
typedef struct {
 
  Ppoint         p;                 /* point p                        */
  Ppoint         q;                 /* point q                        */
 
} Prect;
 
 
/*--Pref_flag   REFERENCE FLAG----------------------------------------*/
 
typedef enum {
  PFLAG_DEL
  PFLAG_KEEP
} Pref_flag;
 
 
/*--Pregen_flag   REGENERATION FLAG-----------------------------------*/
 
typedef enum {
  PFLAG_POSTPONE
  PFLAG_PERFORM
} Pregen_flag;
 
 
/*--Prel_pri   RELATIVE PRIORITY--------------------------------------*/
 
typedef enum {
  PPRI_HIGHER
  PPRI_LOWER
} Prel_pri;
 
 
/*--Prgb   RED GREEN BLUE---------------------------------------------*/
 
typedef struct {
 
  Pfloat         red;
  Pfloat         green;
  Pfloat         blue;
 
} Prgb;
 
 
/*--Psearch_dir   SEARCH DIRECTION------------------------------------*/
 
typedef enum {
  PDIR_BACKWARD
  PDIR_FORWARD
} Psearch_dir;
 
 
/*--Psearch_status   SEARCH STATUS------------------------------------*/
 
typedef enum {
  PSEARCH_STATUS_FAILURE
  PSEARCH_STATUS_SUCCESS
} Psearch_status;
 
 
/*--Pstore   STORE----------------------------------------------------*/
 
typedef void *Pstore;
 
 
/*--Pstruct_net_source   STRUCTURE NETWORK SOURCE---------------------*/
 
typedef enum {
  PNET_CSS
  PNET_AR
} Pstruct_net_source;
 
 

/*--Pstruct_st   STRUCTURE STATE--------------------------------------*/
 
typedef enum {
  PSTRUCT_ST_STCL
  PSTRUCT_ST_STOP
} Pstruct_st;
 
 
/*--Pstruct_status   STRUCTURE STATUS---------------------------------*/
 
typedef enum {
  PSTRUCT_STATUS_NON_EXISTENT
  PSTRUCT_STATUS_EMPTY
  PSTRUCT_STATUS_NOT_EMPTY
} Pstruct_status ;
 
 
/*--Psys_st   SYSTEM STATE--------------------------------------------*/
 
typedef enum {
  PSYS_ST_PHCL
  PSYS_ST_PHOP
} Psys_st;
 
 
/*--Ptext_align   TEXT ALIGNMENT--------------------------------------*/
 
typedef struct {
 
  Phor_text_align       hor;        /* horizontal component           */
  Pvert_text_align      vert;       /* vertical component             */
 
} Ptext_align;
 
 
/*--Ptext_bundle   TEXT BUNDLE----------------------------------------*/
 
typedef struct {
 
  Pint       font;                /* text font                        */
  Ptext_prec prec;                /* text precision                   */
  Pfloat     char_expan;          /* char expansion factor            */
  Pfloat     char_space;          /* character spacing                */
  Pint       colr_ind;            /* text color index                 */
 
} Ptext_bundle;
 
 
/*--Ptext_facs   TEXT FACILITIES--------------------------------------*/
 
typedef struct {
 
  Pint     num_font_precs;        /* number of fonts and precisions   */
  Ptext_font_prec *font_precs;    /* list of fonts and precisions     */
  Pint     num_char_hts;          /* number of character heights      */
  Pfloat   min_char_ht;           /* minimum  height                  */
  Pfloat   max_char_ht;           /* maximum height                   */
  Pint     num_char_expans;       /* # of character expansion factors */
  Pfloat   min_char_expan;        /* minimum expansion factor         */
  Pfloat   max_char_expan;        /* maximum expansion factor         */
  Pint     num_pred_inds;         /* no. of predefined bundle indexes */
 
} Ptext_facs;
 
 

/*--Ptext_font_prec   TEXT FONT AND PRECISION-------------------------*/
 
typedef struct {
 
  Pint           font;              /* text font                      */
  Ptext_prec     prec;              /* text precision                 */
 
} Ptext_font_prec;
 
 
/*--Ptext_path   TEXT PATH--------------------------------------------*/
 
typedef enum {
  PPATH_RIGHT
  PPATH_LEFT
  PPATH_UP
  PPATH_DOWN
} Ptext_path;
 
 
/*--Ptext_prec   TEXT PRECISION---------------------------------------*/
 
typedef enum {
  PPREC_STRING
  PPREC_CHAR
  PPREC_STROKE
} Ptext_prec;
 
 
/*--Pupd_st   UPDATE STATE--------------------------------------------*/
 
typedef enum {
  PUPD_NOT_PEND
  PUPD_PEND
} Pupd_st ;
 
 
/*--Pvec   VECTOR-----------------------------------------------------*/
 
typedef struct {
 
  Pfloat         delta_x;           /* delta x value                  */
  Pfloat         delta_y;           /* delta y value                  */
 
} Pvec;
 
 
/*--Pvec3   VECTOR 3--------------------------------------------------*/
 
typedef struct {
 
  Pfloat         delta_x;           /* delta x value                  */
  Pfloat         delta_y;           /* delta y value                  */
  Pfloat         delta_z;           /* delta z value                  */
 
} Pvec3;
 
 

/*--Pvert_text_align   VERTICAL TEXT ALIGNMENT------------------------*/
 
typedef enum {
  PVERT_NORM
  PVERT_TOP
  PVERT_CAP
  PVERT_HALF
  PVERT_BASE
  PVERT_BOTTOM
}Pvert_text_align;
 
 
/*--Pview_map   VIEW MAPPING------------------------------------------*/
 
typedef struct {
 
  Plimit         win;               /* window limits                  */
  Plimit         proj_vp;           /* projection viewport limits     */
 
} Pview_map;
 
 
/*--Pview_map3   VIEW MAPPING 3---------------------------------------*/
 
typedef struct {
 
  Plimit         win;               /* window limits                  */
  Plimit3        proj_vp;           /* projection viewport limits     */
  Pproj_type     proj_type;         /* projection type                */
  Ppoint3        proj_ref_point;    /* projection reference point     */
  Pfloat         view_plane;        /* view plane distance            */
  Pfloat         back_plane;        /* back plane distance            */
  Pfloat         front_plane;       /* front plane distance           */
 
} Pview_map3;
 
 
/*--Pview_rep   VIEW REPRESENTATION-----------------------------------*/
 
typedef struct {
 
  Pmatrix        ori_matrix;        /* orientation matrix             */
  Pmatrix        map_matrix;        /* mapping matrix                 */
  Plimit         clip_limit;        /* clipping limits                */
  Pclip_ind      xy_clip;           /* X-Y clipping indicator         */
 
} Pview_rep;
 
 
/*--Pview_rep3   VIEW REPRESENTATION 3--------------------------------*/
 
typedef struct {
 
  Pmatrix3       ori_matrix;        /* orientation matrix             */
  Pmatrix3       map_matrix;        /* mapping matrix                 */
  Plimit3        clip_limit;        /* clipping limits                */
  Pclip_ind      xy_clip;           /* X-Y clipping indicator         */
  Pclip_ind      back_clip;         /* back clipping indicator        */
  Pclip_ind      front_clip;        /* front clipping indicator       */
 
} Pview_rep3;
 
 

/*--Pvisual_st   VISUAL STATE-----------------------------------------*/
 
typedef enum {
  PVISUAL_ST_CORRECT
  PVISUAL_ST_DEFER
  PVISUAL_ST_SIMULATED
} Pvisual_st;
 
 
/*--Pws_cat   WORKSTATION CATEGORY------------------------------------*/
 
typedef enum {
  PCAT_OUT
  PCAT_IN
  PCAT_OUTIN
  PCAT_MO
  PCAT_MI
} Pws_cat;
 
 
/*--Pws_class   WORKSTATION CLASS-------------------------------------*/
 
typedef enum {
  PCLASS_VEC
  PCLASS_RASTER
  PCLASS_OTHER
} Pws_class;
 
 
/*--Pws_dep_ind   WORKSTATION DEPENDENCY INDICATOR--------------------*/
 
typedef enum {
  PWS_INDEP
  PWS_DEP
} Pws_dep_ind;
 
 
/*--Pws_st   WORKSTATION STATE----------------------------------------*/
 
typedef enum {
  PWS_ST_WSCL
  PWS_ST_WSOP
} Pws_st;
 
 
/*--Pws_st_tables   LENGTH OF WORKSTATION STATE TABLES----------------*/
 
typedef struct {
 
  Pint           line_bundles;      /* max.# of polyline table entries*/
  Pint           mark_bundles;      /* max.# of polymarker tbl entries*/
  Pint           text_bundles;      /* max.# of text table entries    */
  Pint           int_bundles;       /* max.# of interior table entries*/
  Pint           edge_bundles;      /* max.# of edge table entries    */
  Pint           pat_reps;          /* max.# of pattern table entries */
  Pint           colr_reps;         /* max.# of color table entries   */
  Pint           view_reps;         /* max.# of view table entries    */
 
} Pws_st_tables;
 

Function identifiers

/* Function identifiers           */
(Ref #1.)
 
#define Pfn_open_phigs              (0)
#define Pfn_close_phigs             (1)
#define Pfn_open_ws                 (2)
#define Pfn_close_ws                (3)
#define Pfn_redraw_all_structs      (4)
#define Pfn_upd_ws                  (5)
#define Pfn_set_disp_upd_st         (6)
#define Pfn_message                 (7)
#define Pfn_polyline3               (8)
#define Pfn_polyline                (9)
#define Pfn_polymarker3            (10)
#define Pfn_polymarker             (11)
#define Pfn_text3                  (12)
#define Pfn_text                   (13)
#define Pfn_anno_text_rel3         (14)
#define Pfn_anno_text_rel          (15)
#define Pfn_fill_area3             (16)
#define Pfn_fill_area              (17)
#define Pfn_fill_area_set3         (18)
#define Pfn_fill_area_set          (19)
#define Pfn_cell_array3            (20)
#define Pfn_cell_array             (21)
#define Pfn_gdp3                   (22)
#define Pfn_gdp                    (23)
#define Pfn_set_line_ind           (24)
#define Pfn_set_marker_ind         (25)
#define Pfn_set_text_ind           (26)
#define Pfn_set_int_ind            (27)
#define Pfn_set_edge_ind           (28)
#define Pfn_set_linetype           (29)
#define Pfn_set_linewidth          (30)
#define Pfn_set_line_colr_ind      (31)
#define Pfn_set_marker_type        (32)
#define Pfn_set_marker_size        (33)
#define Pfn_set_marker_colr_ind    (34)
#define Pfn_set_text_font          (35)
#define Pfn_set_text_prec          (36)
#define Pfn_set_char_expan         (37)
#define Pfn_set_char_space         (38)
#define Pfn_set_text_colr_ind      (39)
#define Pfn_set_char_ht            (40)
#define Pfn_set_char_up_vec        (41)
#define Pfn_set_text_path          (42)
#define Pfn_set_text_align         (43)
#define Pfn_set_anno_char_ht       (44)
#define Pfn_set_anno_char_up_vec   (45)
#define Pfn_set_anno_path          (46)
#define Pfn_set_anno_align         (47)
#define Pfn_set_anno_style         (48)
#define Pfn_set_int_style          (49)
#define Pfn_set_int_style_ind      (50)
#define Pfn_set_int_colr_ind       (51)
#define Pfn_set_edge_flag          (52)
#define Pfn_set_edgetype           (53)
#define Pfn_set_edgewidth          (54)
#define Pfn_set_edge_colr_ind      (55)
#define Pfn_set_pat_size           (56)
#define Pfn_set_pat_ref_point_vecs (57)
#define Pfn_set_pat_ref_point      (58)
#define Pfn_add_names_set          (59)
#define Pfn_remove_names_set       (60)
#define Pfn_set_indiv_asf          (61)
#define Pfn_set_line_rep           (62)
#define Pfn_set_marker_rep         (63)
#define Pfn_set_text_rep           (64)
#define Pfn_set_int_rep            (65)
#define Pfn_set_edge_rep           (66)
#define Pfn_set_pat_rep            (67)
#define Pfn_set_colr_rep           (68)
#define Pfn_set_highl_filter       (69)
#define Pfn_set_invis_filter       (70)
#define Pfn_set_colr_model         (71)
#define Pfn_set_hlhsr_id           (72)
#define Pfn_set_hlhsr_mode         (73)
#define Pfn_set_local_tran3        (74)
#define Pfn_set_local_tran         (75)
#define Pfn_set_global_tran3       (76)
#define Pfn_set_global_tran        (77)
#define Pfn_set_model_clip_vol3    (78)
#define Pfn_set_model_clip_vol     (79)
#define Pfn_set_model_clip_ind     (80)
#define Pfn_restore_model_clip_vol (81)
#define Pfn_set_view_ind           (82)
#define Pfn_set_view_rep3          (83)
#define Pfn_set_view_rep           (84)
#define Pfn_set_view_tran_in_pri   (85)
#define Pfn_set_ws_win3            (86)
#define Pfn_set_ws_win             (87)
#define Pfn_set_ws_vp3             (88)
#define Pfn_set_ws_vp              (89)
#define Pfn_open_struct            (90)
#define Pfn_close_struct           (91)
#define Pfn_exec_struct            (92)
#define Pfn_label                  (93)
#define Pfn_appl_data              (94)
#define Pfn_gse                    (95)
#define Pfn_set_edit_mode          (96)
#define Pfn_copy_all_elems_struct  (97)
#define Pfn_set_elem_ptr           (98)
#define Pfn_offset_elem_ptr        (99)
#define Pfn_set_elem_ptr_label    (100)
#define Pfn_del_elem              (101)
#define Pfn_del_elem_range        (102)
#define Pfn_del_elems_labels      (103)
#define Pfn_empty_struct          (104)
#define Pfn_del_struct            (105)
#define Pfn_del_struct_net        (106)
#define Pfn_del_all_structs       (107)
#define Pfn_change_struct_id      (108)
#define Pfn_change_struct_refs    (109)
#define Pfn_change_struct_id_refs (110)
#define Pfn_post_struct           (111)
#define Pfn_unpost_struct         (112)
#define Pfn_unpost_all_structs    (113)
#define Pfn_open_ar_file          (114)
#define Pfn_close_ar_file         (115)
#define Pfn_ar_structs            (116)
#define Pfn_ar_struct_nets        (117)
#define Pfn_ar_all_structs        (118)
#define Pfn_set_conf_res          (119)
#define Pfn_ret_struct_ids        (120)
#define Pfn_ret_structs           (121)
#define Pfn_ret_struct_nets       (122)
#define Pfn_ret_all_structs       (123)
#define Pfn_ret_paths_ances       (124)
#define Pfn_ret_paths_descs       (125)
#define Pfn_del_structs_ar        (126)
#define Pfn_del_struct_nets_ar    (127)
#define Pfn_del_all_structs_ar    (128)
#define Pfn_set_pick_id           (129)
#define Pfn_set_pick_filter       (130)
#define Pfn_init_loc3             (131)
#define Pfn_init_loc              (132)
#define Pfn_init_stroke3          (133)
#define Pfn_init_stroke           (134)
#define Pfn_init_val3             (135)
#define Pfn_init_val              (136)
#define Pfn_init_choice3          (137)
#define Pfn_init_choice           (138)
#define Pfn_init_pick3            (139)
#define Pfn_init_pick             (140)
#define Pfn_init_string3          (141)
#define Pfn_init_string           (142)
#define Pfn_set_loc_mode          (143)
#define Pfn_set_stroke_mode       (144)
#define Pfn_set_val_mode          (145)
#define Pfn_set_choice_mode       (146)
#define Pfn_set_pick_mode         (147)
#define Pfn_set_string_mode       (148)
#define Pfn_req_loc3              (149)
#define Pfn_req_loc               (150)
#define Pfn_req_stroke3           (151)
#define Pfn_req_stroke            (152)
#define Pfn_req_val               (153)
#define Pfn_req_choice            (154)
#define Pfn_req_pick              (155)
#define Pfn_req_string            (156)
#define Pfn_sample_loc3           (157)
#define Pfn_sample_loc            (158)
#define Pfn_sample_stroke3        (159)
#define Pfn_sample_stroke         (160)
#define Pfn_sample_val            (161)
#define Pfn_sample_choice         (162)
#define Pfn_sample_pick           (163)
#define Pfn_sample_string         (164)
#define Pfn_await_event           (165)
#define Pfn_flush_events          (166)
#define Pfn_get_loc3              (167)
#define Pfn_get_loc               (168)
#define Pfn_get_stroke3           (169)
#define Pfn_get_stroke            (170)
#define Pfn_get_val               (171)
#define Pfn_get_choice            (172)
#define Pfn_get_pick              (173)
#define Pfn_get_string            (174)
#define Pfn_write_item            (175)
#define Pfn_get_item_type         (176)
#define Pfn_read_item             (177)
#define Pfn_interpret_item        (178)
#define Pfn_set_err_hand_mode     (179)
#define Pfn_escape                (180)
#define Pfn_set_err_hand          (181)
 

Error codes

/* Error codes                    */
 
 
/*                         <0       Implementation Dependent Errors */
 
#define PE_NO_ERROR        (0)   /* No Error                         */
 

/* State Errors */
#define PE_NOT_PHCL        (1)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHCL, WSCL, STCL, ARCL)         */
 
#define PE_NOT_PHOP        (2)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHOP, *, *, *)                  */
 
#define PE_NOT_WSOP        (3)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHOP, WSOP, *, *)               */
 
#define PE_NOT_CL          (4)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHOP, WSCL, STCL, ARCL)         */
 
#define PE_NOT_STOP        (5)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHOP, *, STOP, *)               */
 
#define PE_NOT_STCL        (6)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHOP, *, STCL, *)               */
 
#define PE_NOT_AROP        (7)   /* Ignoring function, function re-  */
                                 /* quires state                     */
                                 /* (PHOP, *, *, AROP)               */
 
 
/* Workstation Errors */
#define PE_BAD_CONN_ID     (50)  /* Ignoring function, connection    */
                                 /* identifier not recognized by the */
                                 /* implementation                   */
 
#define PE_WS_TYPE         (51)  /* Ignoring function, this informa- */
                                 /* tion is not yet available for    */
                                 /* this workstation type; open a    */
                                 /* workstation of this type and use */
                                 /* the specific workstation type    */
 
#define PE_BAD_WS_TYPE     (52)  /* Ignoring function, workstation   */
                                 /* type not recognized by the imple-*/
                                 /* mentation                        */
 
#define PE_DUP_WS_ID       (53)  /* Ignoring function, workstation   */
                                 /* identifier already in use        */
 
 
#define PE_WS_NOT_OPEN     (54)  /* Ignoring function, the specified */
                                 /* workstation is not open          */
 
#define PE_NO_OPEN_WS      (55)  /* Ignoring function, workstation   */
                                 /* can not be opened for an         */
                                 /* implementation dependent reason  */
 
#define PE_WS_NOT_MO       (56)  /* Ignoring function, specified     */
                                 /* workstation is not of category MO*/
 
#define PE_WS_MI           (57)  /* Ignoring function, specified     */
                                 /* workstation is of category MI    */
 
#define PE_WS_NOT_MI       (58)  /* Ignoring function, specified     */
                                 /* workstation is not of category MI*/
 
 
#define PE_WS_NO_OUTPUT    (59)  /* Ignoring function, the specified */
                                 /* workstation does not have output */
                                 /* capability (i.e. the workstation */
                                 /* category is neither OUTPUT, OUTIN*/
                                 /* nor MO)                          */
 
#define PE_WS_NOT_OUTIN    (60)  /* Ignoring function, specified     */
                                 /* workstation is not of category   */
                                 /* OUTIN                            */
 
#define PE_WS_NO_INPUT     (61)  /* Ignoring function, specified     */
                                 /* workstation is neither category  */
                                 /* INPUT nor category OUTIN         */
 
#define PE_WS_NOT_OUT      (62)  /* Ignoring function, specified     */
                                 /* workstation is neither category  */
                                 /* OUTPUT nor category OUTIN        */
 
#define PE_MAX_WS          (63)  /* Ignoring function, opening this  */
                                 /* workstation would exceed the     */
                                 /* maximum number of simultaneously */
                                 /* open workstations                */
 
#define PE_NO_GDP          (64)  /* Ignoring function, the specified */
                                 /* workstation type is not able to  */
                                 /* generate the specified           */
                                 /* generalized drawing primitive    */
 
 
 
/* Output Attribute Errors */
#define PE_BUN_IND_LT_1    (100) /* Ignoring function, the bundle    */
                                 /* index value is less than one     */
 
#define PE_REP_UNDEF       (101) /* Ignoring function, the specified */
                                 /* representation has not been      */
                                 /* defined.                         */
 
#define PE_REP_NOT_PREDEF  (102) /* Ignoring function, the specified */
                                 /* representation has not been      */
                                 /* predefined on this workstation   */
 
#define PE_MAX_BUN         (103) /* Ignoring function, setting this  */
                                 /* bundle table entry would exceed  */
                                 /* the maximum number of entries    */
                                 /* allowed in the workstation bundle*/
                                 /* table                            */
 
#define PE_BAD_LINETYPE    (104) /* Ignoring function, the specified */
                                 /* linetype is not available on the */
                                 /* specified workstation            */
 
#define PE_BAD_MARKER_TYPE (105) /* Ignoring function, the specified */
                                 /* marker type is not available on  */
                                 /* the specified workstation        */
 
#define PE_BAD_FONT        (106) /* Ignoring function, the specified */
                                 /* font is not available for the    */
                                 /* requested text precision on the  */
                                 /* specified workstation            */
 
#define PE_BAD_EDGETYPE    (107) /* Ignoring function, the specified */
                                 /* edgetype is not available on the */
                                 /* specified workstation            */
 
 
#define PE_BAD_INT_STYLE   (108) /* Ignoring function, the specified */
                                 /* interior style is not available  */
                                 /* on the workstation               */
 
#define PE_NO_PAT          (109) /* Ignoring function, interior style*/
                                 /* PATTERN is not supported on the  */
                                 /* workstation                      */
 
#define PE_BAD_COLR_MODEL  (110) /* Ignoring function, the specified */
                                 /* color model is not available on  */
                                 /* the workstation                  */
 
#define PE_BAD_HLHSR_MODE  (111) /* Ignoring function, the specified */
                                 /* HLHSR mode is not available on   */
                                 /* the specified workstation        */
 
#define PE_PAT_IND_LT_1    (112) /* Ignoring function, the pattern   */
                                 /* index value is less than one     */
 
#define PE_COLR_IND_LT_0   (113) /* Ignoring function, the color     */
                                 /* index value is less than zero    */
 
#define PE_VIEW_IND_LT_0   (114) /* Ignoring function, the view index*/
                                 /* value is less than zero          */
 
#define PE_VIEW_IND_LT_1   (115) /* Ignoring function, the view index*/
                                 /* value is less than one           */
 
#define PE_BAD_PAT_DIM     (116) /* Ignoring function, one of the    */
                                 /* dimensions of pattern color      */
                                 /* array is less than one           */
 
#define PE_BAD_COLR_DIM    (117) /* Ignoring function, one of the    */
                                 /* dimensions of the color index    */
                                 /* array is less than zero          */
 
#define PE_BAD_COLR        (118) /* Ignoring function, one of the    */
                                 /* components of the color specifi- */
                                 /* cation is out of range. The valid*/
                                 /* range is dependent upon the      */
                                 /* current color model              */
 
 
 
/* Transformations and Viewing Errors */
#define PE_MAX_VIEW         (150) /* Ignoring function, setting this */
                                  /* view table entry would exceed   */
                                  /* the maximum number of entries   */
                                  /* allowed in the workstations     */
                                  /* view table                      */
 
#define PE_INVALID_WINDOW   (151) /* Ignoring function,              */
                                  /* invalid window;                 */
                                  /* XMIN >= XMAX, YMIN >= YMAX or   */
                                  /* ZMIN > ZMAX                     */
 
#define PE_INVALID_VIEWPORT (152) /* Ignoring function, invalid view-*/
                                  /* port; XMIN >= XMAX, YMIN >= YMAX*/
                                  /* or ZMIN > ZMAX                  */
 

#define PE_INVALID_CLIP     (153) /* Ignoring function, invalid view */
                                  /* clipping limits; XMIN >= XMAX,  */
                                  /* YMIN >= YMAX or ZMIN > ZMAX     */
 
#define PE_BAD_CLIP         (154) /* Ignoring function, the view     */
                                  /* clipping limits are not within  */
                                  /* NPC range                       */
 
#define PE_BAD_PROJ_VIEWPORT (155) /* Ignoring function, the projec- */
                                   /* tion viewport limits are not   */
                                   /* within NPC range               */
 
#define PE_BAD_WS_WINDOW    (156) /* Ignoring function, the          */
                                  /* workstation window limits are   */
                                  /* not within NPC range            */
 
#define PE_BAD_WS_VIEWPORT  (157) /* Ignoring function, the          */
                                  /* workstation viewport is not     */
                                  /* within display space            */
 
 
#define PE_BAD_PLANES       (158) /* Ignoring function, front plane  */
                                  /* and back plane distances are    */
                                  /* equal when z-extent of the      */
                                  /* projection viewport is zero     */
 
#define PE_BAD_VPN          (159) /* Ignoring function, the view     */
                                  /* plane normal vector has length  */
                                  /* zero                            */
 
#define PE_BAD_VUP          (160) /* Ignoring function, the view up  */
                                  /* vector has length zero          */
 
#define PE_BAD_VUP_VPN      (161) /* Ignoring function, the view up  */
                                  /* and view plane normal vectors   */
                                  /* are parallel thus the viewing   */
                                  /* coordinate system cannot be     */
                                  /* established                     */
 
#define PE_BAD_PRP          (162) /* Ignoring function,the projection*/
                                  /* reference point is between the  */
                                  /* front and back planes           */
 
#define PE_PRP_VIEW_PLANE   (163) /* Ignoring function,the projection*/
                                  /* reference point cannot be posi- */
                                  /* tioned on the view plane        */
 
#define PE_FRONT_BACK       (164) /* Ignoring function,the back plane*/
                                  /* is in front of the front plane  */
 
 
 
/* Structure Errors */
#define PE_IGNORE_STRUCTS   (200) /* Warning, ignoring structures    */
                                  /* that do not exist               */
 
#define PE_BAD_STRUCT       (201) /* Ignoring function, the specified*/
                                  /* structure does not exist        */
 
#define PE_BAD_ELEMENT      (202) /* Ignoring function, the specified*/
                                  /* element does not exist          */
 
#define PE_BAD_PATH         (203) /* Ignoring function, specified    */
                                  /* starting path not found in CSS  */
 

#define PE_BAD_CEILING_IND  (204) /* Ignoring function, specified    */
                                  /* search ceiling index out of     */
                                  /* range                           */
 
#define PE_NO_LABEL         (205) /* Ignoring function, the label    */
                                  /* does not exist in the open      */
                                  /* structure between the element   */
                                  /* pointer and the end of the      */
                                  /* structure                       */
 
#define PE_NO_LABELS        (206) /* Ignoring function, one or both  */
                                  /* of the labels does not exist in */
                                  /* the open structure between the  */
                                  /* element pointer and the end of  */
                                  /* the structure                   */
 
#define PE_BAD_PATH_DEPTH   (207) /* Ignoring function, the specified*/
                                  /* path depth is less than zero (0)*/
 
#define PE_BAD_DISP_PRI     (208) /* Ignoring function, the display  */
                                  /* priority is out of range        */
 
/* Input Errors */
#define PE_NO_DEVICE        (250) /* Ignoring function, the specified*/
                                  /* device is not available on the  */
                                  /* specified workstation           */
 
#define PE_NOT_REQUEST      (251) /* Ignoring function, the function */
                                  /* requires the input device to be */
                                  /* in REQUEST mode                 */
 
#define PE_NOT_SAMPLE       (252) /* Ignoring function, the function */
                                  /* requires the input device to be */
                                  /* in SAMPLE mode                  */
 
#define PE_BAD_PET          (253) /* Warning, the specified prompt/  */
                                  /* echo type is not available on   */
                                  /* the specified workstation.      */
                                  /* Prompt/echo type one will be    */
                                  /* used in its place               */
 
#define PE_INVALID_ECHO     (254) /* Ignoring function, invalid echo */
                                  /* area/volume; XMIN >= XMAX,      */
                                  /* YMIN >= YMAX or ZMIN >= ZMAX    */
 
#define PE_BAD_ECHO         (255) /* Ignoring function, one of the   */
                                  /* echo area/volume boundary points*/
                                  /* is outside the range of the     */
                                  /* device                          */
 
#define PE_QUEUE_OFLOW      (256) /* Warning, the input queue has    */
                                  /* overflowed                      */
 
 
#define PE_NO_QUEUE_OFLOW   (257) /* Ignoring function, input queue  */
                                  /* has not overflowed              */
 
#define PE_OFLOW_NO_GO      (258) /* Ignoring function, input queue  */
                                  /* has overflowed, but associated  */
                                  /* workstation has been closed     */
 
#define PE_BAD_CLASS        (259) /* Ignoring function, the input    */
                                  /* device class of the current     */
                                  /* input report does not match the */
                                  /* class being requested           */
 
#define PE_BAD_DATA_REC     (260) /* Ignoring function, one of the   */
                                  /* fields within the input device  */
                                  /* data record is in error         */
 
#define PE_INVALID_VALUE    (261) /* Ignoring function, initial value*/
                                  /* is invalid                      */
 
#define PE_STROKE_BUF_SIZE  (262) /* Ignoring function, number of    */
                                  /* points in the initial stroke is */
                                  /* greater than the buffer size    */
 
#define PE_STRING_BUF_SIZE  (263) /* Ignoring function, length of    */
                                  /* the initial string is greater   */
                                  /* than the buffer size            */
 
 
/* Metafile Errors */
#define PE_ILLEGAL_ITEM_TYPE (300) /* Ignoring function, item type is*/
                                   /* not allowed for user items     */
 
#define PE_INVALID_ITEM_LENGTH (301) /*Ignoring function, item length*/
                                     /* is invalid                   */
 
#define PE_METAFILE_EMPTY   (302) /* Ignoring function, no item is   */
                                  /* left in metafile input          */
 
 
#define PE_INVALID_ITEM     (303) /* Ignoring function, metafile     */
                                  /* item is invalid                 */
 
#define PE_BAD_ITEM_TYPE    (304) /* Ignoring function, item type is */
                                  /* unknown                         */
 
#define PE_BAD_ITEM_REC     (305) /* Ignoring function, content of   */
                                  /* item data record is invalid for */
                                  /* the specified item type         */
 
#define PE_MAX_ITEM_LENGTH  (306) /* Ignoring function, maximum item */
                                  /* data record length is invalid   */
 
#define PE_USER_ITEM        (307) /* Ignoring function, user item    */
                                  /* can not be interpreted          */
 
/* Escape Errors */
#define PE_ESCAPE_NOT_AVAIL (350) /* Warning, the specified escape   */
                                  /* is not available on one or more */
                                  /* workstations in this implemen-  */
                                  /* tation.  The escape will be     */
                                  /* processed by those workstations */
                                  /* on which it is available        */
 
#define PE_BAD_ESCAPE_DATA  (351) /* Ignoring fucntion, one of the   */
                                  /* fields within the escape data   */
                                  /* record is in error              */
 
 
/* Archival and Retrieval Errors */
#define PE_AR_CANT_OPEN     (400) /* Ignoring function, the archive  */
                                  /* file cannot be opened           */
 
#define PE_MAX_AR           (401) /* Ignoring function, opening      */
                                  /* this archive file would exceed  */
                                  /* the maximum number of           */
                                  /* simultaneously open archive     */
                                  /* files                           */
 
#define PE_DUP_AR_ID        (402) /* Ignoring function, archive      */
                                  /* file identifier already in use  */
 
#define PE_BAD_AR           (403) /* Ignoring function, the archive  */
                                  /* file is not a PHIGS archive     */
                                  /* file                            */
 
#define PE_AR_NOT_OPEN      (404) /* Ignoring function, the speci-   */
                                  /* fied archive file is not open   */
 
#define PE_NAME_CONFLICT    (405) /* Ignoring function, name con-    */
                                  /* flict occurred while conflict   */
                                  /* resolution flag has value       */
                                  /* ABANDON                         */
 
#define PE_AR_FULL          (406) /* Warning, the archive file is    */
                                  /* full. Any structures that were  */
                                  /* archived were archived in       */
                                  /* total                           */
 
#define PE_AR_NO_STRUCT     (407) /* Warning, some of the specified  */
                                  /* structures do not exist on the  */
                                  /* archive file                    */
 
#define PE_AR_NO_STRUCT_EMPTY (408) /* Warning, some of the specified*/
                                    /* structures do not exist on the*/
                                    /* archive file.  graPHIGS will  */
                                    /* create empty structures in    */
                                    /* their places                  */
 
 
/* Miscellaneous Errors */
#define PE_BAD_ERROR_FILE   (450) /* Ignoring function, the speci-   */
                                  /* fied error file is invalid      */
 
/* System Errors */
#define PE_OFLOW_PHIGS      (900) /* Storage overflow has occurred   */
                                  /* in PHIGS                        */
 
#define PE_OFLOW_CSS        (901) /* Storage overflow has occurred   */
                                  /* in CSS                          */
 
#define PE_IO_ERROR_READ    (902) /* Input/Output error has          */
                                  /* occurred while reading          */
 
#define PE_IO_ERROR_WRITE   (903) /* Input/Output error has          */
                                  /* occurred while writing          */
 
#define PE_IO_ERROR_TO_WS   (904) /* Input/Output error has          */
                                  /* occurred while sending data     */
                                  /* to a workstation                */
 
#define PE_IO_ERROR_FROM_WS (905) /* Input/Output error has          */
                                  /* occurred while receiving data   */
                                  /* from a workstation              */
 
#define PE_IO_ERROR_LIB     (906) /* Input/Output error has          */
                                  /* occurred during program         */
                                  /* library management              */
 
#define PE_IO_ERROR_WDT     (907) /* Input/Output error has          */
                                  /* occurred while reading work-    */
                                  /* station description table       */
 
#define PE_ARITHMETIC_ERROR (908) /* Arithmetic error has occurred   */
 
 
/* Binding Specific Errors */
#define PE_START_IND_INVAL  (2200) /* Ignoring function, start index */
                                   /* is out of range                */
 
 
#define PE_LIST_LENGTH_LT_ZERO (2201) /* Ignoring function, the      */
                                   /* length of the application's    */
                                   /* list is negative               */
 
#define PE_ENUM_TYPE_INVAL  (2202) /* Ignoring function, enumeration */
                                   /* type is out of range           */
 
#define PE_ALLOC_STORE      (2203) /* Ignoring function, error while */
                                   /* allocating a Store             */
 
#define PE_ALLOC_STORE_MEM  (2204) /* Ignoring function, error while */
                                   /* allocating memory for a Store  */
 
 
/* Miscellaneous                  */
 
/* Linetypes               */
#define PLINE_SOLID                      (1)
#define PLINE_DASH                       (2)
#define PLINE_DOT                        (3)
#define PLINE_DASH_DOT                   (4)
 
 
 
/* Marker types            */
#define PMARKER_DOT                      (1)
#define PMARKER_PLUS                     (2)
#define PMARKER_ASTERISK                 (3)
#define PMARKER_CIRCLE                   (4)
#define PMARKER_CROSS                    (5)
 
 
/* Annotation styles       */
#define PANNO_STYLE_UNCONNECTED          (1)
#define PANNO_STYLE_LEAD_LINE            (2)
 
 
/* Color models            */
#define PMODEL_RGB                       (1)
#define PMODEL_CIELUV                    (2)
#define PMODEL_HSV                       (3)
#define PMODEL_HLS                       (4)
 
 
/* Prompt and Echo Types   */
#define PLOC_DEF                         (1)
#define PLOC_CROSS_HAIR                  (2)
#define PLOC_TRACK_CROSS                 (3)
#define PLOC_RUB_BAND                    (4)
#define PLOC_RECT                        (5)
#define PLOC_DIGIT                       (6)
 
 
 
#define PSTROKE_DEF                      (1)
#define PSTROKE_DIGIT                    (2)
#define PSTROKE_MARKER                   (3)
#define PSTROKE_LINE                     (4)
 
 
 
#define PVAL_DEF                         (1)
#define PVAL_GRAPH                       (2)
#define PVAL_DIGIT                       (3)
 
 
#define PCHOICE_DEF                      (1)
#define PCHOICE_PR_ECHO                  (2)
#define PCHOICE_STRING_PR                (3)
#define PCHOICE_STRING_IN                (4)
#define PCHOICE_STRUCT                   (5)
 
 
 
#define PPICK_DEF                        (1)
#define PPICK_GROUP_HIGHL                (2)
#define PPICK_STRUCT_NETWORK             (3)
 
 
#define PSTRING_DEF                      (1)
 
 
/* Default parameters of Open PHIGS  */
#define PDEF_MEM_SIZE                    ((size_t) (-1))
#define PDEF_ERR_FILE                    ((char *) (0))
 
 
/* Element enumeration               */
#define PFIRST_PHIGS_ELEM                PELEM_POLYLINE3
#define PLAST_PHIGS_ELEM                 PELEM_PICK_ID
 


[ Previous | Next | Contents | Glossary | Home | Search ]