SUBROUTINE CLIPT(BUFIN,OUTBF) DIMENSION BUFIN(1),OUTBF(1) COMMON /TKTRNX/ TMINVX,TMINVY,TMAXVX,TMAXVY,TREALX,TREALY, 1 TIMAGX,TIMAGY,TRCOSF,TRSINF,TRSCAL,TRFACX,TRFACY, 2 TRPAR1,TRPAR2,TRPAR3,TRPAR4,TRPAR5,TRPAR6,KMOFLG(8),KPAD2, 3 KBAUDR,KGNFLG,KGRAFL,KHOMEY,KKMODE,KHORSZ,KVERSZ,KTBLSZ, 4 KSIZEF,KLMRGN,KRMRGN,KFACTR,KTERM,KLINE,KZAXIS,KBEAMX,KBEAMY, 5 KMOVEF,KPCHAR(5),KDASHT,KMINSX,KMINSY,KMAXSX,KMAXSY,KEYCON, 6 KINLFT,KOTLFT,KUNIT GSTAX=BUFIN(1) GSTAY=BUFIN(2) GENDX=BUFIN(3) GENDY=BUFIN(4) IF(GSTAX.GE.TMINVX)GO TO 10 IF(GENDX.GE.TMINVX)GO TO 20 GO TO 110 10 IF(GSTAX.LE.TMAXVX)GO TO 20 IF(GENDX.LE.TMAXVX)GO TO 20 GO TO 110 20 IF(GSTAY.GE.TMINVY)GO TO 21 IF(GENDY.GE.TMINVY)GO TO 30 GO TO 110 21 IF(GSTAY.LE.TMAXVY)GO TO 30 IF(GENDY.LE.TMAXVY)GO TO 30 GO TO 110 30 IF(GSTAX.NE.GENDX)GO TO 31 DSTAX=GSTAX DENDX=GSTAX CALL PARCLT(GSTAY,GENDY,TMINVY,TMAXVY,DSTAY,DENDY) GO TO 120 31 IF(GSTAY.NE.GENDY)GO TO 40 DSTAY=GSTAY DENDY=GSTAY CALL PARCLT(GSTAX,GENDX,TMINVX,TMAXVX,DSTAX,DENDX) GO TO 120 40 A=GENDX-GSTAX B=GENDY-GSTAY IF(GSTAX.LT.TMINVX)GO TO 41 IF(GSTAX.LE.TMAXVX)GO TO 43 Q=TMAXVX GO TO 42 43 IF(GSTAY.GT.TMAXVY)GO TO 140 IF(GSTAY.LT.TMINVY)GO TO 44 DSTAX=GSTAX DSTAY=GSTAY GO TO 150 41 Q=TMINVX 42 DSTAY=GSTAY+((Q-GSTAX)*B/A) IF(DSTAY.GT.TMAXVY)GO TO 140 IF(DSTAY.LT.TMINVY)GO TO 44 DSTAX=Q GO TO 150 44 R=TMINVY GO TO 45 140 R=TMAXVY 45 DSTAX=GSTAX+((R-GSTAY)*A/B) IF(DSTAX.GT.TMAXVX)GO TO 110 IF(DSTAX.LT.TMINVX)GO TO 110 DSTAY=R 150 IF(GENDX.LT.TMINVX)GO TO 50 IF(GENDX.GT.TMAXVX)GO TO 51 IF(GENDY.GT.TMAXVY)GO TO 160 IF(GENDY.LT.TMINVY)GO TO 52 DENDX=GENDX DENDY=GENDY GO TO 120 51 Q=TMAXVX GO TO 53 50 Q=TMINVX 53 DENDY=GSTAY+((Q-GSTAX)*B/A) IF(DENDY.GT.TMAXVY)GO TO 160 IF(DENDY.LT.TMINVY)GO TO 52 DENDX=Q GO TO 120 52 R=TMINVY GO TO 60 160 R=TMAXVY 60 DENDX=GSTAX+((R-GSTAY)*A/B) DENDY=R 120 OUTBF(1)=DSTAX OUTBF(2)=DSTAY OUTBF(3)=DENDX OUTBF(4)=DENDY KGNFLG=0 GO TO 70 C * SET FLAG IF LINE OUTSIDE WINDOW 110 KGNFLG=1 70 RETURN END