typedef struct {
Pint id; /* archive file identifier */
char *name; /* archive file name */
} Par_file;
typedef struct {
Pint num_ar_files; /* number of archive files */
Par_file *ar_files; /* list of archive file */
} Par_file_list;
typedef enum {
PST_ARCL,
PST_AROP
} Par_st;
typedef enum {
PASF_BUNDLED,
PASF_INDIV
} Pasf;
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_LINE_COLR,
PASPECT_MARKER_COLR,
PASPECT_TEXT_COLR,
PASPECT_INT_COLR,
PASPECT_EDGE_COLR,
PASPECT_LINE_SHAD_METHOD,
PASPECT_INT_SHAD_METHOD,
PASPECT_DATA_MAP_METHOD,
PASPECT_REFL_PROPS,
PASPECT_REFL_MODEL,
PASPECT_BACK_INT_STYLE,
PASPECT_BACK_INT_STYLE_IND,
PASPECT_BACK_INT_COLR,
PASPECT_BACK_INT_SHAD_METHOD,
PASPECT_BACK_DATA_MAP_METHOD,
PASPECT_BACK_REFL_PROPS,
PASPECT_BACK_REFL_MODEL,
PASPECT_CURVE_APPROX_CRIT,
PASPECT_SURF_APPROX_CRIT,
PASPECT_PARAM_SURF_CHARS,
PASPECT_ALL_ASF
} Paspect;
typedef enum {
PATTR_LINE,
PATTR_MARKER,
PATTR_TEXT,
PATTR_INT,
PATTR_EDGE,
PATTR_REFL,
PATTR_PARAM_SURF
} Pattrs;
typedef struct {
union Pchoice_pets {
struct Pchoice_pet_r1 {
Pint num_prompts; /* number of prompts */
Ppr_switch prompts[P_NBCHOICE-1];
char *strings[P_NBCHOICE];
} 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;
struct Pchoice_pet_r10_27 {
char *box_name;
Pint num_prompts;
Ppr_switch *prompts;
char **strings;
Ppat_rep *pixmap;
Ppr_switch *status;
Pint mouse_button;
Ppr_switch mouse_shift;
Ppr_switch mouse_ctrl;
} pet_r10_27;
} pets;
} Pchoice_data;
typedef struct {
union Pchoice3_pets {
struct Pchoice3_pet_r1 {
Pint num_prompts; /* number of prompts */
Ppr_switch prompts[P_NBCHOICE-1];
char *strings[P_NBCHOICE];
} 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; /* structure identifier */
Pint num_pick_ids; /* number of pick identifiers */
Pint *pick_ids; /* array of pick identifiers */
} pet_r5;
} pets;
} Pchoice_data3;
typedef struct {
Pfloat cieluv_x; /* x coefficient */
Pfloat cieluv_y; /* y coefficient */
Pfloat cieluv_y_lum; /* y luminance */
} Pcieluv;
typedef enum {
PCLIPCOND_IS_NOT_CLIPPED,
PCLIPCOND_IS_PARTIALLY_CLIPPED,
PCLIPCOND_IS_FULLY_CLIPPED
} Pclip_cond;
typedef enum {
PIND_NO_CLIP,
PIND_CLIP
} Pclip_ind;
typedef union {
Pint colr_ind; /* colour index */
Pcolr_rep colr_rep; /* colour representation */
} Pcolrv;
typedef struct {
Pint_size dims; /* colour value array dimensions */
Pcolrv_ptr colrs; /* array of colour values */
} Pcolrv_array;
typedef struct {
Pint num_colrs; /* number of colours */
Pcolrv_ptr colrs; /* list of colour values */
} Pcolrv_list;
typedef union {
Pint *color_inds; /* pointer to colour indices */
Pcolr_rep_ptr colr_reps; /* pointer to colour representations */
} Pcolrv_ptr;
typedef struct {
Pint num_lists; /* number of colour value lists */
Pcolrv_list *colrs; /* list of colour value lists */
} Pcolrv_set;
typedef enum {
PAVAIL_MONOCHR,
PAVAIL_COLR
} Pcolr_avail;
typedef struct {
Prationality rationality; /* colour control point rationality */
Pint_size dims; /* dimensions of control point array */
Pcolr_ctrl_point_ptr colr_points; /* array of colour control points */
} Pcolr_ctrl_point_array;
typedef struct {
Prationality rationality; /* colour control point rationality */
Pint num_points; /* number of control points */
Pcolr_ctrl_point_ptr points; /* list of colour control points */
} Pcolr_ctrl_point_list;
typedef union {
Pcolr_rep_ptr points; /* pointer to colour points */
Phomo_colr_rep_ptr homo_points; /* pointer to homogeneous colour points */
} Pcolr_ctrl_point_ptr;
typedef struct {
Pint num_colrs; /* number of colours */
Pcolr_avail colr_avail; /* colour availability */
Pint num_pred_inds; /* number of predefined colour indices */
Pcieluv prim_colrs[3]; /* primary colours */
} Pcolr_facs;
typedef struct {
Pint method; /* colour mapping method */
union Pcolr_map_method_data {
Pint num_true_colrs; /* number of true colours */
Pint max_num_pseudo_colrs; /* maximum number of pseudo colours */
}
} Pcolr_map_method;
typedef struct {
Pint method; /* colour mapping method */
union Pcolr_map_rep_data {
struct Pcolr_map_rep_pseudo_pseudo_3 {
Pint model; /* colour model */
Pint levels[3]; /* number of levels by component */
Pint first_colr_ind; /* first color index in colour table */
}pseudo_pseudo_3;
struct Pcolr_map_rep_pseudo {
Pint model; /* colour model */
Pfloat_list weight_vector; /* list of weight vector */
Pcolrv_list colrs; /* list of colour values */
}pseudo;
struct Pcolr_map_rep_pseudo_N {
Pint model; /* colour model */
Pfloat_set colrs; /* list of list of colour coordinates */
}pseudo_N;
}data;
} Pcolr_map_rep;
typedef struct {
Pint method; /* colour mapping method */
union Pcolr_map_st_data {
Pint num_true_colrs; /* number of available true colours */
Pint max_num_pseudo_colrs; /* maximum number of pseudo colour entries */
}
} Pcolr_map_st;
typedef union {
Prgb rgb; /* red green blue colour specification */
Pcieluv cieluv; /* CIE L*u*v* colour specification */
Phls hls; /* hue lightness saturation colour specification */
Phsv hsv; /* hue saturation value colour specification */
} Pcolr_rep;
typedef union {
Prgb *rgb; /* pointer to RGB colour values */
Pcieluv *cieluv; /* pointer to CIELUV colour values */
Phls *hls; /* pointer to HLS colour values */
Phsv *hsv; /* pointer to HSV colour values */
} Pcolr_rep_ptr;
typedef enum {
PTYPE_PRECONCAT,
PTYPE_POSTCONCAT,
PTYPE_REPLACE
} Pcompose_type;
typedef enum {
PRES_MAINTAIN,
PRES_ABANDON,
PRES_UPD
} Pconf_res;
typedef struct {
Pint num_lists; /* number of contour lists */
Pint_list *contours; /* list of contour lists */
} Pcontour_set;
typedef struct {
Pint num_contour_sets; /* number of contour sets */
Pcontour_set *contours; /* list of contour lists */
} Pcontour_set_list;
typedef enum {
PFLAG_COND,
PFLAG_ALWAYS
} Pctrl_flag;
typedef struct {
Prationality rationality; /* control point rationality */
Pint_size dims; /* control point array u,v dimensions */
Ppoint3_ptr points; /* array of control points */
} Pctrl_point3_array;
typedef struct {
Prationality rationality; /* control point rationality */
Pint num_points; /* number of control points */
Ppoint3_ptr points; /* list of control points */
} Pctrl_point3_list;
typedef struct {
Prationality rationality; /* control point rationality */
Pint num_points; /* number of control points */
Ppoint_ptr points; /* list of control points */
} Pctrl_point_list;
typedef struct {
Pint type; /* curve approximation criteria type */
union Pcurve_approx_crit_data {
struct Pcurve_approx_const_param_subd {
Pint count; /* value */
} const_param_subd;
struct Pcurve_approx_chordal_size_wc {
Pfloat approx;
} chordal_size_wc;
struct Pcurve_approx_chordal_size_npc {
Pfloat approx;
} chordal_size_npc;
struct Pcurve_approx_chordal_size_dc {
Pfloat approx;
} chordal_size_dc;
struct Pcurve_approx_chordal_dev_wc {
Pfloat approx;
} chordal_dev_wc;
struct Pcurve_approx_chordal_dev_npc {
Pfloat approx;
} chordal_dev_npc;
struct Pcurve_approx_chordal_dev_dc {
Pfloat approx;
} chordal_dev_dc;
struct Pcurve_approx_rel_wc {
Pfloat approx;
} rel_wc;
struct Pcurve_approx_rel_npc {
Pfloat approx;
} rel_npc;
struct Pcurve_approx_rel_dc {
Pfloat approx;
} rel_dc;
} data;
} Pcurve_approx_crit;
typedef struct {
Pint order; /* spline order */
Pfloat_list knots; /* knots */
Pint colr_type; /* colour type */
Pcolr_ctrl_point_list colrs; /* list of colour control points */
} Pcurve_colr_spline;
typedef struct {
Pint order; /* spline order */
Pfloat_list knots; /* knots */
Pfloat low_limit; /* lower parameter range limit */
Pfloat high_limit; /* high parameter range limit */
Pctrl_point3_list ctrl_points; /* list of control points */
} Pcurve_geom_spline;
typedef struct {
size_t size; /* sizeof data */
void *data; /* pointer to data */
} Pdata;
typedef struct {
Prationality rationality; /* control point rationality */
Pint_size dims; /* control point array u,v dimensions */
Pint points_dims; /* control points dimensionality */
Pfloat *ctrl_points; /* array of control points */
} Pdata_ctrl_point_array;
typedef struct {
Pint method; /* data mapping method */
Psource_select_list selectors; /* list of source selectors */
union Pdata_map_rep_data {
struct Pdata_map_rep_single_uniform {
Pint ind;
Pfloat lower_limit;
Pfloat upper_limit;
Pint colr_type;
Pcolrv_list colr_values;
} single_uniform;
struct Pdata_map_rep_single_non_uniform {
Pint ind;
Pfloat_list range;
Pint colr_type;
Pcolrv_list colr_values;
} single_non_uniform;
struct Pdata_map_rep_bi_uniform {
Pint inds[2];
Pfloat lower_limit_a;
Pfloat upper_limit_a;
Pfloat lower_limit_b;
Pfloat upper_limit_b;
Pint colr_type;
Pcolrv_set colr_values;
} bi_uniform;
struct Pdata_map_rep_bi_non_uniform {
Pint inds[2];
Pfloat_list range_a;
Pfloat_set range_b;
Pint colr_type;
Pcolrv_set colr_values;
} bi_non_uniform;
} data;
} Pdata_map_rep;
typedef enum {
PDC_METRES,
PDC_OTHER
} Pdc_units;
typedef enum {
PDEFER_ASAP,
PDEFER_BNIG,
PDEFER_BNIL,
PDEFER_ASTI,
PDEFER_WAIT
} Pdefer_mode;
typedef enum {
PDEPTH_CUE_SUPPR,
PDEPTH_CUE_ALLOWED
} Pdepth_cue_mode;
typedef struct{
Pint num_modes; /* number ofdepth cue modes */
Pdepth_cue_mode *modes; /* list of depth cue modes */
} Pdepth_cue_mode_list;
typedef struct{
Pdepth_cue_mode mode; /* depth cue mode */
Pfloat ref_planes[2]; /* depth cue reference planes ( min , max ) */
Pfloat scale[2]; /* depth cue scale factors */
Pgcolr colr; /* depth cue colour */
} Pdepth_cue_rep;
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;
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;
typedef enum {
PSURF_NOT_EMPTY,
PSURF_EMPTY
} Pdisp_surf_empty;
typedef struct {
Pdyn_mod content; /* structure content */
Pdyn_mod post; /* post structure */
Pdyn_mod unpost; /* unpost structure */
Pdyn_mod del; /* delete structure */
Pdyn_mod ref; /* structure reference */
} Pdyns_structs;
typedef struct {
Pdyn_mod line_bundle; /* polyline bundle representation */
Pdyn_mod marker_bundle; /* polymarker bundle representation */
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; /* colour representation */
Pdyn_mod view_rep; /* view representation */
Pdyn_mod ws_tran; /* workstation transformation */
Pdyn_mod highl_filter; /* highlighting filter */
Pdyn_mod invis_filter; /* invisibility filter */
Pdyn_mod hlhsr_mode; /* HLHSR mode */
} Pdyns_ws_attrs;
typedef enum {
PDYN_IRG,
PDYN_IMM,
PDYN_CBS
} Pdyn_mod;
typedef struct {
Pdyn_mod data_map; /* data mapping representation */
Pdyn_mod refl; /* reflectance representation */
Pdyn_mod param_surf; /* parametric surface representation */
Pdyn_mod light_source; /* light source representation */
Pdyn_mod depth_cue; /* depth cue representation */
Pdyn_mod colr_map; /* colour mapping representation */
} Pdyn_ws_attrs_plus;
typedef enum {
PSWITCH_NO_ECHO,
PSWITCH_ECHO
} Pecho_switch;
typedef struct {
Pasf flag_asf; /* edge flag asf */
Pasf type_asf; /* edge type asf */
Pasf width_asf; /* edgewidth asf */
Pasf colr_ind_asf; /* edge colour index asf */
Pint ind; /* edge index */
Pedge_bundle bundle; /* edge bundle */
} Pedge_attrs;
typedef struct {
Pedge_flag flag; /* edge flag */
Pint type; /* edge type */
Pfloat width; /* edge width scale factor */
Pint colr_ind; /* edge colour index */
} Pedge_bundle;
typedef struct {
Pedge_flag flag;
Pint type;
Pfloat width;
Pgcolr colr;
} Pedge_bundle_plus;
typedef struct {
Pint_list types; /* list of edgetypes */
Pint num_widths; /* number of available edgewidths */
Pfloat nom_width; /* nominal edgewidth */
Pfloat min_width; /* min edgewidth */
Pfloat max_width; /* max edgewidth */
Pint num_pred_inds; /* number of predefined bundle indices */
} Pedge_facs;
typedef enum {
PEDGE_OFF,
PEDGE_ON
} Pedge_flag;
typedef struct {
Pint_size dims; /* edge flag array dimensions */
Pedge_flag_pair *edge_flags; /* array of edge flag pairs */
} Pedge_flag_array;
typedef struct {
Pint num_edges; /* number of edges in list */
Pedge_flag *edge_flags; /* list of edge flags */
} Pedge_flag_list;
typedef Pedge_flag Pedge_flag_pair[2];
typedef struct {
Pint num_lists; /* number of edge flag list */
Pedge_flag_list *edge_flags; /* list of edge flag lists */
} Pedge_flag_set;
typedef struct {
Pint num_edge_flag_sets; /* number of edges flag sets */
Pedge_flag_set *edge_flag_sets; /* list of edge flag sets */
} Pedge_flag_set_list;
typedef Pedge_flag Pedge_flag_triplet[3];
typedef struct {
Pint num_edge_flag_triplets; /* number of edge flag triplets */
Pedge_flag_triplet *edge_flag_triplets; /* list of edge flag triplets */
} Pedge_flag_triplet_list;
typedef enum {
PEDIT_INSERT,
PEDIT_REPLACE
} Pedit_mode;
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; /* character 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: /* colour array */
} cell_array3;
struct Pelem_cell_array {
Prect rect: /* rectangle */
Ppat_rep colr_array: /* colour array */
} cell_array;
struct Pelem_gdp3 {
Pint id: /* GDP 3 identifier */
Ppoint_list3 point_list; /* point list */
Pgdp_data3 data: /* data record */
} gdp3;
struct Pelem_gdp {
Pint id: /* GDP identifier */
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 reference point */
Pfloat_size pat_size: /* pattern size */
struct Pelem_pat_ref_point_vecs {
Ppoint3 ref_point: /* pattern reference point */
Pvec3 ref_vec[2]: /* vectors */
} pat_ref_point_vecs;
Pint_list names: /* name sets */
struct Pelem_asf {
Paspect id: /* attribut id */
Pasf source: /* attribut source */
} asf;
struct Pelem_local_tran3 {
Pcompose_type compose_type: /* composition type */
Pmatrix3 matrix: /* transformation matrix */
} local_tran3;
struct Pelem_local_tran {
Pcompose_type compose_type: /* composition type */
Pmatrix matrix: /* transformation matrix */
} local_tran;
Pmatrix3 global_tran3: /* global transformation 3 */
Pmatrix global_tran: /* global transformation */
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 */
} gse;
struct Pelem_polyline_set3_colr {
Pint colr_type;
Pvertex3_set vertex_data;
} polyline_set3_colr; /* polyline set 3 with data */
struct Pelem_fill_area_set3_data {
Pint colr_type;
Pfacet *facet_data;
Pedge_flag_set *edge_flags;
Pvertex3_set vertex_data;
} fill_area_set3_data; /* fill area set 3 with data */
struct Pelem_fill_area_set_data {
Pint colr_type;
Pfacet *facet_data;
Pedge_flag_set *edge_flags;
Pvertex_set vertex_data;
} fill_area_set_data; /* fill area set with data */
struct Pelem_cell_array3_plus {
Pparal paral;
Ppat_rep_plus pattern;
} cell_array3_plus;
struct Pelem_set_of_fill_area_sets3_data {
Pint colr_type;
Pset_of_fill_area_sets_data *set_data;
Pedge_flag_set_list *edge_flags;
Pvertex3_list vertex_data;
Pcontour_set_list contours;
} set_of_fill_area_sets3_data; /* set of fill area sets 3 with data */
struct Pelem_set_of_fill_area_sets_data {
Pint colr_type;
Pset_of_fill_area_sets_data *set_data;
Pedge_flag_set_list *edge_flags;
Pvertex_list vertex_data;
Pcontour_set_list contours;
} set_of_fill_area_sets_data; /* set of fill area sets with data */
struct Pelem_tri_set3_data {
Pint colr_type;
Ptri_set_data *set_data;
Pedge_flag_triplet_list *edge_flags;
Pvertex3_list vertex_data;
Pvertex_ind_triplet_list vertex_inds;
} tri_set3_data; /* triangle set 3 with data */
struct Pelem_tri_set_data {
Pint colr_type;
Ptri_set_data *set_data;
Pedge_flag_triplet_list *edge_flags;
Pvertex_list vertex_data;
Pvertex_ind_triplet vertex_inds;
} tri_set_data; /* triangle set with data */
struct Pelem_tri_strip3_data {
Pint colr_type;
Pfacet_list *facet_data;
Pedge_flag_list *edge_flags;
Pvertex3_list vertex_data;
} tri_strip3_data; /* triangle strip 3 with data */
struct Pelem_tri_strip_data {
Pint colr_type;
Pfacet_list *facet_data;
Pedge_flag_list *edge_flags;
Pvertex_list vertex_data;
} tri_strip_data; /* triangle strip with data */
struct Pelem_quad_mesh3_data {
Pint colr_type;
Pfacet_array *facet_data;
Pedge_flag_array *edge_flags;
Pvertex3_array vertex_data;
} quad_mesh3_data; /* quadrilateral mesh 3 with data */
struct Pelem_quad_mesh_data {
Pint colr_type;
Pfacet_array *facet_data;
Pedge_flag_array *edge_flags;
Pvertex_array vertex_data;
} quad_mesh_data; /* quadrilateral mesh with data */
struct Pelem_non_uniform_b_spline_curve3 {
Pcurve_geom_spline geom_spline;
} non_uniform_b_spline_curve3; /* non uniform b-spline curve 3 */
struct Pelem_non_uniform_b_spline_curve3_colr {
Pcurve_geom_spline geom_spline;
Pcurve_colr_spline *colr_spline;
} non_uniform_b_spline_curve3_colr; /* non uniform b-spline curve 3 with colour */
struct Pelem_non_uniform_b_spline_surf3 {
Psurf_geom_spline geom_spline;
Ptrim_curve_loop_list *trim_loops;
} non_uniform_b_spline_surf3; /* non uniform b-spline surface 3 */
struct Pelem_non_uniform_b_spline_surf3_data {
Psurf_geom_spline geom_spline;
Ptrim_curve_loop_list *trim_loops;
Psurf_colr_spline *colr_spline;
Psurf_data_spline *data_spline;
} non_uniform_b_spline_surf3_data; /* non uniform b-spline surface 3 with data */
Pgcolr colr;
Pfacet_disting_mode facet_disting_mode;
Pfacet_cull_mode facet_cull_mode;
Pdata_map_rep data_map_method;
Prefl_prop refl_prop;
struct Pelem_light_source_st {
Pint_list act_list;
Pint_list deact_list;
} light_source_st;
Pcurve_approx_crit curve_approx_crit;
Psurf_approx_crit surf_approx_crit;
Pparam_surf_chars param_surf_chars;
struct Pelem_xanno_text_fixed3 {
Ppoint3 ref_point; /* reference point */
Ppoint3 anno_point; /* annotation point */
char *char_string; /* text string */
} xanno_text_fixed3;
struct Pelem_xanno_text_fixed {
Ppoint ref_point; /* reference point */
Ppoint anno_point; /* annotation point */
char *char_string; /* text string */
} xanno_text_fixed;
struct Pelem_xwidetext3 {
Ppoint3 pos; /* widetext positio */
Pvec3 dir[2]; /* direction vector */
Pxwchar *char_string; /* widetext strin */
} xwidetext3;
struct Pelem_xwidetext {
Ppoint pos; /* widetext position */
Pxwchar *char_string; /* widetext string */
} xwidetext;
struct Pelem_xanno_widetext_rel3 {
Ppoint3 ref_point; /* reference point */
Pvec3 offset; /* annotation offset */
Pxwchar *char_string; /* widetext string */
} xanno_widetext_rel3;
struct Pelem_xanno_widetext_rel {
Ppoint ref_point; /* reference point */
Pvec offset; /* annotation offset */
Pxwchar *char_string; /* widetext string */
} xanno_widetext_rel;
struct Pelem_xanno_widetext_fixed3 {
Ppoint3 ref_point; /* reference point */
Ppoint3 anno_point; /* annotation point */
Pxwchar *char_string; /* widetext string */
} xanno_widetext_fixed3;
struct Pelem_xanno_widetext_fixed {
Ppoint ref_point; /* reference point */
Ppoint anno_point; /* annotation point */
Pxwchar *char_string; /* widetext string */
} xanno_widetext_fixed;
struct Pelem_cond_exec_struct {
Pint struct_id;
Ptest test;
} cond_exec_struct;
struct Pelem_cond_inst_struct {
Pint struct_id;
Ptest test;
} cond_inst_struct;
Ptest test;
struct Pelem_cond_skip_elements {
Pint skip_count;
Ptest test;
} cond_skip_elements;
struct Pelem_cond_skip_to_label {
Pint label_id;
Ptest test;
} cond_skip_to_label;
} Pelem_data;
typedef struct {
Pint struct_id; /* structure identifier */
Pint elem_pos; /* element postion */
} Pelem_ref;
typedef struct {
Pint num_elem_refs; /* number of element references */
Pelem_ref *elem_refs; /* list of elements refenrences */
} Pelem_ref_list;
typedef struct {
Pint num_elem_ref_lists; /* number of element references lists */
Pelem_ref_list *elem_ref_lists; /* list of element reference lists */
} Pelem_ref_list_list;
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_POLYLINE_SET3_COLR,
PELEM_FILL_AREA_SET3_DATA,
PELEM_FILL_AREA_SET_DATA,
PELEM_CELL_ARRAY3_PLUS,
PELEM_SET_OF_FILL_AREA_SETS3_DATA,
PELEM_SET_OF_FILL_AREA_SETS_DATA,
PELEM_TRI_SET3_DATA,
PELEM_TRI_SET_DATA,
PELEM_TRI_STRIP3_DATA,
PELEM_TRI_STRIP_DATA,
PELEM_QUAD_MESH3_DATA,
PELEM_QUAD_MESH_DATA,
PELEM_NON_UNIFORM_B_SPLINE_CURVE3,
PELEM_NON_UNIFORM_B_SPLINE_CURVE3_COLR,
PELEM_NON_UNIFORM_B_SPLINE_SURF3,
PELEM_NON_UNIFORM_B_SPLINE_SURF3_DATA,
PELEM_DATA_MAP_IND,
PELEM_REFL_IND,
PELEM_BACK_INT_IND,
PELEM_BACK_DATA_MAP_IND,
PELEM_BACK_REFL_IND,
PELEM_PARAM_SURF_IND,
PELEM_LINE_COLR,
PELEM_LINE_SHAD_METHOD,
PELEM_MARKER_COLR,
PELEM_TEXT_COLR,
PELEM_FACET_DISTING_MODE,
PELEM_FACET_CULL_MODE,
PELEM_INT_COLR,
PELEM_INT_SHAD_METHOD,
PELEM_DATA_MAP_METHOD,
PELEM_REFL_PROPS,
PELEM_REFL_MODEL,
PELEM_BACK_INT_STYLE,
PELEM_BACK_INT_STYLE_IND,
PELEM_BACK_INT_COLR,
PELEM_BACK_INT_SHAD_METHOD,
PELEM_BACK_DATA_MAP_METHOD,
PELEM_BACK_REFL_PROPS,
PELEM_BACK_REFL_MODEL,
PELEM_LIGHT_SOURCE_ST,
PELEM_EDGE_COLR,
PELEM_CURVE_APPROX_CRIT,
PELEM_SURF_APPROX_CRIT,
PELEM_PARAM_SURF_CHARS,
PELEM_REND_COLR_MODEL,
PELEM_DEPTH_CUE_IND,
PELEM_COLR_MAP_IND,
PELEM_INCL_STRUCT
PELEM_POLYLINE_SET3,
PELEM_POLYLINE_SET,
PELEM_ANNO_TEXT_FIXED3,
PELEM_ANNO_TEXT_FIXED,
PELEM_WIDETEXT3,
PELEM_WIDETEXT,
PELEM_ANNO_WIDETEXT_REL3,
PELEM_ANNO_WIDETEXT_REL,
PELEM_ANNO_WIDETEXT_FIXED3,
PELEM_ANNO_WIDETEXT_FIXED,
PELEM_TEXT_LINEWIDTH,
PELEM_TEXT_SLANT,
PELEM_ANNO_SLANT,
PELEM_HIGHLIGHT_IND,
PELEM_COND_EXEC_STRUCT,
PELEM_COND_INST_STRUCT,
PELEM_COND_RETURN,
PELEM_COND_SKIP_ELEMS,
PELEM_COND_SKIP_TO_LABEL
} Pelem_type;
typedef struct {
Pint num_elem_types; /* number of element types */
Pelem_type *elem_types; /* list of element types */
} Pelem_type_list;
typedef enum {
PERR_OFF,
PERR_ON
} Perr_mode;
typedef union {
struct Pescape_in_r1 {
int impl_dep;
} escape_in_r1;
int impl_dep;
} Pescape_in_data;
typedef union {
struct Pescape_out_r1 {
int impl_dep;
} escape_out_r1;
int impl_dep;
} Pescape_out_data;
typedef struct {
Pint num_data_per_facet; /* number of data values per facet */
Pcolrv *facet_colrv; /* facet coulour */
Pvec3 *facet_norm; /* facet normal */
Pfloat *facet_data; /* facet data */
} Pfacet;
typedef struct {
Pint_size dims; /* facet array dimensions */
Pint num_data_per_facet; /* number of data values per facet */
Pcolrv_ptr facet_colrvs; /* array of facet coulour values */
Pvec3 *facet_norms; /* array of facet normals */
Pfloat *facet_data; /* array of facet data lists */
} Pfacet_array;
typedef enum {
PFACET_CULL_NONE,
PFACET_CULL_BACKFACING,
PFACET_CULL_FRONTFACING
} Pfacet_cull_mode;
typedef enum {
PFACET_DISTING_OFF,
PFACET_DISTING_ON
} Pfacet_disting_mode;
typedef struct {
Pint num_facets; /* number of facets */
Pint num_data_per_facet; /* number of data values per facet */
Pcolrv_ptr facet_colrvs; /* list of facet coulour values */
Pvec3 *facet_norms; /* list of facet normals */
Pfloat *facet_data; /* list of facet data lists */
} Pfacet_list;
typedef struct {
Pint_list incl_set; /* inclusion set */
Pint_list excl_set; /* exclusion set */
} Pfilter;
typedef struct {
Pint num_filters; /* number of filters */
Pfilter *filters; /* list of filters */
} Pfilter_list;
typedef float Pfloat;
typedef struct {
Pint num_floats; /* number of floats in list */
Pfloat *floats; /* list of floats */
} Pfloat_list;
typedef struct {
Pint num_lists; /* number of float lists */
Pfloat_list *floats; /* list of float lists */
} Pfloat_set;
typedef struct {
Pfloat size_x; /* x size */
Pfloat size_y; /* y size */
} Pfloat_size;
typedef struct {
Pfloat size_x; /* x size */
Pfloat size_y; /* y size */
Pfloat size_z; /* z size */
} Pfloat_size3;
typedef struct {
Pint colr_type; /* colour type */
Pcolrv colr_value; /* colour value */
} Pgcolr;
typedef union {
struct Pgdp_r1 {
int impl_dep;
} gdp_r1;
Pdata unsupp;
int impl_dep;
} Pgdp_data;
typedef union {
struct Pgdp3_r1 {
int impl_dep;
} gdp3_r1;
Pdata unsupp;
int impl_dep;
} Pgdp_data3;
typedef union {
struct Pgse_r1 { int user_function_no; } gse_r1;
struct Pgse_r2 { Pfloat transparency_coeff; } gse_r2;
struct Pgse_r3 { Pint zb_shift; } gse_r3;
struct Pgse_r4 { Pint zb_edge_shift; } gse_r4;
struct Pgse_r5 { Pgcolr highlight_colr; } gse_r5;
struct Pgse_r6 { Pint antialiasing_id; } gse_r6;
struct Pgse_r7 { Pint cell_array_align; } gse_r7;
} Pgse_data;
typedef struct {
Pint id; /* GSE identifier */
Pws_dep_ind ind; /* Workstation independent/dependent indicator */
} Pgse_id_dep;
typedef struct {
Pint num_id_facs; /* number of identifiers / dependency element */
Pgse_id_dep *id_facs; /* list of GSE facilities */
} Pgse_id_dep_list;
typedef struct {
Ppoint point; /* point */
Pvec norm; /* normal */
} Phalf_space;
typedef struct {
Ppoint3 point; /* point */
Pvec3 norm; /* normal */
} Phalf_space3;
typedef struct {
Pint num_half_spaces; /* number of half spaces */
Phalf_space *half_spaces; /* list of half spaces */
} Phalf_space_list;
typedef struct {
Pint num_half_spaces; /* number of half spaces */
Phalf_space3 *half_spaces; /* list of half spaces */
} Phalf_space_list3;
typedef struct {
Pfloat hue; /* hue */
Pfloat lightness; /* lightness */
Pfloat satur; /* saturation */
} Phls;
typedef struct {
Pfloat cieluv_x; /* x coefficient */
Pfloat cieluv_y; /* y coefficient */
Pfloat cieluv_y_lum; /* y luminance */
Pfloat w; /* homogeneous coordinate */
} Phomo_cieluv;
typedef union {
Phomo_rgb *rgb; /* pointer to homogeneous RGB colour values */
Phomo_cieluv *cieluv; /* pointer to homogeneous CIELUV colour values */
Phomo_hls *hls; /* pointer to homogeneous HLS colour values */
Phomo_hsv *hsv; /* pointer to homogeneous HSV colour values */
} Phomo_colr_rep_ptr;
typedef struct {
Pfloat hue; /* hue */
Pfloat lightness; /* lightness */
Pfloat statur; /* staturation */
Pfloat w; /* homogeneous coordinate */
} Phomo_hls;
typedef struct {
Pfloat hue; /* hue */
Pfloat statur; /* staturation */
Pfloat value; /* value */
Pfloat w; /* homogeneous coordinate */
} Phomo_hsv;
typedef struct {
Pfloat wx;
Pfloat wy;
Pfloat w;
} Phomo_point3;
typedef struct {
Pfloat wx;
Pfloat wy;
Pfloat wz;
Pfloat w;
} Phomo_point4;
typedef struct {
Pfloat red; /* red intensity */
Pfloat green; /* green intensity */
Pfloat blue; /* blue intensity */
Pfloat w; /* homogeneous coordinate */
} Phomo_rgb;
typedef enum {
PHOR_NORM,
PHOR_LEFT,
PHOR_CTR,
PHOR_RIGHT
} Phor_text_align;
typedef struct {
Pfloat hue; /* hue */
Pfloat satur; /* saturation */
Pfloat value; /* value */
} Phsv;
typedef enum {
PINQ_SET,
PINQ_REALIZED
} Pinq_type;
typedef int Pint;
typedef struct {
Pasf style_asf; /* interior style asf */
Pasf style_ind_asf; /* interior style index asf */
Pasf colr_ind_asf; /* interior colour index asf */
Pint ind; /* interior index */
Pint_bundle bundle; /* interior bundle */
} Pint_attrs;
typedef struct {
Pint_style style; /* interior style */
Pint style_ind; /* interior style index */
Pint colr_ind; /* interior colour index */
} Pint_bundle;
typedef struct {
Pint_style style; /* interior style */
Pint style_ind; /* interior style index */
Pgcolr colr; /* interior colour */
Pint shad_method; /* shading method */
} Pint_bundle_plus;
typedef struct {
Pint num_int_styles; /* number of interior styles */
Pint_style int_styles[5]; /* list of available interior styles */
Pint_list hatch_styles; /* ist of available hatch styles */
Pint num_pred_inds; /* number of predefined bundle indices */
} Pint_facs;
typedef struct {
Pint num_int_styles; /* number interior styles */
Pint_list int_styles[5]; /* list of available interior styles */
Pint_list hatch_styles; /* list of available hatch styles */
Pint_list shad_methods; /* list of available shading method */
Pint num_pred_int_inds; /* number of predefined interior indices */
} Pint_facs_plus;
typedef struct {
Pint num_ints; /* number of Pints in list */
Pint *ints; /* list of integers */
} Pint_list;
typedef struct {
Pint size_x; /* x size */
Pint size_y; /* y size */
} Pint_size;
typedef struct {
Pint size_x; /* x size */
Pint size_y; /* y size */
Pint size_z; /* z size */
} Pint_size3;
typedef enum {
PSTYLE_HOLLOW,
PSTYLE_SOLID,
PSTYLE_PAT,
PSTYLE_HATCH,
PSTYLE_EMPTY
} Pint_style;
typedef enum {
PIN_NONE ,
PIN_LOC ,
PIN_STROKE ,
PIN_VAL ,
PIN_CHOICE ,
PIN_PICK ,
PIN_STRING ,
/* Implementation dependent */
PIN_EXPOSE = 10 ,
PIN_RESIZE = 11 ,
PIN_ENTER_WIN = 12 ,
PIN_EXIT_WIN = 13
} Pin_class;
typedef enum {
PIN_STATUS_NONE,
PIN_STATUS_OK,
PIN_STATUS_NO_IN
} Pin_status;
typedef struct {
int impl_dep; /* Metafile Records */
Pdata unsupp; /* unsupported Metafile item data */
} Pitem_data;
typedef struct {
Pint num_int_styles; /* number interior styles */
Pint_list int_styles[5]; /* list of available interior styles */
Pint_list hatch_styles; /* list of available hatch styles */
Pint_list shad_methods; /* list of available shading method */
Pint num_pred_int_inds; /* number of predefined interior indices */
} Pint_facs_plus;
typedef struct {
Pint type; /* light source type */
union Plight_source_rep_data {
struct Plight_source_rep_amb {
Pgcolr colr;
} amb;
struct Plight_source_rep_dir {
Pgcolr colr;
Pvec3 dir;
} dir;
struct Plight_source_rep_pos {
Pgcolr colr;
Ppoint3 pos;
Pfloat c1;
Pfloat c2;
} pos;
struct Plight_source_rep_spot {
Pgcolr colr;
Ppoint3 pos;
Pvec3 dir;
Pfloat concent_exp;
Pfloat c1;
Pfloat c2;
Pfloat spread_angle;
} spot;
} data;
} Plight_source_rep;
typedef struct {
Pfloat x_min; /* x min */
Pfloat x_max; /* x max */
Pfloat y_min; /* y min */
Pfloat y_max; /* y max */
} Plimit;
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;
typedef enum {
PLTA_EXACT,
PLTA_ADAPT,
PLTA_XADAPT,
PLTA_XADAPT_BY_SEG
} Plinetype_adaptability;
typedef enum {
PDPC_RESTART,
PDPC_CONTINUOUS
} Plinetype_continuity;
typedef struct {
Pasf type_asf; /* linetype asf */
Pasf width_asf; /* linewidth asf */
Pasf colr_ind_asf; /* line colour index asf */
Pint ind; /* line index */
Pline_bundle bundle; /* line bundle */
} Pline_attrs;
typedef struct {
Pint type; /* line type */
Pfloat width; /* line width scale factor */
Pint colr_ind; /* colour index */
} Pline_bundle;
typedef struct {
Pint type; /* line type */
Pfloat width; /* linewidth scale factor */
Pgcolr colr; /* polyline colour */
Pint shad_method; /* polyline shading method */
Pcurve_approx_crit approx_crit; /* curve approximation criteria data record */
} Pline_bundle_plus;
typedef struct {
Pint_list types; /* list of linetypes */
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; /* number of predefined bundle indices */
} Pline_facs;
typedef struct {
Pint num_types; /* number of available linetypes */
Pint_list types; /* list of linetypes */
Pint num_widths; /* number of available line widths */
Pfloat nom_width; /* nominal linewidth */
Pfloat min_width; /* minimum linewidth */
Pfloat max_width; /* maximum linewidth */
Pint_list shad_methods; /* list of available shading method */
Pint num_pred_inds; /* number of predefined bundle indices */
} Pline_facs_plus;
typedef enum {
PFLAG_LINE,
PFLAG_FILL,
PFLAG_FILL_SET
} Pline_fill_ctrl_flag;
typedef struct {
union Ploc_pets {
struct Ploc_pet_r1 {
int impl_dep;
} pet_r1;
struct Ploc_pet_r2 {
int impl_dep;
} pet_r2;
struct Ploc_pet_r3 {
int impl_dep;
} 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 {
int impl_dep;
} pet_r6;
} pets;
} Ploc_data;
typedef struct {
union Ploc3_pets {
struct Ploc3_pet_r1 {
int impl_dep;
} pet_r1;
struct Ploc3_pet_r2 {
int impl_dep;
} pet_r2;
struct Ploc3_pet_r3 {
int impl_dep;
} 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 {
int impl_dep;
} pet_r6;
} pets;
} Ploc_data3;
typedef struct {
Pasf type_asf; /* marker type asf */
Pasf size_asf; /* marker size scale factor asf */
Pasf colr_ind_asf; /* marker colour index asf */
Pint ind; /* marker index */
Pmarker_bundle bundle; /* marker bundle */
} Pmarker_attrs;
typedef struct {
Pint type; /* marker type */
Pfloat size; /* marker size scale factor */
Pint colr_ind; /* colour index */
} Pmarker_bundle;
typedef struct {
Pint type; /* marker type */
Pfloat size; /* marker size scale factor */
Pgcolr colr; /* polymarker colour */
} Pmarker_bundle_plus;
typedef struct {
Pint_list types; /* list of marker types */
Pint num_sizes; /* number of available marker sizes */
Pfloat nom_size; /* nominal marker size */
Pfloat min_size; /* min marker size */
Pfloat max_size; /* max marker size */
Pint num_pred_inds; /* number of predefined bundle indices */
} Pmarker_facs;
typedef Pfloat Pmatrix[3][3];
typedef Pfloat Pmatrix3[4][4];
typedef enum {
PMODE_NIVE,
PMODE_UWOR,
PMODE_UQUM
} Pmod_mode;
typedef enum {
PSIMULT_NO_MORE,
PSIMULT_MORE
} Pmore_simult_events;
typedef struct {
Pint loc; /* locators */
Pint stroke; /* strokes */
Pint val; /* valuators */
Pint choice; /* choices */
Pint pick; /* picks */
Pint string; /* strings */
} Pnum_in;
typedef enum {
PSTRUCT_NONE,
PSTRUCT_OPEN
PXSTRUCT_NR_OPEN
} Popen_struct_status;
typedef enum {
POP_REQ,
POP_SAMPLE,
POP_EVENT
} Pop_mode;
typedef struct {
Ppoint3 p; /* point p */
Ppoint3 q; /* point q */
Ppoint3 r; /* point r */
} Pparal;
typedef struct {
Pint type; /* parametric surface characteristics type */
union Pparam_surf_chars_data {
struct Pparam_surf_isoparam {
Pplacement placement; /* OVER SURFACE, BETWEEN KNOTS */
Pint num_u_curves; /* num curve in u direction */
Pint num_v_curves; /* num curve in v direction */
} isoparam;
struct Pparam_surf_level_mc {
Ppoint3 origin; /* origin point */
Pvec3 dir; /* direction vector */
Pfloat_list params; /* parameter list */
} level_mc;
struct Pparam_surf_level_wc {
Ppoint3 origin;
Pvec3 dir;
Pfloat_list params;
} level_wc;
} data;
} Pparam_surf_chars;
typedef struct {
Psurf_approx_crit approx_crit; /* surface approximation criteria data */
Pparam_surf_chars chars_data; /* parametric surface characteristics data */
} Pparam_surf_rep;
typedef enum {
PORDER_TOP_FIRST,
PORDER_BOTTOM_FIRST
} Ppath_order;
typedef struct {
Pint_size dims; /* pattern's dimensions */
Pint *colr_array; /* colour index array */
} Ppat_rep;
typedef struct {
Pint colr_type; /* colour type */
Pcolrv_array colrs; /* colour array */
} Ppat_rep_plus;
typedef struct {
union Ppick_pets {
struct Ppick_pet_r1 {
int impl_dep;
} pet_r1;
} pets;
} Ppick_data;
typedef struct {
union Ppick3_pets {
struct Ppick3_pet_r1 {
int impl_dep;
} pet_r1;
} pets;
} Ppick_data3;
typedef struct {
Pint depth; /* pick path depth */
Ppick_path_elem *path_list; /* pick path list */
} Ppick_path;
typedef struct {
Pint struct _id; /* structure identifier */
Pint pick_id; /* pick identifier */
Pint elem_pos; /* element position */
} Ppick_path_elem;
typedef enum {
PPLACE_UNIFORM_OVER_SURF,
PPLACE_UNIFORM_BETWEEN_KNOTS
} Pplacement;
typedef struct {
Pfloat x; /* x coordinate */
Pfloat y; /* y coordinate */
} Ppoint;
typedef struct {
Pfloat x; /* x coordinate */
Pfloat y; /* y coordinate */
Pfloat z; /* z coordinate */
} Ppoint3;
typedef union {
Ppoint3 *point3; /* pointer to 3D points */
Phomo_point4 *homo_point4; /* pointer to 4D homogeneous points */
} Ppoint3_ptr;
typedef struct {
Pint num_points; /* number of Ppoints in the list */
Ppoint *points; /* list of points */
} Ppoint_list;
typedef struct {
Pint num_points; /* number of Ppoint3s in the list */
Ppoint3 *points; /* list of points */
} Ppoint_list3;
typedef struct {
Pint num_point_lists; /* number of point lists */
Ppoint_list *point_lists; /* list of point lists */
} Ppoint_list_list;
typedef struct {
Pint num_point_lists; /* number of point lists */
Ppoint_list3 *point_lists; /* list of point lists */
} Ppoint_list_list3;
typedef union {
Ppoint *point; /* pointer to 2D points */
Phomo_point3 *homo_point3; /* pointer to 3D homogeneous points */
} Ppoint_ptr;
typedef struct {
Pint id; /* struct id */
Pfloat disp_pri; /* display priority */
} Pposted_struct;
typedef struct {
Pint num_postings; /* number of structures postings */
Pposted_struct *postings; /* list of postings */
} Pposted_struct_list;
typedef enum {
PTYPE_PARAL,
PTYPE_PERSPECT
} Pproj_type;
typedef enum {
PPR_OFF,
PPR_ON,
PPR_ACT
} Ppr_switch;
typedef enum {
PB_SPLINE_RATIONAL,
PB_SPLINE_NON_RATIONAL
} Prationality;
typedef struct {
Ppoint p; /* point p */
Ppoint q; /* point q */
} Prect;
typedef struct {
Pint type; /* reflectance property type */
union Prefl_prop_data {
struct Prefl_prop_simple_refl {
Pfloat amb_coeff; /* ambient reflection coefficient */
Pfloat diff_coeff; /* diffuse reflection coefficient */
Pfloat spec_coeff; /* specular reflection coefficient */
Pgcolr spec_colr; /* specular colour */
Pfloat spec_exp; /* specular exponent */
} simple_refl;
} data;
} Prefl_prop;
typedef struct {
Pint refl_model; /* reflectance models */
Prefl_prop refl_prop; /* reflectance properties */
} Prefl_rep;
typedef enum {
PFLAG_DEL,
PFLAG_KEEP
} Pref_flag;
typedef enum {
PFLAG_POSTPONE,
PFLAG_PERFORM
} Pregen_flag;
typedef enum {
PPRI_HIGHER,
PPRI_LOWER
} Prel_pri;
typedef struct {
Pfloat red; /* red intensity */
Pfloat green; /* green intensity */
Pfloat blue; /* blue intensity */
} Prgb;
typedef enum {
PDIR_BACKWARD,
PDIR_FORWARD
} Psearch_dir;
typedef enum {
PSEARCH_STATUS_FAILURE,
PSEARCH_STATUS_SUCCESS
} Psearch_status;
typedef struct {
Pint num_sets; /* number of fill area sets */
Pint num_data_per_facet; /* number of data values per facet */
Pcolrv_ptr facet_colrvs; /* list of facet colours */
Pvec3 *facet_norms; /* list of facet normals */
Pfloat *facet_data; /* list of facet data */
} Pset_of_fill_area_sets_data;
typedef enum {
PSOURCE_SELECT_COLR_ASPECT,
PSOURCE_SELECT_VERT_COLR,
PSOURCE_SELECT_VERT_DATA,
PSOURCE_SELECT_FACET_COLR,
PSOURCE_SELECT_FACET_DATA
} Psource_select;
typedef struct {
Pint num_selectors; /* input buffer size */
Psource_select *selectors; /* initial editing position */
} Psource_select_list;
typedef void *Pstore;
typedef struct {
Pint in_buf_size; /* input buffer size */
Pint init_pos; /* initial editing position */
union Pstring_pets {
struct Pstring_pet_r1 {
int impl_dep;
} pet_r1;
} pets;
} Pstring_data;
typedef struct {
Pint in_buf_size; /* input buffer size */
Pint init_pos; /* initial editing position */
union Pstring3_pets {
struct Pstring3_pet_r1 {
int impl_dep;
} pet_r1;
} pets;
} Pstring_data3;
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 {
int impl_dep;
} pet_r1;
struct Pstroke_pet_r2 {
int impl_dep;
} 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;
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 {
int impl_dep;
} pet_r1;
struct Pstroke3_pet_r2 {
int impl_dep;
} 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;
typedef enum {
PNET_CSS,
PNET_AR
} Pstruct_net_source;
typedef enum {
PSTRUCT_ST_STCL,
PSTRUCT_ST_STOP,
PSTRUCT_ST_PIPO
PXSTRUCT_ST_STNOP = PSTRUCT_ST_PIPO
} Pstruct_st;
typedef enum {
PSTRUCT_STATUS_NONE_EXISTENT,
PSTRUCT_STATUS_EMPTY,
PSTRUCT_STATUS_NOT_EMPTY
} Pstruct_status;
typedef struct {
Pint type; /* surface approximation type */
union Psurf_approx_crit_data {
struct Psurf_approx_const_param_subd {
Pint u_count;
Pint v_count;
} const_param_subd;
struct Psurf_approx_chordal_size_wc {
Pfloat u_approx;
Pfloat v_approx;
} chordal_size_wc;
struct Psurf_approx_chordal_size_npc {
Pfloat u_approx;
Pfloat v_approx;
} chordal_size_npc;
struct Psurf_approx_chordal_size_dc {
Pfloat u_approx;
Pfloat v_approx;
} chordal_size_dc;
struct Psurf_approx_planar_dev_wc {
Pfloat approx;
} planar_dev_wc;
struct Psurf_approx_planar_dev_npc {
Pfloat approx;
} planar_dev_npc;
struct Psurf_approx_planar_dev_dc {
Pfloat approx;
} planar_dev_dc;
struct Psurf_approx_rel_wc {
Pfloat approx;
} rel_wc;
struct Psurf_approx_rel_npc {
Pfloat approx;
} rel_npc;
struct Psurf_approx_rel_dc {
Pfloat approx;
} rel_dc;
} data;
} Psurf_approx_crit;
typedef struct {
Pint u_order; /* u spline order */
Pint v_order; /* v spline order */
Pfloat_list u_knots; /* list of u knot values */
Pfloat_list v_knots; /* list of v knot values */
Pint colr_type; /* colour type */
Pcolr_ctrl_point_array colrs; /* array of colour control points */
} Psurf_colr_spline;
typedef struct {
Pint u_order; /* u spline order */
Pint v_order; /* v spline order */
Pfloat_list u_knots; /* list of u knot values */
Pfloat_list v_knots; /* list of v knot values */
Pdata_ctrl_point_array data_points; /* array of data control points */
} Psurf_data_spline;
typedef struct {
Pint num_data_splines; /* number of data splines */
Psurf_data_spline *data_splines; /* lists of data splines */
} Psurf_data_spline_list;
typedef struct {
Pint u_order; /* u spline order */
Pint v_order; /* v spline order */
Pfloat_list u_knots; /* list of u knot values */
Pfloat_list v_knots; /* list of v knot values */
Pctrl_point3_array ctrl_points; /* array of control points */
} Psurf_geom_spline;
typedef struct {
Pint method; /* test method */
union_Ptest_data { /* level of detail */
struct Ptest_dist_3 { /* succeed if point is within [near,far] interval */
Ppoint3 point; /* point within object (MC) */
Pfloat near_dist; /* near distance (VRC) */
Pfloat far_dist; /* far distance (VRC) */
} test_dist_3;
struct Ptest_extent_3 {
Plimit3 paral; /* extent parallelopiped (MC) */
Ptest_comp relation; /* test relation */
Pfloat threshold; /* threshold value (DC) */
} test_extent_3;
struct Ptest_bounds_extent_3 {
Plimit3 paral; /* extent rectangle (MC) */
Pclip_cond cond; /* test condition */
} test_bounds_extent_3;
struct Ptest_bounds_sphere_3 {
Ppoint3 centre; /* sphere centre (MC) */
Pfloat radius; /* sphere radius (MC) */
Pclip_cond cond; /* test condition */
} test_bounds_sphere_3;
struct Ptest_bounds_3 {
Ppoint_list_list3 point_lists; /* test object (MC) */
Pclip_cond cond; /* test condition */
} test_bounds_3;
} test_data;
} Ptest;
typedef enum {
PSYS_ST_PHCL,
PSYS_ST_PHOP
} Psys_st;
typedef enum {
PTESTCOMP_IS_EQUAL,
PTESTCOMP_IS_NOT_EQUAL,
PTESTCOMP_IS_GREATER,
PTESTCOMP_IS_LESS,
PTESTCOMP_IS_GREATER_OR_EQUAL,
PTESTCOMP_IS_LESS_OR_EQUAL
} Ptest_comp;
typedef struct {
Phor_text_align hor; /* horizontal component */
Pvert_text_align vert; /* vertical component */
} Ptext_align;
typedef struct {
Pint font; /* text font */
Ptext_prec prec; /* text precision */
Pfloat char_expan; /* character expansion factor */
Pfloat char_space; /* character spacing */
Pint colr_ind; /* text colour index */
} Ptext_bundle;
typedef struct {
Pint font; /* text font */
Ptext_prec precision; /* text precision */
Pfloat char_expan; /* character expansion factor */
Pfloat char_space; /* character spacing */
Pgcolr colr; /* text colour */
} Ptext_bundle_plus;
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 heights */
Pfloat max_char_ht; /* maximum heights */
Pint num_char_expans; /* number of character expansion factors */
Pfloat min_char_expan; /* minimum expansion factor */
Pfloat max_char_expan; /* maximum expansion factor */
Pint num_pred_inds; /* number of predefined bundle indices */
} Ptext_facs;
typedef struct {
Pint font; /* text font */
Ptext_prec precision; /* text precision */
} Ptext_font_prec;
typedef enum {
PPATH_RIGHT,
PPATH_LEFT,
PPATH_UP,
PPATH_DOWN
} Ptext_path;
typedef enum {
PPREC_STRING,
PPREC_CHAR,
PPREC_STROKE
} Ptext_prec;
typedef struct {
Pcurve_approx_crit approx_crit; /* trimming curve approximation.data record */
Pvis_flag visibility_flag; /* curve visibility flag */
Pint order; /* curve order */
Pfloat_list knots; /* curve knot vector */
Pfloat low_limit; /* curve parameter range lower limit */
Pfloat high_limit; /* curve parameter range upper limit */
Pctrl_point_list ctrl_points; /* curve control points */
} Ptrim_curve;
typedef struct {
Pint num_trim_curves; /* number of trimming curves */
Ptrim_curve *trim_curves; /* list of trimming curves forming a closed loop */
} Ptrim_curve_loop;
typedef struct {
Pint num_trim_loops; /* number of trimming curve loops */
Ptrim_curve_loop *trim_loops; /* array of trimming curve loops */
} Ptrim_curve_loop_list;
typedef struct {
Pint num_sets; /* number of triangle sets */
Pint num_data_per_facet; /* number of data values per facet */
Pcolrv_ptr facet_colrvs; /* list of facet colours */
Pvec3 *facet_norms; /* list of facet normals */
Pfloat *facet_data; /* list of facet data */
} Ptri_set_data;
typedef enum {
PUPD_NOT_PEND,
PUPD_PEND
} Pupd_st;
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;
} pet_r1;
} pets;
} Pval_data;
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;
} pet_r1;
} pets;
} Pval_data3;
typedef struct {
Pfloat delta_x; /* delta x value */
Pfloat delta_y; /* delta y value */
} Pvec;
typedef struct {
Pfloat delta_x; /* delta x value */
Pfloat delta_y; /* delta y value */
Pfloat delta_z; /* delta z value */
} Pvec3;
typedef struct {
Pint_size dims; /* dimensions of vertex array */
Pint num_data_per_vertex; /* number of data values per vertex */
Ppoint3 *vertex_points; /* array of vertex points */
Pcolrv_ptr vertex_colrvs; /* array of vertex colours */
Pvec3 *vertex_norms; /* array of vertex normals */
Pfloat *vertex_data; /* array of vertex data lists */
} Pvertex3_array;
typedef struct {
Pint num_vertices; /* number of vertices */
Pint num_data_per_vertex; /* number of data values per vertex */
Ppoint3 *vertex_points; /* list of vertex points */
Pcolrv_ptr vertex_colrvs; /* list of vertex colours */
Pvec3 *vertex_norms; /* list of vertex normals */
Pfloat *vertex_data; /* list of vertex data lists */
} Pvertex3_list;
typedef struct {
Pint num_lists; /* number of vertex lists */
Pvertex3_list *vertices; /* list of vertex lists */
} Pvertex3_set;
typedef struct {
Pint_size dims; /* dimensions of vertex array */
Pint num_data_per_vertex; /* number of data values per vertex */
Ppoint *vertex_points; /* array of vertex points */
Pcolrv_ptr vertex_colrvs; /* array of vertex colours */
Pvec3 *vertex_norms; /* array of vertex normals */
Pfloat *vertex_data; /* array of vertex data lists */
} Pvertex_array;
typedef Pint Pvertex_ind_triplet[3];
typedef struct {
Pint num_vertex_ind_triplets;
Pvertex_ind_triplet *vertex_ind_triplets;
} Pvertex_ind_triplet_list;
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 colours */
Pvec3 *vertex_norms; /* list of vertex normals */
Pfloat *vertex_data; /* list of vertex data lists */
} Pvertex_list;
typedef struct {
Pint num_lists; /* number of vertex lists */
Pvertex_list *vertices; /* list of vertex lists */
} Pvertex_set;
typedef enum {
PVERT_NORM,
PVERT_TOP,
PVERT_CAP,
PVERT_HALF,
PVERT_BASE,
PVERT_BOTTOM
} Pvert_text_align;
typedef struct {
Plimit win; /* window limits */
Plimit proj_vp; /* projection viewport limits */
} Pview_map;
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;
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;
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;
typedef enum {
PVISUAL_ST_CORRECT,
PVISUAL_ST_DEFER,
PVISUAL_ST_SIMULATED
} Pvisual_st;
typedef enum {
PVIS_OFF,
PVIS_ON
} Pvis_flag;
typedef enum {
PCAT_OUT,
PCAT_IN,
PCAT_OUTIN,
PCAT_MO,
PCAT_MI
} Pws_cat;
typedef enum {
PCLASS_VEC,
PCLASS_RASTER,
PCLASS_OTHER
} Pws_class;
typedef enum {
PWS_INDEP,
PWS_DEP
} Pws_dep_ind;
typedef enum {
PWS_ST_WSCL,
PWS_ST_WSOP
} Pws_st;
typedef struct {
Pint line_bundles; /* maximum number of polyline table entries */
Pint mark_bundles; /* maximum number of polymarker table entries */
Pint text_bundles; /* maximum number of text table entries */
Pint int_bundles; /* maximum number of interior table entries */
Pint edge_bundles; /* maximum number of edge table entries */
Pint pat_reps; /* maximum number of pattern table entries */
Pint colr_reps; /* maximum number of colour table entries */
Pint view_reps; /* maximum number of view table entries */
} Pws_st_tables;
typedef struct {
Pint data_map_rep; /* maximum number of data mapping bundles */
Pint refl_rep; /* maximum number of reflectance bundles */
Pint param_surf_rep; /* maximum number of parametric surface bundles */
Pint light_source_rep; /* maximum number of light sources table entries */
Pint depth_cue_rep; /* maximum number of depth cue table entries */
Pint colr_map_rep; /* max. number of colour mappping table entries */
} Pws_st_tables_plus;
typedef enum {
PXVIEW_DBUFF_OFF,
PXVIEW_DBUFF_ON
} Pxdisp_method;
typedef struct {
Pint_style back_flag; /* view background flag PSTYLE_EMPTY or PSTYLE_SOLID */
Pgcolr back_colr; /* view background colour */
Pedge_flag border_flag; /* view border flag */
Pgcolr border_colr; /* view border colour */
Pfloat border_width; /* view border width */
Pint border_type; /* view border type */
} Pxextended_view_rep;
typedef struct {
Pxsupp_flag colr; /* color support flag */
Pxsupp_flag linestyle; /* linestyle support flag */
Pxsupp_flag blink; /* blink support flag */
Pxsupp_flag intensity; /* intensity support flag */
Pint num_flags; /* total number of supported flags */
} Pxhighl_facs;
typedef enum {
PXHLT_COLR,
PXHLT_TYPE,
PXHLT_BLINK,
PXHLT_INTENSITY
} Pxhighl_method;
typedef struct {
Pxhighl_method method; /* highlight method */
Pint style; /* style index */
} Pxhighl_rep;
typedef struct {
Pint font; /* font */
Pfloat height; /* character height */
Pfloat exp_factor; /* expansion factor */
Pfloat horizontal; /* normalized horizontal justification */
Pfloat vertical; /* normalized vertical justification */
Pvec up_vec; /* character up vector */
Ppoint position; /* character position */
Pint character; /* character code (ASCII) */
} Pxmk_char;
typedef struct {
Pint num_xmk_chars; /* number of Pxmk_chars in the list */
Pxmk_char *xmk_chars; /* list of xmk_chars */
} Pxmk_char_list;
typedef struct {
Pint mask; /* default plane write mask */
Pint num_overlay; /* number of overlay planes */
Pint num_underlay; /* number of underlay planes */
Pxsupp_flag comp_flag; /* complement mode support flag */
} Pxnon_dest_facs;
typedef enum {
PXOPACITY_OFF,
PXOPACITY_ON
} Pxopacity;
typedef enum {
PXOUTLINE_OFF,
PXOUTLINE_ON
} Pxoutline;
typedef enum {
PXOVERLAY_NORMAL,
PXOVERLAY_OVER,
PXOVERLAY_UNDER
} Pxoverlay;
typedef enum {
PXPDEV_BUTTON = 4,
PXPDEV_KEY = 6
} Pxpdev_type;
typedef enum {
PXPICK_FIRST,
PXPICK_LAST,
PXPICK_FRONT,
PXPICK_BACK,
PXPICK_NEAREST,
PXPICK_ALL,
PXPICK_BEST
} Pxpick_method;
typedef enum {
PXLOW_TO_HIGH,
PXHIGH_TO_LOW
} Pxpick_order;
typedef struct {
Pint num_paths; /* count of paths */
Ppick_path *paths; /* pick paths */
} Pxpick_path_list;
typedef struct {
Pxsupp_flag pixl_save; /* pixel save support flag */
Pxsupp_flag pixl_restore; /* pixel restore support flag */
Pxsupp_flag pixl_release; /* pixel release support flag */
Pxsupp_flag pixl_paste; /* pixel paste support flag */
Pxsupp_flag pixl_write; /* pixel write support flag */
Pint num_flags; /* total number of supported flags */
Pint num_blocks; /* max number pixel block save areas */
} Pxpixel_facs;
typedef struct {
Pxregion_type region_type;
union {
Pint view_ind;
Ppoint point;
} region;
} Pxregion_dst;
typedef struct {
Pxregion_type region_type; /* type of region */
union {
Pint view_ind;
Plimit rect;
} region; /* region */
} Pxregion_src;
typedef enum {
PXREGION_VIEW_IND, /* use the clip limit of the view associated */
PXREGION_NPC, /* use a NPC rectangle or point */
PXREGION_DC /* use a DC rectangle or point */
} Pxregion_type;
typedef enum {
PXSTRUCT_LAST_ELEM,
PXSTRUCT_BEGINNING,
PXSTRUCT_FIRST_ELEM
} Pxstruct_mode;
typedef enum {
PXNO_SUPPORT,
PXSUPPORT
} Pxsupp_flag;
typedef enum {
PXPERMANENT,
PXTEMPORARY
} Pxtemporary;
typedef enum {
PXTACT_BREAK,
PXTACT_COMPLETION,
PXTACT_BACKSPACE,
PXTACT_KILL,
PXTACT_REPLACE,
PXTACT_LEFT,
PXTACT_RIGHT,
PXTACT_FIRST,
PXTACT_LAST,
PXTACT_LAST_COMPLETION,
PXTACT_DELETE,
PXTACT_INSERT
} Pxtrig_action;
typedef struct {
Pint num_triggers;
Pxtrig_spec *triggers;
} Pxtrig_list;
typedef struct {
Pxpdev_type device;
Pint dev_num;
Pxtrig_type trig_type;
union {
struct {
Pint low_val;
Pint high_val;
} inclusive;
} trig_data;
} Pxtrig_spec;
typedef enum {
PXTRIG_INCLUSIVE
} Pxtrig_type;
typedef enum {
PXQUT_NONE,
PXQUT_CLOSE_NO_TRAVERSAL,
PXQUT_CLOSE_TRAVERSAL,
PXQUT_EDIT_NO_TRAVERSAL,
PXQUT_EDIT_TRAVERSAL
} Pxupd_method;
typedef enum {
PXVIEW_ACTIV_OFF,
PXVIEW_ACTIV_ON
} Pxview_activ_flag;
typedef struct {
Pint plane_mask; /* plane write mask */
Pxoverlay overlay; /* overlay, underlay, or normal */
Pint disp_dev; /* view's display device */
} Pxview_attrs;
typedef enum {
PXVIEW_ACTIVE,
PXVIEW_INACTIVE
} Pxview_ind;
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 */
Pxopacity opacity; /* opacity indicator */
Pint back_colr; /* background color for opaque views */
Pxoutline outline; /* outline indicator */
Pint outline_colr; /* outline color */
Pxtemporary temporary; /* temporary view indicator */
Pxview_ind active; /* active view indicator */
} Pxview_rep;
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 */
Pxopacity opacity; /* opacity indicator */
Pint back_colr; /* background color for opaque views */
Pxoutline outline; /* outline indicator */
Pint outline_colr; /* outline color */
Pxtemporary temporary; /* temporary view indicator */
Pxview_ind active; /* active view indicator */
} Pxview_rep3;
typedef unsigned short Pxwchar;
G5G - GPHIGS V6.0 - GPHIGS QUICK REFERENCE QUIDE