-+-+-+-+-+-+-+-+ START OF PART 147 -+-+-+-+-+-+-+-+ X case PEL_TEXT_PRECISION: X if (iil >= 1) X ia`5B0`5D = eldata.text_prec; X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_CHARACTER_UP_VECTOR: X case PEL_ANNOTATION_TEXT_CHARACTER_U: X if (irl >= 2) X `7B X ra`5B0`5D = eldata.char_up.x; X ra`5B1`5D = eldata.char_up.y; X `7D X *rl = 2; X *il = 0; X *sl = 0; X break; X X case PEL_TEXT_PATH: X case PEL_ANNOTATION_TEXT_PATH: X if (iil >= 1) X ia`5B0`5D = eldata.text_path; X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_TEXT_ALIGNMENT: X case PEL_ANNOTATION_TEXT_ALIGNMENT: X if (iil >= 2) X `7B X ia`5B0`5D = eldata.text_align.hor; X ia`5B1`5D = eldata.text_align.ver; X `7D X *il = 2; X *rl = 0; X *sl = 0; X break; X X case PEL_INTERIOR_STYLE: X if (iil >= 1) X ia`5B0`5D = eldata.interior_style; X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_EDGE_FLAG: X if (iil >= 1) X ia`5B0`5D = eldata.edge_flag; X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_PATTERN_SIZE: X case PEL_PATTERN_REFERENCE_POINT: X if (irl >= 2) X `7B X ra`5B0`5D = eldata.pt.x; X ra`5B1`5D = eldata.pt.y; X `7D X *rl = 2; X *il = 0; X *sl = 0; X break; X X case PEL_PATTERN_REFERENCE_POINT_AND: X if (irl >= 9) X `7B X ra`5B0`5D = eldata.pat_pt_vectors.pt.x; X ra`5B1`5D = eldata.pat_pt_vectors.pt.y; X ra`5B2`5D = eldata.pat_pt_vectors.pt.z; X ra`5B3`5D = eldata.pat_pt_vectors.vectors`5B0`5D.x; X ra`5B4`5D = eldata.pat_pt_vectors.vectors`5B0`5D.y; X ra`5B5`5D = eldata.pat_pt_vectors.vectors`5B0`5D.z; X ra`5B6`5D = eldata.pat_pt_vectors.vectors`5B1`5D.x; X ra`5B7`5D = eldata.pat_pt_vectors.vectors`5B1`5D.y; X ra`5B8`5D = eldata.pat_pt_vectors.vectors`5B1`5D.z; X `7D X *rl = 9; X *il = 0; X *sl = 0; X break; X X case PEL_ADD_NAMES_TO_SET: X case PEL_REMOVE_NAMES_FROM_SET: X if (iil >= eldata.name_set.number) X `7B X for (i = 0; i < eldata.name_set.number; i++) X ia`5Bi`5D = eldata.name_set.integers`5Bi`5D; X `7D X *il = eldata.name_set.number; X *rl = 0; X *sl = 0; X break; X X case PEL_INDIVIDUAL_ASF: X if (iil >= 2) X `7B X ia`5B0`5D = eldata.asf_info.attr_id; X ia`5B1`5D = eldata.asf_info.asf; X `7D X *il = 2; X *rl = 0; X *sl = 0; X break; X X case PEL_LOCAL_MODELLING_TRANSFORM3: X if ((iil >= 1) && X (irl >= 16)) X `7B X ia`5B0`5D = eldata.local_xform_3.compose_type; X ra`5B0`5D = eldata.local_xform_3.mat3`5B0`5D`5B0`5D; X ra`5B1`5D = eldata.local_xform_3.mat3`5B0`5D`5B1`5D; X ra`5B2`5D = eldata.local_xform_3.mat3`5B0`5D`5B2`5D; X ra`5B3`5D = eldata.local_xform_3.mat3`5B0`5D`5B3`5D; X ra`5B4`5D = eldata.local_xform_3.mat3`5B1`5D`5B0`5D; X ra`5B5`5D = eldata.local_xform_3.mat3`5B1`5D`5B1`5D; X ra`5B6`5D = eldata.local_xform_3.mat3`5B1`5D`5B2`5D; X ra`5B7`5D = eldata.local_xform_3.mat3`5B1`5D`5B3`5D; X ra`5B8`5D = eldata.local_xform_3.mat3`5B2`5D`5B0`5D; X ra`5B9`5D = eldata.local_xform_3.mat3`5B2`5D`5B1`5D; X ra`5B10`5D = eldata.local_xform_3.mat3`5B2`5D`5B2`5D; X ra`5B11`5D = eldata.local_xform_3.mat3`5B2`5D`5B3`5D; X ra`5B12`5D = eldata.local_xform_3.mat3`5B3`5D`5B0`5D; X ra`5B13`5D = eldata.local_xform_3.mat3`5B3`5D`5B1`5D; X ra`5B14`5D = eldata.local_xform_3.mat3`5B3`5D`5B2`5D; X ra`5B15`5D = eldata.local_xform_3.mat3`5B3`5D`5B3`5D; X `7D X *il = 1; X *rl = 16; X *sl = 0; X break; X X case PEL_LOCAL_MODELLING_TRANSFORM: X if ((iil >= 1) && X (irl >= 9)) X `7B X ia`5B0`5D = eldata.local_xform.compose_type; X ra`5B0`5D = eldata.local_xform.mat`5B0`5D`5B0`5D; X ra`5B1`5D = eldata.local_xform.mat`5B0`5D`5B1`5D; X ra`5B2`5D = eldata.local_xform.mat`5B0`5D`5B2`5D; X ra`5B3`5D = eldata.local_xform.mat`5B1`5D`5B0`5D; X ra`5B4`5D = eldata.local_xform.mat`5B1`5D`5B1`5D; X ra`5B5`5D = eldata.local_xform.mat`5B1`5D`5B2`5D; X ra`5B6`5D = eldata.local_xform.mat`5B2`5D`5B0`5D; X ra`5B7`5D = eldata.local_xform.mat`5B2`5D`5B1`5D; X ra`5B8`5D = eldata.local_xform.mat`5B2`5D`5B2`5D; X `7D X *il = 1; X *rl = 9; X *sl = 0; X break; X X case PEL_GLOBAL_MODELLING_TRANSFORM3: X if (irl >= 16) X `7B X ra`5B0`5D = eldata.mat3`5B0`5D`5B0`5D; X ra`5B1`5D = eldata.mat3`5B0`5D`5B1`5D; X ra`5B2`5D = eldata.mat3`5B0`5D`5B2`5D; X ra`5B3`5D = eldata.mat3`5B0`5D`5B3`5D; X ra`5B4`5D = eldata.mat3`5B1`5D`5B0`5D; X ra`5B5`5D = eldata.mat3`5B1`5D`5B1`5D; X ra`5B6`5D = eldata.mat3`5B1`5D`5B2`5D; X ra`5B7`5D = eldata.mat3`5B1`5D`5B3`5D; X ra`5B8`5D = eldata.mat3`5B2`5D`5B0`5D; X ra`5B9`5D = eldata.mat3`5B2`5D`5B1`5D; X ra`5B10`5D = eldata.mat3`5B2`5D`5B2`5D; X ra`5B11`5D = eldata.mat3`5B2`5D`5B3`5D; X ra`5B12`5D = eldata.mat3`5B3`5D`5B0`5D; X ra`5B13`5D = eldata.mat3`5B3`5D`5B1`5D; X ra`5B14`5D = eldata.mat3`5B3`5D`5B2`5D; X ra`5B15`5D = eldata.mat3`5B3`5D`5B3`5D; X `7D X *il = 0; X *rl = 16; X *sl = 0; X break; X X case PEL_GLOBAL_MODELLING_TRANSFORM: X if (*rl >= 9) X `7B X ra`5B0`5D = eldata.mat`5B0`5D`5B0`5D; X ra`5B1`5D = eldata.mat`5B0`5D`5B1`5D; X ra`5B2`5D = eldata.mat`5B0`5D`5B2`5D; X ra`5B3`5D = eldata.mat`5B1`5D`5B0`5D; X ra`5B4`5D = eldata.mat`5B1`5D`5B1`5D; X ra`5B5`5D = eldata.mat`5B1`5D`5B2`5D; X ra`5B6`5D = eldata.mat`5B2`5D`5B0`5D; X ra`5B7`5D = eldata.mat`5B2`5D`5B1`5D; X ra`5B8`5D = eldata.mat`5B2`5D`5B2`5D; X `7D X *rl = 9; X *il = 0; X *sl = 0; X break; X X case PEL_APPLICATION_DATA: X if (isl >= 1) X `7B X lstr`5B0`5D = strlen(eldata.data); X strncpy(str, eldata.data, strlen(eldata.data)); X `7D `20 X *il = 0; X *rl = 0; X *sl = 1; X break; X X case PEL_GSE: X *il = 0; X *rl = 0; X *sl = 0; X break; X `7D X free(databuf); X`7D /* pc_inqelemcontent */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqelemtypesize(strid, elenum, errind, eltype, il, rl, sl) XPint strid, elenum, *errind, *eltype, *il, *rl, *sl; X`7B X Pelsize size; X `20 X pinqelemtypesize(strid, elenum, errind, eltype, &size); X switch (*eltype) X `7B X case PEL_POLYLINE3: X case PEL_POLYMARKER3: X case PEL_FILL_AREA3: X *rl = size.number * 3; X *il = 1; X *sl = 0; X break; X `20 X case PEL_POLYLINE: X case PEL_POLYMARKER: X case PEL_FILL_AREA: X *rl = size.number * 2; X *il = 1; X *sl = 0; X break; X `20 X case PEL_FILL_AREA_SET3: X *rl = size.fas_size.total_pts * 3; X *il = size.fas_size.num_bounds; X *sl = 0; `20 X break; X `20 X case PEL_FILL_AREA_SET: X *rl = size.fas_size.total_pts * 2; X *il = size.fas_size.num_bounds; X break; X X case PEL_ADD_NAMES_TO_SET: X case PEL_REMOVE_NAMES_FROM_SET: X *il = size.number; X *rl = 0; X *sl = 0; X break; X `20 X case PEL_NIL: X *il = 0; X *rl = 0; X *sl = 0; X break; X X case PEL_TEXT3: X *il = 0; X *rl = 9; X *sl = 1; X break; X X case PEL_TEXT: X *il = 0; X *rl = 2; X *sl = 1; X break; X X case PEL_ANNOTATION_TEXT_RELATIVE3: X *il = 0; X *rl = 6; X *sl = 1; X break; X X case PEL_ANNOTATION_TEXT_RELATIVE: X *il = 0; X *rl = 4; X *sl = 1; X break; X X case PEL_CELL_ARRAY3: X *il = 2 + (size.dim.x_dim * size.dim.y_dim); `20 X *rl = 9; X *sl = 0; X break; X X case PEL_CELL_ARRAY: X *il = 2 + (size.dim.x_dim * size.dim.y_dim); `20 X *rl = 4; X *sl = 0; X break; X X case PEL_GDP3: X *il = 0; X *rl = 0; X *sl = 0; X break; X X case PEL_GDP: X *il = 0; X *rl = 0; X *sl = 0; X break; X X case PEL_POLYLINE_INDEX: X case PEL_POLYMARKER_INDEX: X case PEL_TEXT_INDEX: X case PEL_INTERIOR_INDEX: X case PEL_EDGE_INDEX: X case PEL_LINETYPE: X case PEL_MARKER_TYPE: X case PEL_TEXT_FONT: X case PEL_ANNOTATION_STYLE: X case PEL_INTERIOR_STYLE_INDEX: X case PEL_EDGETYPE: X case PEL_HLHSR_IDENTIFIER: X case PEL_EDGE_COLOUR_INDEX: X case PEL_INTERIOR_COLOUR_INDEX: X case PEL_TEXT_COLOUR_INDEX: X case PEL_MARKER_COLOUR_INDEX: X case PEL_POLYLINE_COLOUR_INDEX: X case PEL_VIEW_INDEX: X case PEL_LABEL: `20 X case PEL_PICK_ID: X case PEL_EXECUTE_STRUCTURE: X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_LINEWIDTH_SCALE_FACTOR: X case PEL_MARKER_SIZE_SCALE_FACTOR: X case PEL_CHARACTER_EXPANSION_FACTOR: X case PEL_CHARACTER_SPACING: X case PEL_CHARACTER_HEIGHT: X case PEL_ANNOTATION_TEXT_CHARACTER_H: X case PEL_EDGEWIDTH_SCALE_FACTOR: X *rl = 1; X *il = 0; X *sl = 0; X break; X `20 X case PEL_TEXT_PRECISION: X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_CHARACTER_UP_VECTOR: X case PEL_ANNOTATION_TEXT_CHARACTER_U: X *rl = 2; X *il = 0; X *sl = 0; X break; X X case PEL_TEXT_PATH: X case PEL_ANNOTATION_TEXT_PATH: X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_TEXT_ALIGNMENT: X case PEL_ANNOTATION_TEXT_ALIGNMENT: X *il = 2; X *rl = 0; X *sl = 0; X break; X X case PEL_INTERIOR_STYLE: X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_EDGE_FLAG: X *il = 1; X *rl = 0; X *sl = 0; X break; X X case PEL_PATTERN_SIZE: X case PEL_PATTERN_REFERENCE_POINT: X *rl = 2; X *il = 0; X *sl = 0; X break; X X case PEL_PATTERN_REFERENCE_POINT_AND: X *rl = 9; X *il = 0; X *sl = 0; X break; X X case PEL_INDIVIDUAL_ASF: X *il = 2; X *rl = 0; X *sl = 0; X break; X X case PEL_LOCAL_MODELLING_TRANSFORM3: X *il = 1; X *rl = 16; X *sl = 0; X break; X X case PEL_LOCAL_MODELLING_TRANSFORM: X *il = 1; X *rl = 9; X *sl = 0; X break; X X case PEL_GLOBAL_MODELLING_TRANSFORM3: X *il = 0; X *rl = 16; X *sl = 0; X break; X X case PEL_GLOBAL_MODELLING_TRANSFORM: X *rl = 9; X *il = 0; X *sl = 0; X break; X X case PEL_APPLICATION_DATA: X *il = 0; X *rl = 0; X *sl = 1; X break; X X case PEL_GSE: X *il = 0; X *rl = 0; X *sl = 0; X break; X X default: X *il = *rl = *sl = size.number; X break; X `7D X if ((*eltype >= (Pint)PEL_ANNOTATION_TEXT_RELATIVE3) && X (*eltype <= (Pint)PEL_MODELLING_CLIPPING_VOLUME)) X *eltype -= 1; X else X if (*eltype <= (Pint)PEL_TEXT) X *eltype += 1; X`7D /* pc_inqelemtypesize */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqgsefacil(num, errind, ol, gseid, wsdind) XPint num, *errind, *ol, *gseid, *wsdind; X`7B X Pgseiddeplst gse; X X pinqgsefacil(0, 0, errind, &gse, ol); X gse.id_depend = (Pgseiddep *)calloc(*ol, sizeof(Pgseiddep)); X pinqgsefacil(*ol, 0, errind, &gse, ol); X *gseid = gse.id_depend`5Bnum - 1`5D.id; X *wsdind = gse.id_depend`5Bnum - 1`5D.indictor; X free(gse.id_depend); X`7D /* pc_inqgsefacil */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqhighlightfilter(wkid, isbsz, esbsz, errind, isn, is, esn, X es) XPint wkid, isbsz, esbsz, *errind, *isn, *is, *esn, *es; X`7B X Pintlst inlst, exlst; X X inlst.integers = is; X exlst.integers = es; X pinqhighlightfilter(wkid, isbsz, 0, esbsz, 0, errind, &inlst, isn, &exlst, X esn); X`7D /* pc_inqhighlightfilter */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqhlhsrfacil(wtype, ni, nm, errind, nhrid, hrid, nhrmd, hrmd V) XPint wtype, ni, nm, *errind, *nhrid, *hrid, *nhrmd, *hrmd; X`7B X Pintlst ids, modes; X X pinqhlhsrfacil(wtype, 0, 0, 0, 0, errind, &ids, &modes, nhrid, nhrmd); X ids.integers = (Pint *)calloc(*nhrid, sizeof(Pint)); X modes.integers = (Pint *)calloc(*nhrmd, sizeof(Pint)); X pinqhlhsrfacil(wtype, *nhrid, 0, *nhrmd, 0, errind, &ids,`20 X &modes, nhrid, nhrmd); X *hrid = ids.integers`5Bni - 1`5D; X *hrmd = modes.integers`5Bnm - 1`5D; X free(ids.integers); X free(modes.integers); X`7D /* pc_inqhlhsrfacil */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqintfacil(wtype, ni, nh, errind, nis, is, nhs, hs, npfai) XPint wtype, ni, nh, *errind, *nis, *is, *nhs, *hs, *npfai; X`7B X Pinterfac facil; X X pinqintfacil(wtype, 0, 0, 0, 0, errind, &facil, nis, nhs); X facil.hatches.integers = (Pint *)calloc(*nhs, sizeof(Pint)); X facil.interiors = (Pinterstyle *)calloc(*nis, sizeof(Pinterstyle)); X pinqintfacil(wtype, *nis, 0, *nhs, 0, errind, &facil, nis, nhs); X *is = facil.interiors`5Bni - 1`5D; X *hs = facil.hatches.integers`5Bnh - 1`5D; X free(facil.interiors); X free(facil.hatches.integers); X`7D /* pc_inqintfacil */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqintrep(wkid, ii, type, errind, ints, istyli, coli) XPint wkid, ii, type; XPint *errind, *ints, *istyli, *coli; X`7B X Pinterbundl rep; X X pinqintrep(wkid, ii, type, errind, &rep); X *ints = rep.style; X *istyli = rep.index; X *coli = rep.colour; X`7D /* pc_inqintrep */ X +-+-+-+-+-+-+-+- END OF PART 147 +-+-+-+-+-+-+-+-