-+-+-+-+-+-+-+-+ START OF PART 151 -+-+-+-+-+-+-+-+ X sns.integers = lstrid; X pdelstructarchive(afid, &sns); X`7D /* pc_delstructarchive */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_delstructnetarchive(afid, num, lstrid) XPint afid, num; XPint *lstrid; X`7B X Pintlst sns; X X sns.number = num; X sns.integers = lstrid; X pdelstructnetarchive(afid, &sns); X`7D /* pc_delstructnetarchive */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_errorhand(errnr, fctid, errfil) XPint errnr, fctid; Xstruct dsc$descriptor_s *errfil; X`7B X Pchar str`5B255`5D; X X strncpy(str, errfil->dsc$a_pointer, errfil->dsc$w_length); X str`5Berrfil->dsc$w_length`5D = '\0'; X perrorhand(errnr, fctid, str); X`7D /* pc_errorhand */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_errorlog(errnr, fctid, errfil) XPint errnr, fctid; Xstruct dsc$descriptor_s *errfil; X`7B X Pchar str`5B255`5D; X X strncpy(str, errfil->dsc$a_pointer, errfil->dsc$w_length); X str`5Berrfil->dsc$w_length`5D = '\0'; X perrorlog(errnr, fctid, str); X`7D /* pc_errorlog */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_escape() X`7B X X`7D /* pc_escape */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_evalviewmappingmatrix(vwwnlm, pjvplm, errind, vwmpmt) XPlimit *vwwnlm, *pjvplm; XPint *errind; XPmatrix vwmpmt; X`7B X Pviewmapping mapping; X X mapping.window = *vwwnlm; X mapping.viewport = getlimit3(pjvplm->xmin, pjvplm->xmax, pjvplm->ymin, X pjvplm->ymax, 0.0, 0.0); X pevalviewmappingmatrix(&mapping, errind, vwmpmt); X`7D /* pc_evalviewmappingmatrix */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_evalviewmappingmatrix3(vwwnlm, pjvplm, pjtype, pjrx, X pjry, pjrz, vpld, bpld, fpld, errind, vwmpmt) XPlimit *vwwnlm; XPlimit3 *pjvplm; XPint pjtype; XPfloat *pjrx, *pjry, *pjrz, *vpld, *bpld, *fpld; XPint *errind; XPmatrix3 vwmpmt; X`7B X Pviewmapping3 mapping; X X mapping.window = *vwwnlm; X mapping.viewport = *pjvplm; X mapping.proj = pjtype; X mapping.prp = getpoint3(*pjrx, *pjry, *pjrz); X mapping.view_plane = *vpld; X mapping.back_plane = *bpld; X mapping.front_plane = *fpld; X pevalviewmappingmatrix3(&mapping, errind, vwmpmt); X`7D /* pc_evalviewmappingmatrix3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_evalvieworientationmatrix(vwrx, vwry, vupx, vupy, errind, X vwormt) XPfloat *vwrx, *vwry, *vupx, *vupy; XPint *errind; XPmatrix vwormt; X`7B X Ppoint vrp; X Pvector vup; X X vrp = getpoint(*vwrx, *vwry); X vup = getvector(*vupx, *vupy); X pevalvieworientationmatrix(&vrp, &vup, errind, vwormt); X`7D /* pc_evalvieworientationmatrix */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_evalvieworientationmatrix3(vwrx, vwry, vwrz,`20 X vpnx, vpny, vpnz, vupx, vupy, vupz, errind, vwormt) XPfloat *vwrx, *vwry, *vwrz, *vpnx, *vpny, *vpnz, *vupx, *vupy, *vupz; XPint *errind; XPmatrix vwormt; X`7B X Ppoint3 vrp; X Pvector3 vup, vpn; X X vrp = getpoint3(*vwrx, *vwry, *vwrz); X vpn = getvector3(*vpnx, *vpny, *vpnz); X vup = getvector3(*vupx, *vupy, *vupz); X pevalvieworientationmatrix3(&vrp, &vpn, &vup, errind, vwormt); X`7D /* pc_evalvieworientationmatrix3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_fillarea(num, pxa, pya) XPint num; XPfloat *pxa, *pya; X`7B X Ppoint *pts; X Pint i; X X pts = (Ppoint *)calloc(num, sizeof(Ppoint)); X for (i = 0; i < num; i++) X pts`5Bi`5D = getpoint(pxa`5Bi`5D, pya`5Bi`5D); X pfillarea(num, pts); X free(pts); X`7D /* pc_fillarea */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_fillarea3(num, pxa, pya, pza) XPint num; XPfloat *pxa, *pya, *pza; X`7B X Ppoint3 *pts; X Pint i; X X pts = (Ppoint3 *)calloc(num, sizeof(Ppoint3)); X for (i = 0; i < num; i++) X pts`5Bi`5D = getpoint3(pxa`5Bi`5D, pya`5Bi`5D, pza`5Bi`5D); X pfillarea3(num, pts); X free(pts); X`7D /* pc_fillarea3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_fillareaset(npl, ixa, pxa, pya) XPint npl; XPint *ixa; XPfloat *pxa, *pya; X`7B X Ppoint *pts; X Pint i; X X pts = (Ppoint *)calloc(ixa`5Bnpl`5D, sizeof(Ppoint)); X for (i = 0; i < ixa`5Bnpl`5D; i++) X pts`5Bi`5D = getpoint(pxa`5Bi`5D, pya`5Bi`5D); X pfillareaset(npl, ixa, pts); X free(pts); X`7D /* pc_fillareaset */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_fillareaset3(npl, ixa, pxa, pya, pza) XPint npl; XPint *ixa; XPfloat *pxa, *pya, *pza; X`7B X Ppoint3 *pts; X Pint i; X X pts = (Ppoint3 *)calloc(ixa`5Bnpl`5D, sizeof(Ppoint3)); X for (i = 0; i < ixa`5Bnpl`5D; i++) X pts`5Bi`5D = getpoint3(pxa`5Bi`5D, pya`5Bi`5D, pza`5Bi`5D); X pfillareaset3(npl, ixa, pts); X free(pts); X`7D /* pc_fillareaset3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getchoice(stat, chnr) XPint *stat, *chnr; X`7B X Pchoice choice; X X pgetchoice(&choice); X *stat = choice.status; X *chnr = choice.choice; X`7D /* pc_getchoice */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getloc(viewi, lpx, lpy) XPint *viewi; XPfloat *lpx, *lpy; X`7B X Ploc loc; X X pgetloc(&loc); X *viewi = loc.view_index; X *lpx = loc.position.x; X *lpy = loc.position.y; X`7D /* pc_getloc */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getloc3(viewi, lpx, lpy, lpz) XPint *viewi; XPfloat *lpx, *lpy, *lpz; X`7B X Ploc3 loc; X X pgetloc3(&loc); X *viewi = loc.view_index; X *lpx = loc.position.x; X *lpy = loc.position.y; X *lpz = loc.position.z; X`7D /* pc_getloc3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getpick(ippd, stat, ppd, pp) XPint ippd; XPint *stat, *ppd; XPpickpathel *pp; X`7B X Ppick pick; X X pick.pick_path.pick_path = pp; X pgetpick(ippd, &pick); X *stat = pick.status; X *ppd = pick.pick_path.depth; X`7D /* pc_getpick */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getstring(lostr, str) XPint *lostr; Xstruct dsc$descriptor_s *str; X`7B X pgetstring(str->dsc$a_pointer); X *lostr = strlen(str->dsc$a_pointer); X`7D /* pc_getstring */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getstroke(num, viewi, np, pxa, pya) XPint num; XPint *viewi, *np; XPfloat *pxa, *pya; X`7B X Pstroke stroke; X Pint i; X X stroke.points = (Ppoint *)calloc(num, sizeof(Ppoint)); X pgetstroke(&stroke); X *viewi = stroke.view_index; X *np = stroke.n_points; X for (i = 0; i < stroke.n_points; i++) X `7B X pxa`5Bi`5D = stroke.points`5Bi`5D.x; X pya`5Bi`5D = stroke.points`5Bi`5D.y; X `7D X free(stroke.points); X`7D /* pc_getstroke */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_getstroke3(num, viewi, np, pxa, pya, pza) XPint num; XPint *viewi, *np; XPfloat *pxa, *pya, *pza; X`7B X Pstroke3 stroke; X Pint i; X X stroke.points = (Ppoint3 *)calloc(num, sizeof(Ppoint3)); X pgetstroke3(&stroke); X *viewi = stroke.view_index; X *np = stroke.n_points; X for (i = 0; i < stroke.n_points; i++) X `7B X pxa`5Bi`5D = stroke.points`5Bi`5D.x; X pya`5Bi`5D = stroke.points`5Bi`5D.y; X pza`5Bi`5D = stroke.points`5Bi`5D.z; X `7D X free(stroke.points); X`7D /* pc_getstroke3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initloc3(wsid, locdev, initview, initx, inity, initz, pet,`20 X evol, ia, ra) XPint wsid; XPint locdev; XPint initview; XPfloat *initx, *inity, *initz; XPint pet; XPlimit3 *evol; XPint *ia; XPfloat *ra; X`7B X Ploc3 initloc; X Plocrec locdata; X X getlocdatarec(pet, ia, ra, &locdata); X initloc.position = getpoint3(*initx, *inity, *initz); X initloc.view_index = initview; X pinitloc3(wsid, locdev, &initloc, pet, evol, &locdata);`20 X`7D /* pc_initloc3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initloc(wsid, locdev, initview, initx, inity, pet,`20 X xmin, xmax, ymin, ymax, ia, ra) XPint wsid; XPint locdev; XPint initview; XPfloat *initx, *inity; XPint pet; XPfloat *xmin, *xmax, *ymin, *ymax; XPint *ia; XPfloat *ra; X`7B X Ploc initloc; X Plocrec locdata; X Plimit echoarea; X X getlocdatarec(pet, ia, ra, &locdata); X initloc.position = getpoint(*initx, *inity); X initloc.view_index = initview; X echoarea = getlimit(*xmin, *xmax, *ymin, *ymax); X pinitloc(wsid, locdev, &initloc, pet, &echoarea, &locdata);`20 X`7D /* pc_initloc */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initstroke3(wsid, strokedev, initview, numpts, X initx, inity, initz, pet, evol, buflen, il, ia, rl, ra) XPint wsid; XPint strokedev; XPint initview; XPint numpts; XPfloat *initx, *inity, *initz; XPint pet; XPlimit3 *evol; XPint buflen; XPint il; XPint *ia; XPint rl; XPfloat *ra; X`7B X Pstroke3 initstroke; X Pstrokerec strokedata; X Pint i; X X getstrokedatarec(pet, buflen, ia, ra, &strokedata); X initstroke.n_points = numpts; X initstroke.points = (Ppoint3 *)calloc(numpts, sizeof(Ppoint3)); X for (i = 0; i < numpts; i++) X initstroke.points`5Bi`5D = getpoint3(initx`5Bi`5D, inity`5Bi`5D, initz`5 VBi`5D); X initstroke.view_index = initview; X pinitstroke3(wsid, strokedev, &initstroke, pet, evol, &strokedata);`20 X`7D /* pc_initstroke3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initstroke(wsid, strokedev, initview, numpts, X initx, inity, pet, xmin, xmax, ymin, ymax, buflen, il, ia, rl, ra) XPint wsid; XPint strokedev; XPint initview; XPint numpts; XPfloat *initx, *inity; XPint pet; XPfloat *xmin, *xmax, *ymin, *ymax; XPint buflen; XPint il; XPint *ia; XPint rl; XPfloat *ra; X`7B X Pstroke initstroke; X Pstrokerec strokedata; X Plimit echoarea; X Pint i; X X getstrokedatarec(pet, buflen, ia, ra, &strokedata); X initstroke.n_points = numpts; X initstroke.points = (Ppoint *)calloc(numpts, sizeof(Ppoint)); X for (i = 0; i < numpts; i++) X initstroke.points`5Bi`5D = getpoint(initx`5Bi`5D, inity`5Bi`5D); X initstroke.view_index = initview; X echoarea = getlimit(*xmin, *xmax, *ymin, *ymax); X pinitstroke(wsid, strokedev, &initstroke, pet, &echoarea, &strokedata);`20 X`7D /* pc_initstroke */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initval3(wsid, valdev, init, pet, evol, loval, hival,`20 X il, ia, rl, ra) XPint wsid; XPint valdev; XPfloat *init; XPint pet; XPlimit3 *evol; XPfloat *loval, *hival; XPint il; XPint *ia; XPint rl; XPfloat *ra; X`7B X Pvalrec valdata; X X getvaldatarec(pet, *loval, *hival, il, ia, rl, ra, &valdata); X pinitval3(wsid, valdev, *init, pet, evol, &valdata);`20 X`7D /* pc_initval3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initval(wsid, valdev, init, pet, xmin, xmax,`20 X ymin, ymax, loval, hival, il, ia, rl, ra) XPint wsid; XPint valdev; XPfloat *init; XPint pet; XPfloat *xmin, *xmax, *ymin, *ymax; XPfloat *loval, *hival; XPint il; XPint *ia; XPint rl; XPfloat *ra; X`7B X Pvalrec valdata; X Plimit echoarea; X X getvaldatarec(pet, *loval, *hival, il, ia, rl, ra, &valdata); X echoarea = getlimit(*xmin, *xmax, *ymin, *ymax); X pinitval(wsid, valdev, *init, pet, &echoarea, &valdata);`20 X`7D /* pc_initval */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initchoice3(wsid, choicedev, status, init,`20 X pet, evol, il, ia, rl, ra, sl, lstr, str) XPint wsid; XPint choicedev; XPchoicestatus status; XPint init; XPint pet; XPlimit3 *evol; XPint il; XPint *ia; XPint rl; XPfloat *ra; XPint sl; XPint *lstr; XPchar *str; X`7B X Pchoicerec choicedata; X X getchoicedatarec(pet, il, ia, rl, ra, sl, lstr, str, &choicedata); X pinitchoice3(wsid, choicedev, status, init, pet, evol, &choicedata);`20 X`7D /* pc_initchoice3 */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initchoice(wsid, choicedev, status, init,`20 X pet, xmin, xmax, ymin, ymax, il, ia, rl, ra, sl, lstr, str) XPint wsid; XPint choicedev; XPchoicestatus status; XPint init; XPint pet; XPfloat *xmin, *xmax, *ymin, *ymax; XPint il; XPint *ia; XPint rl; XPfloat *ra; XPint sl; XPint *lstr; XPchar *str; X`7B X Pchoicerec choicedata; X Plimit echoarea; X X getchoicedatarec(pet, il, ia, rl, ra, sl, lstr, str, &choicedata); X echoarea = getlimit(*xmin, *xmax, *ymin, *ymax); X pinitchoice(wsid, choicedev, status, init, pet, &echoarea, &choicedata);`2 V0 X`7D /* pc_initchoice */ X X/*-------------------------------------------------------------------------- V*/ X Xextern void pc_initpick3(wsid, pickdev, status, initdepth, initpath, pet,`20 X evol, porder, il, ia, rl, ra) XPint wsid; XPint pickdev; XPpickstatus status; XPint initdepth; XPpickpathel *initpath; XPint pet; XPlimit3 *evol; XPpathorder porder; XPint il; XPint *ia; XPint rl; XPfloat *ra; X`7B X Ppickrec pickdata; X Ppickpath initppath; X X getpickdatarec(pet, il, ia, rl, ra, &pickdata); X initppath.depth = initdepth; X initppath.pick_path = initpath; X pinitpick3(wsid, pickdev, status, &initppath, pet, evol, &pickdata,`20 X porder);`20 X`7D /* pc_initpick3 */ X +-+-+-+-+-+-+-+- END OF PART 151 +-+-+-+-+-+-+-+-