-+-+-+-+-+-+-+-+ START OF PART 150 -+-+-+-+-+-+-+-+ X break;`20 X case -9: getlnattr(&locdata->locpet_9_datarec.ln, ia, ra); X break; X case -5: getlnattr(&locdata->locpet_5_datarec.ln, ia, ra); X break; X case -4: getlnattr(&locdata->locpet_4_datarec.ln, ia, ra); X break; X case 4: getlnattr(&locdata->locpet4_datarec.ln, ia, ra); X break; X X case -2:`20 X locdata->locpet_2_datarec.pfcf = ia`5B0`5D; X switch (ia`5B0`5D) X `7B X case PPF_POLYLINE: getlnattr(&locdata->locpet_2_datarec.attr.ln, X &ia`5B1`5D, ra);`20 X break; X X case PPF_FILLAREA: getinterattr(&locdata->locpet_2_datarec.attr.in, X &ia`5B1`5D, ra);`20 X break; X X case PPF_FILLAREA_SET:`20 X getinterattr(&locdata->locpet_2_datarec.attr.fas.in, &ia`5B1`5D, r Va); X getedgeattr(&locdata->locpet_2_datarec.attr.fas.edge, &ia`5B1`5D, V ra); X break; `20 X X `7D X break; X X case 5:`20 X locdata->locpet5_datarec.pfcf = ia`5B0`5D; X switch (ia`5B0`5D) X `7B X case PPF_POLYLINE: getlnattr(&locdata->locpet5_datarec.attr.ln, X &ia`5B1`5D, ra);`20 X break; X X case PPF_FILLAREA: getinterattr(&locdata->locpet5_datarec.attr.in, X &ia`5B1`5D, ra);`20 X break; X X case PPF_FILLAREA_SET:`20 X getinterattr(&locdata->locpet5_datarec.attr.fas.in, &ia`5B1`5D, ra V); X getedgeattr(&locdata->locpet5_datarec.attr.fas.edge, &ia`5B1`5D, r Va); X break; `20 X X `7D X break; X X case 6: X locdata->locpet6_datarec.title_string = (Pchar *)ia`5B0`5D; X break; X X case -1: X locdata->locpet_1_datarec.box_x = ra`5B0`5D; X locdata->locpet_1_datarec.box_y = ra`5B1`5D; X break; X X case -8: getlnattr(&locdata->locpet_8_datarec.ln, ia, ra); X locdata->locpet_8_datarec.point1 = getpoint3(ra`5B1`5D, ra`5B2`5D, ra` V5B3`5D); X locdata->locpet_8_datarec.point2 = getpoint3(ra`5B4`5D, ra`5B5`5D, ra` V5B6`5D); X break; X case -7: getlnattr(&locdata->locpet_7_datarec.ln, ia, ra); X locdata->locpet_7_datarec.point1 = getpoint3(ra`5B1`5D, ra`5B2`5D, ra` V5B3`5D); X locdata->locpet_7_datarec.point2 = getpoint3(ra`5B4`5D, ra`5B5`5D, ra` V5B6`5D); X break;`20 X case -6: getlnattr(&locdata->locpet_6_datarec.ln, ia, ra); X locdata->locpet_6_datarec.point1 = getpoint3(ra`5B1`5D, ra`5B2`5D, ra` V5B3`5D); X locdata->locpet_6_datarec.point2 = getpoint3(ra`5B4`5D, ra`5B5`5D, ra` V5B6`5D); X break; X case -3: getlnattr(&locdata->locpet_3_datarec.ln, ia, ra); X locdata->locpet_3_datarec.point1 = getpoint3(ra`5B1`5D, ra`5B2`5D, ra` V5B3`5D); X locdata->locpet_3_datarec.point2 = getpoint3(ra`5B4`5D, ra`5B5`5D, ra` V5B6`5D); X break; X `7D X`7D /* getlocdatarec */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getstrokedatarec(pet, buflen, ia, ra, strokedata) XPint pet; XPint buflen; XPint *ia; XPfloat *ra; XPstrokerec *strokedata; X`7B X Plnattr *lnattr; X X switch (pet) X `7B X case 1: X strokedata->strokepet1_datarec.bufsiz = buflen; X strokedata->strokepet1_datarec.editpos = ia`5B0`5D; X strokedata->strokepet1_datarec.interval.x = ra`5B0`5D; X strokedata->strokepet1_datarec.interval.y = ra`5B1`5D; X strokedata->strokepet1_datarec.time = ra`5B2`5D; X break; X X case 2: X strokedata->strokepet2_datarec.bufsiz = buflen; X strokedata->strokepet2_datarec.editpos = ia`5B0`5D; X strokedata->strokepet2_datarec.interval.x = ra`5B0`5D; X strokedata->strokepet2_datarec.interval.y = ra`5B1`5D; X strokedata->strokepet2_datarec.time = ra`5B2`5D; X break; X X case 3: X strokedata->strokepet3_datarec.bufsiz = buflen; X strokedata->strokepet3_datarec.editpos = ia`5B0`5D; X strokedata->strokepet3_datarec.interval.x = ra`5B0`5D; X strokedata->strokepet3_datarec.interval.y = ra`5B1`5D; X strokedata->strokepet3_datarec.time = ra`5B2`5D; X getmkattr(&strokedata->strokepet3_datarec.mk, &ia`5B1`5D, &ra`5B3`5D); X break; X X case 4: X strokedata->strokepet4_datarec.bufsiz = buflen; X strokedata->strokepet4_datarec.editpos = ia`5B0`5D; X strokedata->strokepet4_datarec.interval.x = ra`5B0`5D; X strokedata->strokepet4_datarec.interval.y = ra`5B1`5D; X strokedata->strokepet4_datarec.time = ra`5B2`5D; X getlnattr(&strokedata->strokepet4_datarec.ln, &ia`5B1`5D, &ra`5B3`5D); X break; X `7D X`7D /* getstrokedatarec */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getvaldatarec(pet, loval, hival, il, ia, rl, ra, valdata) XPint pet; XPfloat loval, hival; XPint il; XPint *ia; XPint rl; XPfloat *ra; XPvalrec *valdata; X`7B X Plnattr *lnattr; X X switch (pet) X `7B X case -3:`20 X valdata->valpet_3_datarec.low = loval; X valdata->valpet_3_datarec.high = hival; X if (il == 2) X valdata->valpet_3_datarec.title_string = (Pchar *)ia`5B0`5D;`20 X break; X X case -2: X valdata->valpet_2_datarec.low = loval; X valdata->valpet_2_datarec.high = hival; X if (il == 2) X valdata->valpet_2_datarec.title_string = (Pchar *)ia`5B0`5D;`20 X break; X X case -1: X valdata->valpet_1_datarec.low = loval; X valdata->valpet_1_datarec.high = hival; X if (il == 2) X valdata->valpet_1_datarec.title_string = (Pchar *)ia`5B0`5D;`20 X break; X X case 1: X valdata->valpet1_datarec.low = loval; X valdata->valpet1_datarec.high = hival; X if (il == 2) X `7B X valdata->valpet1_datarec.title_string = (Pchar *)malloc(ia`5B1`5D + V 1); X strncpy(valdata->valpet1_datarec.title_string, ia`5B0`5D, ia`5B1`5D) V; X valdata->valpet1_datarec.title_string`5Bia`5B1`5D`5D = '\0'; X `7D X break; X X case 2: X valdata->valpet2_datarec.low = loval; X valdata->valpet2_datarec.high = hival; X if (il == 2) X valdata->valpet2_datarec.title_string = (Pchar *)ia`5B0`5D;`20 X break; X X case 3: X valdata->valpet3_datarec.low = loval; X valdata->valpet3_datarec.high = hival; X if (il == 2) X valdata->valpet3_datarec.title_string = (Pchar *)ia`5B0`5D; X break; X X case -103: X case -102: X case -101: X break; X `7D X`7D /* getvaldatarec */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getpickdatarec(pet, il, ia, rl, fa, pickdata) XPint pet; XPint il; XPint *ia; XPint rl; XPfloat *fa; XPpickrec *pickdata; X`7B X switch (pet) X `7B X case 1: X pickdata->pickpet1_datarec.aperature = fa`5B0`5D; X break; X X case 2: X pickdata->pickpet2_datarec.aperature = fa`5B0`5D; X break; X X case 3: X pickdata->pickpet3_datarec.aperature = fa`5B0`5D; X break; X `7D X`7D /* getpickdatarec */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getstringdatarec(pet, buflen, inipos, il, ia, rl, ra, stringdata V) XPint pet; XPint buflen, inipos; XPint il; XPint *ia; XPint rl; XPfloat *ra; XPstringrec *stringdata; X`7B X switch (pet) X `7B X case 1: X stringdata->stringpet1_datarec.bufsiz = buflen; X stringdata->stringpet1_datarec.position = inipos; X stringdata->stringpet1_datarec.title_string = (Pchar *)ia`5B0`5D; X stringdata->stringpet1_datarec.title_length = ia`5B1`5D; X break; X `7D X`7D /* getstringdatarec */ X X/*-------------------------------------------------------------------------- V*/ X Xstatic void getchoicedatarec(pet, il, ia, rl, ra, sl, lstr, str, choicedata) XPint pet; XPint il; XPint *ia; XPint rl; XPfloat *ra; XPint sl; XPint *lstr; XPchar *str; XPchoicerec *choicedata; X`7B X Pint i; X Pchar *nstr; X X nstr = str;`20 X switch (pet) X `7B X case 1: X choicedata->choicepet1_datarec.number = sl; X choicedata->choicepet1_datarec.strings =`20 X (Pchar **)calloc(sl, sizeof(Pchar *)); X for (i = 0; i < sl; i++) X `7B X choicedata->choicepet1_datarec.strings`5Bi`5D =`20 X (Pchar *)malloc(lstr`5Bi`5D + 1); X strncpy(choicedata->choicepet1_datarec.strings`5Bi`5D, X nstr, lstr`5Bi`5D); X choicedata->choicepet1_datarec.strings`5Bi`5D`5Blstr`5Bi`5D`5D = '\0 V'; X nstr += 80; X `7D `20 X choicedata->choicepet1_datarec.title_string =`20 X (Pchar *)malloc(ia`5B1`5D + 1); X strncpy(choicedata->choicepet1_datarec.title_string, ia`5B0`5D, ia`5B1 V`5D); X choicedata->choicepet1_datarec.title_string`5Bia`5B1`5D`5D = '\0'; X break; X `7D X`7D /* getchoicedatarec */ X X/*-------------------------------------------------------------------------- V*/ X/*---------------------- PHIGS functions ----------------------------------- V*/ X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_addnameset(num, nameset) XPint num; XPint *nameset; X`7B X Pintlst addset; X X addset.number = num; X addset.integers = nameset; X paddnameset(&addset); X`7D /* pc_addnameset */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_annotationtextrelative(rpx, rpy, apx, apy, chars) XPfloat *rpx, *rpy, *apx, *apy; Xstruct dsc$descriptor_s *chars; X`7B X Ppoint refpt, offset; X Pchar str`5B80`5D; X X strncpy(str, chars->dsc$a_pointer, chars->dsc$w_length); X str`5Bchars->dsc$w_length`5D = '\0'; X refpt = getpoint(*rpx, *rpy); X offset = getpoint(*apx, *apy); X pannotationtextrelative(&refpt, &offset, str); X`7D /* pc_annotationtextrelative */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_annotationtextrelative3(rpx, rpy, rpz, apx, apy, apz, chars) XPfloat *rpx, *rpy, *rpz, *apx, *apy, *apz; Xstruct dsc$descriptor_s *chars; X`7B X Ppoint3 refpt, offset; X Pchar str`5B80`5D; X X strncpy(str, chars->dsc$a_pointer, chars->dsc$w_length); X str`5Bchars->dsc$w_length`5D = '\0'; X refpt = getpoint3(*rpx, *rpy, *rpz); X offset = getpoint3(*apx, *apy, *apz); X pannotationtextrelative3(&refpt, &offset, str); X`7D /* pc_annotationtextrelative3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_applicationdata(ldr, datrec) XPint ldr; XPchar *datrec; X`7B X Pdata appldata; X Pchar *applstr; X X applstr = (Pchar *)malloc(appldata.size + 1); X appldata.data = applstr; X papplicationdata(&appldata); X free(applstr); X`7D /* pc_applicationdata */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_archivestruct(afid, num, lstrid) XPint afid, num; XPint *lstrid; X`7B X Pintlst sns; X X sns.number = num; X sns.integers = lstrid; X parchivestruct(afid, &sns); X`7D /* pc_archivestruct */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_archivestructnet(afid, num, lstrid) XPint afid, num; XPint *lstrid; X`7B X Pintlst sns; X X sns.number = num; X sns.integers = lstrid; X parchivestructnet(afid, &sns); X`7D /* pc_archivestructnet */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_awaitevent(tout, wkid, icl, idnr) XPfloat *tout; XPint *wkid, *icl, *idnr; X`7B X Pevent event; X X pawaitevent(*tout, &event); X *wkid = event.ws; X *icl = event.class; X *idnr = event.dev; X`7D /* pc_awaitevent */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_buildtran(xo, yo, dx, dy, phi, fx, fy, errind, xfrmt) XPfloat *xo, *yo, *dx, *dy, *phi, *fx, *fy; XPint *errind; XPmatrix xfrmt; X`7B X Ppoint pt; X Pvector shift; X Pvector scale; X X pt = getpoint(*xo, *yo); X shift = getvector(*dx, *dy); X scale = getvector(*fx, *fy); X pbuildtran(&pt, &shift, *phi, &scale, errind, xfrmt); X`7D /* pc_buildtran */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_buildtran3(xo, yo, zo, dx, dy, dz, phix, phiy, phiz, X fx, fy, fz, errind, xfrmt) XPfloat *xo, *yo, *zo, *dx, *dy, *dz, *phix, *phiy, *phiz, *fx, *fy, *fz; XPint *errind; XPmatrix3 xfrmt; X`7B X Ppoint3 pt; X Pvector3 shift; X Pvector3 scale; X X pt = getpoint3(*xo, *yo, *zo); X shift = getvector3(*dx, *dy, *dz); X scale = getvector3(*fx, *fy, *fz); X pbuildtran3(&pt, &shift, *phix, *phiy, *phiz, &scale, errind, xfrmt); X`7D /* pc_buildtran3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_composetran(xfrmti, xo, yo, dx, dy, phi, fx, fy, errind, X xfrmto) XPmatrix xfrmti; XPfloat *xo, *yo, *dx, *dy, *phi, *fx, *fy; XPint *errind; XPmatrix xfrmto; X`7B X Ppoint pt; X Pvector shift; X Pvector scale; X X pt = getpoint(*xo, *yo); X shift = getvector(*dx, *dy); X scale = getvector(*fx, *fy); X pcomposetran(xfrmti, &pt, &shift, *phi, &scale, errind, xfrmto); X`7D /* pc_composetran */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_composetran3(xfrmti, xo, yo, zo, dx, dy, dz, phix, X phiy, phiz, fx, fy, fz, errind, xfrmto) XPmatrix3 xfrmti; XPfloat *xo, *yo, *zo, *dx, *dy, *dz, *phix, *phiy, *phiz, *fx, *fy, *fz; XPint *errind; XPmatrix3 xfrmto; X`7B X Ppoint3 pt; X Pvector3 shift; X Pvector3 scale; X X pt = getpoint3(*xo, *yo, *zo); X shift = getvector3(*dx, *dy, *dz); X scale = getvector3(*fx, *fy, *fz); X pcomposetran3(xfrmti, &pt, &shift, *phix, *phiy, *phiz, &scale,`20 X errind, xfrmto); X`7D /* pc_composetran3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_delstructarchive(afid, num, lstrid) XPint afid, num; XPint *lstrid; X`7B X Pintlst sns; X X sns.number = num; +-+-+-+-+-+-+-+- END OF PART 150 +-+-+-+-+-+-+-+-