-+-+-+-+-+-+-+-+ START OF PART 149 -+-+-+-+-+-+-+-+ X pinqstringst(ws, dev, 0, &err, buffer, &totsize, &state); X buffer = (Pchar *)malloc(totsize); X pinqstringst(ws, dev, totsize, &err, buffer, &totsize, &state); X X free(buffer); X`7D /* pc_inqstringst */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqstringst3() X`7B X Pint ws, dev, err, totsize; X Pchar *buffer; X Pstringst3 state; X X pinqstringst3(ws, dev, 0, &err, buffer, &totsize, &state); X buffer = (Pchar *)malloc(totsize); X pinqstringst3(ws, dev, totsize, &err, buffer, &totsize, &state); X X free(buffer); X`7D /* pc_inqstringst3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqstrokest() X`7B X Pint ws, dev, err, totsize, i; X Pchar *buffer; X Pstrokest state; X Pinqtype type; X X pinqstrokest(ws, dev, type, 0, &err, buffer, &totsize, &state); X buffer = (Pchar *)malloc(totsize); X pinqstrokest(ws, dev, type, totsize, &err, buffer, &totsize, &state); X X free(buffer); X`7D /* pc_inqstrokest */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqstrokest3() X`7B X Pint ws, dev, err, totsize, i; X Pchar *buffer; X Pstrokest3 state; X Pinqtype type; X X pinqstrokest3(ws, dev, type, 0, &err, buffer, &totsize, &state); X buffer = (Pchar *)malloc(totsize); X pinqstrokest3(ws, dev, type, totsize, &err, buffer, &totsize, &state); X X free(buffer); X`7D /* pc_inqstrokest3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqstructids(num, errind, number, strid) XPint num, *errind, *number, *strid; X/* crashes in DEC PHIGS if there are no structures */ X`7B X Pintlst stids; X X pinqstructids(0, 0, errind, &stids, number); X stids.integers = (Pint *)calloc(*number, sizeof(Pint)); X pinqstructids(*number, 0, errind, &stids, number); X *strid = stids.integers`5Bnum - 1`5D; X free(stids.integers); X`7D /* pc_inqstructids */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqtextextent(wktype, font, chxp, chsp, chh, txp, txalh,`20 X txalv, str, errind, txexrx, txexry, copx, copy) XPint wktype, font; XPfloat *chxp, *chsp, *chh; XPint txp, txalh, txalv; Xstruct dsc$descriptor_s *str; XPint *errind; XPfloat *txexrx, *txexry, *copx, *copy; X`7B X Pchar txst`5B255`5D; X Prect rect; X Ppoint offset; X X strncpy(txst, str->dsc$a_pointer, str->dsc$w_length); X txst`5Bstr->dsc$w_length`5D = '\0'; X pinqtextextent(wktype, font, chxp, chsp, chh, txp, txalh, X txalv, txst, errind, &rect, &offset); X txexrx`5B0`5D = rect.ll.x; X txexrx`5B1`5D = rect.ur.x; X txexry`5B0`5D = rect.ll.y; X txexry`5B1`5D = rect.ur.y; X *copx = offset.x; X *copy = offset.y; X`7D /* pc_inqtextextent */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqtextfacil(wtype, num, errind, nfpp, font, prec, nchh,`20 X minchh, maxchh, nchx, minchx, maxchx, nptxi) XPint wtype, num, *errind, *nfpp, *font, *prec, *nchh;`20 XPfloat *minchh, *maxchh; XPint *nchx; XPfloat *minchx, *maxchx; XPint *nptxi; X`7B X Ptxfac facil; X X pinqtextfacil(wtype, 0, 0, errind, nfpp, &facil); X facil.fps = (Ptxfp *)calloc(*nfpp, sizeof(Ptxfp)); X pinqtextfacil(wtype, *nfpp, 0, errind, nfpp, &facil); X *font = facil.fps`5Bnum - 1`5D.font; X *prec = facil.fps`5Bnum - 1`5D.precision; X *nchh = facil.heights; X *minchh = facil.min_ht; X *maxchh = facil.max_ht; X *nchx = facil.expansions; X *minchx = facil.min_exp; X *maxchx = facil.max_exp; X *nptxi = facil.predefined; X free(facil.fps); X`7D /* pc_inqtextfacil */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqtextrep(wkid, txi, type, errind, font, prec, chxp, chsp, X coli) XPint wkid, txi, type, *errind, *font, *prec; XPfloat *chxp, *chsp; XPint *coli; X`7B X Ptxbundl rep; X X pinqtextrep(wkid, txi, type, errind, &rep); X *font = rep.font; X *prec = rep.precision; X *chxp = rep.exp; X *chsp = rep.space; X *coli = rep.colour; X`7D /* pc_inqtextrep */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqvalst() X`7B X Pint ws, dev, err, totsize; X Pchar *buffer; X Pvalst state; X X pinqvalst(ws, dev, 0, &err, buffer, &totsize, &state); X buffer = (Pchar *)malloc(totsize); X pinqvalst(ws, dev, totsize, &err, buffer, &totsize, &state); X X free(buffer); X`7D /* pc_inqvalst */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqvalst3() X`7B X Pint ws, dev, err, totsize; X Pchar *buffer; X Pvalst3 state; X X pinqvalst3(ws, dev, 0, &err, buffer, &totsize, &state); X buffer = (Pchar *)malloc(totsize); X pinqvalst3(ws, dev, totsize, &err, buffer, &totsize, &state); X X free(buffer); X`7D /* pc_inqvalst3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqviewrep(wkid, viewi, curq, errind, vwupd, vwormt, X vwmpmt, vwcplm, xyclpi, bclipi, fclipi) XPint wkid, viewi, curq, *errind, *vwupd; XPmatrix3 vwormt, vwmpmt; XPlimit3 *vwcplm; XPint *xyclpi, *bclipi, *fclipi; X`7B X Pviewrep3 currep, reqrep, *rep; X X pinqviewrep(wkid, viewi, errind, vwupd, &currep, &reqrep); X if (curq == PCURRENT) X rep = &currep; X else X rep = &reqrep; X memcpy(vwormt, rep->orientation_matrix, sizeof(Pmatrix3)); X memcpy(vwmpmt, rep->mapping_matrix, sizeof(Pmatrix3)); X *vwcplm = rep->clip_limit; X *xyclpi = rep->clip_xy; X *bclipi = rep->clip_back; X *fclipi = rep->clip_front; X`7D /* pc_inqviewrep */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqwsconntype() X`7B X Pwstype wst; X Pint wsid, err, totsize; X Pchar *buffer; X Pconnid connid; X X pinqwsconntype(wsid, 0, &err, buffer, &connid, &totsize, &wst); X buffer = (Pchar *)malloc(totsize); X pinqwsconntype(wsid, totsize, &err, buffer, &connid, &totsize, &wst); X X free(buffer); X`7D /* pc_inqwsconntype */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqwssttable(wtype, errind, mplbte, mpmbte, mtxbte, X minbte, medbte, mpai, mcoli, vwtbi) XPint wtype, *errind, *mplbte, *mpmbte, *mtxbte; XPint *minbte, *medbte, *mpai, *mcoli, *vwtbi; X`7B X Pwstables lengths; X X pinqwssttable(wtype, errind, &lengths); X *mplbte = lengths.line; X *mpmbte = lengths.mark; X *mtxbte = lengths.text; X *minbte = lengths.interior; X *medbte = lengths.edge; X *mpai = lengths.pat; X *mcoli = lengths.colour; X *vwtbi = lengths.view; X`7D /* pc_inqwssttable */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqwstran(wkid, errind, tus, rwindo, cwindo, rviewp, cviewp) XPint wkid, *errind, *tus; XPlimit *rwindo, *cwindo, *rviewp, *cviewp; X`7B X Pwstran wsxform; X X pinqwstran(wkid, errind, &wsxform); X *tus = wsxform.state; X *rwindo = wsxform.req_window; X *cwindo = wsxform.cur_window; X *rviewp = wsxform.req_viewport; X *cviewp = wsxform.cur_viewport; X`7D /* pc_inqwstran */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_inqwstran3(wkid, errind, tus, rwindo, cwindo, rviewp, cviewp) XPint wkid, *errind, *tus; XPlimit3 *rwindo, *cwindo, *rviewp, *cviewp; X`7B X Pwstran3 wsxform; X X pinqwstran3(wkid, errind, &wsxform); X *tus = wsxform.state; X *rwindo = wsxform.req_window; X *cwindo = wsxform.cur_window; X *rviewp = wsxform.req_viewport; X *cviewp = wsxform.cur_viewport; X`7D /* pc_inqwstran3 */ X X/*-------------------------------------------------------------------------- V*/ X X/* end of cinqphigs.c */ $ CALL UNPACK [.FORTRAN.SOURCE.BINDING]CINQPHIGS.C;2 1359511071 $ create 'f' X/*-------------------------------------------------------------------------- V-- X X Intermediate C functions for VMS Fortran interface to DEC PHIGS C X X---------------------------------------------------------------------------- V*/ X X#include X#include X#include X`20 X/*-------------------------------------------------------------------------- V*/ X Xstatic Plimit getlimit(xmin, xmax, ymin, ymax) XPfloat xmin; XPfloat xmax; XPfloat ymin; XPfloat ymax; X`7B X Plimit temp; X X temp.xmin = xmin; X temp.xmax = xmax; X temp.ymin = ymin; X temp.ymax = ymax; X return temp; X`7D /* getlimit */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Plimit3 getlimit3(xmin, xmax, ymin, ymax, zmin, zmax) XPfloat xmin; XPfloat xmax; XPfloat ymin; XPfloat ymax; XPfloat zmin; XPfloat zmax; X`7B X Plimit3 temp; X X temp.xmin = xmin; X temp.xmax = xmax; X temp.ymin = ymin; X temp.ymax = ymax; X temp.zmin = zmin; X temp.zmax = zmax; X return temp; X`7D /* getlimit3 */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Ppoint3 getpoint3(x, y, z) XPfloat x; XPfloat y; XPfloat z; X`7B X Ppoint3 temp; X X temp.x = x; X temp.y = y; X temp.z = z; X return temp; X`7D /* getpoint3 */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Ppoint getpoint(x, y) XPfloat x; XPfloat y; X`7B X Ppoint temp; X X temp.x = x; X temp.y = y; X return temp; X`7D /* getpoint */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Pvector3 getvector3(x, y, z) XPfloat x; XPfloat y; XPfloat z; X`7B X Pvector3 temp; X X temp.x = x; X temp.y = y; X temp.z = z; X return temp; X`7D /* getvector3 */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Pvector getvector(x, y) XPfloat x; XPfloat y; X`7B X Pvector temp; X X temp.x = x; X temp.y = y; X return temp; X`7D /* getvector */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Pedgebundl getedgebundl(eflag, etype, escale, ecolour) XPedgef eflag; XPint etype; XPfloat escale; XPint ecolour; X`7B X Pedgebundl edgerec; X X edgerec.flag = eflag; X edgerec.type = etype; X edgerec.scale = escale; X edgerec.colour = ecolour; X return edgerec; X`7D /* getedgebundl */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Pinterbundl getinterbundl(istyle, index, icolour) XPinterstyle istyle; XPint index; XPint icolour; X`7B X Pinterbundl inrec; X X inrec.style = istyle; X inrec.index = index; X inrec.colour = icolour; X return inrec; X`7D /* getinterbundl */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Plnbundl getlnbundl(ltype, lwidth, lcolour) XPint ltype; XPfloat lwidth; XPint lcolour; X`7B X Plnbundl lnrec; X X lnrec.type = ltype; X lnrec.width = lwidth; X lnrec.colour = lcolour; X return lnrec; X`7D /* getlnbundl */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Pmkbundl getmkbundl(mtype, msize, mcolour) XPint mtype; XPfloat msize; XPint mcolour; X`7B X Pmkbundl mkrec; X X mkrec.type = mtype; X mkrec.size = msize; X mkrec.colour = mcolour; X return mkrec; X`7D /* getmkbundl */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic Ptxbundl gettxbundl(tfont, tprec, texp, tspace, tcolour) XPint tfont; XPtxprec tprec; XPfloat texp; XPfloat tspace; XPint tcolour; X`7B X Ptxbundl txrec; X X txrec.font = tfont; X txrec.precision = tprec; X txrec.exp = texp; X txrec.space = tspace; X txrec.colour = tcolour; X return txrec; X`7D /* gettxbundl */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getlnattr(lnattr, ia, ra) XPlnattr *lnattr; XPint *ia; XPfloat *ra; X`7B X lnattr->type = ia`5B1`5D; X lnattr->width = ia`5B2`5D; X lnattr->colour = ia`5B3`5D; X lnattr->index = ia`5B4`5D; X lnattr->bundl.type = ia`5B5`5D; X lnattr->bundl.colour = ia`5B6`5D; X lnattr->bundl.width = ra`5B0`5D; X`7D /* getlnattr */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getedgeattr(edgeattr, ia, ra) XPedgeattr *edgeattr; XPint *ia; XPfloat *ra; X`7B X edgeattr->flag = ia`5B1`5D; X edgeattr->width = ia`5B2`5D; X edgeattr->colour = ia`5B3`5D; X edgeattr->index = ia`5B4`5D; X edgeattr->bundl.flag = ia`5B5`5D; X edgeattr->bundl.type = ia`5B6`5D; X edgeattr->bundl.colour = ia`5B7`5D; X edgeattr->bundl.scale = ra`5B0`5D; X`7D /* getedgeattr */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getinterattr(interattr, ia, ra) XPinterattr *interattr; XPint *ia; XPfloat *ra; X`7B X interattr->interior = ia`5B1`5D; X interattr->style = ia`5B2`5D; X interattr->colour = ia`5B3`5D; X interattr->index = ia`5B4`5D; X interattr->bundl.style = ia`5B5`5D; X interattr->bundl.index = ia`5B6`5D; X interattr->bundl.colour = ia`5B7`5D; X`7D /* getinterattr */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getmkattr(mkattr, ia, ra) XPmkattr *mkattr; XPint *ia; XPfloat *ra; X`7B X mkattr->type = ia`5B1`5D; X mkattr->size = ia`5B2`5D; X mkattr->colour = ia`5B3`5D; X mkattr->index = ia`5B4`5D; X mkattr->bundl.type = ia`5B5`5D; X mkattr->bundl.colour = ia`5B6`5D; X mkattr->bundl.size = ra`5B0`5D; X`7D /* getmkattr */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getlocdatarec(pet, ia, ra, locdata) XPint pet; XPint *ia; XPfloat *ra; XPlocrec *locdata; X`7B X Plnattr *lnattr; X X switch (pet) X `7B X case -11: X case 1:`20 X case 2: X case 3: /* nothing */ X break; X X case -12: getlnattr(&locdata->locpet_12_datarec.ln, ia, ra); X break; X case -10: getlnattr(&locdata->locpet_10_datarec.ln, ia, ra); +-+-+-+-+-+-+-+- END OF PART 149 +-+-+-+-+-+-+-+-