5 * Revision 1.1.1.1 1995/10/24 10:20:23 cernlib
9 #include "geant321/pilot.h"
10 *CMZ : 3.21/02 29/03/94 15.41.26 by S.Giani
12 SUBROUTINE GDLENS(ISEL1,KLSA)
14 C. ******************************************************************
16 C. * Zoom by the factors ZOOMFU,ZOOMFV *
17 C. * around screen coordinates UUZ0,VVZ0 *
18 C. * and places the resulting picture at UU0,VV0 *
20 C. * After GDZOOM has been CALLed, any drawing operation *
21 C. * will actually draw accordingly to last GDZOOM parameters *
23 C. * If ZOOMFU or ZOOMFV is 0 (or negative) the zoom *
24 C. * parameters (GZUA,...,GZVC in common GCDRAW) are reset *
26 C. * It is now possible to show in different windows the *
27 C. * `zoomed-views' obtained just clicking in different *
28 C. * points of the main picture or of the zoomed-pictures *
30 C. * ==>Called by : <USER>, <GXINT> *
31 C. * Author: S. Giani 1992 *
33 C. ******************************************************************
35 #include "geant321/gcdraw.inc"
37 C. ------------------------------------------------------------------
53 CALL IGLOC2(1,NT,UZ1,VZ1,UZ2,VZ2,ISTAT,'R')
55 *** CALL IGCHWK(9,0,0,600,600)
66 IF (UZ2-UZ1.EQ.0.) UZ2=UZ1+PLTX*.005
67 IF (VZ2-VZ1.EQ.0.) VZ2=VZ1+PLTY*.005
68 ZOOMFU=PLTX/ABS(UZ2-UZ1)
69 ZOOMFV=PLTY/ABS(VZ2-VZ1)
75 VV0=20.-(ABS(VZ2-VZ1))*.5
79 GZUB=(GZUB+GZUC)*ZOOMFU
80 GZVB=(GZVB+GZVC)*ZOOMFV
83 CALL IGQWK(1,'MXDS',RVAL)
85 ISV1=(20.-VZ1)*RVAL(2)*.05
86 ISU21=(UZ2-UZ1)*RVAL(1)*.05
87 ISV21=(VZ1-VZ2)*RVAL(2)*.05
89 CALL IGPXMP(IPXSAV,ISU21,ISV21,'OC')
90 CALL IGPXMP(IPXSAV,ISU1,ISV1,'S')
93 CALL IGPXMP(IPX1,ISU21,ISV21,'O')
94 *** CALL IGCHWK(9,ISU1,ISV1,ISU21,ISV21)
98 CALL IGPXMP(IPX1,ISU1,ISV1,'CDR')
100 CALL IRQLC(1,MO,JISTA,NT,PX,PY)
101 IF(MO.NE.-2.AND.MO.NE.2)THEN
107 CALL IGPXMP(IPXSAV,ISU1,ISV1,'DR')
109 CALL IGPXMP(IPXSAV,IPXX,IPYY,'DR')
112 ELSEIF(JISTA.EQ.1)THEN
126 ZOOMFU=(.5*PY*PLTX)/ABS(UZ2-UZ1)
127 ZOOMFV=(.5*PY*PLTY)/ABS(VZ2-VZ1)
132 GZUB=(GZUB+GZUC)*ZOOMFU
133 GZVB=(GZVB+GZVC)*ZOOMFV
138 *** CALL IGBOX(0.,20.,20.,0.)
140 CALL IGPXMP(IPX1,ISU21,ISV21,'O')
142 CALL IGPXMP(IPX1,ISU1,ISV1,'CDR')
144 ELSEIF(JISTA.EQ.2)THEN
162 GZUB=(GZUB+GZUC)*ZOOMFU
163 GZVB=(GZVB+GZVC)*ZOOMFV
167 CALL IGPXMP(IPX1,ISU21,ISV21,'O')
169 IPXX=PX*RVAL(1)*.05-ISU21*.5
170 IPYY=(20.-PY)*RVAL(2)*.05-ISV21*.5
171 CALL IGPXMP(IPX1,IPXX,IPYY,'C')
172 CALL IGPXMP(IPXSAV,ISU1,ISV1,'DR')
174 CALL IGPXMP(IPXSAV,ISU21,ISV21,'OC')
175 CALL IGPXMP(IPXSAV,IPXX,IPYY,'S')
176 CALL IGPXMP(IPX1,IPXX,IPYY,'DR')
182 * CALL IGPXMP(IPXSAV,ISU1,ISV1,'DR')
186 * CALL IGPXMP(IPXSAV,IPXX,IPYY,'DR')
193 ELSEIF((JISTA.EQ.-1.AND.INGR.EQ.1).OR. (JISTA.GT.0.AND.INGR.EQ
194 + .1.AND.MO.EQ.2))THEN
201 ZOOMFU=(.5*PY*PLTX)/ABS(UZ2-UZ1)
202 ZOOMFV=(.5*PY*PLTY)/ABS(VZ2-VZ1)
207 GZUB=(GZUB+GZUC)*ZOOMFU
208 GZVB=(GZVB+GZVC)*ZOOMFV
214 *** CALL IGBOX(0.,20.,20.,0.)
216 CALL IGPXMP(IPX1,ISU21,ISV21,'O')
218 CALL IGPXMP(IPX1,ISU1,ISV1,'CDR')
220 ELSEIF((JISTA.EQ.-1.AND.ISTR.EQ.1).OR. (JISTA.GT.0.AND.ISTR.EQ
221 + .1.AND.MO.EQ.2))THEN
232 GZUB=(GZUB+GZUC)*ZOOMFU
233 GZVB=(GZVB+GZVC)*ZOOMFV
237 CALL IGPXMP(IPX1,ISU21,ISV21,'O')
239 CALL IGPXMP(IPX1,IPXX,IPYY,'C')
240 CALL IGPXMP(IPXSAV,IPXX,IPYY,'DR')
241 IPXX=PX*RVAL(1)*.05-ISU21*.5
242 IPYY=(20.-PY)*RVAL(2)*.05-ISV21*.5
244 CALL IGPXMP(IPXSAV,ISU21,ISV21,'OC')
245 CALL IGPXMP(IPXSAV,IPXX,IPYY,'S')
246 CALL IGPXMP(IPX1,IPXX,IPYY,'DR')