-+-+-+-+-+-+-+-+ START OF PART 146 -+-+-+-+-+-+-+-+ X buffer = (Pchar *)malloc(totsize); X pinqdecendentsstruct(strid, pthord, pthdep, totsize, errind, buffer,`20 X &totsize, &epaths); X *ol = epaths.number; X *apthsz = epaths.erls`5Bnum - 1`5D.number; X for (i = 0; i < *apthsz; i++) X `7B X paths`5Bi`5D.struct_id = epaths.erls`5Bnum - 1`5D.ers`5Bi`5D.struct_id; X paths`5Bi`5D.elem_num = epaths.erls`5Bnum - 1`5D.ers`5Bi`5D.elem_num; X `7D X free(buffer); X`7D /* pc_inqdecendentsstruct */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqdisplayspacesize(wtype, errind, dcunit, dx, dy, rx, ry) XPint wtype, *errind, *dcunit; XPfloat *dx, *dy; XPint *rx, *ry; X`7B X Pdspsize size; X X pinqdisplayspacesize(wtype, errind, &size); X *dcunit = size.units; X *dx = size.device.x; X *dy = size.device.y; X *rx = size.raster.x; X *ry = size.raster.y; X`7D /* pc_inqdisplayspacesize */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqdisplayspacesize3(wtype, errind, dcunit, dx, dy, dz,`20 X rx, ry, rz) XPint wtype, *errind, *dcunit; XPfloat *dx, *dy, *dz; XPint *rx, *ry, *rz; X`7B X Pdspvolume size; X X pinqdisplayspacesize3(wtype, errind, &size); X *dcunit = size.units; X *dx = size.device.x; X *dy = size.device.y; X *dz = size.device.z; X *rx = size.raster.x; X *ry = size.raster.y; X *rz = size.raster.z; X`7D /* pc_inqdisplayspacesize3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqdynstruct(wtype, errind, strcon, post, unpost, delete,`20 X refmod) XPint wtype, *errind, *strcon, *post, *unpost, *delete, *refmod; X`7B X Pmodstruct dynamics; X X pinqdynstruct(wtype, errind, &dynamics); X *strcon = dynamics.content; X *post = dynamics.post; X *unpost = dynamics.unpost; X *delete = dynamics.delete; X *refmod = dynamics.reference; X`7D /* pc_inqdynstruct */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqdynwsattr(wtype, errind, plbun, pmbun, txbun, inbun, X edbun, parep, colrep, vwrep, wktr, hlfltr, infltr, hlhsr) XPint wtype, *errind, *plbun, *pmbun, *txbun, *inbun; XPint *edbun, *parep, *colrep, *vwrep, *wktr, *hlfltr, *infltr, *hlhsr; X`7B X Pmodws attr; X X pinqdynwsattr(wtype, errind, &attr); X *plbun = attr.line; X *pmbun = attr.marker; X *txbun = attr.text; X *inbun = attr.interior; X *edbun = attr.edge; X *parep = attr.pattern; X *colrep = attr.colour; X *vwrep = attr.view; X *wktr = attr.wstran; X *hlfltr = attr.highlight; X *infltr = attr.invis; X /* *hlhsr = attr.?????? */ X`7D /* pc_inqdynwsattr */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqedgefacil(wtype, num, errind, nedt, edt, nedw, nomedw, X redwmn, redwmx, npedi) XPint wtype, *errind, *nedt, *edt, *nedw; XPfloat *nomedw, *redwmn, *redwmx; XPint *npedi; X`7B X Pedgefac facil; X X pinqedgefacil(wtype, 0, 0, errind, nedt, &facil); X facil.types.integers = (Pint *)calloc(*nedt, sizeof(Pint)); X pinqedgefacil(wtype, *nedt, 0, errind, nedt, &facil); X *edt = facil.types.integers`5Bnum - 1`5D; X *nedw = facil.widths; X *nomedw = facil.nom; X *redwmn = facil.min; X *redwmx = facil.max; X *npedi = facil.predefined; X free(facil.types.integers); X`7D /* pc_inqedgefacil */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqedgerep(wkid, edi, type, errind, edflag, edtype,`20 X ewidth, coli) XPint wkid, edi, type; XPint *errind, *edflag, *edtype; XPfloat *ewidth; XPint *coli; X`7B X Pedgebundl rep; X X pinqedgerep(wkid, edi, type, errind, &rep); X *edflag = rep.flag; X *edtype = rep.type; X *ewidth = rep.scale; X *coli = rep.colour; X`7D /* pc_inqedgerep */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqelemcontent(strid, elenum, iil, irl, isl, errind, X il, ia, rl, ra, sl, lstr, str) XPint strid, elenum, iil, irl, isl, *errind, *il, *ia, *rl; XPfloat *ra; XPint *sl, *lstr; XPchar *str; X`7B X Pchar *databuf; X Pelsize elsize; X Pint bufsize; X Peldata eldata; X Peltype eltype; X Pint size, i; X Pchar *ptr; X X pinqelemtypesize(strid, elenum, errind, &eltype, &elsize); X if (*errind != 0) X return; X else X `7B X switch (eltype) X `7B X case PEL_POLYLINE3: X case PEL_POLYMARKER3: X case PEL_FILL_AREA3: X bufsize = elsize.number * sizeof(Ppoint3); X databuf = (Pchar *)calloc(bufsize, sizeof(Pchar)); X size = elsize.number; X pinqelemcontent(strid, elenum, bufsize, errind, databuf,`20 X &elsize, &eldata); X break; X `20 X case PEL_POLYLINE: X case PEL_POLYMARKER: X case PEL_FILL_AREA: X bufsize = elsize.number * sizeof(Ppoint); X databuf = (Pchar *)calloc(bufsize, sizeof(Pchar)); X size = elsize.number; X pinqelemcontent(strid, elenum, bufsize, errind, databuf,`20 X &elsize, &eldata); X break; X `20 X case PEL_FILL_AREA_SET3: X bufsize = elsize.fas_size.total_pts * sizeof(Ppoint3); X bufsize += elsize.fas_size.num_bounds * sizeof(Pint); X databuf = (Pchar *)calloc(bufsize, sizeof(Pchar)); X size = elsize.fas_size.num_bounds; X pinqelemcontent(strid, elenum, bufsize, errind, databuf,`20 X &elsize, &eldata); X break; X `20 X case PEL_FILL_AREA_SET: X bufsize = elsize.fas_size.total_pts * sizeof(Ppoint); X bufsize += elsize.fas_size.num_bounds * sizeof(Pint); X databuf = (Pchar *)calloc(bufsize, sizeof(Pchar)); X size = elsize.fas_size.num_bounds; X pinqelemcontent(strid, elenum, bufsize, errind, databuf,`20 X &elsize, &eldata); X break; X X case PEL_ADD_NAMES_TO_SET: X case PEL_REMOVE_NAMES_FROM_SET: X bufsize = elsize.number * sizeof(Pint); X databuf = (Pchar *)calloc(bufsize, sizeof(Pchar)); X pinqelemcontent(strid, elenum, bufsize, errind, databuf,`20 X &elsize, &eldata); X break; X `20 X default: X bufsize = elsize.number; X databuf = (Pchar *)malloc(bufsize); X pinqelemcontent(strid, elenum, bufsize, errind, databuf,`20 X &elsize, &eldata); X break; X `7D X `7D X switch (eltype) X `7B X case PEL_NIL: X *il = 0; X *rl = 0; X *sl = 0; X break; X X case PEL_POLYLINE3: X case PEL_POLYMARKER3: X case PEL_FILL_AREA3: X if ((iil >= 1) && X (irl >= (3 * size))) X `7B `20 X ia`5B0`5D = size; X for (i = 0; i < size; i++) X ra`5Bi`5D = eldata.pts3`5Bi`5D.x; X for (i = 0; i < size; i++) X ra`5Bi + size`5D = eldata.pts3`5Bi`5D.y; X for (i = 0; i < size; i++) X ra`5Bi + size + size`5D = eldata.pts3`5Bi`5D.z; X `7D X *il = 1; X *rl = size * 3; X *sl = 0; X break; X X case PEL_POLYLINE: X case PEL_POLYMARKER: X case PEL_FILL_AREA: X if ((iil >= 1) && X (irl >= (2 * size))) X `7B `20 X ia`5B0`5D = size; X for (i = 0; i < size; i++) X ra`5Bi`5D = eldata.pts`5Bi`5D.x; X for (i = 0; i < size; i++) X ra`5Bi + size`5D = eldata.pts`5Bi`5D.y; X `7D X *il = 1; X *rl = size * 2; X *sl = 0; X break; X X case PEL_TEXT3: X if ((irl >= 9) && X (isl >= 1)) X `7B `20 X ra`5B0`5D = eldata.text3.pt.x; X ra`5B1`5D = eldata.text3.pt.y; X ra`5B2`5D = eldata.text3.pt.z; X ra`5B3`5D = eldata.text3.dir`5B0`5D.x; X ra`5B4`5D = eldata.text3.dir`5B0`5D.y; X ra`5B5`5D = eldata.text3.dir`5B0`5D.z; X ra`5B6`5D = eldata.text3.dir`5B1`5D.x; X ra`5B7`5D = eldata.text3.dir`5B1`5D.y; X ra`5B8`5D = eldata.text3.dir`5B1`5D.z; X lstr`5B0`5D = strlen(eldata.text3.string); X strncpy(str, eldata.text3.string, lstr`5B0`5D);`20 X `7D X *il = 0; X *rl = 9; X *sl = 1; X break; X X case PEL_TEXT: X if ((irl >= 2) && X (isl >= 1)) X `7B `20 X ra`5B0`5D = eldata.text.pt.x; X ra`5B1`5D = eldata.text.pt.y; X lstr`5B0`5D = strlen(eldata.text.string); X strncpy(str, eldata.text.string, lstr`5B0`5D);`20 X `7D X *il = 0; X *rl = 2; X *sl = 1; X break; X X case PEL_ANNOTATION_TEXT_RELATIVE3: X if ((irl >= 6) && X (isl >= 1)) X `7B `20 X ra`5B0`5D = eldata.atext3.ref_pt.x; X ra`5B1`5D = eldata.atext3.ref_pt.y; X ra`5B2`5D = eldata.atext3.ref_pt.z; X ra`5B3`5D = eldata.atext3.anno.x; X ra`5B4`5D = eldata.atext3.anno.y; X ra`5B5`5D = eldata.atext3.anno.z; X lstr`5B0`5D = strlen(eldata.atext3.string); X strncpy(str, eldata.atext3.string, lstr`5B0`5D);`20 X `7D X *il = 0; X *rl = 6; X *sl = 1; X break; X X case PEL_ANNOTATION_TEXT_RELATIVE: X if ((irl >= 4) && X (isl >= 1)) X `7B `20 X ra`5B0`5D = eldata.atext.ref_pt.x; X ra`5B1`5D = eldata.atext.ref_pt.y; X ra`5B2`5D = eldata.atext.anno.x; X ra`5B3`5D = eldata.atext.anno.y; X lstr`5B0`5D = strlen(eldata.atext.string); X strncpy(str, eldata.atext.string, lstr`5B0`5D);`20 X `7D X *il = 0; X *rl = 4; X *sl = 1; X break; X X case PEL_FILL_AREA_SET3: X if ((iil >= size) && X (irl >= (3 * eldata.fillarea_set3.bounds`5Bsize - 1`5D))) X `7B `20 X Pint numpts; X X numpts = eldata.fillarea_set3.bounds`5Bsize - 1`5D; X for (i = 0; i < size; i++) X ia`5Bi`5D = eldata.fillarea_set3.bounds`5Bi`5D; X for (i = 0; i < numpts; i++) X ra`5Bi`5D = eldata.fillarea_set3.pts`5Bi`5D.x; X for (i = 0; i < numpts; i++) X ra`5Bi + numpts`5D = eldata.fillarea_set3.pts`5Bi`5D.y; X for (i = 0; i < numpts; i++) X ra`5Bi + numpts + numpts`5D = eldata.fillarea_set3.pts`5Bi`5D.z; X `7D X *il = size; X *rl = eldata.fillarea_set3.bounds`5Bsize - 1`5D * 3; X *sl = 0; X break; X X case PEL_FILL_AREA_SET: X if ((iil >= size) && X (irl >= (2 * eldata.fillarea_set.bounds`5Bsize - 1`5D))) X `7B `20 X Pint numpts; X X numpts = eldata.fillarea_set.bounds`5Bsize - 1`5D; X for (i = 0; i < size; i++) X ia`5Bi`5D = eldata.fillarea_set.bounds`5Bi`5D; X for (i = 0; i < numpts; i++) X ra`5Bi`5D = eldata.fillarea_set.pts`5Bi`5D.x; X for (i = 0; i < numpts; i++) X ra`5Bi + numpts`5D = eldata.fillarea_set.pts`5Bi`5D.y; X `7D X *il = size; X *rl = eldata.fillarea_set.bounds`5Bsize - 1`5D * 2; X *sl = 0; X break; X X case PEL_CELL_ARRAY3: X if ((iil >= 2 + (eldata.cell_array3.dim.x_dim * X eldata.cell_array3.dim.y_dim)) && X (irl >= 9)) X `7B `20 X ia`5B0`5D = eldata.cell_array3.dim.x_dim; X ia`5B1`5D = eldata.cell_array3.dim.y_dim; X for (i = 0; i < (ia`5B0`5D * ia`5B1`5D); i++) X ia`5Bi + 2`5D = eldata.cell_array3.colours`5Bi`5D; X ra`5B0`5D = eldata.cell_array3.parallelogram`5B0`5D.x; X ra`5B1`5D = eldata.cell_array3.parallelogram`5B0`5D.y; X ra`5B2`5D = eldata.cell_array3.parallelogram`5B0`5D.z; X ra`5B3`5D = eldata.cell_array3.parallelogram`5B1`5D.x; X ra`5B4`5D = eldata.cell_array3.parallelogram`5B1`5D.y; X ra`5B5`5D = eldata.cell_array3.parallelogram`5B1`5D.z; X ra`5B6`5D = eldata.cell_array3.parallelogram`5B2`5D.x; X ra`5B7`5D = eldata.cell_array3.parallelogram`5B2`5D.y; X ra`5B8`5D = eldata.cell_array3.parallelogram`5B2`5D.z; X `7D X *il = 2 + (eldata.cell_array3.dim.x_dim * X eldata.cell_array3.dim.y_dim); `20 X *rl = 9; X *sl = 0; X break; X X case PEL_CELL_ARRAY: X if ((iil >= 2 + (eldata.cell_array.dim.x_dim * X eldata.cell_array.dim.y_dim)) && X (irl >= 4)) X `7B `20 X ia`5B0`5D = eldata.cell_array.dim.x_dim; X ia`5B1`5D = eldata.cell_array.dim.y_dim; X for (i = 0; i < (ia`5B0`5D * ia`5B1`5D); i++) X ia`5Bi + 2`5D = eldata.cell_array.colours`5Bi`5D; X ra`5B0`5D = eldata.cell_array.rect.ll.x; X ra`5B1`5D = eldata.cell_array.rect.ll.y; X ra`5B2`5D = eldata.cell_array.rect.ur.x; X ra`5B3`5D = eldata.cell_array.rect.ur.y; X `7D X *il = 2 + (eldata.cell_array.dim.x_dim * X eldata.cell_array.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 if (iil >= 1) X ia`5B0`5D = eldata.idata; 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 if (irl >= 1) X ra`5B0`5D = eldata.fdata; X *rl = 1; X *il = 0; X *sl = 0; X break; X `20 +-+-+-+-+-+-+-+- END OF PART 146 +-+-+-+-+-+-+-+-